RenojiStock IT Design 旅メモ DIY Diary AboutUs
ITメモ
CentOS / セントオーエス







「hosts」ファイルでアクセス制限をする方法


「hosts」ファイルの種類

/etc/hosts.allowアクセスを許可するドメイン・IPを記述するファイル
/etc/hosts.denyアクセスを拒否するドメイン・IPを記述するファイル
・変更後は、再起動などをしなくてもすぐに反映される。



「hosts」ファイルとは

「hosts」ファイルとは、クライアントからのアクセスを制御するために TCP Wrappers が参照する設定ファイルのことをいう。
TCP Wrappers には、「hosts」ファイルの認識ルールがあり、
その認識ルールに沿って、「hosts」ファイルを記述する必要がある。

TCP Wrappers の「hosts」ファイル認識ルール
1. 「/etc/hosts.allow」で許可されているクライアントは許可
2. 「/etc/hosts.allow」で許可されたクライアントを除く、「/etc/hosts.deny」で拒否されているクライアントを拒否。
3. 両方に記述がないクライアントは許可。



「hosts」ファイルの書式


書式
daemon_list : host_list [ : command : command ...]

daemon_list アクセスを制御するサービス名を指定。
スペースまたはカンマで区切ることで複数指定することが可能。
ここに指定する名前は、サービスのプログラム名で、「SSH」であれば「sshd」というサービス名。
すべてのサービスを指定する場合は、「ALL」を指定する。
host_list アクセスを制御するホスト名、または IP アドレスを指定。
スペースまたはカンマで区切ることで複数指定することが可能。
「ドメイン名」や「ネットワークアドレス」も指定でき、「ワイルドカード」も使用できる。
同一ドメインや同一ネットワークを一括して指定することも可能。
下記のようなホストリストでの指定も可能。

host_list の指定例解説
ALLすべてのホストにマッチ。
LOCAL「localhost」ドット(.)を含まないホストにマッチ。
UNKNOWNアクセス元の「ユーザー名」「ホスト名」のいずれかが不明な場合にマッチ。
KNOWNアクセス元の「ユーザー名」「ホスト名」が両方ともわかっている場合にマッチ。
PARANOID「ホスト名」と「IP アドレス」が異なる場合にマッチ。
EXCEPT例外
command オプションの設定項目。
「daemon_list」のサーバープログラムに加えて実行したいコマンドをフルパスで指定することができる。



「/etc/hosts.allow」の書式
ALL : 127.0.0.1, xx.com, 192.168.0.1
sshd : 192.168.11.

「/etc/hosts.deny」の書式
ALL : ALL

複数のドメイン・IPを指定する場合は、「,」で区切る。
ドメイン・IPの一部を記述すると、その一部を含むドメイン・IPを全て指定したことになる。


ALL : 192.168.0.7 IP アドレス「192.168.0.7」のクライアントにのみ適合する。
ALL : 192.168.0.0/255.255.255.240 サブネットマスク「255.255.255.240」のIPアドレス「192.168.0.0」、「192.168.0.0 ~ 192.168.0.15」のクライアントに適合する。
sshd : 192.168. IP アドレスの末尾にピリオドを指定すると、「192.168.x.x」の IP アドレスを持つすべてのクライアントに適合する。
ALL : .example.com ホスト名の先頭にピリオドを指定。
この記述は、「example.com」ドメインを含む全てのクライアント(sample1.example.com や sample2.example.com)に適合する。
sshd : *.example.com アスタリスクを使用すると、「example.com」ドメインに属するすべてのホスト(sample1.example.com や sample2.example.com)に適合する。
ALL: .example.com EXCEPT crack.example.com 「EXCEPT」 を使用した例。
この場合、「crack.example.com」を除く、すべての example.com ドメインに適合する。
ALL EXCEPT sshd : 192.168.0. 「EXCEPT」を使用した例。
sshd を除く全てのサービスへのアクセスに対する指定。