linux服务器安全加固是建立分层防御习惯,涵盖最小化安装、权限控制、日志监控与持续更新闭环:系统初始化即精简服务(如禁用avahi-daemon、rpcbind),ssh禁root登录、限用户/试错次数、强制密钥认证,防火墙默认drop并配合fail2ban防爆破,自动更新仅限安全补丁,并用lynis定期基线审计。

Linux 服务器安全加固不是堆砌工具,而是建立分层防御习惯:从系统初始化就切断常见攻击面,再通过权限控制、日志监控和持续更新形成闭环。
最小化安装与服务精简
系统部署时只装必需组件,避免默认开启无用服务。比如 CentOS/RHEL 安装选“Minimal Install”,Ubuntu 用 server 版并跳过 snap 和图形相关包。
- 用 systemctl list-unit-files --type=service --state=enabled 查看开机自启服务,停用如 avahi-daemon、rpcbind、telnet 等非必要项
- 用 ss -tuln 或 netstat -tuln 核对实际监听端口,确认无意外开放(如 25、111、631)
- Web 服务器若仅需 HTTPS,禁用 HTTP 端口或用 Nginx/Apache 重定向,不靠防火墙“堵”而靠服务“不听”
用户权限与登录控制
杜绝 root 远程直连,限制登录来源,让账户行为可追溯、可约束。
- 编辑 /etc/ssh/sshd_config:设 PermitRootLogin no、AllowUsers deploy www-data(明确放行用户)、MaxAuthTries 3、LoginGraceTime 60
- 启用密钥登录后,强制禁用密码认证:PasswordAuthentication no;密钥用 4096 位 RSA 或 ed25519,私钥本地加 passphrase
- 对敏感命令做审计:用 sudoers 限制用户只能执行指定脚本,或通过 auditd 记录 /bin/su、/usr/bin/sudo 调用
防火墙与入侵检测基础配置
iptables/nftables 不是摆设,要按业务逻辑写规则;fail2ban 是低成本防爆破第一道缓冲。
- 默认策略设为 DROP,只放行明确需要的端口(如 22、443、80),拒绝所有入向 ICMP(防 ping 扫描)
- fail2ban 配置重点监控 sshd 和 nginx[error] 日志,触发 5 次失败登录即封 IP 1 小时,封禁规则写入 iptables 或 nftables
- 定期检查 /var/log/auth.log 或 /var/log/secure 中重复失败记录,人工识别扫描特征(如大量不同用户名尝试)
自动更新与安全基线检查
补丁滞后是多数被攻陷主因;基线检查能暴露配置偏差,比等告警更主动。
- Debian/Ubuntu 启用 unattended-upgrades,配置只自动更新 security 源;RHEL/CentOS 用 yum-cron 或 dnf-automatic,禁用自动重启内核
- 用 lynis audit system(开源工具)每月跑一次,重点关注 SSH 加密算法、密码策略、文件权限(如 /etc/shadow 应为 600)、SUID 文件清单
- 关键配置文件(/etc/passwd、/etc/group、/etc/sudoers)加入 inotifywait 监控,变动时发邮件或写入专用日志
安全不是一次性 checklist,而是把每次运维操作当成加固机会:新装服务先关默认端口,新增用户必设 sudo 限制,改配置前先备份再 diff。防护效果藏在日常习惯里,不在某条高深命令中。











