次のページ
前のページ
目次へ
Tcp_wrappers HOWTO
Yoshio Shimamura <yoshios@green.ocn.ne.jp>
v1.0, 29 July 2000
この文書は、Tcp_wrappers の導入と設定に関する HOWTO です。
この文書の最新版は http://hp.vector.co.jp/authors/VA004572/index.html
から入手可能です。
- 1 概要
- 2 /etc/hosts.deny
- 3 /etc/hosts.allow
- 4 設定状況の確認
- 5 特定ホストに対する設定の確認
- 6 /etc/inetd.confの設定
- 7 inetdの再起動
インターネットデーモン(inetd)経由のサービスにアクセス制御を実装する機能を提供するもの。
tcpdはinetdから起動されると、/etc/hosts.allowと/etc/hosts.denyとに設定された情報をもとにサービスを実行するかどうか判断する。
ファイアーウォールは、ホスト群をまとめてアクセス制御するのに使われるが、tcp_wrappersは、ホスト単体のアクセス制御を行うものである。
デフォルトでは、何も設定されていないので、そのままインターネットに繋いではいけない。
ALL: ALL
とりあえず上記のように、/etc/hosts.denyで全ての接続要求を拒否してから、個別に/etc/hosts.allowで必要なものだけ許可する。
フォーマット
service-name: host-list(: command)
例えば、ホストgenesisにtelnetサービスを許可しセキュリティ担当者に接続元ホストと対象サービスの情報を送るには、次のように記述する。
in.telnetd: genesis: "mail -S tcpd secu <`echo request %d from %h`"
tcpdの設定状況は、tcpdchkコマンドで確認する。設定にエラーがある場合は、エラーメッセージが表示され、問題が無ければ、なにも表示されずに終了する。
# /usr/sbin/tcpdchk
チェック状況をすべて標準出力に表示したい場合は、次のようにオプションをつけて実行する。
# /usr/sbin/tcpdchk -v
特定ホストに対する設定状況は、tcpdmatchコマンドで確認する。
in.telnetdに対するホストfooのアクセス許可状況を確認
# /usr/sbin/tcpdmatch in.telnetd foo
インターネットスーパーサーバINETDの設定ファイル/etc/inetd.confでは、次のようにサービスの起動をtcpdでラッピングする。
例では、TELNET接続要求を受けて、TELNETDを起動する部分である。このラッピングを忘れると折角の導入が無駄になってしまう。
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
設定ファイルを書き換えたらその内容を反映させるため、次のように、PIDを取得し、インターネットスーパーサーバにハングアップシグナルを送る。
PIDは、実行時の環境によって異なるので、xxxで表している。
# ps ax | grep inetd
xxx inetd
# kill -HUP xxx
次のページ
前のページ
目次へ