Большинство дистрибутивных пакетов, в которых используется
inetd
, содержит файл
/etc/inetd.conf
, настроенный для поддержки наиболее распространенных серверов. Многие записи закомментированы. Для того чтобы сервер был активным, достаточно убрать символ комментариев из строки (очевидно, что это можно сделать только в том случае, если сервер установлен в системе). Для некоторых служб в составе
inetd.conf
присутствует несколько записей, например, в этот файл может быть включено несколько строк, описывающих различные FTP-серверы (ProFTPd и WU-FTPD). Вам, как администратору системы, необходимо проследить за тем, чтобы все такие записи, кроме одной, были закомментированы.
Совет
Инсталлировав
систему Linux, вам надо внимательно просмотреть содержимое файла
/etc/inetd.conf
(или конфигурационного файла
xinetd
, который будет рассматриваться ниже) и закомментировать записи для тех серверов, которые не нужны в системе. Многие администраторы включают символы комментариев в начало тех записей, назначение которых им не понятно. Такие действия вполне допустимы, потому что ни один сервер, указанный в
inetd.conf
, не является необходимым компонентом системы; лишь некоторые из них могут потребоваться для регистрации пользователей по сети. Отключение лишних серверов повышает безопасность системы, так как сужает поле деятельности злоумышленников, пытающихся получить доступ в вашу систему из Internet. Использовать подобный подход для служб, загружаемых с помощью сценариев SysV, нельзя, поскольку многие из них жизненно важны для нормальной работы системы Linux.
Использование TCP Wrappers
Как было сказано ранее, инструмент TCP Wrappers играет роль посредника между
inetd
и целевым сервером. Средства TCP Wrappers применяются для повышения безопасности системы; они позволяют задавать правила установления соединений, защищая тем самым сервер от нежелательного взаимодействия. Предположим, что вы хотите, чтобы доступ к серверу Telnet имели только пользователи, работающие в вашей локальной сети. Программу, обеспечивающую работу сервера Telnet, можно настроить так, чтобы она отвергала попытки обращения с узлов, для обслуживания которых сервер не предназначен. Однако не все серверы предоставляют такие возможности. Передача TCP Wrappers полномочий по управлению соединением повышает гибкость системы, не требуя при этом внесения изменений в программы.
Для управления работой TCP Wrappers используются два файла:
/etc/hosts.allow
и
/etc/hosts.deny
. Эти файлы имеют одинаковый формат, но выполняют противоположные действия. В файле
hosts.allow
описываются узлы сети, которым разрешено обращаться к данному компьютеру; для всех остальных узлов доступ запрещен. Файл
hosts.deny
, напротив, содержит описания узлов, доступ с которых запрещен; все остальные узлы могут устанавливать соединение с данным компьютером. Если в системе присутствуют оба файла, приоритет имеет файл
hosts.allow
. Благодаря этому вы имеете возможность задать ограничения в файле
hosts .deny
, а затем разрешить доступ для отдельных компьютеров. Если сведения о сервере не включены ни в один из файлов (сервер может быть описан либо непосредственно, либо с помощью групповой операции), TCP Wrappers разрешает доступ к нему для всех узлов сети.
На заметку
TCP Wrappers можно сравнить с локальным брандмауэром, работа которого будет рассматриваться в главе 25. При этом TCP Wrappers реализует дополнительную защиту, которая может оказаться полезной, если брандмауэр настроен неправильно, кроме того, этот инструмент предоставляет новые возможности, например, фильтрацию на основе имени группы NIS.
Подобно другим конфигурационным файлам, символ
#
в начале строки означает, что в данной строке содержатся комментарии. Запись в файле
hosts.allow
или
hosts.deny
имеет следующий формат:
список_демонов : список_клиентов
В
списке демонов указывается один или несколько серверов, к которым применяется данное правило. Если в списке указано несколько серверов, их имена разделяются запятыми или пробелами. Имена серверов должны совпадать с именами, содержащимися в файле
/etc/services
. Кроме имен серверов в этом поле можно также указывать ключевое слово
ALL
, определяющее групповую операцию. Оно означает, что правило применяется ко всем серверам, управляемым TCP Wrappers.
Внимание!
Не забывайте, что не все серверы запускаются с помощью TCP Wrappers. Поэтому групповая операция
ALL
может не включать все серверы, выполняющиеся в системе. Аналогично, указав сервер в списке демонов, вы не защитите его, если для управления им не применяются
inetd
и TCP Wrappers, либо если он не использует TCP Wrappers непосредственно.
Список клиентов определяет компьютеры, которым разрешен или запрещен доступ к серверу. Подобно списку доменов, в списке серверов может быть указан один узел либо несколько узлов. Идентификаторы узлов разделяются запятыми или пробелами. Описания узлов сети могут быть представлены в перечисленных ниже форматах.
• IP-адрес. В списке клиентов можно указать конкретный IP-адрес, например 10.102.201.23. Такое описание определяет только этот адрес.
• Диапазон IP-адресов. Задать диапазон IP-адресов можно несколькими способами. Проще всего сделать это, указав в составе адреса меньше четырех десятичных чисел; в этом случае адрес должен заканчиваться точкой. Например, значение 10.102.201. соответствует сети 10.102.201.0/24. Кроме того, можно использовать запись типа IP-адрес/маска. В файлах
hosts.allow
и
hosts.deny
также поддерживаются адреса IPv6. Они задаются в виде
[n:n:n:n:n:n:n:n]/длина
, где n — значения компонентов адреса, а длина — это число битов, используемых для представления диапазона.
• Имя узла. Узел можно описывать с помощью его доменного имени, например
badcracker.threeroomco.com
. Этим способом определяется только один узел. В этом случае при получении запроса система выполняет преобразование имен, а, следовательно, если сервер DNS работает некорректно, при идентификации компьютера могут быть допущены ошибки.
• Домен. Домен можно задавать так же, как вы задается доменное имя одного компьютера. Отличие состоит лишь в том, что в данном случае имя должно начинаться с точки. Если в файле указано имя .
threeroomco.com
, оно определяет все компьютеры, принадлежащие домену
threeroomco.com
.
• Имя группы NIS. Если последовательность символов начинается со знака
@
, оно интерпретируется как имя группы NIS (Network Information Services — сетевая информационная служба). Этот метод предполагает, что в сети функционирует сервер NIS.
В списке клиентов могут присутствовать ключевые слова, определяющие групповые операции. Назначение этих ключевых слов описано ниже.
•
ALL
. Идентифицирует все компьютеры.
•
LOCAL
. Определяет все локальные компьютеры на основании анализа имени узла. Если в имени отсутствует точка, соответствующий узел считается локальным.