Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.8.4. 一般的な IPTables によるフィルタリング

リモート攻撃者による LAN へのアクセスを防ぐことは、ネットワークセキュリティの最も重要な側面です。厳しいファイアウォールルールで、悪意のあるリモートユーザーから LAN の完全性を保護する必要があります。
しかし、デフォルトポリシーですべての着信パケット、発信パケットおよび転送パケットをブロックするように設定すると、ファイアウォール/ゲートウェイと内部 LAN ユーザーが相互に通信したり、外部リソースと通信することができなくなります。
ユーザーがネットワーク関連の機能を実行し、ネットワークアプリケーションを使用できるようにするには、管理者は通信用に特定のポートを開く必要があります。
例えば、ファイアウォール上でポート80 へのアクセスを許可するには、以下のルールを追加します。
~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
これにより、標準的なポート 80 を使用して通信する Web サイトをブラウズできるようになります。セキュアな Web サイト (https://www.example.com/など) へのアクセスを許可するには、 以下のようにポート 443 へのアクセスも提供する必要があります。
~]# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

重要

iptables ルールセットを作成する際、その順序は重要になります。
例えば、ルールが 192.168.100.0/24 サブネットからのパケットをすべて破棄することを指定しており、192.168.100.13 (破棄したサブネットに含まれる) からのパケットを許可するルールがこれに続く場合、この 2 番目のルールは無視されます。
そのため、192.168.100.13 からのパケットを許可するルールを設定してから、サブネットの残りを破棄するルールを設定する必要があります。
既存のチェーンで特定の位置にルールを挿入するには、-I オプションを使用します。例えば、以下のようになります。
~]# iptables -I INPUT 1 -i lo -p all -j ACCEPT
このルールは、ローカルのループバックデバイスのトラフィックを許可するために INPUT チェーンの最初のルールとして挿入されます。
LAN へのリモートアクセスが必要になることも時にあるでしょう。SSH などのセキュアなサービスを使用して、LAN サービスへの暗号化されたリモート接続を確立することができます。
PPP ベースのリソース (モデムバンクまたは大量の ISP アカウントなど)がある管理者の場合、ダイアルアップアクセスを使用して、ファイアウォールのバリアを安全に回避することができます。モデムは直接接続されているので、これは一般的にはファイアウォール/ゲートウェイの後ろで行われます。
しかし、ブロードバンド接続を使用しているリモートユーザーの場合には、特殊な方法が適用できます。リモート SSH クライアントからの接続を受け入れるように iptables を設定できます。例えば、以下のルールを使用してリモート SSH のアクセスを許可できます。
~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
これらのルールは、インターネットまたはファイアウォール/ゲートウェイに直接接続されている単一 PC などの個別システムへの受信アクセスと送信アクセスを許可します。しかしこれらのルールは、ファイアウォール/ゲートウェイの後ろにあるノードがこれらのサービスにアクセスすることを許可しません。これらのサービスへの LAN アクセスを許可するには、iptables のフィルタリングルールと共に Network Address Translation (NAT) を使用することができます。