云服务器安全基线实战:Linux 主机 SSH 安全加固与防暴力破解指南
引言
当我们购买并初始化一台带有弹性公网 IP(EIP)的云服务器后,往往在几分钟内就会在系统日志中看到大量来自全球各地自动化脚本的端口扫描与 SSH 暴力破解尝试。虽然云厂商提供了强大的底层安全防护,但作为服务器管理员,做好主机层面的操作系统安全加固依然至关重要。本文将结合生产环境运维经验,分享一套开箱即用的 Linux 云服务器安全加固实战方案。
一、 禁用密码登录,全面切换至 SSH 密钥对
传统的账号密码登录方式容易受到字典暴力破解的威胁。最彻底的防御手段是采用非对称加密的 SSH 密钥对(Key Pair) 进行身份认证,并在验证通过后彻底关闭密码登录功能。
在本地将公钥写入云服务器的 ~/.ssh/authorized_keys 并赋予严格的权限后,我们可以通过修改 /etc/ssh/sshd_config 配置文件来加固 SSH 服务:
# 1. 确保密钥文件权限合规(权限过大将导致 SSH 拒绝读取)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# 2. 编辑 SSH 服务端配置文件
sudo vim /etc/ssh/sshd_config
将以下核心安全参数修改并生效:
# 更改默认 22 端口,规避 90% 以上的自动化无差别扫描脚本(需提前在云安全组放行新端口)
Port 22022
# 启用公钥认证
PubkeyAuthentication yes
# 彻底禁用密码认证(请务必在确认密钥可正常登录后再修改此项!)
PasswordAuthentication no
# 禁止 root 账号直接远程登录(日常使用普通账号登录,按需 sudo 提权)
PermitRootLogin no
# 限制单次连接最大认证尝试次数
MaxAuthTries 3
修改完成后,执行 sudo systemctl restart sshd 重启服务(建议保留当前终端窗口不关闭,新开一个终端窗口测试登录成功后再退出,防止配置失误将自己锁在门外)。
二、 部署 Fail2ban 实现动态 IP 自动封禁
如果因为特殊业务需求必须保留密码登录或标准端口,那么部署 Fail2ban 是性价比最高的防御手段。它能够实时监控系统认证日志(如 /var/log/auth.log 或 /var/log/secure),一旦发现某个公网 IP 在短时间内连续输错密码,便会自动调用防火墙规则将其拉黑封禁。
以 Ubuntu/Debian 系统为例,安装与核心配置如下:
# 安装 fail2ban 服务
sudo apt update && sudo apt install -y fail2ban
# 创建本地自定义规则文件(避免直接修改默认 jail.conf 被升级覆盖)
sudo vim /etc/fail2ban/jail.local
在 jail.local 中写入以下针对 SSH 的防护策略:
[DEFAULT]
# 忽略本地回环地址及可信运维跳板机 IP
ignoreip = 127.0.0.1/8
# 封禁时长:3600 秒(1小时)
bantime = 3600
# 统计时间窗口:600 秒(10分钟)
findtime = 600
# 在统计窗口内允许的最大失败次数:5次
maxretry = 5
[sshd]
enabled = true
port = ssh,22022
logpath = %(sshd_log)s
backend = %(sshd_backend)s
启动服务并设置开机自启后,可以通过以下命令随时查看当前的拦截战果:
sudo systemctl enable --now fail2ban
# 查看当前被封禁的恶意 IP 列表与拦截统计
sudo fail2ban-client status sshd
三、 云端安全组与主机防火墙协同防御
除了主机内部的 SSH 加固,我们还需要遵循“最小权限原则”来管理网络端口暴露面:
- 云控制台安全组收敛:仅对公网(
0.0.0.0/0)开放 Web 业务必需的80和443端口。对于远程管理端口(SSH)和数据库端口(如 MySQL 3306、Redis 6379),严禁向全网开放,应限定仅允许公司办公网固定 IP 或内网 VPC 网段访问。 - 清理冗余监听服务:定期在服务器终端执行
ss -tulnp检查当前监听在0.0.0.0上的进程。对于仅需在本机容器或内部调用的中间件服务,务必将其绑定地址修改为127.0.0.1,从根源上切断外部直接探测的可能。
四、 总结
云服务器的安全建设并非一劳永逸,而是由“云端安全组边界隔离 + SSH 密钥认证与端口隐藏 + Fail2ban 动态入侵防御”共同构成的纵深防御体系。花上十分钟完成这套标准化的初始化加固配置,即可让我们的云上业务远离绝大多数自动化网络攻击的滋扰,保障系统的长期稳定运行。
- 点赞
- 收藏
- 关注作者
评论(0)