当维护一个服务器或网络时,可能会遭遇来自不良攻击者的 port scan 攻击。这种攻击通常会扫描目标网段中所有可用的 port,以寻找可以利用的漏洞和弱点。为了保护您的系统和数据安全,您可以使用 iptables 来禁止 port scan 攻击。
以下是一些常用的 iptables 规则可以帮助您防止 port scan 攻击。
1. 只允许特定的 port 被扫描
您可以使用以下指令指定只允许特定的 port 被扫描:
iptables -A INPUT -p tcp –dport 22,80,443 -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP
iptables -A INPUT -p tcp –syn -j DROP
这条指令中,第一行允许 port 22、80 和 443 这些 TCP port 被扫描,而第二行则禁止所有其他 TCP port 的扫描。
2. 增加扫描速率限制
您可以使用以下指令限制同一 IP 地址在一定时间内所能够进行的扫描次数:
iptables -A INPUT -p tcp –syn -m recent –name portscan –set
iptables -A INPUT -p tcp –syn -m recent –name portscan –rcheck –seconds 60 –hitcount 10 -j DROP
iptables -A INPUT -p tcp –syn -m recent –name portscan –rcheck –seconds 60 –hitcount 10 -j DROP
这条指令中,第一行指定将所有进入的 TCP SYN 封包加入名为 portscan 的 iptables 记录中,而第二行则限制同一 IP 地址在 60 秒内最多只能进行 10 次扫描。
3. 隐藏埠号
您可以使用以下指令隐藏特定的 port:
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP
这条指令中,前三行允许 port 22、80 和 443 被访问,而最后一行则禁止所有其他 TCP 封包。
总结来说,使用 iptables 禁止 port scan 攻击是保护服务器和网络安全的重要措施。上述这些方法可以根据不同的需求和情况选择使用。