服务器安全加固从哪几个方面入手
服务器安全加固不是安装一个杀毒软件就能完成的事。攻击者进入一台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/