Linux系统加固围绕“最小权限、及时更新、有效监控”三大原则,通过精简服务、强化防火墙与sudo审计、文件完整性校验及禁用危险内核参数等措施实现高效安全管控。

Linux系统加固不是堆砌安全工具,而是围绕“最小权限、及时更新、有效监控”三个核心做减法和管控。以下技巧兼顾实操性和日常效率,避免过度配置拖慢运维节奏。
精简开机服务,关掉不用的监听端口
很多漏洞源于默认开启但实际不用的服务(如telnet、rpcbind、avahi-daemon)。用systemctl list-unit-files --type=service --state=enabled快速查看所有开机自启服务,再结合ss -tuln确认哪些端口真正在监听。
- 停用并禁用无用服务:systemctl stop avahi-daemon && systemctl disable avahi-daemon
- 对不确定的服务,先mask(如systemctl mask rpcbind),避免被其他服务意外拉起
- 防火墙策略优先用ufw简化管理:ufw default deny incoming,再按需ufw allow 22/tcp
限制root权限,强制使用sudo+审计日志
禁止root远程登录、禁用root密码、所有提权操作走sudo——这是最基础也最关键的防线。同时确保命令执行可追溯。
- 编辑/etc/ssh/sshd_config,设PermitRootLogin no,重启sshd
- 运行sudo passwd -l root锁定root密码
- 在/etc/sudoers中启用日志:Defaults logfile="/var/log/sudo.log",配合sudo tail -f /var/log/sudo.log实时观察提权行为
定期校验关键文件完整性
入侵后常被篡改的是/etc/passwd、/etc/shadow、/bin/ls等系统文件。用轻量工具aide即可完成本地基线比对。
- 安装后初始化数据库:aide --init && cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
- 每周定时检查:0 3 * * 1 /usr/bin/aide --check | mail -s "AIDE Report" admin@local
- 把aide.db.gz备份到离线介质或只读挂载点,防止被攻击者删除或覆盖
关闭危险内核参数,防范常见提权利用
某些内核特性(如user namespaces、BPF JIT)在旧版本中存在稳定提权路径。非必要不开启,尤其在生产服务器上。
- 禁用user namespaces(容器环境除外):echo 'kernel.unprivileged_userns_clone=0' > /etc/sysctl.d/99-disable-userns.conf
- 关闭BPF JIT编译器:echo 'net.core.bpf_jit_enable=0' >> /etc/sysctl.d/99-disable-bpf-jit.conf
- 加载新配置:sysctl --system,并验证:sysctl kernel.unprivileged_userns_clone
基本上就这些。加固不是一步到位,而是持续做减法、加监控、留痕迹。每次变更前备份配置,每次检查后记录结果,效率自然就上来了。










