●スーパーサーバ
「inetd」や「xinetd」はスーパーサーバと呼ばれ、登録された利用頻度の低いサービスを監視し、リクエストが来た場合にだけ、該当のサービスを実行。 これにより利用頻度の低いサービス(例えばTELNETやFTPなど)をシステムにデーモンとして常駐させる必要が無くなり、メモリやCPU等のリソースの消費を抑えられる。
●inetd
設定ファイルは「etc/inetd.conf」
アクセス制御はTCPラッパー「/etc/hosts.allow」、「/etc/hosts.deny」
・設定ファイル「etc/inetd.conf」の各項目内容
1、サービス 2、ソケットタイプ 3、プロトコル 4、ウエイト 5、ユーザー名 6、プログラム(デーモン)のパス 7、プログラム(デーモン)名と引数
行の先頭に#を入れる事で、その行をコメントアウトし、「inetd」で該当のサービスを起動しないように出来る。
■「/etc/inetd.conf」ファイルの変更後はinetdを再起動する必要がある。
inetdの再起動には、killまたはkillallコマンドでinetdにHUP(SIGHUP)シグナルを送る、inetdの起動スクリプト(/etc/init.d/inetd)に引数restartを付けて実行するなどの方法がある。
・kill -HUP inetdのPID
・killall -HUP inetd
・/etc/init.d/inetd restart
●xinetd
「xinetd」は「inetd」より新しいスーパーサーバで、サービス毎に詳細な設定が可能。
xinetdの全体的な設定は「/etc/xinetd.conf」ファイルで行い、各サービスの個別設定は「/etc/xinetd.d/」ディレクトリ内の設定ファイルで行う。
各サービスの個別設定ファイルを配置するディレクトリは、「/etc/xinetd.conf」の「includedir」で指定。
xinetdの主な設定項目
・bindまたはinterface サービスを提供するインターフェイスのIPアドレス
・disable サービスを無効化するかの設定(yes:無効化,no:有効化)
・instances サーバプログラムの最大起動プロセス数
・log_type ログの記録先指定。syslogや記録するログファイルの絶対パスを指定
・no_access サービスへのアクセスを拒否する接続元
・only_from サービスへのアクセスを許可する接続元
・server サーバプログラムの絶対パス
・server_args サーバプログラム起動時に指定する引数
・socket_type ストリーム型、データグラム型といったサービスの接続タイプ
・user サーバプログラムを起動するユーザ
・wait サーバプログラムへの接続処理を待ち合わせるかの設定。サーバプログラムがマルチステッドであり1プロセスで同時に複数処置できる場合はno、シングルスレッドで接続処理を待ち合わせる必要がある場合はyes
●xinetdによるアクセス制御のルール判定
・only_fromもno_accessも設定されていない場合、サービスへのアクセスは全て許可
・only_fromだけが設定されている場合、指定されたアクセス元しかサービスへアクセス出来ない
・no_accessだけが設定されている場合、指定されたアクセス元はサービスへアクセス出来ない
・only_fromとno_accessが同時に指定された場合、より厳密にマッチするほうに従う