面向 Ubuntu 的 Exploit 防护与系统加固清单
一 基础防护与补丁管理
- 保持系统与软件包为最新:执行sudo apt update && sudo apt upgrade,必要时使用sudo apt dist-upgrade;为关键主机启用无人值守安全更新 unattended-upgrades,仅自动安装安全更新,减少暴露窗口。
- 关注并快速响应**Ubuntu Security Notices(USN)**与相关 CVE,出现高危漏洞时优先评估与回滚窗口,先小流量验证再全网升级。
- 仅安装必要软件,定期清理不再使用的包与仓库,降低攻击面。
二 网络与远程访问加固
- 启用并收紧UFW:默认拒绝入站、放行出站;仅开放业务必需端口(如 SSH 22/自定义端口、80、443),示例:
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
- sudo ufw allow OpenSSH 或 sudo ufw allow 2222/tcp
- 对 SSH 可启用速率限制:sudo ufw limit ssh(每分钟约 6 次尝试后触发限制)
- 强化 SSH:
- 禁用 root 登录:将**/etc/ssh/sshd_config** 中 PermitRootLogin no
- 使用密钥登录并禁用密码认证:PasswordAuthentication no
- 更改默认端口并限制可登录用户/组:Port 2222、AllowUsers/AllowGroups
- 修改后重启 SSH 服务以生效
- 边界与主机加固:仅暴露必要端口;在云环境配合安全组/NACL做最小暴露面。
三 身份鉴别与账户权限
- 禁用 root 远程登录,创建普通管理员账号并加入 sudo,日常以最小权限运维。
- 登录失败锁定:在 /etc/pam.d/common-auth 或 /etc/pam.d/sshd 中加入失败锁定策略,示例:
- auth required pam_faillock.so preauth silent deny=5 unlock_time=600(5 次失败锁定 10 分钟)
- 限制 su 到 root:在 /etc/pam.d/su 增加 auth required pam_wheel.so use_uid 或 group=wheel,仅允许 wheel 组成员切换 root。
- 口令与账号生命周期:设置复杂度策略与定期更换;对关键账号配置密码过期(如 chage -M 90 用户名),避免长期使用同一口令。
四 服务隔离与系统完整性
- 最小权限运行服务:为服务配置专用非 root 用户/组(在 systemd service 中设置 User=、Group=),减少被攻破后的横向权限提升。
- 强制访问控制:启用并管理 AppArmor,为关键应用加载或编写策略,示例:
- 查看状态:sudo apparmor_status
- 生成/强制策略:sudo aa-genprof /path/to/app;sudo aa-enforce /path/to/profile
- 文件与目录权限:收紧敏感文件权限,示例:
- sudo chmod 400 /etc/shadow;sudo chown root:shadow /etc/shadow
- sudo chmod 700 /var/spool/cron;sudo chown root:root /var/spool/cron
- 内核与网络防护:在 /etc/sysctl.conf 中启用安全项并应用:
- net.ipv4.conf.all.rp_filter=1;net.ipv4.conf.default.rp_filter=1
- net.ipv4.conf.all.accept_source_route=0;net.ipv4.conf.default.accept_source_route=0
- 执行:sudo sysctl -p
五 入侵检测、日志审计与应急响应
- 入侵防护:部署 Fail2ban 保护 SSH 等暴露服务,示例(/etc/fail2ban/jail.local):
- [sshd] enabled = true;port = ssh;maxretry = 5;bantime = 3600;findtime = 600
- 重启服务:sudo systemctl restart fail2ban;查看状态:sudo fail2ban-client status sshd
- 日志与审计:集中关注 /var/log/auth.log、/var/log/syslog,使用 Logwatch 或 SIEM 做趋势与告警;定期用 OpenVAS/Nessus 扫描漏洞。
- 恶意代码防护:安装并更新 ClamAV 等反恶意软件工具,定期查杀与基线比对。
- 备份与演练:对关键数据与配置做加密离线/异地备份,定期演练恢复流程。
- 事件响应:一旦怀疑被入侵,立即隔离网络、保留现场并从干净备份恢复;随后进行全面审计与加固,必要时上报相关方。