ホームネットワークにヘアピンを設定しようとしています。記事そして前の質問。私のネットワークは次のとおりです。ホストはB
いくつかのサービスを提供します。 SSHポートを選択します22
。
ヘアピンがある理由は一般的です。インターネットDNSにヘアピンを定義し、ポート()のパブリックIPをssh.example.com
指します。ポートは()を介してホストにリダイレクトされます。200.200.200.200
2223
B
192.168.10.2:22
iptables -t nat -A PREROUTING -i nicWan -p tcp --dport 2223 -j DNAT --to-destination 192.168.10.2:22
以下で192.168.10.2:22
ホストに連絡したいと思います。A
ssh 200.200.200.200 -p 2223
iptables
私は1994年からLinuxマシンを管理してきましたが、Linuxマシンを使用しているので、詳しく見たことはありません。shorewall
そして簡単firehol
。
私の最初の質問は、ヘアピンが「LANの」トラフィック全体に適用されるのか、宛先ポートごとに1つのルールが必要かを理解することでした(私が言及した参照は他の参照とは異なるため、前者を好む)。
主な問題は、iptables
コンテキスト(チェーン)で設定する必要があるものを理解していないためです。仕事の理由を理解していますが(最初の参照でよく説明されています)、どこに入れるべきかわかりません。
iptables
具体的には、パケットをNATする言語をどのように知ることができますか?どの192.168.10.0/24
どこかに行って200.200.200.200
戻ってくるように偽装したいデバイスはありますか?
ベストアンサー1
ホストAからのトラフィックがnicWanではなくnicLanに移動するため、インターフェイスが間違っていると言いたいと思います。
あなたが言ったように、返品パッケージが正しい場所に移動するには変装が必要です。 2番目のルールは、ローカルサブネットで開始され、ローカルサーバーに返されるすべてのトラフィックを偽装します。
iptables -t nat -A PREROUTING -i nicLan --destination 200.200.200.200/32 --jump DNAT --to-destination 192.168.10.2
iptables -t nat -A POSTROUTING -o nicLan --source 192.168.10.0/24 --destination 192.168.10.2/32 --jump MASQUERADE
ご覧のとおり、ポートは定義されていないため、LANからパブリックアドレスへのすべてのトラフィックはローカルLAN上のサーバーにDNAT処理されます。
必要に応じて、フィルタテーブルに許可ルールを追加することを忘れないでください。