Linux服务器安全加固实战:从SSH配置到入侵检测的完整清单

服务器安全加固从哪几个方面入手

服务器安全加固不是安装一个杀毒软件就能完成的事。攻击者进入一台Linux服务器,最常见的路径是弱口令爆破、未修补的系统漏洞、以及暴露过多端口的服务。加固工作的核心思路是缩小攻击面:减少可登录账号、关闭不必要服务、收敛端口、开启审计。本文按操作系统层面的加固顺序,给出可直接落地的清单。

SSH登录安全加固:密钥认证与禁用root

SSH是服务器最常被爆破的入口。第一步禁用密码登录,改用密钥认证。生成密钥后,将公钥写入目标服务器:

ssh-keygen -t ed25519 -C "admin@example.com"
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

然后修改 /etc/ssh/sshd_config,并重启服务:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers ops
MaxAuthTries 3

这里关闭了root远程登录,只允许ops账号使用密钥认证。修改后执行 systemctl restart sshd 前,建议先开一个会话测试,避免把自己锁在外面。

爆破防护可以叠加Fail2ban,监控SSH失败登录并自动封禁IP:

apt install fail2ban
systemctl enable --now fail2ban
fail2ban-client status sshd

防火墙策略与端口最小化

用防火墙默认丢弃策略,只放行业务需要的端口。以firewalld为例:

firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

管理端口不要暴露在公网。数据库、Redis、监控面板等管理类服务,要么绑定内网IP,要么通过跳板机访问,公网直接映射是入侵的主要原因。

账号权限与系统更新基线

删除不用的系统账号,清理带空密码的账号:

awk -F: '($2==""){print $1}' /etc/shadow
userdel -r 旧账号

软件包定期升级。对联网生产服务器,建议每天执行一次安全更新:

apt update && apt upgrade -y   # Debian/Ubuntu
yum update -y                    # CentOS/RHEL

升级前先在测试环境验证,内核与运行库版本变化可能影响存量程序。

入侵检测与日志审计

加固只能降低风险,检测能力决定事后能多快发现入侵。日志审计用auditd:

auditctl -w /etc/passwd -p wa -k account_changes
auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config
ausearch -k account_changes --start today

同时安装rootkit扫描工具做定期检查:

apt install rkhunter chkrootkit
rkhunter --check --skip-keypress

日志转发到集中日志平台(如Loki、ELK),避免攻击者清掉本机日志后无从追溯。ss命令、lsof、last等日常命令的异常输出,都值得纳入告警。

加固完成后的验证清单

检查以下项目,全部通过再视为达标:公网监听端口只剩必要服务、SSH仅密钥登录且root不可登录、无空密码账号、防火墙默认拒绝、内核与软件包无已知高危CVE、auditd与rkhunter正常运行。安全加固是一个持续过程,新装的软件、新开的端口、新加的账号,都按同一基线复核。

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

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

相关推荐