![使用 iptables/fail2ban 或firewalld 阻止 SSH/SSHD 的所有 IP?](https://linux22.com/image/125714/%E4%BD%BF%E7%94%A8%20iptables%2Ffail2ban%20%E6%88%96firewalld%20%E9%98%BB%E6%AD%A2%20SSH%2FSSHD%20%E7%9A%84%E6%89%80%E6%9C%89%20IP%EF%BC%9F.png)
我正在努力学习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 次尝试)。