Если в вашем дистрибутиве 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
. Никаких ограничений на клиентские узлы включение IPv6 не накладывает: запросы IPv4 также будут обрабатываться.
11.3.2. Настройка суперсервера xinetd
Все настройки суперсервера xinetd сосредоточены в файле /etc/xinetd.conf
. В составе дистрибутивов Red Hat и Mandrake уже имеется такой готовый файл, но в нем содержится лишь минимальный набор установок. В него включена строка, которая указывает суперсерверу прочитать все файлы в каталоге /etc/xinetd.d
и воспринимать их как дополнительные конфигурационные файлы.
Все конфигурационные файлы — /etc/xinetd.conf
и включаемые в него директивой includedir— состоят из записей, имеющих следующий вид:
service <���имя_службы>
{
<���атрибут> <���оператор_присваивания > <���значение> ...
...
}
Имя_службы может иметь значение login, shell, telnet, ftp, pop3 и т.п.
Оператор присваивания может быть одним из следующих: «=», «+=», «-=». Большинство атрибутов может работать только с оператором «=». Назначение операторов таково:
♦ «=»: присвоить атрибуту значение;
♦ «+=»: добавить атрибуту еще одно значение;
♦ «-=»: удалить значение атрибута.
Атрибут может иметь несколько значений, указанных через пробел. Большинство атрибутов можно использовать в секции defaultsконфигурационного файла. Эта секция размещается в начале файла, и все заданные в ней атрибуты применяются ко всем серверам (сервисам), находящимся под контролем xinetd. Для каждого сервера (сервиса) можно индивидуально переопределить установки, заданные по умолчанию: если атрибут определен и в секции defaults, и в описании сервера (сервиса), то имеет силу значение, заданное в описании данного сервера (сервиса).
Среди атрибутов xinetdможно выделить следующие группы:
♦ Запрет вызова сервера (сервиса). Запретить вызов какого-либо сервера (сервиса), находящегося под управлением xinetd, можно с помощью значения атрибута disable=yes(в inetdдля этого пришлось бы закомментировать все строки описания сервиса). Того же эффекта можно достичь, если в секции defaultsфайла /etc/xinetd.conf
указать disables=список_серверов
. Список серверов (сервисов) состоит из их имен, разделенных пробелами.
♦ Перенаправление. С помощью атрибута redirectможно обращение к серверу (сервису), для которого указан этот атрибут, перенаправить на другой компьютер, Целевой компьютер указывается либо доменным именем, либо IP-адресом: redirect=целевой_компьютер. Этого же эффекта можно достичь и с помощью iptables, но, используя для этой цели xinetd, вы можете применять средства управления доступом суперсервера.
♦ Протоколирование. Определить, какая информация должна записываться в журнал в случае успешного запуска сервера (сервиса), а какая в случае неудачи, вы можете с помощью атрибутов log_on_successи log_on_failure. Подробное описание этих атрибутов приведено в таблице 11.2.
♦ Ограничение на установление соединений. Можно указать максимальное количество запросов от одного источника (сервиса), которое может обработать xinetdв единицу времени, а также максимальную загрузку xinetd, по достижении которой он будет отвергать все обращения, и приоритет обработки серверов (сервисов). Для этого предназначены атрибуты per_source, instances, cps, niceи max_load(таблица 11.2).
Читать дальше
Конец ознакомительного отрывка
Купить книгу