Ubuntu Exploit:如何加强系统防护
小樊
43
2025-12-24 01:12:43
Ubuntu 安全加固清单与实践
一 基础与系统更新
- 保持系统与软件包为最新,及时修补漏洞:执行sudo apt update && sudo apt upgrade -y,必要时执行sudo apt dist-upgrade。
- 启用自动安全更新,减少暴露窗口:安装并配置unattended-upgrades,编辑**/etc/apt/apt.conf.d/50unattended-upgrades**,仅勾选security源;按需开启邮件告警、自动删除无用依赖与内核、以及Automatic-Reboot(如设置在03:00自动重启)。
- 最小化安装与定期清理:仅安装必要软件,定期apt autoremove,清理不再使用的账户与服务。
二 身份与访问控制
- 创建专用管理员并授予sudo,禁止直接使用root远程登录:
- 新建用户:sudo adduser myadmin
- 加入 sudo 组:sudo usermod -aG sudo myadmin
- 强化 SSH:
- 编辑**/etc/ssh/sshd_config**:设置PermitRootLogin no、PasswordAuthentication no、使用Protocol 2、可选更改端口(如Port 2222)、限制可登录用户(如AllowUsers myadmin)。
- 重启服务:sudo systemctl restart sshd。
- 精细化访问控制:
- 防火墙层面限制来源 IP(示例):sudo ufw allow from 192.168.1.0/24 to any port 22。
- 服务层面按 IP 限制(如 Nginx):在 server 块中使用allow/deny指令。
三 网络与防火墙
- 启用 UFW 并设置默认策略:
- 默认拒绝入站、允许出站:sudo ufw default deny incoming && sudo ufw default allow outgoing
- 按需放行:sudo ufw allow OpenSSH(或明确放行22/tcp),以及80/tcp、443/tcp;查看状态:sudo ufw status。
- 防止 SSH 暴力破解:使用 UFW 的速率限制(示例):sudo ufw limit ssh(默认每分钟最多6次连接尝试)。
- 进阶场景可使用 iptables 实现更细粒度规则与持久化保存。
四 服务、内核与强制访问控制
- 服务最小权限与隔离:
- 将服务以非 root 运行:在单元文件中设置User=、Group=;
- 禁用不必要的服务与端口,减少攻击面。
- 内核与网络防护:在**/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。
- 强制访问控制(MAC):
- AppArmor 预装可用,启用并检查状态:sudo systemctl enable --now apparmor && sudo apparmor_status;按需为关键应用创建/调整策略(如aa-enforce/aa-complain)。
- 如确有需求再考虑 SELinux,Ubuntu 默认使用 AppArmor。
五 入侵检测、日志与备份
- 入侵防护:部署 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。
- 日志与审计:
- 实时监控认证日志:sudo tail -f /var/log/auth.log;
- 使用 Logwatch 定期汇总日志;
- 按需进行漏洞扫描(如OpenVAS、Nessus、nmap)。
- 恶意代码防护:安装 ClamAV 并更新病毒库,定期扫描。
- 备份与恢复:制定3-2-1备份策略(3 份副本、2 种介质、1 份异地/离线),定期演练恢复流程。
安全提示
- 任何远程变更都存在锁死风险。请在可控制台访问的环境下操作,先小范围验证,再推广到生产。
- 修改 SSH 端口或禁用密码登录前,务必确保密钥登录已可用,并保留至少一条可用的回退通道。