![我无法阻止通过端口 80 的 ACK 数据包](https://linux22.com/image/757085/%E6%88%91%E6%97%A0%E6%B3%95%E9%98%BB%E6%AD%A2%E9%80%9A%E8%BF%87%E7%AB%AF%E5%8F%A3%2080%20%E7%9A%84%20ACK%20%E6%95%B0%E6%8D%AE%E5%8C%85.png)
我想阻止 nmap 的 ack ping 探测,为了做到这一点,我首先需要阻止所有进入端口 80 的 ack 数据包。我使用了这个命令,但它不起作用:
iptables -A INPUT -p tcp --dport 80 --tcp-falgs ALL ACK -j DROP
问题是它适用于除 80 和 443 之外的任何端口,而这些端口恰好是 http/https 协议的端口。有什么方法可以让它工作并阻止这些端口上的意外 ACK 数据包吗?
以下是来自输入链的所有规则:
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 80 --tcp-flags ALL ACK -j LOG --log-prefix "PSAD: ACK PING "
iptables -A INPUT -p tcp --dport 80 --tcp-flags ALL ACK -j DROP
iptables -A INPUT -m conntrack --ctstate INVALID -j LOG --log-prefix "DROP INVALID " --log-ip-options --log-tcp-options
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
先感谢您...
答案1
我很抱歉占用了大家的时间。我刚刚注意到我有一个 nat 规则,它将所有到达端口 80 的数据包转发到另一个没有主机运行的 IP 地址。由于 PREROUTING 位于 INPUT 链之前,因此它会直接转发到另一个不存在的主机。这就是我应用的规则没有生效的原因