7.3. 一般的な iptables フィルタリング

リモート攻撃者を常にLANに近づけないようにすることは、ネットワークセキュリティの 重要な部分となります。LANの健全性を厳重なファイアウォールルールで 悪意あるリモートユーザーから保護しなければなりません。ただし、 すべての着信パケット、発信パケット、フォワードパケットを ブロックするようセットしたデフォルトのポリシーでは、 ファイアウォール/ゲートウェイと内部LANユーザーが内部や外部と通信をすることは不可能です。 ユーザーがネットワーク関連の機能を実行してネットワークアプリケーションの使用を許可するには、 管理者が通信用に特定のポートを開く必要があります。

例えば、ファイアウォール上でポート80へのアクセスを許可するには、 次のルールをアペンドします。

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

これにより、ポート80経由で通信するウェブサイトからの普通のWeb閲覧ができるようになります。 セキュアなウェブサイト(https://www.example.com/など)へのアクセスを許可するには、 ポート443も開く必要があります。

iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

LANの外からLANへのリモートアクセスが必要になることがあります。 LANサービスへの暗号化リモート接続にSSHやCIPEなどのセキュアなサービスを使用できます。 PPPベースのリソースには(モデムバンクまたは一括ISPアカウント)、 モデム接続はダイレクト接続であるため一般的にはファイアウォール/ゲートウェイの内側に 配置しているので、安全にファイアウォールのバリアを回避するためには ダイアルアップアクセスが使用できます。 ただし、ブロードバンド接続のリモートユーザーの場合は特殊な方法で行ないます。 IPTablesを設定してリモートSSHとCIPEクライアントからの接続を受けるようにします。 例えば、リモートSSHアクセスを許可するには、以下のようなルールが使用できます。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -j ACCEPT

外部からのCIPE接続要求は以下のコマンドで受け取ることができます (xにはデバイス番号を入れます)。

iptables -A INPUT -p udp -i cipcbx -j ACCEPT
iptables -A OUTPUT -p udp -o cipcbx -j ACCEPT

CIPEはデータグラム(UDP)パケットを送信する独自の仮想デバイスを使用するため、 ルールは、ソースや目的ポートの代わりに、受信接続用のcipcbインターフェースを許可します(しかし、デバイスオプションの位置で 使用できる)。CIPEの使用方法については、第6章を参照してください。

ルールを定義する必要がある場合に他のサービスもあります。 IPTables及び各種オプションについての総合情報は、Red Hat Enterprise Linux リファレンスガイド を参照してください。

これらのルールはファイアウォール上で普通のサービスと セキュアなサービスへのアクセスを許可しますが、ファイアウォール内にあるノードが これらのサービスにアクセスするのは許可しません。これらのサービスへのLANアクセスを 許可するには、IPTables フィルタリングルールでNATを使用します。