Nftablesポートノックアウトdnat

Nftablesポートノックアウトdnat

iptablesにはポートノッキング用のスクリプトがあります(以下のコードスニペット)。

$IPT -N KNOCKING
$IPT -N GATE1
$IPT -N PASSED

$IPT -A INPUT -i $EXTIP -j KNOCKING

$IPT -A GATE1 -p tcp --dport 1111 -m recent --name AUTH1 --set -j DROP
$IPT -A GATE1 -j DROP

$IPT -A KNOCKING -m recent --rcheck --seconds 30 --name AUTH1 -j PASSED
$IPT -A KNOCKING -j GATE1

$IPT -A PASSED -m recent --name AUTH1 --remove
$IPT -A PASSED -p tcp --dport 777 -j LOG --log-prefix '*** RDP Connect ***'
$IPT -A PASSED -p tcp --dport 777 -m recent --name RDP --set -j ACCEPT
$IPT -A PASSED -j GATE1

$IPT -t nat -A PREROUTING -p tcp --dport 777 -m recent --rcheck --seconds 30 --name RDP -j DNAT --to-destination 192.168.1.254:3389
# ADD here FORWARD RULE from standart iptables script 

機能:ポート1111に達すると、30秒以内に次のポート777に到達し、ポート777に接続できます。このポートはローカルネットワークのRDPにリダイレクトされます。だから1111-777-接続されました。順序が異なる場合(例:1111 - {some_other_port} - 削除)、良い結果。

nftablesに切り替えたいのですが、翻訳する方法がわかりません。どんなアドバイスでも心から感謝します!

ベストアンサー1

シェルレベルのコマンドがあります。説明する~へnftables.org場所、または、これは次のように直接置き換えることができます。iptables/IP6テーブルコマンドを元のスクリプトからnftに対応するコマンドの生成

または...

単一のコマンドを使用して回復セット全体を変換します。:

iptables-save > ${savedIp4TablesCommandSet}
iptables-restore-translate -f ${savedIp4TablesCommandSet} >${firewall4RestoreCommandSet}.nft

ip6tables-save > ${savedIp6TablesCommandSet}
ip6tables-restore-translate -f ${savedIp6TablesCommandSet} >${firewall6RestoreCommandSet}.nft

その後、次のようにnftに直接入力できます。

nft -f ${firewall[4|6]RestoreCommandSet}.nft

おすすめ記事