ポートノッキングに次のiptablesルールを使用しています。すべてうまくいきますが、HOST_1 からノックできるようにして、HOST_2 の SSH ポートを開くように改善したいと思います。誰かがそれを行うことができるかどうか、またはどのように行うことができるかアドバイスしてもらえますか? 1 つの可能性は、ポート ノッキング中にソース IP を偽造することです (hping3 -p 100 -a $HOST_2 11.22.33.44)。それは機能しますが、iptables を使用してこれを実装することをお勧めします。
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m recent --rcheck --seconds 5 --name KNOCK3 --rsource -j STATE3
-A INPUT -m recent --rcheck --seconds 5 --name KNOCK2 --rsource -j STATE2
-A INPUT -m recent --rcheck --seconds 5 --name KNOCK1 --rsource -j STATE1
-A INPUT -j STATE0
-A STATE0 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource
-A STATE0 -p tcp -m tcp --dport 100 -m recent --set --name KNOCK1 --rsource -j DROP
-A STATE0 -j DROP
-A STATE1 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource
-A STATE1 -p tcp -m tcp --dport 200 -m recent --set --name KNOCK2 --rsource -j DROP
-A STATE1 -j DROP
-A STATE2 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource
-A STATE2 -p tcp -m tcp --dport 300 -m recent --set --name KNOCK3 --rsource -j DROP
-A STATE2 -j DROP
-A STATE3 -m recent --remove --name KNOCK1,KNOCK2,KNOCK3 --rsource
-A STATE3 -p tcp -m tcp --dport 22 -j ACCEPT
-A STATE3 -j DROP