Установка суперсервера xinetd
Суперсервер xinetd пришел на замену устаревшему серверу inetd. Любой сервер, обрабатывающий запросы, обычно может работать в двух режимах:
а) сам "слушает" свой порт и обрабатывает входящие соединения (при этом он всегда будет находиться в оперативной памяти);
б) сам свой порт не "слушает", а предоставляет это дело суперсерверу xinetd, который слушает заданный набор портов и при поступлении запроса на какой-либо порт вызывает соответствующий сервер (например ftp) и передает ему поступивший запрос на обработку; после обработки запроса сервер прекращает работу и освобождает память. Как можно видеть, в этом случае экономится оперативная память, но снижается быстродействие, поэтому такой режим рекомендуется для обработки не интенсивных запросов, например ftp, samba, pop3 и пр. Также xinetd позволяет ограничить доступ и повысить безопасность.
1. Установим xinetd из портов (для FreeBSD):
# cd /usr/ports/security/xinetd/ # make # make install clean
2. После установки нам интересны следующие файлы (в папке /usr/local/etc):
xinetd.conf - здесь настраиваются параметры по умолчанию для остальных конфигурационных файлов xinetd.
xinetd.d - папка, в которой находятся конфигурационные файлы для каждого обслуживаемого сервера. Там уже будет лежать несколько примеров.
Например:
popd:
# default: off # description: The POP3 service allows remote users to access their mail # using an POP3 client such as Netscape Communicator, mutt, # or fetchmail. service pop3 { disable = no socket_type = stream wait = no user = root server = /usr/local/libexec/popd only_from = 0.0.0.0 }
где:
# default: off - означает, что общий конфигурационный файл (xinetd.conf) не использовать.
disable = no - означает, что работа данного сервера (popd) разрешена.
user= root - сервер popd будет запускаться с правами пользователя root.
server = /usr/local/libexec/popd - путь к серверу (popd).
only_from = 0.0.0.0 - откуда разрешен доступ (в данном случае - отовсюду).
Вот еще пример для vsftpd сервера:
# default: off # description: The vsftpd FTP server. service ftp { disable = no socket_type = stream protocol = tcp wait = no user = root nice = 10 rlimit_as = 16M server = /usr/local/libexec/vsftpd # server_args = only_from = 0.0.0.0 }
Подробнее см. man xinetd
3. Запустить суперсервер можно командой:
# /usr/local/etc/rc.d/xinetd.sh start
Теперь xinetd будет слушать порты (например 110, 21) и при поступлении на них запросов будет их передавать на обработку соответствующим серверам (например popd, vsftp), если доступ будет разрешен для посылающих запросы хостов.
Оставьте свой комментарий: