ssh 部分的 iptables 有问题

ssh 部分的 iptables 有问题

我已经用 iptables 阻止了所有连接并仅允许环回:

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

接下来我想只允许 ssh 连接,并且我想使用最近的模块记录每次尝试访问端口 22 的 IP 地址。然后我想看看该 IP 地址是否在过去 60 秒内尝试连接 2 次或更多次,如果没有,则接受数据包:

iptables -A INPUT -p tcp --dport 22 -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 2 --    name ssh --rsource -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT 
iptables -A INPUT -p tcp --sport 22 -j ACCEPT 
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

这个问题可能写得不对,所以有人能告诉我我的问题是什么吗

答案1

你的意思是... 类似于....

iptables -N BADGUY
iptables -t filter -I BADGUY -m recent --set --name badguys

iptables -A INPUT -i $OUTS -p tcp --syn --dport ssh -m recent --name ssh --set
iptables -A INPUT -i $OUTS -p tcp --syn --dport ssh -m recent --name ssh --rcheck --seconds 300 --hitcount 6 -j BADGUY
iptables -A INPUT -i $OUTS -p tcp --syn --dport ssh -m recent --name ssh --rcheck --seconds  30 --hitcount 2 -j DROP

您可能还想看看失败2ban它可以完成您想要的操作。

相关内容