この特集のトップページへ
この回のトップページへ

hosts.allow/hosts.denyの記述方法

 hosts.allow/hosts.deny,2つのファイルは,それぞれの目的が「許可するか」,「拒絶するか」といった違いだけだ。記述方法に違いはない。また,多くのファイルと同じく,「#」で始まる行はコメントと判断される。

サーバプログラムリスト: クライアントリスト [: シェルコマンド]

※サーバプログラムリスト
 inetd経由でtcpdが起動するサーバプログラムを指定する。上記のように「in.ftpd」や「in.telnetd」などとなり,複数を同時に指定することも可能だ。その場合にはスペース(空白文字)かカンマ(,)で区切り,「in.ftpd in.telnet」,「in.ftpd,in.telnetd」といった指定を行う。すべてのプログラムやIP(ドメイン)を指定する場合には「ALL」を使用する。

※クライアントリスト
 この項目には,ホスト名やIPアドレス,ドメイン名やIPアドレス+ネットマスクなどを利用して指定する。複数指定する場合には,スペースかカンマで区切ろう。


# IPアドレスで指定
127.0.0.1
# ネットワークで指定
192.168.1.0/255.255.255.0
# ネットワークで指定
192.168.1.
# ネットワークで指定(例外を設定)
192.168.1. EXCEPT 192.168.1.1
# ドメイン名で指定
.some.domain.com
# ドメイン名で指定(例外を設定)
.some.domain.com EXCEPT yourhost.some.domain.com
# ホスト名で指定
myhost.some.domain.com

 上記のような記述方法がある。「EXCEPT」キーワードを使用することで指定範囲の中から例外も記述できるため,柔軟性に富んだ指定が可能だろう。

※シェルコマンド
 通常実行するコマンドをそのまま記述することができる。そのコマンドに時間がかかるような場合には,末尾に「&」をつけることによってバックグラウンドで実行可能だ。

 また,シェルコマンドのフィールドでは「%」+「文字」を特定の文字列に展開することができる。アクセスしてきたホストのIPアドレスなどをシェルコマンドに渡すことが可能なのだ。

展開される文字列内容

%a (%A) クライアント(サーバ)のIPアドレス
%c ユーザ名,ホスト名,IPアドレスなどのクライアント情報
%d サーバプログラムのプロセス名 (argv[0])
%h (%H) クライアント(サーバ)のホスト名。無い場合にはIPアドレス
%n (%N) クライアント(サーバ)のホスト名
%p サーバプログラムのプロセスID
%s プログラム名,ホスト名,IPアドレスなどのサーバ情報
%u クライアントのユーザ名
%% '%'の文字

PREV 5/11 NEXT