Linux系统加固围绕“谁在访问、能做什么、留下什么痕迹”三层设防:关闭非必要服务与高危端口,强化SSH密钥认证与登录策略,收紧账号密码策略,最小化文件权限,并启用auditd审计关键文件与操作。

Linux系统加固不是堆砌工具,而是围绕“谁在访问、能做什么、留下什么痕迹”三个核心层层设防。重点不在全开所有功能,而在关掉默认风险、收紧权限边界、让异常行为无处藏身。
关闭非必要服务和端口
暴露即风险,先摸清系统对外开了哪些门:
- 执行 ss -tuln 或 netstat -tuln 查看所有监听端口,重点关注 21(FTP)、23(telnet)、111(rpcbind)、2049(NFS)等高危端口
- 确认服务用途:比如 systemctl is-active rpcbind,若业务不用,立即停用并禁启:systemctl disable --now rpcbind
- 对长期不用但无法删除的服务(如 avahi-daemon),可屏蔽 socket:systemctl mask avahi-daemon.socket
强化SSH登录安全
SSH是攻击者最常瞄准的入口,必须切断弱凭证路径:
- 编辑 /etc/ssh/sshd_config,确保以下几项明确设置:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
- 密钥登录务必提前验证成功再禁密码——用 ssh -o PubkeyAuthentication=yes 用户@主机 测试通路
- 重启生效:systemctl restart sshd,切勿断开当前连接前完成测试
收紧账号与密码策略
账号是权限的起点,控制好源头才能避免“一个口令失守,全盘沦陷”:
- 锁定或删除无用账号:passwd -l backup、userdel -r testuser;检查空口令:awk -F: '($2=="")' /etc/shadow
- 设置全局密码策略:
修改 /etc/login.defs:
PASS_MAX_DAYS 90
PASS_MIN_LEN 14
PASS_WARN_AGE 7
- 启用PAM复杂度校验:在 /etc/pam.d/system-auth 中添加一行:
password requisite pam_pwquality.so try_first_pass retry=3 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
- 失败锁定:在 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth 中加入:
auth [default=die] pam_faillock.so authfail deny=5 unlock_time=900
auth [default=ok] pam_faillock.so authsucc
最小化文件权限与日志审计
权限过大等于主动交出控制权,日志缺失则等于不留证据:
- 关键系统文件设为只读(需 root 权限):
chattr +i /etc/passwd /etc/shadow /etc/group
解锁时用 chattr -i,操作前务必确认有备用 root 访问方式
- 统一默认新建文件权限:
在 /etc/profile 中设置 umask 027(组可读、其他无权)
- 启用 auditd 审计敏感操作:
编辑 /etc/audit/rules.d/custom.rules,添加:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k admin
执行 augenrules --load 并启动服务:systemctl enable --now auditd
基本上就这些。每一步都对应一个真实攻击面,不复杂但容易忽略。加固不是一劳永逸,建议每月用 ss -tuln 和 lastb 快速复核一次开放端口与爆破尝试。
以上就是Linux系统如何加固_操作步骤详解提升实战能力【技巧】的详细内容,更多请关注php中文网其它相关文章!