iptables SSH强力保护

时间:2016-08-22 20:49:56

标签: ssh firewall iptables

我有一个iptables防火墙,默认的INPUT策略设置为DROP。我正在使用它来减慢SSH强力尝试。问题是,如果我离开最后一行,则先前的规则不会触发,并且所有SSH流量都被接受。如果我把它丢弃,来自坏IP的数据包会被丢弃,但我也无法自己连接到SSH。根据我的理解,iptables是顺序的,所以如果它没有触发任何先前的规则,它应该只到达最后一条规则。我想在最后一行说的是#34;如果您的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

1 个答案:

答案 0 :(得分:0)

您可以从速率限制开始,例如:

/usr/sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set /usr/sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

如果您想记录滴剂,那么

/sbin/iptables -N LOGDROP

/sbin/iptables -A LOGDROP -j LOG

/sbin/iptables -A LOGDROP -j DROP

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j LOGDROP

来源是https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/

另外我建议将默认端口移动到其他地方,就像@larsks建议我拒绝使用密码登录并只接受密钥。