1.スーパーサーバ(xinetd)とは
複数のネットワークサービスをまとめて管理するサーバデーモンのこと。
telnet・ftp・fingerなどのサービスはそれぞれ独自の常駐プロセスを立ち上げて専用ポートへのアクセスを監視している。しかし、ほとんど使われないサービスも常駐するためリソースが無駄になる。これを解消するためのものがスーパーサーバ。複数のポートをまとめて監視し、特定のポートへのアクセスがあったときのみサービスを起動するデーモン。
xinetdとは、スーパーサーバの種類の一つ。現在はsystemdに機能集約されているため、レガシーになっている。※LPIC1のテスト範囲だから掲載するが実運用ではsystemdのソケットアクティベーション(systemd.socket)を使う方がいい。
2.使い方
(1)設定方法
xinetdの設定には「/etc/xinetd.conf」ファイルと「/etc/xinetd.d/」ディレクトリ下の各サービスファイルがある。
①/etc/xinetd.confファイル
このファイルではスーパーサーバの全体的な設定を行う。ファイル内の主な設定は以下の通り。
- log_type
→ログの出力方法を設定。 - log_on_failure
→xinetd経由の接続に失敗したり、接続拒否した場合にログに記録する内容の指定
「HOST」指定でリモートホストのIPアドレスをログ出力
「USERID」指定でリモートホストの認証ユーザー名をログ出力 - log_on_success
→xinetd経由の接続成功時のログ内容の指定
「HOST」指定でリモートホストのIPアドレスをログ出力
「PID」指定でリクエストを処理するサーバプロセスのPIDをログ出力
「DURATION」指定でセッション周期を出力
「EXIT」サービス終了のシグナル有無をログ出力 - cps
→1秒間に接続できる最大コネクション数と最大値になった場合にサービスを停止させる秒数を指定 - instances
→xinetdが一度に起動できる最大デーモン数 - includedier
→サービスごとの設定ファイルを格納するディレクトリを指定※デフォルトで「/etc/xinetd.d」が指定されている
②/etc/xinetd.dディレクトリ
このディレクトリに入っている各サービスの詳細な設定を行う。
- disable
→サービスの有無を指定
「no」で有効
「yes」で無効 - flags
→通信接続方法に関するFLAGを設定
「REUSE」指定でポート使用中でも再利用可とする
「IDONLY」指定で認証でユーザー名が存在する場合のみ接続可とする
「NORETRY」認証失敗時に同じサービスへの接続を不可とする - socket_type
→通信方式の指定
「stream」指定でTCP通信
「dgram」指定でUDP通信 - wait
→待ち時間の有無
「yes」でサービスが起動したら、そのサービスが終わるまで次の接続を受けない
「no」でサービス起動後に上限まで次の接続を受ける - user
→サービスの実行ユーザー - server
→サーバプログラムのパス - only_from
→サービスへのアクセスを許可するホスト - no_access
→サービスへのアクセスを拒否するホスト