为了防止Linux SSH服务器受到暴力破解攻击,你可以采取以下措施:
-
使用强密码策略:要求用户设置复杂的密码,包含大小写字母、数字和特殊字符。可以使用
passwd
命令来设置密码复杂度。 -
限制登录尝试次数:编辑
/etc/ssh/sshd_config
文件,找到或添加以下配置项:
MaxStartups 10 AllowUsers your_username DenyUsers your_username
这里,MaxStartups
设置了允许的最大并发未授权连接数,AllowUsers
和DenyUsers
分别列出了允许和拒绝登录的用户。根据需要调整这些值。
- 使用密钥认证:禁用密码认证,只允许使用SSH密钥对进行身份验证。编辑
/etc/ssh/sshd_config
文件,找到或添加以下配置项:
PubkeyAuthentication yes PasswordAuthentication no
然后重启SSH服务以应用更改。
-
启用公钥本地拒绝列表(/etc/ssh/denied_keys):将已知的恶意公钥添加到此文件中,以防止它们被使用。
-
使用防火墙限制访问:使用
iptables
或其他防火墙工具限制可以访问SSH端口的IP地址。例如,只允许特定IP范围访问SSH端口:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j DROP
-
使用Fail2ban:安装并配置Fail2ban,它可以监控SSH登录尝试并将恶意IP地址添加到防火墙规则中,从而阻止进一步的暴力破解尝试。
-
定期检查日志:定期检查
/var/log/auth.log
(或相应的系统日志文件)以检测任何可疑活动。如果发现暴力破解尝试,立即采取行动,例如封禁可疑IP地址。 -
保持系统和软件更新:确保系统和SSH软件保持最新,以便修复已知的安全漏洞。