6) TCP Wrapperの利用(xinetdによるアクセス制御)

第6回目は、TCPを使った通信の利用ホストを限定しアクセス制御を行うTCP Wrapperの利用(xinetdによるアクセス制御)についてです。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供

TCP Wrapperの利用(xinetdによるアクセス制御)

 サービスの利用ホストを制御する方法は、「TCP Wrapper」と「xinetd」の2つがあります。
「TCP Wrapper」の制御の後に「xinetd」による制御が行われます。

TCP Wrapperによるアクセス制御

 TCP Wrapperは、TCPを利用した通信を制御することができ、inetdから起動されるプログラムに対して、どこからサービスが要求されたか(接続元のホスト名やIPアドレスで判断する)を調べ、ログを記録すると共にアクセス制御を行います。

TCP Wrapperの設定

 アクセス制御は、一般的に「ホストコントロールアクセスファイル」と呼ばれる「/etc/hosts.allow」と「/etc/hosts.deny」の2つの設定ファイルで行います。

 「アクセス許可」をする場合は/etc/hosts.allow、「アクセス拒否」をする場合は/etc/hosts.denyに、それぞれにホスト名かIPアドレスを記述します。

 アクセス制御の適用順位は「アクセス許可」が優先されます。そのため、通常はアクセス拒否ファイルに全アクセス拒否を設定し、アクセスを許可するホストをアクセス許可ファイルに設定をします。

設定ファイルの記述例
・/etc/hosts.deny
# vi /etc/hosts.deny

ALL : ALL → 全サービスに対しての全アクセスを拒否する。


・/etc/hosts.allow
# vi /etc/hosts.allow

sshd : username@192.168.0.1
sendmail : 127.0.0.1
ipop3d : 192.168.
xinetdによるアクセス制御

 xinetdは、デーモン制御機能とアクセス制御機能の両方を備えおり、「TCP Wrapper」を利用しなくても単体での制御が可能ですが、併用することも可能です。

xinetdの設定

 xinetd では、ドメイン名や IP アドレスでのアクセス制御やアクセス時間の制限、接続回数の制限などを設定する事が出来ます。

 設定ファイルは、全サービスのデフォルト設定が記述されている「/etc/xinetd.conf 」と、各サービスの設定ファイルが記述されている「/etc/xinetd.d/サービス名のファイル」があります。

設定ファイルの記述例
・/etc/xinetd.conf
# vi /etc/xinetd.conf

#defaults
{
instance = 60 # 起動できるデーモンの最大数
log_type = SYSLOG authpriv # ログの出力方法の指定
log_on_success = HOST PID # 接続成功時にログに出力する情報 
log_on_failure = HOST RECORD # 接続失敗時に出力する情報
}
includedir /etc/xinetd.d # 設定ファイルの場所を定義


各サービスの設定
・/etc/xinetd.d/サービス名(例: /etc/xinetd.d/sshd)
# vi /etc/xinetd.d/sshd

#service ssh
{
        disable         = no #サービスを無効化(yes、no)
        socket_type     = stream #ソケットタイプ(stream(TCP)、dgram(UDP)、raw等)
        wait            = no #単一のスレッドとするかどうか
        user            = root #起動ユーザー
        server          = /usr/sbin/sshd #サービスの実行プログラム
        server_args     = -i #サービスの実行プログラムに渡す引数
        log_on_success  += DURATION USERID #接続成功時(接続時間、ユーザIDー記述)
        log_on_failure  += USERID #接続失敗時(ユーザーID記述)
        nice            = 10 #ジョブの優先順位
}


*アトリビュートを指定する時に使用する、operator(「=」、「+=」、「-=」)は、以下の意味を表しています。

= 通常使用。
+= デフォルトの設定に追加する場合に使用。
-= デフォルトの設定から削除する場合に使用。

設定が完了したら、sshdが単体で動作中の場合は停止し、xinetdを設定反映のため再起動します。
# /etc/rc.d/init.d/sshd stop

# /etc/rc.d/init.d/xinetd restart

次回予告

 次回は、サーバーにアクセスできるパケットを制限する「iptablesによるフィルタリング」
についてです。

関連キーワード
Linux,システム運用,ポート番号,TCP Wrapper,xinetd,アクセス制御

コメントをお待ちしています

お名前:

メールアドレス:

コメント:

このエントリーのトラックバックURL

http://it.jfe-tec.jp/mt/mt-tb.cgi/31