アクセス制御をして、セキュリティを向上させます。

1. はじめに

アクセス制御をする方法として、ここではTCP Wrapperを使います。
TCP Wrapperは、inetdから各種サービスを起動する際にアクセス制御をします。
その際に、hosts.allowとhosts.denyの2つのファイルを参照します。

まずhosts.allowに書かれているサービスは許可します。
次にhosts.denyに書かれているサービスは拒否します。
どちらにも書かれていないサービスは許可します。

ここでは,次のようなアクセス制御をします。
・telnetは、指定したアドレス群からしか受け付けない
・telnet以外のサービスは普通に運用する

作業の前に、tcp_wrappers-7.6.tgzをインストールしておいて下さい。

2. 各種設定

-----/etc/inetd.conf----
telnet stream tcp nowait root /usr/local/libexec/tcpd telnetd
telnetのみを上記のように変更します。

-----/usr/local/etc/hosts.allow-----
telnetd: 111.111.111.0/255.255.255.0, \
222.222.222.0/255.255.255.0
左にIPアドレス、右にネットマスクを書きます。

-----/usr/local/etc/hosts.deny-----
ALL: ALL
書き方はhosts.allowと同様です。これは、全てのアドレスから全てのサービスへのアクセスを拒否する設定です。

3. 実行

設定を有効にするために、inetdにHUPシグナルを送ります。
% kill -HUP PID
PIDにはinetdのプロセスIDを代入して下さい。

tcpdchkを実行して、設定ファイルのエラーをチェックします。
% /usr/local/sbin/tcpdchk

エラーメッセージを修正したら、tcpdmatchで実際にアクセス制御出来ているかどうかチェックします。

% /usr/local/sbin/tcpdmatch telnetd 111.111.112.111
client: address 111.111.112.111
server: process telnetd
matched: /usr/local/etc/hosts.deny line 1
access: denied
この場合は、アクセスが拒否されました。

% /usr/local/sbin/tcpdmatch telnetd 111.111.111.111
client: address 111.111.111.111
server: process telnetd
access: granted
この場合はアクセスが許可されました。

上のように、自分が設定したように出来ていれば成功です。


元へ戻る