3.3.2. iptables マスカレード
iptables を使用してマスカレードを有効にすることもできます。
• ufwと同様に、最初のステップは、編集してIPv4パケット転送を有効にすることです。 /etc/sysctl.conf そして、次の行のコメントを外します。
net.ipv4.ip_forward = 1
IPv6 転送も有効にしたい場合は、次のコメントも解除します。
デフォルト転送=6
• 次に、sysctl コマンドを実行して、構成ファイル内の新しい設定を有効にします。
sudo sysctl -p
• IP マスカレードは、ネットワーク構成に応じて若干異なる場合がありますが、単一の iptables ルールで実現できるようになりました。
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j マスカレード
上記のコマンドは、プライベート アドレス空間が 192.168.0.0/16 であり、インターネットに接続されたデバイスが ppp0 であることを前提としています。構文は次のように分類されます。
• -t nat -- ルールはnatテーブルに入ります
• -A POSTROUTING -- ルールはPOSTROUTINGチェーンに追加されます(-A)。
• -s 192.168.0.0/16 -- ルールは指定されたアドレス空間から発信されたトラフィックに適用されます
• -o ppp0 -- ルールは指定されたネットワークデバイスを経由してルーティングされる予定のトラフィックに適用されます
• -j MASQUERADE -- このルールに一致するトラフィックは、上記のように操作される MASQUERADE ターゲットに「ジャンプ」 (-j) されます。
• また、フィルタテーブル(デフォルトテーブル、パケットフィルタリングのほとんどまたはすべてが実行される場所)の各チェーンには、デフォルトの 方針 ACCEPT ですが、ゲートウェイ デバイスに加えてファイアウォールを作成している場合は、ポリシーを DROP または REJECT に設定している可能性があります。その場合、上記のルールが機能するには、マスカレードされたトラフィックが FORWARD チェーンを通過できるようにする必要があります。
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state \
--state ESTABLISHED、RELATED -i ppp0 -j ACCEPT
上記のコマンドにより、ローカル ネットワークからインターネットへのすべての接続と、それらの接続に関連するすべてのトラフィックが、接続を開始したマシンに戻るようになります。
• 再起動時にマスカレードを有効にしたい場合は、編集します。 /etc/rc.local そして、上で使用したコマンドを追加します。たとえば、フィルタリングなしで最初のコマンドを追加します。
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j マスカレード