Ubuntu系统如何进行安全加固
小樊
43
2025-12-15 23:47:09
Ubuntu 安全加固实操清单
一 基础与账户安全
- 保持系统与软件为最新:执行sudo apt update && sudo apt upgrade -y,及时修补漏洞。
- 创建专用管理员并禁用 root 远程登录:
- 新建用户:sudo adduser myadmin
- 赋权:sudo usermod -aG sudo myadmin
- 编辑 /etc/ssh/sshd_config:设置PermitRootLogin no,必要时用AllowUsers myadmin仅允许指定用户 SSH 登录,重启 SSH 生效。
- 强化本地账户与登录安全:
- 清理不再使用的系统账号与密钥;
- 强制使用强密码策略并定期更换;
- 配置命令历史记录与自动注销(如限制 HISTSIZE、TMOUT),降低会话劫持与信息泄露风险。
二 网络与防火墙
- 启用并配置 UFW:
- 启用:sudo ufw enable;默认策略建议默认拒绝入站、允许出站;
- 按需放行:sudo ufw allow OpenSSH(或指定端口/协议,如 80/tcp、443/tcp),可用sudo ufw status numbered查看与删除规则。
- 进阶用 iptables 实现细粒度控制(示例):
- 放行 SSH、HTTP、HTTPS:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT;80、443 同理;
- 允许回环:sudo iptables -A INPUT -i lo -j ACCEPT;
- 默认丢弃其他入站:sudo iptables -A INPUT -j DROP;
- 持久化规则(Debian/Ubuntu 常见做法):sudo netfilter-persistent save。
- 加固 SSH 访问:
- 使用密钥认证替代密码,禁用密码登录(PasswordAuthentication no);
- 可更改默认端口(如 Port 2222)并限制来源 IP(UFW:sudo ufw allow from 192.168.1.0/24 to any port 22)。
三 服务、权限与内核防护
- 最小化服务面:禁用不需要的服务(如 sudo systemctl disable unnecessary_service),减少攻击面。
- 以最小权限运行服务:在单元文件或 override 中设置User=、**Group=**为非 root,避免以高权限启动。
- 强制访问控制(MAC):启用并维持 AppArmor 的默认配置与已启用 profiles(如 sudo aa-enable /etc/apparmor.d/usr.sbin.sshd),必要时为关键服务补充策略。
- 内核与网络防护参数(/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。
四 更新、日志、备份与审计
- 自动安全更新:安装并启用 unattended-upgrades,编辑 /etc/apt/apt.conf.d/50unattended-upgrades,仅选择安全更新自动安装,缩短暴露窗口。
- 日志与审计:
- 集中查看认证与系统日志:sudo tail -f /var/log/auth.log、/var/log/syslog;
- 部署 Logwatch 等工具进行定期日志分析与告警。
- 备份策略:定期备份关键数据与配置,采用增量/异地/离线手段,并定期演练恢复流程。
- 恶意代码与合规扫描:
- 部署 ClamAV 并定期更新病毒库,用于邮件/文件扫描;
- 使用 OpenVAS、Nessus 等定期做漏洞扫描与基线核查。
五 操作顺序与注意事项
- 变更顺序建议:先准备控制台/带外访问 → 创建非 root 管理员并赋权 → 配置 UFW/iptables → 调整 SSH(密钥、禁用 root、可选改端口) → 启用 AppArmor → 打开自动安全更新 → 配置日志与备份 → 进行基线扫描与复测。
- 风险提示:修改 SSH 与防火墙规则前务必保留当前会话或准备控制台;错误的默认策略或 SSH 配置可能导致无法远程登录。生产环境建议先在测试环境验证并按需分阶段上线。