使用 iptables/fail2ban 或firewalld 阻止 SSH/SSHD 的所有 IP?

使用 iptables/fail2ban 或firewalld 阻止 SSH/SSHD 的所有 IP?

我正在努力学习Linux并熟悉它。如何针对 SSH/SSHD 阻止不同子网上除两个特定 IP 之外的所有 IP?我一直在尝试谷歌寻找答案,但似乎没有任何结果!

答案1

对于你的主要问题,

如何针对 SSH/SSHD 阻止不同子网上除两个特定 IP 之外的所有 IP?

使用 iptables 只需将 192.168.0.1/24 替换为您需要允许的任何 IP/子网。确保附加最后一条规则。由于规则是从上到下读取的,因此如果您远程连接到系统,首先添加规则会将您锁定

iptables -I INPUT -s 192.168.0.1/24 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -s 192.168.0.1/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

关于你的第二个问题,

如何在 5 次尝试后限制 SSH 访问

在 ssh 配置中附加或修改现有的 MaxAuthTries 参数:

echo "MaxAuthTries 5" >> /etc/ssh/sshd_config

这将在 5 次失败尝试后拒绝登录,并且将记录一半值之后的任何尝试(本例中为 3 次尝试)。

相关内容