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
} |
各属性の意味は以下の通りです。
サービス名を指定します。
サービスを有効にするかどうかを指定します。初期状態では yes になっていますのでサービスは利用できない状態です。サービスを有効にするには no を指定します。Turbolinux 10 Server では、Deny all アプローチに基づきすべての設定ファイルの disable 属性を yes にしています。したがって、システム管理者が意図的に no を設定しない限り、xinetd で管理しているサービスが提供されることはありません。
stream や dgram などソケットタイプ(種類)を指定します。
プロトコルを指定します。tcp、udp など /etc/protocols に登録されているものが指定できます。この属性を指定しない場合は /etc/services の内容を参照します。
サービスの動作を指定します。マルチスレッドで動作させるには no を、シングルスレッドで動作させるには yes を指定します。
root や nobody など、どのようなユーザー権限でサービスを起動するかを指定します。
起動するサービスをフルパスで指定します。
起動するサービスへ渡すパラメータを指定します。
ここで解説した属性は、xinetd がサービスを管理にするために必要な最も基本的な属性だけです。xinetd は、この他にも数多くの属性を指定することができます。以下では、その他の代表的な属性について解説します。
Turbolinux 10 Server の xinetd は、/etc/hosts.allow、/etc/hosts.deny によるアクセス制御が行われますが、必要に応じて xinetd 自身が実装しているアクセス制御機能を利用することも可能です。xinetd によるアクセス制御は以下の属性で指定します。
接続要求を拒否するホストを指定します。指定したホスト以外からの接続は受け入れてしまいますので、通常は only_from 属性によりアクセス制御を行います。スペースで区切り、複数指定することもできます。
接続要求を受け付けるホストを指定します。指定したホスト以外からの接続は拒否します。スペースで区切り複数指定することもできます。
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 からの接続要求以外は拒否します。
サービスを利用可能にする時間帯を指定します。以下の例では、9 時〜17 時の間だけサービスが有効になります。時間はスペースで区切り、複数指定することもできます。
access_times = 9:00-17:00 |
xinetd の設定ファイルには、他にもログの出力に関する指定など、様々な属性を指定できます。以下では、指定可能なその他の属性をいくつか紹介します。詳細は、man ページの xinetd.conf(5) を参照してください。
サービスの起動に成功した場合にログファイルに記録するフォーマットを指定します。PID(プロセスID)、HOST(ホスト名)、USERID(ユーザーID)、EXIT(終了)、DURATION(接続時間)などの属性値を指定できます。スペースで区切り、複数指定することもできます。
サービスの起動に失敗した場合にログファイルに記録するフォーマットを指定します。HOST(ホスト名)、USERID(ユーザーID)、RECORD(データレコード)などの属性値を指定できます。スペースで区切り、複数指定することもできます。
nice 値を指定できます。nice 値とはサービスの実行優先順位を指定するためのものです。-20 から 19 までの数値を指定できます。通常は 0 がデフォルトです。ここで指定する値が小さいほど優先順位は高くなります。
サービスを提供するネットワークインターフェースに設定されている IP アドレスを指定します。例えば、1 台のコンピュータに 2 枚のネットワークカードが搭載されている場合などに、指定した IP アドレスのネットワークインターフェースを経由したアクセスのみを許可することができます。
指定したサーバーのポートへサービスをリダイレクトします。例えば、redirect = 192.168.0.1 23 と指定すると 192.168.0.1 の IP アドレスを持つホストの 23 番ポートに処理をリダイレクトします。