防止SSH暴力破解攻击是确保服务器安全的重要措施。以下是一些在CentOS系统上防止SSH暴力破解攻击的方法:
Fail2Ban是一个入侵防御软件框架,可以监控日志文件并根据配置的规则禁止恶意IP地址。
sudo yum install epel-release
sudo yum install fail2ban
编辑Fail2Ban的配置文件 /etc/fail2ban/jail.local
,添加或修改以下内容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 5
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
将SSH默认端口从22改为其他不常用的端口,可以减少被扫描的概率。
编辑 /etc/ssh/sshd_config
文件,找到并修改以下行:
Port 22
改为:
Port 2222
sudo systemctl restart sshd
禁用密码登录,改用SSH密钥对进行认证,可以大大提高安全性。
在客户端生成SSH密钥对:
ssh-keygen -t rsa -b 4096
将生成的公钥(通常是 ~/.ssh/id_rsa.pub
)复制到服务器的 ~/.ssh/authorized_keys
文件中:
ssh-copy-id user@server_ip -p 2222
编辑 /etc/ssh/sshd_config
文件,确保以下行未被注释且设置正确:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
sudo systemctl restart sshd
使用iptables或firewalld限制SSH访问来源。
sudo iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --update --seconds 600 --hitcount 5 -j DROP
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="your_ip" port protocol="tcp" port="2222" reject'
sudo firewall-cmd --reload
定期检查SSH日志文件 /var/log/secure
,分析异常登录尝试,并根据需要调整安全策略。
通过以上方法,可以显著提高CentOS服务器的SSH安全性,有效防止暴力破解攻击。