Книга: Linux-сервер своими руками

8.1.5. Настройка xinetd

8.1.5. Настройка xinetd

Синтаксис файла xinetd.conf такой:

service < service_name>
{
 <атрибут> <оператор_присваивания> <значение> <значение> …
 <атрибут> <оператор_присваивания> <значение> <значение> …
 …
 <атрибут> <оператор_присваивания> <значение> <значение> …
}

Service_name – это имя сервиса (login, shell, telnet, ftp, pop3 и т.д). Оператор присваивания может быть одним из следующих: «=», «+=», «-=». Большинство атрибутов может работать только с оператором «=» (равно). Назначение операторов следующее:

«=» — присвоить значение атрибуту;

«+=» — добавить еще одно значение;

«-=» — удалить значение.

Атрибут может иметь несколько значений, указанных через пробел. Некоторые параметры очень похожи на параметры inetd. Список всех атрибутов приведен в табл. 8.2.

Атрибуты сервиса для сервера xinetd Таблица 8.2 

Атрибут Описание
Id Используется, если сервисы используют разные протоколы. Обычно совпадает с именем сервиса
Туре Может быть использована любая комбинация из следующих значений: RPC — если это сервис RPC (Remote Procedure Call). UNLISTED — если сервис не описан в файле /etc/rpc для rpc-сервисов или в /etc/services для не rpc. INTERNAL — если xinetd представляет этот сервис (для echo, time, daytime, chargen, и discard). Если RPC-сервисы у вас работают некорректно после установки xinetd, вы можете использовать для них старый inetd — inetd и его новая версия xinetd прекрасно уживаются вместе. В файле /etc/inetd.confоставьте только rpc-сервисы, а остальное закомментируйте, а в /etc/xinetd.conf — наоборот
Flags В качестве значения может быть использована любая комбинация из следующих значений: NODELAY — для tcp-сервиса будет установлен флаг сокета — TCP_NODELAY. Только для TCP-сервисов! DISABLE — отключить сервис. KEEPALIVE — установка флага сокета SO_KEEPALIVE. Только для TCP-сервисов! REUSE — установить флаг SO_REUSEADDR на сокет сервера. INTERCEPT — перехватывать пакеты или принимать соединения по порядку, проверяя, что они приходят из нужных мест. NORETRY — избегать повторных попыток в случае неудачи. IDONLY — соединение будет приниматься только от идентифицированных пользователей. На удаленной машине должен работать identification-сервер
disabled Может принимать 2 значения, «yes» и «no». Если указать «yes», сервис запускаться не будет
socket_type Тип сокета. Может принимать следующие значения: stream — сокет stream, обычно используется службами, работающими на основе протокола TCP dgram — сокет dgram, обычно используется службами, работающими на основе протокола UDP raw — сокет raw для сервисов, требующих прямого доступа к IP seqpacket — сокет seqpacket для сервисов, требующих надежную последовательную пересылку дейтаграмм
protocol Задает протокол, по которому будет работать сервер (top, udp, …)
wait Задает статус ожидания и может принимать два значения: yes и no, которые соответствуют значениям wait и nowait для сервера inetd (см. выше). Значение yes обычно устанавливается на сокетах dgram, а значение no на сокетах stream
user Задает пользователя, от имени которого будет запущен сервер. Пользователь должен быть определен в файле /etc/passwd. По умолчанию сервер запускается от имени пользователя root
server Указывает абсолютный путь к запускаемому серверу
server args Определяет аргументы, которые будут переданы серверу
log_on_failure Определяет, какая информация будет писаться в файл отчета (протокол), если сервис по каким-либо причинам не запустился: HOST — записывать адрес удаленного хоста. USERID — если возможно, записывать идентификатор удаленного пользователя (используется протокол идентификации RFC 1413). ATTEMPT — записывать факт неудачной попытки. RECORD — записывать информацию с удаленного хоста, в случае невозможности запуска сервера
log_on_success Определяет, какая информация будет писаться в файл отчета (протокол) в случае удачного запуска сервиса. Можно комбинировать любые из следующих значений: PID — записывать идентификатор запущенного серверного процесса. HOST — записывать адрес удаленного хоста. USERID — если возможно, идентификатор удаленного пользователя (используется протокол идентификации RFC 1413). EXIT — записывать, каким образом был произведен выход. DURATION — записывать продолжительность сессии
rpc_number Определяет номер сервиса RPC
rpc_version Определяет версию сервиса RPC
env Задает значение атрибута. Атрибут представляет собой список строк типа: «name=value». Эти переменные будут добавлены в окружение перед тем, как сервер будет запущен
passenv Это список переменных окружения из окружения xinetd, которые могут быть переданы серверу
port Определяет порт сервиса. Если порт указан в файле /etc/services, то значение данного параметра должно совпадать с ним
redirect Позволяет tcp-сервису делать перенаправление на другой хост. Значение задается в виде host:port
interface Устанавливает интерфейс, на котором будет работать сервис. Синтаксис: interface=IP-адрес
bind Это синоним параметра interface
banner Определяет имя файла, который будет показываться при соединении с сервисом
banner_success Определяет имя файла, который будет показываться при удачном соединении
banner_fail Определяет имя файла, который будет показываться при неудачном соединении
cps Атрибут имеет два аргумента. Первый устанавливает количество соединений в секунду. Если это число будет превышено, сервис будет временно недоступен. Второй — число секунд, после которых сервис снова будет доступен
max_load Определяет максимальную загрузку. При достижении максимума, сервер перестает принимать запросы на соединение. Значение параметра — число типа float
instances Устанавливает число серверов, которые могут быть активны одновременно для сервиса (по умолчанию лимита нет). Значением этого атрибута может быть число, либо — UNLIMITED
nice Устанавливает приоритет сервиса

Примечание. RPC (Remote Procedure Call) — вызов удаленной процедуры. Используется в серверной части приложения. Механизм RPC скрывает от программиста детали сетевых протоколов нижележащих уровней.

Вам необязательно указывать все эти атрибуты для каждого сервиса. Можно указать только необходимые:

1. socket_type

2. user

3. server

4. wait

Параметр protocol указывается только для RFC-сервисов, а также для всех сервисов, которые не описаны в /etc/services. Параметр rpc_version — только для rpc-сервисов. Параметр rpc_nuinber указывается только для RFC-сервисов, которые не указаны в файле /etc/rpc. Параметр port задается только для He-RPC-сервисов, которые не описаны в /etc/services. Следующие атрибуты поддерживают все операторы присваивания:

1. only_from

2. no_access

3. log_on_success

4. log_on_failure

5. passenv

6. env (не поддерживает оператор «-=»)

Эти атрибуты также могут принимать разные значения в разных секциях описания сервиса.

Файл конфигурации может содержать секцию default, в которой описаны атрибуты по умолчанию. Они будут одинаковы для всех сервисов. Возможные атрибуты по умолчанию:

1. log_type

2. log_on_success

3. log_on_failure

4. only_from

5. no_access

6. passenv

7. instances

8. disabled

9. enabled

Оглавление книги


Генерация: 1.474. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз