centos

CentOS SSH如何防止暴力破解攻击

小樊
59
2025-03-21 12:14:32
栏目: 网络安全

防止SSH暴力破解攻击是确保服务器安全的重要措施。以下是一些在CentOS系统上防止SSH暴力破解攻击的方法:

1. 使用Fail2Ban

Fail2Ban是一个入侵防御软件框架,可以监控日志文件并根据配置的规则禁止恶意IP地址。

安装Fail2Ban

sudo yum install epel-release
sudo yum install fail2ban

配置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

启动Fail2Ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

2. 修改SSH端口

将SSH默认端口从22改为其他不常用的端口,可以减少被扫描的概率。

修改SSH配置文件

编辑 /etc/ssh/sshd_config 文件,找到并修改以下行:

Port 22

改为:

Port 2222

重启SSH服务

sudo systemctl restart sshd

3. 使用公钥认证

禁用密码登录,改用SSH密钥对进行认证,可以大大提高安全性。

生成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

重启SSH服务

sudo systemctl restart sshd

4. 使用防火墙限制访问

使用iptables或firewalld限制SSH访问来源。

使用iptables

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

使用firewalld

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

5. 监控和日志分析

定期检查SSH日志文件 /var/log/secure,分析异常登录尝试,并根据需要调整安全策略。

通过以上方法,可以显著提高CentOS服务器的SSH安全性,有效防止暴力破解攻击。

0
看了该问题的人还看了