最も一般的に使用されるフィルター テーブルに加えて、iptables は nat テーブルも使用することがあります。 NAT はネットワーク アドレス変換であり、送信元 IP アドレスまたは宛先 IP アドレスを変更するために使用されます。次に、iptables を介してバックエンド ホストに渡される単純なデータ パケットのテーブルとチェーン プロセスを見てみましょう。
1. NAT テーブルの PREROUTING チェーンを通過します
2. データ パケットがルーティングを通じてマシンに入るかどうかを判断します。そうでない場合は、次のステップを実行します
3 .フィルターの FORWARD チェーンの後
##4.NAT テーブルの POSTROUTING チェーンの後、最終的に送信されますNAT に関連する最初と最後のステップは PREROUTING チェーンですそして POSTROUTING チェーン。では、どのようなシナリオで DNAT の使用が必要になるのでしょうか?また、SNAT の一般的な用途は何でしょうか? DNAT の場合、最も一般的なのは、他のユーザーがアクセスできるように内部ネットワーク ポートを外部ネットワークにマップすることです。このようにして、外部ネットワークから内部ネットワークにデータを直接送信できないため、内部ネットワークのセキュリティが大幅に向上します。
シナリオ: イントラネット上に Web サイトがセットアップされたホスト A (192.168.1.111) があり、イントラネット内にはパブリック IP (39.100) を持つホスト B (192.168.1.2) もあります。 .92.12). それで何が? 外部ネットワーク上のユーザーが上記 A の Web サイトにアクセスできるようにします。 現時点では、ホスト B で DNAT 操作を実行して、宛先アドレスをパブリック ネットワーク ip39.100.92.12 から内部ネットワーク アドレス 192.168.1.111 に変更する必要があります。操作は次のとおりです。# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ > -j DNAT --to-destination 192.168.1.111:80IP の変更に加えて、PREROUTING チェーン内のポートも変更できます。たとえば、ポート 80 はポート 8080 にマップされますが、操作名は DNAT ではなく REDIRECT になります。
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \ > -j REDIRECT --to-ports 8080SNAT
SNAT の最も一般的なアプリケーションは、イントラネット マシンがプロキシ サーバー経由でインターネットにアクセスし、イントラネット ホストがプロキシ サーバー経由でインターネットにアクセスすることです。パブリック ネットワーク IP を持っている場合、内部ネットワーク ホスト データ パケットがプロキシ サーバーを通過した後、プロキシ サーバーはデータ パケットのソース アドレスをプロキシ サーバーのパブリック ネットワーク IP に変更する必要があります。
シナリオ: イントラネットにはホスト A (192.168.1.111) があり、イントラネットにはパブリック IP (39.100.92.12) を持つホスト B (192.168.1.2) があります。ホスト A を操作しますか? パブリック ネットワークに接続します。# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 \ > -j SNAT --to-source 39.100.92.12DNAT と SNAT の操作はそれほど複雑ではありません。主なことは、DNAT と SNAT の応用シナリオを理解することです。初めて学習するときは混乱しやすいです。皆さんがそれらの違いを理解できることを願っています。 関連する推奨事項: 「
Linux ビデオ チュートリアル
」以上がLinux でのソフトウェア ファイアウォール iptables - nat テーブル ルールの設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。