発信するすべてのパケット(特にDNS)の宛先IPを変更するには?

発信するすべてのパケット(特にDNS)の宛先IPを変更するには?

最新バージョンの(Debian)ラズベリーパイOSがインストールされたRaspberry Pi 4があります. iptablesPi(使用)からのすべてのトラフィックを別のコンピュータ(IPアドレスを使用していると仮定)にリダイレクトするように設定しようとしています。これは、DNSベースの依存ポータルをホストする別のコンピュータをテストするためのものであり、すべてのトラフィックをこの依存ポータルコンピュータ(IP B)に転送したいと思います。私はヘッドレス設定が好きなので、転送せずにSSH接続を維持できれば幸いです。

NATテーブル()でこのルールセットを試しましたiptables。私は私が試したことがIP AからIP BにUDPトラフィックを転送しようとしたことに気づきました。これはうまくいきません。

root@pi4:/home/pi# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 7 packets, 1155 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       udp  --  *      *       <IP A>               <resolver IP>       udp dpt:53 to:<IP B>

Chain INPUT (policy ACCEPT 7 packets, 1155 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

どんな助けやアドバイスにも感謝します。

ベストアンサー1

私はそれを考えた!私のチェーンルールが単に間違った場所に配置されていることがわかりました。内部的に生成された宛先IPアドレスを変更したいので、PREROUTINGルールをOUTPUTに入れる必要があります。最後に、私のNATテーブルは次のとおりです(質問でプレースホルダIPを維持してください)。

# Generated by iptables-save v1.8.7
*nat
:PREROUTING ACCEPT [22:2797]
:INPUT ACCEPT [22:2797]
:OUTPUT ACCEPT [129:8883]
:POSTROUTING ACCEPT [129:8883]
-A OUTPUT -d <resolver IP>/32 -p udp -m udp --dport 53 -j DNAT --to-destination <IP B>:<port B>
-A POSTROUTING -d <IP B>/32 -p udp -m udp --dport <port B> -j SNAT --to-source <IP A>
COMMIT
# Completed on

おすすめ記事