Linux系统加固围绕“收缩攻击面+收紧访问控制+强化身份验证”三主线展开,涵盖账号口令、SSH服务、端口服务、权限审计四步实战操作,强调逐项验证而非堆砌命令。

Linux系统加固不是堆砌命令,而是围绕“收缩攻击面+收紧访问控制+强化身份验证”三根主线展开的系统性操作。核心目标是:让系统只做该做的事,只让该进的人进,只用最必要的东西。下面按实战逻辑分步拆解,每一步都可直接落地。
账号与口令:从源头掐断弱入口
默认账户和弱密码是入侵第一跳板,必须优先清理:
- 删或锁无用账号:用 userdel -r username 彻底删除(如 ftp、games、sync),或用 passwd -l username 锁定临时禁用
- 查高危账号:运行 awk -F: '($2=="")' /etc/shadow 找空口令;用 awk -F: '($3==0)' /etc/passwd 确认 UID=0 的只有 root
- 设强策略:编辑 /etc/login.defs,至少配置 PASS_MAX_DAYS 90、PASS_MIN_LEN 12、PASS_WARN_AGE 7;再通过 /etc/security/pwquality.conf 加入 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1,强制大小写+数字+特殊字符
- 防暴力爆破:在 /etc/pam.d/system-auth 中添加 auth [default=die] pam_faillock.so preauth silent deny=5 unlock_time=900,输错5次锁9分钟
SSH服务:远程登录的唯一正门必须上三把锁
绝大多数入侵始于 SSH,它不能只靠改端口应付:
- 禁 root 登录:修改 /etc/ssh/sshd_config,设 PermitRootLogin no
- 禁密码登录:设 PasswordAuthentication no、PubkeyAuthentication yes,并确保密钥权限为 600
- 改端口+限IP(可选但推荐):设 Port 2222,再配合防火墙仅放行运维IP段,例如 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="2222" protocol="tcp" accept'
- 重启生效:systemctl restart sshd
服务与端口:关掉所有不亮的灯
每个监听端口都是潜在后门,宁可少开,不可多留:
- 查当前监听:ss -tuln 或 netstat -tuln,重点关注非业务必需端口(如 21/ftp、23/telnet、111/rpcbind、2049/nfs)
- 停并禁用服务:systemctl stop rpcbind && systemctl disable rpcbind;对旧系统用 chkconfig rpcbind off
- 检查 xinetd/inetd:编辑 /etc/xinetd.d/* 或 /etc/inetd.conf,注释掉不用服务
- 确认启动项干净:systemctl list-unit-files --state=enabled | grep -E "(ftp|telnet|nfs|rsh)"
权限与审计:让系统自己盯紧自己
权限失控和日志缺失等于给攻击者发通行证:
- 限制 sudo 权限:用 visudo 编辑,避免 %wheel ALL=(ALL) NOPASSWD:ALL 这类宽泛授权,改为 adminuser ALL=(root) /usr/bin/systemctl restart nginx, /usr/bin/journalctl 等精确命令
- 规范文件权限:对敏感文件执行 chmod 600 /etc/shadow、chmod 644 /etc/passwd;设默认 umask 为 027(在 /etc/bashrc 或 /etc/profile 中加 umask 027)
- 启用审计:启动 auditd 服务,往 /etc/audit/rules.d/local.rules 加规则,例如 -w /etc/passwd -p wa -k identity,监控关键文件变更
- 装 AIDE 做完整性校验:yum install aide && aide --init && cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz,之后定期 aide --check
基本上就这些。不需要一步到位,建议按顺序逐项验证——先清账号、再锁 SSH、接着关服务、最后配审计。每次改完都用 ss -tuln 和 lastb 快速复核,比盲目堆命令更可靠。








