アクセス制限
サービスごとのアクセス制御
TCP/IPのサービスへのアクセスを制限する方法としては、「tcp_wrappers」または「xined」に
よる制限が一般的です。
tcp_wrappers
tcp_wrappersは、telnetdやftpdなどのサービスをインターネットデーモン「inetd」から起動
する場合に「/usr/sbin/tcpd」経由で起動し、「/etc/hosts.allow」および「/etc/hosts.deny」
ファイルでアクセス制限を行う為の仕組です。
xined
Fedora Coreはデフォルトでindetdによるサービスの起動を行わず、代わりにxinetdを使用する
ようになっている。
xinedを使用したアクセス制限は、「/etc/xinetd.conf」ファイル、または「/etc/xinetd.d」
ディレクトリ以下のサービスごとのファイルに記述をする。
アプリケーションのアクセス制限
アプリケーションには独自のアクセス制限機能が実装されている。
例)
Apacheの場合
httpd.confによるアクセス制限の例
SetEnvIf User-Agent "DoCoMo" com_on <Directory /var/www/html/> 〜(中略)〜 Order deny,allow Deny from all Allow from example.jp Allow from 10.1.0.0/16 Allow from 192.168.1 Allow from env=com_on </Directory>
BINDのacl
BINDの場合、「named.conf」にアクセス制限を記述することが可能。
DNSサーバの場合、ゾーンデータを転送するスレーブサーバや問い合わせを許可するコンピュータ
やネットワークを限定しておくことが重要です。
acl "internal" { 192.168.1/24; ← 内部ネットワークのリスト 192.168.2/24; }; acl "aclzone" { 10.1.xxx.xxx; ← ゾーンデータを転送するスレーブサーバのリスト 210.xxx.xxx.xxx; }; options { directory "/var/named"; allow-query { "internal" }; ← ①の内部のネットワークからの問い合わせにのみ回答する。 }; 〜(中略)〜 zone "example.co.jp" { type master; file "example.co.jp.zone"; allow-transfer { "aclzone"; }; ← ゾーンデータを転送するサーバを②のサーバに制限。 };