· Запретите с помощью /etc/hosts.deny доступ отовсюду ко всем службам, кроме telnet, доступ к которому должен быть разрешен в /etc/hosts.allow. Проверьте конфигурацию с помощью tcpdchk.
· Сделайте это же исключительно с помощью файла /etc/hosts.deny.
· Как запретить доступ к telnet с узлов, имена которых не могут быть полу- чены с помощью обратного преобразования IP-адреса в имя хоста посред- ством DNS?
· Проверьте командой tcpdmatch последовательность фильтрации.
Использование супердемона xinetd
В GNU/Linux широко используется современная альтернатива супердемону inetd — расширенный демон xinetd (extended Internet services daemon), об- ладающий лучшими качествами, чем inetd в плане возможностей конфигу- рирования и безопасности.
Как и inetd, супердемон xinetd позволяет запускать как многопоточные службы (multi-treated), создавая новый серверный процесс для каждого за- проса, так и однопоточные (single-treated), в которых один экземпляр сервер- ного процесса обслуживает все поступающие запросы (обычно только для протокола UDP).
Одним из преимуществ xinetd перед inetd является возможность запуска простыми пользователями непривилегированных служб. Супердемон xinetd не требует наличия имени сервиса в файле /etc/services.
Супердемон xinetd позволяет управлять доступом к любому сервису на ос- нове:
r адреса удаленного хоста;
r времени доступа;
r имени удаленного хоста;
r домена, к которому принадлежит удаленный хост.
Супердемон xinetd обеспечивает возможность реконфигурации в ходе вы- полнения. Некоторые характеристики xinetd приведены далее в списке.
r xinetd может останавливать процессы служб, удаленных из конфигу- рации;
r может останавливать процессы служб, не удовлетворяющих ограничениям;
r позволяет ограничивать количество экземпляров серверов для каждого сервиса;
r может ограничить количество экземпляров сервера, запущенных для об- служивания соединений с одного адреса;
r супердемон xinetd позволяет ограничить размер создаваемых журнальных файлов;
r способен налагать ограничения на исходящие соединения;
r позволяет останавливать сервисы, расходующие ресурсы свыше ограни- чения;
r предоставляет широкие возможности по настройке журналирования;
r не ограничивает возможное количество передаваемых демону аргументов;
r можно связывать сервисы с заданными сетевыми интерфейсами;
r запускаемые xinetd службы могут отсутствовать в /etc/services;
r супердемоны xinetd и inetd могут работать параллельно.
Супердемон xinetd настраивается с помощью конфигурационного файла
/etc/xinetd.conf. Конфигурационный файл /etc/inetd.conf может быть преобра- зован в файл /etc/xinetd.conf командой itox.
В общем виде формат записей конфигурации xinetd таков:
service <служба>
{
<атрибут> <оператор> <значение> <значение> ...
...
}
Оператор присваивания <оператор> может быть одним из:
D = — присвоение значения атрибуту;
D =- — удаление атрибута;
D =+ — добавление атрибута.
Файл /etc/xinetd.conf содержит настройки по умолчанию (пример 21.7).
Команда includedir заставляет супердемон прочитать все индивидуальные конфигурационные файлы служб в каталоге /etc/xinetd.d.
Настройка log_type определяет тип журналирования. Здесь журналирование будет осуществляться с помощью службы syslog, причем запись сообщений будет осуществляться в канал authpriv. При успешном запуске службы (log_on_success) в журнал будут записаны номер процесса запущенного для обслуживания соединения демона и имя хоста, инициировавшего соедине- ние. В случае отказа в запуске (log_on_failure) в журнал будет занесено лишь имя хоста.
Настройка instances ограничивает максимальное количество экземпляров демонов для каждой конкретной службы, а per_source — максимальное ко- личество демонов для обслуживания соединений из одного источника.
Ограничение only_from = 127.0.0.1 разрешает обращение к службам толь- ко с локального хоста.
Любые настройки из секции defaults файла /etc/xinetd.conf могут быть пере- определены в файлах индивидуальной настройки служб в каталоге
/etc/xinetd.d. Удобно задавать такие имена файлов индивидуальных настроек служб, чтобы они соответствовали именам служб в /etc/services, хотя это не является требованием.
Далее приведен пример 21.8 содержимого файла индивидуальной настройки для службы FTP, реализованной с помощью демона vsftpd (Very Secure FTP Daemon).
Настройка disable = yes запрещает супердемону xinetd прослушивать порт для запуска данной службы. Если необходимо, чтобы супердемон прослуши- вал данный порт и запускал демон этой службы, следует установить disable
= no и послать сигнал SIGHUP супердемону (пример 21.9).
Active Internet connections (servers and established)
Proto
Recv-Q
Send-Q Local
Address
Foreign
Address
State
tcp
0 *:ssh
*:*
LISTEN
tcp
0 *:ftp
*:*
LISTEN
Из примера видно, что после того, как в файле настроек /etc/xinetd.d/vsftpd установка disable = yes была заменена на disable = no и супердемону xinetd был передан сигнал SIGHUP, порт FTP стал доступен для соединений.
Сервер vsftpd будет в данном случае исполняться от имени суперпользова- теля, что диктует настройка user = root. Причем он будет выполняться с пониженным приоритетом, что определено настройкой nice = 10.
При запуске супердемоном процесса vsftpd последнему в качестве аргумен- та будет передано имя файла его конфигурации /etc/vsftpd/vsftpd.conf.
Настройки log_on_failure и log_on_success изменены по сравнению с на- стройками по умолчанию: к ним добавляется информация о соединении, где USERID — идентификатор пользователя, а DURATION — длительность сеанса.