iptables SSH 暴力破解保护
iptables SSH brute force protection
我有一个 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
您可以从限速开始,例如:
/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 建议的那样,我会拒绝使用密码登录,只接受密钥。
我有一个 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
您可以从限速开始,例如:
/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 建议的那样,我会拒绝使用密码登录,只接受密钥。