19.5. 設定ファイル(/etc/xinetd.conf)の詳細

xinetd の設定ファイルは、/etc/xinetd.conf です。xinetd は起動時に、このファイルから設定情報を読み込みます。

Turbolinux 10 Server の /etc/xinetd.conf の内容を以下に示します。

 (1)|#
 (2)|# Simple configuration file for xinetd
 (3)|#
 (4)|# Some defaults, and include /etc/xinetd.d/
 (5)|
 (6)|defaults
 (7)|{
 (8)|        instances           = 60
 (9)|        log_type            = SYSLOG authpriv
(10)|        log_on_success      = HOST PID
(11)|        log_on_failure      = HOST
(12)|}
(13)|
(14)|# Don't remove following line. The directory "/etc/xinetd.d" includes
(15)|# configuration files controlled by /sbin/chkconfig .
(16)|
(17)|includedir /etc/xinetd.d

/etc/xinetd.conf では、すべてのサービスに共通する標準設定を記述します。各サービスの設定ファイルは、17 行目で指定された /etc/xinetd.d/ ディレクトリに格納されています。xinetd は、このディレクトリからサービスごとに用意された設定ファイルを読み込みます。

/etc/xinetd.conf の各行の意味は以下の通りです。

(6)〜(12)すべてのサービスに共通する標準設定を指定しています。

(8)起動するサービスの最大同時接続数を 60 に指定しています。

(9)システムログのファシリティを authpriv に指定しています。authpriv ファシリティのログは、/var/log/secure に書き込まれます。

(10)サービスの起動に成功した場合は、ホスト名(HOST)とプロセス ID(PID)をログに書き込みます。

(11)サービスの起動に失敗した場合は、ホスト名(HOST)をログに書き込みます。

(17)/etc/xinetd.d/ ディレクトリに存在する各サービスの設定ファイルを読み込みます。

既に解説したように、各サービスの設定ファイルは、/etc/xinetd.d/ ディレクトリに格納されています。設定ファイルは以下の書式で記述されています。

service service_name
 {
     attribute assign_op value value ...
 ...
 }

service 行では、サービス名(service_name)を指定し、次の行から始まる { } で囲まれた中に、このサービスの設定を記述します。設定は、属性(attribute)と属性値(value)がアサインオペレータ(assign_op)で関連付けられています。アサインオペレータには =、+=、-= があります。+= を指定すると、/etc/xinetd.conf に指定されている標準設定に加えて、指定した属性値が設定されます。逆に -= を指定すると、既存の属性値は削除されます。ほとんどの属性は = のみをサポートしますが +=、-= をサポートする属性もあります。詳細は、man ページの xinetd.conf(5) を参照してください。

例えば、telnet の設定が記述されている /etc/xinetd.d/telnet の内容は以下のようになっています。

# default: off
# description: Telnet server
# securlevel: 30
service telnet
{
    disable     = yes
    socket_type = stream
    protocol    = tcp
    wait        = no
    user        = root
    server      = /usr/sbin/in.telnetd
    server_args = -h
}

各属性の意味は以下の通りです。

service service_name

サービス名を指定します。

disable yes|no

サービスを有効にするかどうかを指定します。初期状態では yes になっていますのでサービスは利用できない状態です。サービスを有効にするには no を指定します。Turbolinux 10 Server では、Deny all アプローチに基づきすべての設定ファイルの disable 属性を yes にしています。したがって、システム管理者が意図的に no を設定しない限り、xinetd で管理しているサービスが提供されることはありません。

socket_type socket_type

stream や dgram などソケットタイプ(種類)を指定します。

protocol protocol

プロトコルを指定します。tcp、udp など /etc/protocols に登録されているものが指定できます。この属性を指定しない場合は /etc/services の内容を参照します。

wait yes|no

サービスの動作を指定します。マルチスレッドで動作させるには no を、シングルスレッドで動作させるには yes を指定します。

user user

root や nobody など、どのようなユーザー権限でサービスを起動するかを指定します。

server service

起動するサービスをフルパスで指定します。

server_args server_args

起動するサービスへ渡すパラメータを指定します。

ここで解説した属性は、xinetd がサービスを管理にするために必要な最も基本的な属性だけです。xinetd は、この他にも数多くの属性を指定することができます。以下では、その他の代表的な属性について解説します。

19.5.1. アクセス制御に関する属性

Turbolinux 10 Server の xinetd は、/etc/hosts.allow、/etc/hosts.deny によるアクセス制御が行われますが、必要に応じて xinetd 自身が実装しているアクセス制御機能を利用することも可能です。xinetd によるアクセス制御は以下の属性で指定します。

no_access remote_hosts

接続要求を拒否するホストを指定します。指定したホスト以外からの接続は受け入れてしまいますので、通常は only_from 属性によりアクセス制御を行います。スペースで区切り、複数指定することもできます。

only_from remote_hosts

接続要求を受け付けるホストを指定します。指定したホスト以外からの接続は拒否します。スペースで区切り複数指定することもできます。

only_from 属性の記述例を以下に示します。

(1)| only_from    =
(2)| only_from    = 192.168.0.1
(3)| only_from    = 192.168.0.1/24
(4)| only_from    = 192.168.0.1/24 localhost
(5)| only_from    = 192.168.0.{1,2}
(6)| only_from    = turbo.turbolinux.co.jp

(1)全てのホストからの要求を拒否します。

(2)192.168.0.1 のホストからの接続要求以外は拒否します。

(3)192.168.0.1/24 に属するホストからの接続要求以外は拒否します。

(4)192.168.0.1/24 に属するホストと localhost からの接続要求以外は拒否します。

(5)192.168.0.1 と 192.168.0.2 のホストからの接続要求以外は拒否します。

(6)turbo.turbolinux.co.jp からの接続要求以外は拒否します。

access_times time

サービスを利用可能にする時間帯を指定します。以下の例では、9 時〜17 時の間だけサービスが有効になります。時間はスペースで区切り、複数指定することもできます。

access_times = 9:00-17:00

19.5.2. その他の属性

xinetd の設定ファイルには、他にもログの出力に関する指定など、様々な属性を指定できます。以下では、指定可能なその他の属性をいくつか紹介します。詳細は、man ページの xinetd.conf(5) を参照してください。

log_on_success values

サービスの起動に成功した場合にログファイルに記録するフォーマットを指定します。PID(プロセスID)、HOST(ホスト名)、USERID(ユーザーID)、EXIT(終了)、DURATION(接続時間)などの属性値を指定できます。スペースで区切り、複数指定することもできます。

log_on_failure values

サービスの起動に失敗した場合にログファイルに記録するフォーマットを指定します。HOST(ホスト名)、USERID(ユーザーID)、RECORD(データレコード)などの属性値を指定できます。スペースで区切り、複数指定することもできます。

nice number

nice 値を指定できます。nice 値とはサービスの実行優先順位を指定するためのものです。-20 から 19 までの数値を指定できます。通常は 0 がデフォルトです。ここで指定する値が小さいほど優先順位は高くなります。

bind ipaddress

サービスを提供するネットワークインターフェースに設定されている IP アドレスを指定します。例えば、1 台のコンピュータに 2 枚のネットワークカードが搭載されている場合などに、指定した IP アドレスのネットワークインターフェースを経由したアクセスのみを許可することができます。

redirect ipaddress port

指定したサーバーのポートへサービスをリダイレクトします。例えば、redirect = 192.168.0.1 23 と指定すると 192.168.0.1 の IP アドレスを持つホストの 23 番ポートに処理をリダイレクトします。