核心是分层设防:网络层默认拒绝只放行必要流量,服务层SSH强制密钥认证并禁Root登录,身份层落实最小权限与强密码策略,审计层启用auditd监控关键文件并集中日志告警。

加固 Linux 系统的安全边界与纵深防御访问控制,核心不是堆砌工具,而是分层设防、层层收紧。重点在于让攻击者“进不来、卡在半路、动不了关键文件、一动手就被发现”。下面从四个关键层面给出可直接落地的操作要点。
网络层:防火墙默认拒绝,只放行必要流量
这是最外层的屏障,必须做到“非白即黑”。
- 启用 nftables(推荐)或 iptables,清空默认规则后设置默认策略为
DROP; - 仅开放业务必需端口,例如只允许特定 IP 段访问 SSH(22)和 HTTPS(443),其他全部拒绝;
- 云服务器务必同步配置安全组,与主机防火墙形成双重过滤,避免单点失效;
- 禁用不必要的内核模块(如
ipip、arp_tables),减少协议栈攻击面。
服务层:SSH 是首要防线,必须密钥化+权限收敛
SSH 是绝大多数入侵的起点,它的配置质量直接决定系统是否“裸奔”。
- 编辑
/etc/ssh/sshd_config:关闭PermitRootLogin yes,设为no; - 禁用密码登录:
PasswordAuthentication no,强制使用 Ed25519 或 RSA 密钥对; - 限制可登录用户:
AllowUsers deploy@192.168.1.0/24或AllowGroups ssh-users; - 可选但建议:修改默认端口(避开 22 扫描洪流),配合 fail2ban 实时封禁暴力尝试 IP。
身份与权限层:账号最小化 + 密码强策略 + 登录行为约束
即使网络和服务被绕过,也要确保攻击者无法提权或横向移动。
- 清理无用账号:
passwd -l username锁定,或直接删除测试账户; - 检查 UID 0 账户:
awk -F: '($3 == 0) {print $1}' /etc/passwd,确保只有 root; - 通过 PAM 强制密码复杂度:在
/etc/pam.d/system-auth中启用pam_pwquality.so,要求 12 位+、三类字符、90 天有效期; - 配置登录失败锁定:使用
pam_faillock.so,例如 5 次错误后锁 15 分钟,并记录到/var/log/secure。
审计与响应层:日志不离线、异常可追溯、动作有告警
没有审计的加固等于没装监控——你不知道门有没有被撬开过。
- 启用
auditd,监控关键路径:/etc/shadow、/etc/passwd、/bin/su、/usr/bin/sudo; - 集中收集日志:用 rsyslog 或 journalbeat 将
auth.log、secure、messages发送到远程日志服务器; - 配置
logrotate防止日志撑爆磁盘,同时保留至少 90 天历史; - 对高频 sudo 命令、非工作时间登录、root 直接登录等行为设置简单脚本告警(邮件或企业微信)。


















