Red Hat Training

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

2.8.5. FORWARD および NAT ルール

大半のリリースでは、それらが提供する組織に対して、公開されたルーティング可能な IP アドレスの数だけが提供されます。
このため、管理者は LAN 上のすべてのノードにパブリック IP アドレスを付与せずにインターネットサービスへのアクセスを共有する代替方法を見つける必要があります。プライベート IP アドレスの使用は、LAN 上のすべてのノードが内部ネットワークサービスおよび外部ネットワークサービスを適切にアクセスできるようにする最も一般的な方法です。
エッジルーター(ファイアウォールなど)はインターネットから受信送信を受信し、パケットを目的の LAN ノードにルーティングすることができます。同時に、ファイアウォール/ゲートウェイは、LAN ノードからリモートインターネットサービスに発信要求をルーティングすることもできます。
ネットワークトラフィックのこの転送は、特に 内部 IP アドレスを偽装し、LAN 上のノードとして動作させることができる最新のクラッキングツールの可用性で危険にさらされる可能性があります。
これを防ぐために、ネットワークリソースの異常な使用を防ぐために実装できるルーティングおよび転送ポリシーを iptables 提供します。
FORWARD チェーンを使用すると、管理者は LAN 内でパケットをルーティングできる場所を制御できます。たとえば、LAN 全体の転送を許可するには、(ファイアウォール/ゲートウェイに eth1 の内部 IP アドレスが割り当てられていることを想定)、以下のルールを使用します。
~]# iptables -A FORWARD -i eth1 -j ACCEPT
~]# iptables -A FORWARD -o eth1 -j ACCEPT
このルールにより、ファイアウォール/ゲートウェイの背後で内部ネットワークへのアクセスが可能になります。ゲートウェイは、1 つの LAN ノードから目的のノードにパケットをルーティングし、その eth1 デバイス経由ですべてのパケットを渡します。
注記
デフォルトでは、Red Hat Enterprise Linux カーネルの IPv4 ポリシーは、IP 転送のサポートを無効にします。これにより、Red Hat Enterprise Linux を実行するマシンが専用のエッジルーターとして機能しなくなります。IP 転送を有効にするには、root で以下のコマンドを使用します。
~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
この設定は現行セッションでのみ有効で、再起動またはネットワークサービスの再起動後も維持されません。IP 転送を永続的に設定するには、以下のように /etc/sysctl.conf ファイルを編集します。
以下の行を見つけます。
net.ipv4.ip_forward = 0
以下のように読み込むように編集します。
net.ipv4.ip_forward = 1
root ユーザーとして以下のコマンドを実行し、sysctl.conf ファイルへの変更を有効にします。
~]# sysctl -p /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
[output truncated]

2.8.5.1. POSTROUTING および IP マスカレード

ファイアウォールの内部 IP デバイスを介して転送されたパケットを受け入れると、LAN ノードが相互に通信できるようになりますが、インターネット上では外部と通信することができません。
プライベート IP アドレスを持つ LAN ノードが外部のパブリックネットワークと通信できるようにするには、IP マスカレード のファイアウォールを設定します。これは、LAN ノードからの要求を、ファイアウォールの外部デバイスの IP アドレス(この場合は eth0)でマスクします。
~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
このルールは NAT パケットマッチングテーブル(-t nat)を使用して、ファイアウォールの外部ネットワークデバイス(-A POSTROUTING)上の NAT()用のビルトイン POSTROUTING チェーンを指定し-o eth0ます。
POSTROUTING により、ファイアウォールの外部デバイスを残す際にパケットを変更できます。
-j MASQUERADE ターゲットは、ノードのプライベート IP アドレスをファイアウォール/ゲートウェイの外部 IP アドレスでマスクするように指定します。