【发布时间】:2016-08-23 05:18:37
【问题描述】:
我有一个 iptables 防火墙,默认 INPUT 策略设置为 DROP。我正在使用它来减慢 SSH 蛮力尝试的速度。问题是如果我留下最后一行,前面的规则不会触发,所有的 SSH 流量都会被接受。如果我忽略它,来自不良 IP 的数据包会被丢弃,但我自己也无法连接到 SSH。据我了解,iptables 是顺序的,所以如果它没有触发任何先前的规则,它应该只到达最后一条规则。我在最后一行要说的是“如果您的 IP 不在 SSH_BRUTEFORCE 列表中,请继续。我做错了什么?
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -N SSHSCAN
iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m state --state NEW -j SSHSCAN
iptables -A SSHSCAN -m recent --set --name SSH_BRUTEFORCE --rsource
iptables -A SSHSCAN -m recent --update --seconds 360 --hitcount 10 --name SSH_BRUTEFORCE --rsource -j LOG --log-prefix "Anti SSH-Bruteforce: " --log-level 2
iptables -A SSHSCAN -m recent --update --seconds 360 --hitcount 10 --name SSH_BRUTEFORCE --rsource -j DROP
iptables -A SSHSCAN -m recent --rcheck --name SSH_BRUTEFORCE -j ACCEPT
【问题讨论】:
-
不是为了阻止您当前的努力,但 fail2ban 也可能值得一试。
-
你也可以看看csf,它很容易安装和配置。 download.configserver.com/csf/install.txt
-
如果你可以简单地配置你的 ssh 守护进程来禁止密码验证,那么你将基本上解决了这个问题。
-
Stackoverflow 用于软件开发方面的帮助。您应该考虑在Super User、Server Fault 或Unix & Linux 上提问。