/etc/inetd.conf

Конфигурационный файл суперсервера (UNIX)

Синтаксис:

/etc/syslog.conf

Платформы:

ЗОСРВ «Нейтрино»

Описание:

Файл /etc/inetd.conf является конфигурационным файлом по умолчанию для суперсервера inetd. В поставляемой версии этого файла описываются все поддерживаемые в настоящее время серверы ЗОСРВ «Нейтрино» TCP/IP и некоторые нестандартные серверы pidin. Изменять этот файл следует только при необходимости добавления или удаления описаний серверов.

Поля в строке разделяются пробелами или символами табуляции. Комментарии обозначаются символом решетки (#) в начале строки.

Поля конфигурационного файла:

[адрес:]имя_службы | имя_службы/версия тип_сокета протокол[,sndbuf=размер][,rcvbuf=размер] wait|nowait[:макс] пользователь[:группа] серверная_программа аргументы_серверной_программы

Описание полей:

адрес
Адрес локального хоста, используемого inetd при прослушивании службы. (Не применяется для служб на базе RPC.) Одна звездочка (*) указывает, что прослушивание осуществляется по всем локальным адресам (INADDR_ANY).

Если строка содержит только спецификатор адреса и двоеточие (значение в поле имя_службы не указано), то этот спецификатор адреса применяется для всех последующих строк до появления строки с явным спецификатором адреса или до конца файла.
имя_службы
Имя службы из файла /etc/services или имя службы RPC из файла /etc/rpc.

Имена внутренних служб (см. аргументы_серверной_программы) должны быть представлены официальными именами служб (т.е. первой записью в каталоге /etc/services).
версия
Номер версии RPC. Может быть выражен одним числовым аргументом или диапазоном версий. Диапазон ограничен версиями с низким и высоким номерами (например, rusers/1-3).
тип_сокета
stream, dgram или raw в зависимости от типа сокета: потоковый, датаграммный или сокет прямого доступа.
протокол
Протокол, например, tcp или udp из файла /etc/protocols.

Для явного определения версии протокола IP используются протоколы tcp4 (для IPv4) или udp6 (для IPv6). Протоколы tcp или udp используются по умолчанию для текущей версии IP (в настоящее время IPv4).

Для служб на базе RPC к протоколу необходимо добавлять префикс rpc/ (например, rpc/udp).
rcvbuf=размер
sndbuf=размер
Размер буфера отправки или приёма для ожидающего сокета. Его целесообразно определить для протокола TCP, поскольку коэффициент масштабирования окна на основе размера буфера сокета по приёму объявляется при установлении соединения. Поэтому в ожидающем сокете необходимо установить размер буфера сокета для сервера. В некоторых ситуациях эффективность работы TCP можно повысить путем увеличения размера буфера сокета. Размеры буфера сокета определяются путем добавления их значений в спецификацию протокола следующим образом:

tcp,rcvbuf=16384 tcp,sndbuf=64k tcp,rcvbuf=64k,sndbuf=1m

Для определения или изменения значения используются опции k (килобайты) или m (мегабайты). Размеры буфера сокета можно указать для всех служб и протоколов за исключением служб мультиплексора служб порта TCP (TCPMUX).
wait|nowait
Указание inetd необходимости ожидания ответа серверной программы или продолжения обработки соединений в сокете. Для сокетов, не являющихся датаграммными, здесь должна быть определена запись nowait. Если сервер датаграмм подключается к удаленной стороне, сокет освобождается с целью получения новых сообщений в сокете посредством inetd, то сервер считается многопотоковым и необходимо использовать запись nowait.

Если для сервера датаграмм, после обработки всех входящих датаграмм в сокете истекает лимит времени, то он относится к однопотоковым и необходимо использовать запись wait. Сервис tftpd является исключением; это сервер датаграмм, который устанавливает псевдосоединения. Во избежание состояния гонки для него следует указать значение wait. Сервер считывает первый пакет, создает новый сокет, затем порождает копию процесса и завершает работу, после чего утилита inetd проверяет наличие новых запросов служб на порождение новых серверов.

Для потоковых серверов, как правило, устанавливается значение nowait, однако если один серверный процесс обрабатывает несколько соединений, то возможно использование значения wait. Основной сокет передается на сервер как fd 0. После этого сервер должен принять входящее соединение. В итоге лимит времени истекает, и сервер завершает работу при отсутствии активных соединений. Сервер inetd продолжает прослушивание соединений в основном сокете. Сервер inetd обычно является однопоточным, и для него установлено значение wait.
макс
Максимальное количество экземпляров сервера, порождаемых inetd в пределах интервала в 60 секунд. Если значение не указано, то используется значение макс по умолчанию – 40 экземпляров сервера.
пользователь
Имя пользователя, от имени которого запущен сервер. Это позволяет устанавливать серверам менее широкие полномочия, чем root.
группа
Разрешить серверам работать с идентификатором группы, отличным от указанного в файле паролей (первичным идентификатором). Если группа определена, а пользователь не является пользователем root, то устанавливаются дополнительные группы, связанные с этим пользователем.

Имя группы определяется путем добавления двоеточия или точки (допускается в целях обеспечения обратной совместимости) к имени пользователя, после чего следует имя группы.
серверная_программа Путевое имя программы, выполняемой inetd при обнаружении запроса в сокете inetd. Если требуемая служба предоставляется внутренне посредством inetd (например, см. echo на странице описания утилиты inetd), в этом поле будет содержаться слово internal.
аргументы_серверной_программы
Любые аргументы, передаваемые серверной программе. Имя программы передается в виде argv[0]. Если для поля серверная_программа установлен атрибут internal, его можно оставить незаполненным.

Настройка политики IPsec

В строке специального комментария можно указать параметры настройки политики IPsec для каждого сокета. Строка, начинающаяся со специального комментария "#@", указывает спецификатор политики, а содержимое этой строки обрабатывается как строка политики IPsec.

Допустимые параметры настройки политики для /etc/inetd.conf:

направление bypass направление entrust направление ipsec запрос ...


Note: Подробное описание аргументов приведено в разделе "Настройка политики" на странице протоколов IPsec.

Можно определить несколько строк политики IPsec; в качестве разделителей используются точки с запятой. В случае обнаружения конфликтующих строк на одной строке приоритет имеет последняя строка.

Если спецификатор политики определен с использованием "#@", он относится ко всем последующим строкам в конфигурационном файле /etc/inetd.conf. Сброс политики IPsec осуществляется с помощью вставки строки комментария без строки политики (т.е. строки комментария, содержащей только "#@").

При появлении в файле /etc/inetd.conf недействительной строки политики IPsec inetd посылает сообщения об ошибке в syslog() и завершает свою работу.

Поведение TCP/UDP при использовании протокола IPv6

Для обеспечения работы сервера одновременно для трафика IPv4 и IPv6 необходимо запустить два отдельных процесса одной серверной программы. Для этого в файл /etc/inetd.conf следует добавить две отдельные строки, одну для tcp4, вторую для tcp6.

Поведение inetd при использовании различных сочетаний параметров настройки сервера IPv4/v6:

Условия Трафик IPv4 Трафик IPv6
Только один сервер tcp4 Направляется на сервер Не принимается
Два сервера: tcp4 и tcp6 Направляется на сервер tcp4 Направляется на сервер tcp6
Только один сервер tcp6 В определенных конфигурациях возможна маршрутизация на сервер tcp6 (для получения дополнительной информации см. страницу протокола IPv6). Направляется на сервер tcp6.

Примеры:

Пример из рабочего файла /etc/inetd.conf:

ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -el

где:

ftp
Это имя_службы (см. /etc/services).
stream
Это тип_сокета.
tcp
Это протокол.
nowait
Запись wait/nowait.
root
Это пользователь.
/usr/sbin/ftpd
Это серверная_программа.
in.ftpd
Это argv[0] (аргументы_серверной_программы).
-el
Это argv[1] (аргументы_серверной_программы).

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», UNIX

Тематические ссылки:

inetd, setkey

IPsec




Предыдущий раздел: Конфигурационные файлы