19.2. 設定ファイル(/etc/hosts.allow、/etc/hosts.deny)の編集

クライアントからのアクセスを制御するために TCP Wrappers が参照する設定ファイルは、/etc/hosts.allow と /etc/hosts.deny です。TCP Wrappers はこれらの設定ファイルを以下の順番で解釈します。

  1. /etc/hosts.allow で許可されているホストであれば許可

  2. /etc/hosts.allow で許可されたホストを除き、/etc/hosts.deny で拒否されているホストであれば拒否

  3. 両方に記述がないホストは許可

19.2.1. Turbolinux 10 Server の初期設定

/etc/hosts.allow ファイルのコメントを無視すると初期設定では以下の 2 行のみが設定されています。設定ファイルの書式については、項19.2.2 もあわせて参照してください。

ALL : 127.0.0.1
sshd : ALL

また、/etc/hosts.deny ファイルの初期設定は以下の 1 行のみです。

ALL : ALL

Turbolinux 10 Server の初期設定では、/etc/hosts.allow に ALL : 127.0.0.1 を指定することで、ローカルホスト(127.0.0.1)からのアクセスをすべて許可しています。また、sshd : ALL を指定することで、すべてのホストに sshd へのアクセスを許可しています。しかし、それ以外のホストからのアクセスは /etc/hosts.deny に ALL : ALL を指定することで、すべて拒否する設定となっています。したがって、TCP Wrappers によるアクセス制御を行っているサービスを提供するには、/etc/hosts.allow の編集が必要になります。通常は、Deny all アプローチに基づき、/etc/hosts.deny を変更する必要はありません。

ティップ

SSH はセキュリティが強化されたプロトコルなので、sshd : ALL を指定しても通常、問題にはなりません。ただし、sshd 自体にセキュリティホールが発見された場合は、この限りではありませんので注意が必要です。

19.2.2. 設定ファイル(/etc/hosts.allow、/etc/hosts.deny)の書式

/etc/hosts.allow と /etc/hosts.deny の書式は同じです。以下の書式でアクセスを制御するサービス、およびホストを指定します。

daemon_list : host_list [ : command : command ...]

daemon_list

アクセスを制御するサービス名を指定します。スペースまたはカンマで区切ることで複数指定することができます。ここに指定する名前は、サービスのプログラム名であることに注意してください。例えば、TELNET のサービスを提供する場合は、in.telnetd と指定する必要があります。また、すべてのサービスを指定する場合は、ALL を指定します。

host_list

アクセスを制御するホスト名、または IP アドレスを指定します。スペースまたはカンマで区切ることで複数指定することができます。ドメイン名やネットワークアドレスも指定でき、またワイルドカードも使用できるので、同一ドメインや同一ネットワークを一括して指定することもできます。指定可能なワイルドカードを以下に示します。

表 19-1. ホストの指定

host_list の指定例解説
ALLすべてのホストにマッチする。
LOCALlocalhost のようにドット(.)を含まないホストにマッチする。
UNKNOWNアクセス元のユーザー名かホスト名のいずれかが不明な場合にマッチする。
KNOWNアクセス元のユーザー名とホスト名が両方ともわかっている場合にマッチする。
PARANOIDホスト名と IP アドレスが異なる場合にマッチする。
EXCEPT例外

注意

サービス portmap へのアクセスを制御する場合は特に注意が必要です。ホスト名での指定がサポートされていないので、IP アドレス、または ALL しか指定することができません。

command

オプションの設定項目です。daemon_list で呼び出されるサーバープログラムとは別に実行するコマンドをフルパスで指定することができます。

19.2.3. アクセス制御の設定例

ここでは、アクセス制御を行うホストを特定するための指定例を示します。

ALL : 192.168.0.7

192.168.0.7 の IP アドレスを持つホストにのみマッチします。

ALL : 192.168.0.0/255.255.255.240

192.168.0.0 にサブネットマスク 255.255.255.240 をかけた結果の 192.168.0.0 〜 192.168.0.15 のホストにマッチする。

sshd : 192.168.

IP アドレスの末尾にピリオドを指定しています。この例では、192.168.x.x の IP アドレスを持つホストにマッチします。

ALL : .example.com

ホスト名の先頭にピリオドを指定しています。この例では、example.com ドメインに属するすべてのホスト(host1.example.com や host2.example.com)にマッチします。

sshd : *.example.com

アスタリスクを使用しています。この例では、example.com ドメインに属するすべてのホスト(host1.example.com や host2.example.com)にマッチします。

ALL: .example.com EXCEPT crack.example.com

ワイルドカード の EXCEPT を使用した例です。この例では、crack.example.com を除く、すべての example.com ドメインに属するホストにマッチします。

ALL EXCEPT sshd : 192.168.0.

これも EXCEPT を使用した例です。/etc/hosts.allow に記述すれば、sshd を除く全てのサービスへのアクセスを IP アドレス 192.168.0.x を持つホストに許可します。