11.3. Суперсервер xinetd
11.3.1. Установка суперсервера xinetd
Суперсервер xinetd
появился в дистрибутивах давно (например, в Red Hat начиная еще с 7 версии) и стал достойной заменой inetd, использовавшемуся до него. Суперсервер xinetd обычно устанавливается по умолчанию во время установки системы. Одним из преимуществ этого суперсервера является наличие встроенных механизмов зашиты, которые для inetd реализует отдельный демон tcpd. К тому же xinetd, в отличие от inetd, поддерживает IPv6. Даже если вы пока не планируете переходить на IPv6, установка xinetd будет очень полезной из-за расширенных функций суперсервера.В шестой версии протокола IP (IPv6, ранее именовавшегося Ipng —
Если в вашем дистрибутиве xinetd не устанавливается по умолчанию, то рекомендую пойти по пути наименьшего сопротивления и установить xinetd
из RPM-пакета. Можно также скачать последнюю версию xinetd по адресуhttp://www.synack.net/xinetd
и установить его из исходных кодов.Если вы собираете xinetd
из исходников, вы можете сконфигурировать его (./configure) с одним из следующих флагов:♦ --with-libwrap
: с использованием tcp wrappers. С этой опцией xinetd будет сперва проверять ваши файлы/etc/hosts.allow
и /etc/hosts.deny
и только после этого запустит свой механизм контроля доступа. Библиотека libwrap должна быть установлена у вас заранее;♦ --with-loadavg
: с этой опцией xinetd остановит сервис, когда нагрузка достигнет определенного уровня;♦ --with-inet6
: включает поддержку IPv6.Внимание! При включении IPv6 все IPv4-сокеты становятся IPv6-сокетами. Поэтому будьте готовы к тому, что вам понадобится перекомпилировать свое ядро с поддержкой IPv6. Если ваше ядро не поддерживает IPv6, выкачайте последнюю версию ядра по адресу http://www.kernel.org
11.3.2. Настройка суперсервера xinetd
Все настройки суперсервера xinetd сосредоточены в файле /etc/xinetd.conf
/etc/xinetd.d
и воспринимать их как дополнительные конфигурационные файлы.Все конфигурационные файлы — /etc/xinetd.conf
service <имя_службы>
{
<атрибут> <оператор_присваивания > <значение> ...
...
}
Имя_службы может иметь значение login, shell, telnet, ftp, pop3 и т.п.
Оператор присваивания может быть одним из следующих: «=», «+=», «-=». Большинство атрибутов может работать только с оператором «=». Назначение операторов таково:
♦ «=»: присвоить атрибуту значение;
♦ «+=»: добавить атрибуту еще одно значение;
♦ «-=»: удалить значение атрибута.
Атрибут может иметь несколько значений, указанных через пробел. Большинство атрибутов можно использовать в секции defaults
конфигурационного файла. Эта секция размещается в начале файла, и все заданные в ней атрибуты применяются ко всем серверам (сервисам), находящимся под контролем xinetd. Для каждого сервера (сервиса) можно индивидуально переопределить установки, заданные по умолчанию: если атрибут определен и в секции defaults, и в описании сервера (сервиса), то имеет силу значение, заданное в описании данного сервера (сервиса).Среди атрибутов xinetd
можно выделить следующие группы: