如何加强Ubuntu系统的安全性以防止Exploit
小樊
38
2025-12-12 05:37:52
Ubuntu 系统防 Exploit 加固清单
一 基础与补丁管理
- 使用受支持的 Ubuntu LTS 版本(如 22.04 LTS、24.04 LTS);若短期内无法升级,可订阅 Ubuntu Pro 延长安全维护周期。
- 启用自动安全更新:安装并配置 unattended-upgrades,确保仅自动安装安全仓库更新。
- 保留手动核查流程:定期执行更新、清理无用包,降低风险暴露时间。
- 快速命令示例:
- 安装与启用自动更新:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
- 配置仅安全源(/etc/apt/apt.conf.d/50unattended-upgrades):确保包含
Unattended-Upgrade::Allowed-Origins { “${distro_id}:${distro_codename}-security”; };
- 每日检查与安装(/etc/apt/apt.conf.d/20auto-upgrades):
APT::Periodic::Update-Package-Lists “1”;
APT::Periodic::Unattended-Upgrade “1”;
- 手动更新与清理:
sudo apt update && sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove
- 验证自动更新日志:cat /var/log/unattended-upgrades/unattended-upgrades.log
二 网络与边界防护
- 使用 UFW 实施最小暴露面:默认拒绝入站、放行必要出站,仅开放 SSH/HTTP/HTTPS 等必需端口。
- 对 SSH 实施连接速率限制,缓解暴力破解。
- 快速命令示例:
- 初始化与放行:
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
- 速率限制(对默认 SSH 端口):sudo ufw limit ssh
- 如更改 SSH 端口(例如 2222),请同步放行:sudo ufw allow 2222/tcp
三 身份与远程访问安全
- 禁用 root 远程登录,使用普通用户 + sudo 执行特权操作。
- 强制使用 SSH 密钥认证,禁用密码登录,显著降低凭证泄露与爆破风险。
- 可结合更改默认端口、限制可登录用户/来源网段,进一步减少噪声攻击。
- 快速配置示例(/etc/ssh/sshd_config):
- PermitRootLogin no
- PasswordAuthentication no
- PubkeyAuthentication yes
- Port 2222(可选)
- AllowUsers youruser(可选,限制可登录用户)
- 修改后重启:sudo systemctl restart sshd
- 注意:调整端口或禁用密码前,务必先完成密钥登录验证并保留一个已验证的控制通道,避免被锁死。
四 进程与内核加固
- 启用并正确使用 AppArmor(Ubuntu 默认内置),为关键服务(如 sshd、nginx、自定义应用)加载或编写策略,限制越权访问。
- 保持系统最小化:卸载不必要的软件包与内核模块,关闭不需要的端口/服务,减少攻击面。
- 快速操作示例:
- 查看与启用 AppArmor:
sudo apparmor_status
sudo systemctl enable --now apparmor
- 按需为应用生成/调整策略:
sudo aa-genprof /path/to/app
sudo aa-enforce /path/to/profile
- 审计与排查:journalctl -xe | grep apparmor
- 说明:Ubuntu 默认使用 AppArmor;如采用 SELinux,需另行安装与配置。
五 监测响应与备份恢复
- 部署 Fail2ban 保护 SSH 等暴露服务,自动封禁反复失败的来源 IP。
- 集中审计关键事件:启用 auditd 记录系统调用与关键操作,便于取证与合规。
- 常态化日志核查:关注认证失败、异常进程、可疑网络连接等迹象。
- 建立离线与加密的 备份 与恢复演练机制,确保被入侵后可快速还原。
- 快速命令示例:
- Fail2ban:
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
在 jail.local 的 [sshd] 段按需设置:enabled = true, port, maxretry, bantime, findtime
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
- 审计:
sudo apt install auditd audispd-plugins
sudo systemctl enable --now auditd
- 日志核查:
sudo journalctl -xe
tail -f /var/log/auth.log
- 备份示例:rsync -avz /data/ user@backup:/backup/
- 事件响应要点:立即隔离受害主机、定位入侵向量(如 /var/log/auth.log)、应用紧急补丁或临时停用受影响服务、从干净备份恢复并复盘改进。