スーパーサーバ・XINETD

スーパーサーバの設定・管理

スーパーサーバとは。ネットワークを通じサービス提供しているサーバは、デーモンと呼ばれる常駐プログラムで、デーモンはメモリ上に常時待機していて、クライアントからの要求を監視します。使用していない時も、メモリなどのリソースを消費しています。常駐するデーモンが多くなると、待機中のデーモンが消費するシステムリソースもそれだけ増加します。

スーパーサーバはサーバプログラムを管理し、この問題を解決します。「inetd」「xinetd」などのスーパーサーバは、他のサーバプログラムに代わりサービス要求を監視し、接続が確立した時点で本来のサーバプログラムに引き渡します。

必要に応じサーバプログラムを個々に起動することで、システムリソースを効率的に使えるメリットがあります。TCP Wrapperと組み合わせることで、アクセス制御の管理も行えます。

デメリットは応答が遅れることです。クライアントからのサービス要求に即応答しなければならないサーバは、スーパーサーバ経由でなくサーバプログラム自身でサービス要求を監視させる方法がベストです、この方法を「スタンドアローン」といいます。Webサーバ、メールサーバがスタンドアローンに該当します。

FTPサーバ、Telnetサーバなど、接続頻度が少ないサーバはスーパーサーバ経由で接続するのに適しています。

スーパーサーバの種類

「inetd」と「xinetd」があります。それぞれ設定方法は異なります。多くのディストリビューションでは「xinetd」が採用されています。

xinetd

xinetdの設定について。全体の設定を行う「/etc/xinetd.conf」ファイルと、「xinetd.d」ディレクトリ(通常は/etc/xinetd.d)以下に配置されたサービス毎の設定ファイルで構成されます。

「/etc/xinetd.conf」ファイルで使われる主なパラメータは次の通りです。

パラメータ 概要
instances 各サービスの最大デーモン数
log_type ログの出力方法
log_on_success 接続を許可した時にログに記録する内容
log_on_failure 接続を拒否した時にログに記録する内容
cps 1秒間に接続できる最大コネクション数と、限度に達した場合にサービスを休止させる秒数
includedir サービスごとの設定ファイルを収めるディレクトリ

/etc/xinetd.confファイルの設定例

defaults
{
    instances       =   60
    log_type        =   SYSLOG authpriv(ログのファシリティを指定)
    log_on_success  =   HOST PID
    log_on_failure  =   HOST
    cps             =   25 30
}

includedir /etc/xinetd.d(設定ファイルのディレクトリを指定)

前の記事

シングルユーザーモード

次の記事

スケルトンディレクトリ