アクセス制限

サービスごとのアクセス制御

 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"; };  ← ゾーンデータを転送するサーバを②のサーバに制限。
};