nftablesを使って、MAP-Eルータへの外部からのポート指定接続をNATで指定ホスト・ポートに転送してみました。構成は、前回のiptables版と同じですが、map-e routerは"clamp your TCP MSS to Path MTU"対応は、Linux kernel 4.14 and nftables 0.9以降のため、Debian 11/Bullseyeで構成しています。
internet client <-----> router(10.22.22.22:4848|192.168.1.1) <-----> (192.168.1.22:22) ssh servernftablesの設定方法は以下の通りです。
nft add table ip nat ^ nft add chain ip nat prerouting { type nat hook prerouting priority 0 \; } nft add chain ip nat postrouting { type nat hook postrouting priority 0 \; } nft add rule ip nat prerouting ip daddr 10.22.22.22 tcp dport 4848 dnat to 192.168.1.22:22 nft add rule ip nat postrouting ip daddr 192.168.1.22 tcp dport 22 snat to 192.168.1.1前回と同じく、dnatで転送先にパケットは届きますが、帰りのパケットをsnatで192.168.1.1にして通信できるようにしています。また前回と同様にmap-eトンネルデバイスにはパブリックIP アドレス(10.22.22.22を読み替えて)を振っておいてください。 なお、Debian 11/Bullseyのiptablesにはiptables-translateコマンドがあり、
iptables-translate -t nat -A PREROUTING -p tcp -d 10.22.22.22 --dport 4848 -j DNAT --to-destination 192.168.1.22:22とすると
nft add rule ip nat PREROUTING ip daddr 10.22.22.22 tcp dport 4848 counter dnat to 192.168.1.22:22と変換してくれますので、チートできます。今回は以上です。それでは。
コメント
コメントを投稿