Centos防止ssh暴力破解
在使用 CentOS 等 Linux 系统时,SSH 服务常常成为黑客攻击的目标,尤其是暴力破解攻击。暴力破解通常依赖于自动化工具对系统登录密码进行不断尝试,直到成功登录。以下是防止 SSH 暴力破解攻击的主要原因和方法
这是我登录服务器时显示 这段时间内共有37137次登录尝试失败
为了防止 SSH 暴力破解攻击,可以采取多种措施来增强 CentOS 系统的安全性。下面是一些常见的防止 SSH 暴力破解的措施
更改 SSH 默认端口
修改 SSH 的默认端口(22)可以有效减少攻击者的扫描目标,降低被暴力破解的风险。
编辑 SSH 配置文件
sudo vi /etc/ssh/sshd_config
修改 Port
配置项,将端口改为不常见的端口,例如 2200
Port 2200
重新启动 SSH 服务
sudo systemctl restart sshd
配置防火墙允许新的端口
sudo firewall-cmd --zone=public --add-port=2200/tcp --permanent
sudo firewall-cmd --reload
禁用 Root 用户 SSH 登录
禁用 root 用户直接通过 SSH 登录,减少暴力破解攻击者直接获取管理员权限的风险
编辑 SSH 配置文件
sudo vi /etc/ssh/sshd_config
设置 PermitRootLogin
为 no
PermitRootLogin no
重新启动 SSH 服务
sudo systemctl restart sshd
启用 SSH 密钥认证
使用 SSH 密钥认证来代替密码认证,是防止暴力破解的最有效手段之一
在本地机器上生成 SSH 密钥对(如果没有密钥对)
ssh-keygen
将公钥复制到远程服务器
ssh-copy-id <username>@<hostname>
编辑 SSH 配置文件禁用密码登录
sudo vi /etc/ssh/sshd_config
设置 PasswordAuthentication
为 no
PasswordAuthentication no
重新启动 SSH 服务
sudo systemctl restart sshd
安装并配置 Fail2Ban
Fail2Ban
可以帮助防止暴力破解,它会监控登录失败的次数,并封禁尝试暴力破解的 IP 地址。
安装 fail2ban
sudo yum install epel-release
sudo yum install fail2ban
设置开机自启
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
配置 fail2ban
编辑 /etc/fail2ban/jail.local
文件:
sudo vi /etc/fail2ban/jail.conf
在 [sshd]
配置部分,启用并配置参数:
[sshd]
enabled = true # 启用此jail,表示启用针对SSH登录的监控和防护
port = ssh # 设置监听的端口为SSH默认端口 22
logpath = /var/log/auth.log # 设置SSH登录日志的路径,用于Fail2Ban分析和判断是否触发封禁
maxretry = 5 # 如果同一IP地址在短时间内登录失败超过5次,就会被封禁
bantime = 10m # 设置封禁时间为10分钟,封禁该IP地址10分钟
findtime = 10m # 在10分钟内发生超过最大失败次数(maxretry)的登录失败次数,将触发封禁
重新启动
sudo systemctl restart fail2ban
查看状态
sudo fail2ban-client status sshd
取消封禁
sudo fail2ban-client unbanip <IP地址>
总结
采取这些措施可以有效防止 SSH 暴力破解攻击,确保服务器的安全性。特别是禁用 root 登录、启用 SSH 密钥认证和安装 fail2ban
都是防御暴力破解的重要手段。通过定期审查系统日志和加强密码策略,可以进一步增强系统的防护能力。