Ubuntu Exploit 防范最佳实践指南
面向Ubuntu 20.04/22.04/24.04 LTS,以下清单覆盖从预防—检测—响应的全流程,兼顾服务器与桌面环境,强调可执行性与可审计性。
预防加固基线
- 系统与补丁
- 保持系统与软件包为最新:执行sudo apt update && sudo apt full-upgrade;按需重启。
- 启用自动安全更新:安装并配置unattended-upgrades,仅自动安装安全更新,可设置自动重启与定时重启(如03:00),并启用邮件告警与清理无用依赖/旧内核。
- 防火墙与网络
- 启用UFW:默认拒绝入站、允许出站;仅放行必要端口(如22/80/443或自定义 SSH 端口)。
- 可选:加固内核网络参数(示例:net.ipv4.conf.all.rp_filter=1、accept_source_route=0),降低欺骗与源路由风险。
- 身份与远程访问
- 创建非 root 管理员,通过sudo授权;禁用root 登录与密码认证,仅使用SSH 密钥;按需更改默认 SSH 端口并限制可登录用户(如AllowUsers)。
- 服务最小化与权限控制
- 停止并禁用不必要的服务/端口;服务尽量以最小权限用户运行;审查sudoers规则,避免NOPASSWD滥用。
- 应用与源可信
- 仅从官方仓库/可信 PPA安装软件;避免执行来历不明的脚本/二进制;桌面端浏览器启用脚本与扩展最小权限(如 NoScript/AdBlock)降低Web 攻击面。
- 完整性校验
- 部署文件完整性监控(如 AIDE),对**/etc、/usr/bin、/boot**等关键路径做基线校验与周期性比对。
检测与监控
- 日志集中与审计
- 重点审计**/var/log/auth.log**(SSH 登录)、/var/log/syslog;配置rsyslog集中与保留策略;使用Logwatch生成日报。
- 入侵防护与暴力破解阻断
- 部署fail2ban,对SSH等高频暴力路径自动封禁;结合UFW动态封禁策略。
- 主机加固与异常行为限制
- 启用并调优AppArmor(Ubuntu 默认 MAC 框架),为sshd、nginx、docker等常见服务加载profile,对异常访问进行拒绝并记录。
- 恶意软件与后门巡检
- 定期运行ClamAV(侧重邮件/共享目录场景)、rkhunter、Lynis进行后门与配置弱点巡检;对可疑文件做隔离与取证。
- 漏洞扫描与合规核查
- 使用OpenVAS/Nessus进行周期性漏洞扫描;对高风险项建立修复 SLA与复核流程。
事件响应流程
- 快速隔离
- 立即断网/隔离受影响主机,防止横向移动;保留现场(内存/磁盘)用于取证。
- 初步研判
- 复核auth.log、syslog与fail2ban日志,定位入侵时间线、来源 IP、利用向量与受影响账户/服务。
- 遏制与修复
- 先行撤销可疑 SSH 密钥、重置高价值账户口令;临时封禁端口/来源;尽快应用安全补丁或回滚至干净快照。
- 恢复与验证
- 从未受感染的备份恢复;启动完整性校验与基线比对;在隔离环境进行恶意样本分析。
- 通报与复盘
- 按合规要求通知相关方;输出事件报告(成因、影响、处置、改进);完善监控告警与防护策略。
关键加固清单与命令示例
| 目标 |
关键动作 |
命令/配置示例 |
| 自动安全更新 |
安装并启用 unattended-upgrades |
apt install unattended-upgrades update-notifier-common;编辑**/etc/apt/apt.conf.d/50unattended-upgrades启用安全源、邮件告警、自动清理与Automatic-Reboot “true”;执行dpkg-reconfigure -plow unattended-upgrades** |
| 防火墙最小化 |
仅放行必要端口 |
ufw default deny incoming;ufw default allow outgoing;ufw allow 22/tcp(或自定义端口);ufw enable |
| SSH 加固 |
禁用 root 与密码,仅密钥登录,限制用户 |
/etc/ssh/sshd_config:PermitRootLogin no、PasswordAuthentication no、Protocol 2、AllowUsers youruser;必要时Port 2222;systemctl restart ssh |
| 服务最小化 |
关闭不需要的服务 |
systemctl disable --now telnet.socket |
| 权限最小化 |
服务以非 root 运行 |
systemctl edit --full nginx.service → 设置User=www-data、Group=www-data |
| 完整性监控 |
建立 AIDE 基线并周期校验 |
aideinit;aide --check(建议每日/每周) |
| 入侵防护 |
阻断暴力破解 |
apt install fail2ban;配置 jail.local 针对 sshd |
| 恶意软件巡检 |
定期查杀与基线巡检 |
freshclam && clamscan -r /home;rkhunter --check;lynis audit system |
进阶加固与注意事项
- 内核与提权面治理
- 及时升级内核与相关包;定期审计SUID/SGID文件(find / -perm -4000 -type f 2>/dev/null);审查sudoers与计划任务(/etc/crontab、/etc/cron.*、systemd timers);对NFS等共享服务启用root_squash,避免no_root_squash导致提权。
- 安全开发生命周期
- 对自研/第三方应用执行依赖漏洞扫描(如 OSV/Dependabot)、SAST/DAST与容器镜像安全扫描;上线前进行最小权限与最小容器配置。
- 备份与演练
- 实施3-2-1 备份策略(3 份副本、2 种介质、1 份异地/离线);定期恢复演练与攻防演练验证告警、隔离与恢复有效性。
- 合规与策略
- 依据等保 2.0/ISO 27001等要求,完善变更管理、最小权限、日志留存、资产台账与供应商管理;对高危漏洞设定明确修复时限与应急开关。