inetdの設定について

SWATのインストールがうまく出来ませんでした。インストール自体は、パッケージシステムを使用しスムーズに終了したのですが、ブラウザ上でポート901にアクセスしてもSWATが見えませんでした。この問題自体は、スーパーデーモンの再起動で解決したのですが、そのスーパーデーモンについて少し調べてみました。

SWATとは、Linuxを使用したファイルサーバ構築で使用されるSambaの設定ツールで、起動は、スーパーデーモン「openbsd-inetd」とアクセス制御「TCP Wrappers」を通じて行われます。SWATのほかには、telnetなども同様に起動されます。

スポンサーリンク




「openbsd-inetd」について

「openbsd-inetd」役目は、クライアントからあるポートにTCP接続要求があると、そのポートに設定されているプログラムを起動することです。SWATの場合だと、901ポートにSWATが設定されています。設定ファイルは、「/etc/inetd.conf」で次のようになっています。

# <service_name> <sock_type> <proto> <flags>     <user> <server_path>   <args>
swat             stream      tcp     nowait.400  root   /usr/sbin/tcpd  /usr/sbin/swat

設定内容は、次のようになっています。設定変更後は、「etc/init.d/openbsd-inetd restart」などのコマンドで再起動する必要があります。

サービス名
「/etc/services」ファイルに記述されているサービス名を設定します。
ソケットタイプ
設定できるソケットタイプは、多数あるのですが基本的に「stream」を設定します。
プロトコル
使用するプロトコルを設定します。一般的には、「tcp」か「upd」を設定します。設定できるプロトコルは、「/etc/protocols」ファイルを参照。
フラグ
waitか、nowaitを設定します。waitは、受け取った要求を処理しきるまで他の要求を受け付けません。nowaitは、受け取った要求に対して複数のサービスを起動します。また、nowaitのあとに「.400」などと数字を指定できますが、この数字は、60秒の間に起動できる最大値を指定します。明示的に指定しない場合は、40が設定されます。
ユーザ
サービスを起動するユーザを指定します。
サーバパス
起動するサービスの実行コマンドを指定します。ほとんどが、「/usr/sbin/tcpd」となり、「TCP Wrappers」経由の起動となります。
引数
起動するサービス実行コマンドに渡す引数を指定します。SWATの設定では、SWATの起動コマンドを設定します。

「TCP Wrappers」について

「TCP Wrappers」は、サービス起動の要求に対する、アクセス制御を行います。サービスごとにアクセスを許可するIPアドレスやホスト名をまたは、アクセスを拒否するIPアドレスやホスト名を設定できます。アクセス許可を設定するファイルは、「/etc/hosts.allow」アクセス拒否を設定するファイルは「/etc/hosts.deny」です。書式は、両ファイル共通で、「デーモン名:IPアドレス」または、「サービス名:ホスト名」となります。注意が必要な箇所は、「サービス名」で、これは、「openbsd-inetd」の設定ファイルである、「inetd.conf」に設定されている「/usr/sbin/tcpd」に渡す引数を設定する必要があります(設定項目の一番右側の値)。SWATの例では、「/usr/sbin/swat」と設定されているので「swat」と書く必要があります。

以下は、「hosts.deny」だけを使用する設定例です。swatをローカルネットワーク内でのみアクセス可能とする設定です。

# host.deny
swat : ALL EXCEPT 192.168.1.0/255.255.255.0

両方の設定ファイルを使用する場合は、次のようにします。設定ファイルは、「hosts.allow」「hosts.deny」順に読み込まれるので、通常は、「hosts.deny」にすべて拒否の設定をし、「hosts.allow」で許可の設定をします。

# hosts.allow
swat : 192.168.1.0/255.255.255.0
# hosts.deny
ALL : ALL
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする