Настройка служб в Kali Linux

Настройка служб в Kali Linux

BlackBiz

В этой статье мы рассмотрим службы (иногда называемые демонами) или программы, которые работают в фоновом режиме и выполняют различные функции для системы. Мы начнем с обсуждения конфигурационных файлов и далее затронем тему касательно того, как работают некоторые важные службы (такие как SSH, Post-greSQL и Apache) и как их можно настроить.

Настройка конкретной программы

Если вы хотите настроить неизвестный пакет, вы должны действовать поэтапно. Сначала, вам следует прочитать документацию. предоставленную непосредственно эксплуатационником. Debian файл /usr/share/doc/package/README - довольно таки хорошее место для начала. Этот файл чаще всего будет содержать информацию о пакете, включая ссылки, которые могут перенаправить вас на дополнительную документацию. Вы всегда сэкономите себе много времени и избегнете утомительной работы, прочитав этот файл с самого начала, поскольку он часто довольно детально описывает наиболее распространенные ошибки и решения большинства распространенных проблем.

Далее вам нужно ознакомиться с официальной документацией данного программного обеспечения. Мы отсылаем вас к разделу 6.1, «Источники документации» [стр. 124] для получения дополнительных советов о том, каким образом лучше искать различные источники документации. Команда dpkg -L пакет предоставляет список файлов, включенных в пакет; вы можете быстро определить имеющуюся документацию (а также файлы конфигурации, расположенные в /etc/). Также, команда dpkg -s пакет отображает метаданные пакета и показывает любые возможные рекомендуемые или предлагаемые пакеты; там вы можете найти документацию или, возможно, утилиту, которая облегчит настройку программного обеспечения.

Наконец, файлы конфигурации часто самодокументируются многими пояснительными комментариями, подробно описывающими различные возможные значения для каждого параметра конфигурации. В некоторых случаях вы можете запустить программное обеспечение путем раскоментирования одной строки в файле конфигурации. В других случаях примеры файлов конфигурации содержатся в каталоге /usr/share/doc /package/examptes/. Они могут служить основой для вашего собственного файла конфигурации.

Настройка SSH для удаленного входа

SSH позволяет вам удаленно входить в систему, передавать файлы или выполнять команды. Это стандартный инструмент (ssh) и служба (sshd) для удаленного подключения к машинам.

В то время как openssh-server пакет установлен по умолчанию, служба SSH отключена по умолчанию и, таким образом, не запускается при загрузке системы. Вы можете вручную запустить службу с помощью команды systemctt start ssh или выставить, чтобы служба запускалась при загрузке с помощью команды systemctt enable ssh.

Служба SSH имеет относительно нормальную конфигурацию по умолчанию, но, учитывая её мощные возможности и восприимчивый характер, будет очень хорошо узнать, что вы сможете сделать с её файлом конфигураций, /etc/ssh/sshd_ config. Все параметры задокументированы в sshd_config (5).

Конфигурация по умолчанию не разрешает вход для пользователя с помощью пароля, что означает, что вы сначала должны установить SSH ключ с помощью ssh-keygen. Вы можете расширить это право на всех пользователей, установив PasswordAuthentication на no, или вы можете снять это ограничение, изменив PermitRootLogin на yes (вместо стандартного запрета-пароля).

Служба SSH прослушивает по умолчанию на порту 22, но вы можете изменить это с помощью директивы Port. Чтобы применить новые настройки, вы должны запустить команду systemctt reload ssh.

Создание новых ключей SSH Host
Каждый SSH сервер имеет свои собственные криптографические ключи, которые называются “SSH host keys” и хранятся в /etc/ssh/ssh_host_*. Они должны быть приватными, если вам требуется конфиденциальность и не могут использоваться на нескольких машинах.
При установке вашей системы путем копирования полного образа диска (вместо использования debian- installer) образ может содержать предварительно сгенерированные SSH ключи хоста, которые вы должны заменить на вновь сгенерированные ключи. Возможно, образ также содержит и пароль root по умолчанию, который вы захотите сбросить одновременно. Вы можете сделать все это с помощью следующих команд:

Настройка PostgreSQL баз данных

PostgreSQL является сервером базы данных. Он редко бывает полезен сам по себе, но используется многими другими службами для хранения данных. Эти службы обычно получают доступ к серверу базы данных через сеть и требуют учетные данные для аутентификация, чтобы иметь возможность подключиться. Таким образом, для настройки этих служб требуется создание баз данных PostgreSQL и учетных записей пользователей с соответствующими правами в базе данных. Чтобы это сделать, нам нужно, чтобы служба была запущена, поэтому давайте начнем с команды systemctt start postgresqt.

Поддержка множества версий PostgreSQL
Пакет PostgreSQL позволяет совместно устанавливать несколько версий сервера базы данных. Также возможно обрабатывать несколько кластеров (кластер представляет собой набор баз данных, обслуживаемых одним и тем же постмастером). Чтобы достичь этого файлы конфигурации должны храниться в файле /etc/postgresql/version/cluster-name/. Для того чтобы кластеры запускались бок о бок, каждому новому кластеру присваивается следующий номер доступного порта (обычно 5433 для второго кластера). Файл postgresql.service представляет собой пустую оболочку, что упрощает работу со всеми кластерами, поскольку каждый кластер имеет свой собственный блок (postgresql @ version- cluster .service).

Тип подключения и аутентификация клиента

По умолчанию PostgreSQL прослушивает входящие соединения двумя способами: на TCP-порту 5432 интерфейса локального хоста и на файловом сокете /var/run/postgresql/.s.PGSQL.5432. Это может быть сконфигурировано в postgresql.conf с различными директивами: listen_addresses для адресов для прослушивания, port для TCP-порта и unix_socket_directories для определения директории, в которой будут созданы файловые сокеты.

В зависимости от того, каким образом они подключаются, клиенты проходят аутентификацию различными способами. Файл конфигурации pg_hba.conf определяет, кому разрешено подключаться к каждому сокету и как они аутентифицируются. По умолчанию соединения в файловом сокете используют учетную запись пользователя Unix в качестве имени пользователя PosgreSQL и предполагают, что дальнейшая проверка подлинности не требуется. В соединении TCP PostgreSQL требует от пользователя аутентификации с помощью логина и пароля (хотя это не Unix имя пользователя и пароль, а скорее учетные данные, регулируемые самой PostgreSQL itself). Пользователь postgres является особенным и обладает полными административными правами, которые распространяются на все базы данных. Мы будем использовать этот идентификатор для создания новых пользователей и новых баз данных.

Создание пользователей и баз данных

Команда createuser добавляет нового пользователя, а dropuser удаляет его. Аналогично, команда createdb добавляет новую базу данных, а dropdb удаляет ее. Каждая из этих команд имеет свои собственные страницы руководства, но мы обсудим некоторые из вариантов здесь. Каждая команда действует на кластере по умолчанию (работает на порту 5432), но вы можете указать — port=port для того, чтобы изменить пользователей и базы данных альтернативного кластера. Эти команды должны подключаться к серверу PostgreSQL, чтобы выполнять поставленные перед ними задачи должным образом, и также они должны быть аутентифицированы в качестве пользователя с достаточными полномочиями для выполнения указанной операции. Самый простой способ добиться этого - использовать учетную запись postgres Unix и подключиться к файловому сокету:

В этом примере опция –P просит createuser запросить пароль сразу же после создания нового пользователя king_phisher.

Рассматривая команду createdb, -O определяет пользователя, владеющего новой базой данных (которая, таким образом, имеет полные права на создание таблиц и предоставление разрешений и т. д.). Мы также хотим использовать строки Unicode, поэтому мы добавляем параметр -E UTF-8 для установки кодировки, что, в свою очередь, требует от нас использовать параметр -T для выбора другого шаблона базы данных.

Теперь мы можем проверить, что мы подключились к базе данных через сокет, прослушивающий localhost (-h localhost), в качестве пользователя king_phisher (-U king_phisher):

Как вы можете видеть, соединение было проведено успешно.

Управление кластерами PostgreSQL

Во-первых, стоит отметить, что понятие «кластер PostgreSQL» является особенным дополнением Debian и что вы не найдете ссылки на этот термин в официальной документации PostgreSQL. С точки зрения инструментов PostgreSQL такой кластер представляет собой всего лишь экземпляр сервера базы данных, работающего на определенном порту.

Тем не менее, пакет Debian postgresql-common предоставляет несколько инструментов для управления такими кластерами: pg_createctuster, pg_dropctuster, pg_cttctuster, pg_upgradecluster, pg_renamectuster и pg_tsctusters. Мы не будем описывать все эти инструменты здесь, но вы можете обратиться к их соответствующим страницам руководства для получения дополнительной информации.

Вы должны знать, что при установке новой версии PostgreSQL в вашей системе, она создаст новый кластер, который будет работать на следующем порту (обычно 5433), и вы будете продолжать использовать старую версию до тех пор, пока вы не перенесите свои базы данных из старого кластера на новый.

Вы можете получить список всех кластеров и их статус с помощью pg_tsctusters. Более важно то, что вы можете автоматизировать перенос вашего кластера в последнюю версию PostgreSQL с помощью команды pg_upgradecluster старая-версия имя-кластера (old-version cluster-name). Для того чтобы эта процедура увенчалась успехом, вы должны сначала удалить (пустой) кластер, который был создан для новой версии (с помощью команды pg_dropctuster новая-версия имя-кластера (new-version cluster-name)). Старый кластер не выбрасывается процессу, но он также не будет запущен автоматически. Вы можете сбросить его, как только убедитесь в том, что обновленный кластер работает должным образом.

Настройка Apache

Типичная установка Kali Linux включает в себя веб-сервер Apache, предоставляемый пакетом apache2. Будучи сетевой службой, он по умолчанию отключен. Вы можете запустить его вручную с помощью systemctt start apache2.

Поскольку все большее количество приложений распространяются как веб-приложения, очень важно иметь базовые знания об Apache для того, чтобы размещать эти приложения, будь то для локального использования или для их доступности по сети.

Apache является модульным сервером, и многие функции реализуются внешними модулями, которые загружаются основной программой во время его инициализации. Конфигурация по умолчанию включает только самые распространенные модули, но включение новых модулей легко выполняется с помощью запуска a2enmod модуля. Также вы можете использовать a2dismod модуль для отключения модуля. Эти программы на самом деле только создают (или удаляют) символьные ссылки в /etc/apache2/modsenabted/, указывая на фактические файлы (хранящиеся в /etc/apache2/mods-avaitabte/).

Существует много модулей, но два из них заслуживают первоначального рассмотрения: PHP и SSL. Веб-приложения, написанные на PHP, выполняются веб-сервером Apache с помощью выделенного модуля, предоставляемого пакетом libapache-mod-php, и его установка автоматически включает модуль.

Apache 2.4 включает в себя модуль SSL, который необходим для обеспечения безопасного HTTP (HTTPS). Сначала его нужно включить с помощью a2enmod ssl, затем в файлы конфигурации должны быть добавлены необходимые директивы. Пример конфигурации представлен в /etc/apache2/sites-available/defaultssl.conf.

Также смотри:

http://httpd.apache.Org/docs/2.4/mod/mod_ssl.html

Полный список стандартных Apache модулей может быть найден онлайн на

http://httpd.apache.org/docs/2.4/mod/index.html

Исходя из начальных настроек по умолчанию веб-сервер прослушивает порт 80 (как настроено в / etc / apache2 / ports.conf) и по умолчанию загружает страницы из каталога / var / www / html / (как указано в/etc/apache2/sites-enabled/000-default.conf).

Настройка виртуальных хостов

Виртуальный хост является дополнительной идентификацией для веб-сервера. Один и тот же процесс Apache может обслуживать несколько веб-сайтов (например, www.kali.org и www.offensivesecurity.com), поскольку HTTP-запросы включают в себя как имя запрашиваемого веб-сайта, так и локальную часть URL (эта функция называется name-based virtual hosts).

Конфигурация по умолчанию для Apache 2 включает виртуальные хосты на основе имени. Кроме того, виртуальный хост по умолчанию определяется в файле /etc/apache2/sites-enabled/000default.conf; этот виртуальный хост будет использоваться, если не найден хост, соответствующий запросу, отправленному клиентом.

Report Page