在 AWS EC2 上使用 sshbrute 过滤器为 ssh 设置 Iptables 规则

在 AWS EC2 上使用 sshbrute 过滤器为 ssh 设置 Iptables 规则

这些是我当前针对端口 22 的 iptables 规则。它在 linode 和其他 vps 提供商上有效,但在 aws 上无效。在 aws 上执行这些规则后,所有端口 22 连接都被拒绝或超时。我使用的是 debian 10,在 aws vpc 上打开了所有端口。我这里遗漏了什么?谢谢。

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Chain for preventing SSH brute-force attacks.
# Permits 10 new connections within 5 minutes from a single host then drops 
# incomming connections from that host. Beyond a burst of 100 connections we 
# log at up 1 attempt per second to prevent filling of logs.
iptables -N SSHBRUTE
iptables -A SSHBRUTE -m recent --name SSH --set
iptables -A SSHBRUTE -m recent --name SSH --update --seconds 300 --hitcount 10 -m limit --limit 1/second --limit-burst 100 -j LOG --log-prefix "iptables[SSH-brute]: "
iptables -A SSHBRUTE -m recent --name SSH --update --seconds 300 --hitcount 10 -j DROP
iptables -A SSHBRUTE -j ACCEPT

iptables -A INPUT -p tcp --dport 22 --syn -m conntrack --ctstate NEW -j SSHBRUTE
iptables -A INPUT -p tcp --dport 22 --syn -m conntrack --ctstate ESTABLISHED -j ACCEPT

规则集来源 - https://gist.github.com/jirutka/3742890

更新:-

我按照这个答案中提到的步骤进行操作(更改了 AWS EC2 防火墙规则并锁定了 ssh) 编辑出 cron 命令集以在重启时重新启动 iptables。现在我可以登录实例,但无法再复制该问题。它仍然是同一套规则。Aws 还在每次重启时重置我的主机配置 /etc/hosts 文件。现在我直接在模板文件上设置主机配置。稍后将尝试复制该问题,已经花了几个小时。

相关内容