Как уже говорилось в главе 5, большая часть информации в файле xinetd.conf представляет собой те же значения, что и хранимые в файле inetd.conf. Дополнительная функциональность xinetd аналогична функциональности пакета wrapper, xinetd читает файлы /etc/hosts.allow и /etc/ hosts.deny и реализует управление доступом на основе информации на основе этих файлов.

Кроме того, в xinetd существуют собственные механизмы управления доступом и регистрации обращений. Если в вашей системе применяется xinetd, имеет смысл создать файлы hosts.allow и hosts.deny, чтобы повысить защищенность служб, работающих с этими файлами, таких как portmapper, а также задействовать существующие в xinetd функции безопасности, поскольку они реализуют более совершенное управление доступом.

Регистрация обращений в xinetd реализуется параметрами log_on_success и log_on_failure. Используйте эти параметры для подстройки стандартного формата записей журнала, создаваемых для успешных и неудачных попыток обращения к службам. log_on_success и log_on_failure имеют следующие ключи:

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

HOST - Регистрирует адрес удаленного узла. Подобно USERID, HOST может регистрироваться как для успешных, так и для неудачных попыток.

PID - Регистрирует идентификатор серверного процесса, созданного для обработки соединения. Параметр PID применим только для log_on_success.

DURATION - Регистрирует длительность работы серверного процесса, обработавшего данное соединение. Параметр DURATION применим только для log_on_success.

EXIT - Регистрирует состояние сервера на момент завершения соединения. Параметр EXIT применим только для log_on_success.

ATTEMPT - Регистрирует неудавшиеся попытки соединения. Параметр ATTEMPT применим только для log_on_failure.

RECORD - Регистрирует информацию о соединении, полученную от удаленного сервера. Параметр RECORD применим только для log_on_failure.

Помимо регистрации обращений xinetd имеет три параметра для управления доступом. Используйте эти параметры для настройки xinetd на прием соеди- нений от определенных узлов в соответствии с файлом hosts.allow, блокиров- ку соединений от определенных узлов в соответствии с файлом hosts.deny, а также на прием соединений только в определенные интервалы времени. Вот эти три параметра:

only_from

Обозначает узлы, которым разрешено обращаться к службе. Узлы обозначаются при помощи:

  • Числовых адресов. Так, адрес 172.16.12.5 обозначает конкретный узел, а номер 129.6.0.0- все узлы, адреса которых начинаются с 129.6. Адрес 0.0.0.0 обозначает все адреса.
  • Наборов адресов. Например, 172.16.12.(3,6,8,23} обозначает четыре различных узла: 172.16.12.3,172.16.12.6,172.16.12.8 и 172.16.12.23.
  • Имен сетей. Имени сети должно соответствовать определение в файле /etc/networks.
  • Канонических имен узлов. Представленный удаленной системой IP- адрес должен отображаться в указанное имя узла.
  • Доменных имен. Имя узла, полученное обратным отображением, должно принадлежать указанному домену. Например, значение .wrotethebook.com требует, чтобы узел входил в домен wrotethebook.com. Обратите внимание, что доменные имена должны начинаться с точки.
  • IP-адресов в сочетании с адресными масками. Так, записи 172.16.12.128/25 соответствуют все адреса с 172.16.12.128 по 172.16.12.255.

no_access - Обозначает узлы, которым запрещен доступ к службе. Узлы обозначаются способами, описанными выше для атрибута only_f rom.

access_times - Определяет время суток, когда служба доступна, в формате час:мин - час:мин. Используется 24-часовая шкала времени. Часы пронумерованы от 0 до 23, а минуты - от 0 до 59.

В отсутствие атрибутов only_f rom и no_access разрешается доступ всем узлам. Если существуют оба атрибута, используется наиболее точное соответствие. Рассмотрим пример:

no_access = 172.16.12.250 
only_from = 172.16.12.0

Здесь команда only_from разрешает доступ к службе всем системам сети 172.16.12.0. Команда no_access запрещает доступ одной конкретной системе. Порядок следования команд no_access и only_f rom не имеет значения, результат всегда одинаков, поскольку приоритет имеет наиболее точное соответствие. Ниже приводится пример записи для РОРЗ из файла xinetd.conf:

#    default: on
#    описание: Служба РОРЗ позволяет удаленным пользователям обращаться к своей почте\
п посредством клиента РОРЗ, такого как Netscape Communicator, mutt \
#    или fetchmail.
service login
{

socket__type = stream
wait = no
user 
log_on_success 
log_on_failure 
only_from 
no_access = 172.16.12.231
server = /usr/sbin/ipop3d
}

В данном фрагменте команда only_f rom разрешает доступ всем системам сети 172.16.12.0, то есть локальной сети, и запрещает доступ всем остальным системам. Кроме того, существует одна система подсети 17.16.12.0 (узел 172.16.12.231), которая не является настолько доверенной, чтобы получить POP-доступ. Команда no_access запрещает доступ всем пользователям системы 172.16.12.231.

Помните, что wrapper и xinetd позволяют лишь управлять доступом к службам, но не способны ограничивать доступ к данным системы или данным, передаваемым по сети. С этой целью следует использовать шифрование.