Linux服务器安全加固实战:SSH登录防护与系统基线配置

暴露在公网的Linux服务器,平均每分钟都会收到来自扫描器的探测请求,SSH弱口令爆破是最常见的入侵入口。服务器安全加固的核心思路是缩小攻击面:禁用密码登录、收紧密钥管理、关闭无用服务、补齐系统基线。本文按生产环境顺序给出可执行的加固步骤与配置代码。

SSH安全加固:从密码认证切换到密钥认证

第一步先让密钥登录生效,再关闭密码认证,避免把自己锁在门外。生成密钥并分发到目标机器:

# 本地生成 ed25519 密钥对
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519

# 分发公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@服务器IP

# 确认密钥登录成功后,修改 /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin prohibit-password
MaxAuthTries 3
LoginGraceTime 30
AllowUsers deploy ops

AllowUsers白名单只放行运维账号,其余用户一律拒绝。改完执行 systemctl reload sshd,注意先另开一个终端验证,确认无误再断开当前连接。

SSH防护增强:fail2ban与双因素认证

即便禁用密码登录,仍应部署fail2ban拦截暴力破解探测,减少无意义日志与资源占用:

# 安装并启用 sshd jail
apt install fail2ban
cat > /etc/fail2ban/jail.local <<'EOF'
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600
EOF
systemctl enable --now fail2ban

对核心生产机器,可再叠加TOTP双因素认证。用 libpam-google-authenticator 生成密钥并绑定手机验证器,在 sshd_config 中加入 AuthenticationMethods publickey,keyboard-interactive,确保密钥和动态码同时通过才能登录。

系统基线加固:端口收敛与账号清理

用 ss 审计监听端口,未使用的服务一律停用并禁止开机自启:

ss -tulnp
# 只保留 ssh(22)、nginx(80/443)、业务端口

# 关闭无用的服务
systemctl disable --now cups avahi-daemon postfix

# 检查无密码账号与异常账号
awk -F: '($2==""){print $1}' /etc/shadow
userdel -r test

关键目录权限收紧:/etc/shadow 应为640,/root 应为700,/tmp 挂载加 noexec,nosuid 选项写入 /etc/fstab。

基线自检与持久化检查

加固完成后用开源基线扫描工具做一轮自检,比如Lynis:

apt install lynis
lynis audit system
# 关注 Hardening Index 分值及 warnings 项

定期核对系统补丁状态:yum list updates / apt list –upgradable,内核与OpenSSH属于优先更新对象。安全加固不是一次性动作,每次变更后重跑基线扫描,把加固步骤固化为Shell脚本存入版本库,才能保证多台服务器配置一致。

原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/linux-fu-wu-qi-an-quan-jia-gu-shi-zhan-ssh-deng-lu-fang-hu/

(0)
小编小编
上一篇 1小时前
下一篇 1小时前

相关推荐