Linux豆知識 182

「/etc/hosts.allow」ファイル、「/etc/hosts.deny」ファイル

このエントリーをはてなブックマークに追加
今回は、「/etc/hosts.allow」ファイル、「/etc/hosts.deny」ファイルについて見ていきましょう。

/etc/hosts.allow、/etc/hosts.denyは、自ホスト(つまり、自分のコンピュータ)へのアクセスを制御するためのファイルです。これらのファイルは「TCPWrapper」によって参照され、アクセス制御が実現します。基本的にはスーパーデーモン(xinetd)経由で起動されるデーモンへのアクセス制御を行いますが、「sshd」などスーパーデーモンを経由しないものでもアクセス制御を行えるものもあります。libwrapライブラリがリンクされていればTCPWrapperでのアクセス制御が行えます。

「/etc/hosts.allow」ファイルにはアクセスを許可するサービスとホストを、「/etc/hosts.deny」ファイルにはアクセスを拒否するサービスとホストを記述します。

記法は次の通りです。

--
デーモン名: IPアドレスまたはホスト名
--

例を見てみましょう。

○/etc/hosts.allowファイル設定例
--
in.telnetd: 192.168.0.
in.ftpd: 192.168.0.  host.example.com
sshd: 192.168.0.  host.example.com
--

○/etc/hosts.denyファイル設定例
--
ALL: ALL
--

(「#」で始まる行はコメントで、無視されます)

上の例でIPアドレスが「192.168.0.」となっていますが、これは書き間違いではなく、IPアドレスが「192.168.0.」で始まるホストすべてが該当するということです。「ALL」は全てのデーモン、全てのIPアドレスを意味します。

この設定は、以下のように働きます。

1. /etc/hosts.allow に記述されたホストからのアクセスが許可される
2. 1.に該当しなかった場合、/etc/hosts.denyに記述されたホストからのアクセスが拒否される
3. 1.にも2.にも該当しなかった場合、アクセスはすべて許可される

つまり、上のように記述すると、/etc/hosts.allowに記述されたホストからのサービスへのアクセスは許可され、それ以外はすべて拒否されるということになります。

上の設定例のように、「基本的にアクセスを拒否し、必要なものだけを許可する」という設定は、セキュリティを考える時に基本となる考え方です。ただし、正しく設定しないと必要なアクセスも拒否されてしまいますので、正しい設定を心がけてください。間違えて/etc/hosts.allowに「ALL:ALL」と記述して、すべてアクセスできる、というようなことのないようにしましょう。

ページトップへ