服务器安全加固是服务器上线前必须完成的一步。暴露在公网上的 Linux 服务器,几小时内就会收到大量 SSH 暴力破解尝试,这是常态而不是例外。本文从 SSH 防护、自动封禁、审计监控三个层面,给出可以直接照做的加固步骤与配置。
SSH 加固:禁用密码登录与密钥认证
SSH 是攻击者最常瞄准的入口。核心加固策略是禁用密码登录、只允许密钥认证,并限制可登录用户。修改 /etc/ssh/sshd_config 后必须重启 sshd 并用新会话验证,避免把自己锁在外面。
# /etc/ssh/sshd_config
Port 2222 # 更换默认端口,降低扫描命中率
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication no # 禁用密码认证
PubkeyAuthentication yes # 仅允许密钥
AllowUsers deploy # 只允许指定用户登录
# 生成密钥并上传(本地执行)
ssh-keygen -t ed25519 -C "server-deploy"
ssh-copy-id -p 2222 deploy@服务器IP
生产服务器不建议把端口改得过于冷门导致运维不便,但默认 22 端口确实面临全网扫描。权衡后可以保留 22,配合 Fail2ban 完成防护。
Fail2ban 配置:自动封禁暴力破解 IP
Fail2ban 监控日志中的失败登录记录,超过阈值后自动写入防火墙规则封禁来源 IP。以 SSH 为例,常用配置是 5 分钟内失败 5 次封禁 1 小时。
# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5
findtime = 300
bantime = 3600
ignoreip = 127.0.0.1/8 你的办公网段
# 启动并查看封禁状态
systemctl enable --now fail2ban
fail2ban-client status sshd
封禁时间不宜过短,否则攻击脚本换个 IP 就能继续;也不宜过长,避免误伤真实用户。遇到反复横跳的扫描,可结合云厂商安全组做地域级封禁。
入侵检测:auditd 审计与 AIDE 文件完整性校验
SSH 加固解决入口问题,审计与完整性校验解决”被入侵后能否发现”的问题。auditd 监控关键路径的读写执行操作,AIDE 对系统文件生成校验库,定期比对发现被篡改的文件。
# auditd 监控 /etc/passwd 修改
auditctl -w /etc/passwd -p wa -k passwd_changes
ausearch -k passwd_changes --start recent
# AIDE 初始化与定期校验
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
aide --check # 纳入 crontab 每天执行
把 aide –check 输出接入日志采集,异常时触发告警,形成”加固-检测-告警-处置”的闭环。
服务器安全加固检查清单
日常巡检按清单核对:系统补丁是否及时更新;是否只保留必要服务与端口;是否使用最小权限账号而非 root;SSH 是否已禁用密码登录;关键目录是否有完整性校验;日志是否集中存储并有告警;安全组是否按最小开放原则配置。每一项都对应实际攻击路径,漏一项就多一个被利用的机会。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/fu-wu-qi-an-quan-jia-gu-shi-zhan-ssh-fang-hu-yu-ru-qin-jian/