UFW、Fail2ban、sysctl调优与AIDE共同构成Ubuntu系统四层安全防护:启用UFW设默认拒绝入站;Fail2ban监控SSH日志自动封禁恶意IP;sysctl强化内核网络防护;AIDE定期校验文件完整性。

启用并配置UFW简化防火墙管理
Ubuntu及多数Debian系系统默认集成UFW(Uncomplicated Firewall),它是iptables的易用前端,适合快速建立基础网络防护。启用前先检查状态:sudo ufw status verbose。若未启用,执行sudo ufw enable;默认策略建议设为拒绝入站、允许出站:sudo ufw default deny incoming 和 sudo ufw default allow outgoing。
常见服务需显式放行:SSH端口(如22)必须保留,否则可能锁死远程连接:sudo ufw allow 22/tcp;Web服务可开放80/443:sudo ufw allow 'Nginx Full' 或 sudo ufw allow 443/tcp。限制特定IP访问SSH能显著降低暴力破解风险:sudo ufw allow from 192.168.1.100 to any port 22。
部署Fail2ban阻断暴力登录尝试
Fail2ban通过实时分析日志(如/var/log/auth.log)识别异常登录行为,自动将恶意IP加入iptables或UFW黑名单。安装后启用服务:sudo apt install fail2ban && sudo systemctl enable fail2ban && sudo systemctl start fail2ban。
关键配置在/etc/fail2ban/jail.local(优先于jail.conf)中调整:
- ban时间与重试阈值:将bantime = 3600(封禁1小时)、maxretry = 3(3次失败即封)设为合理起点
- 监控目标:确保sshd jail启用(enabled = true),并确认logpath指向正确的SSH日志路径
- 白名单保护:添加可信IP避免误封,例如ignoreip = 127.0.0.1/8 192.168.0.0/16
配置完成后重启服务:sudo systemctl restart fail2ban,用sudo fail2ban-client status sshd验证运行状态。
启用内核级防护:sysctl安全参数调优
Linux内核自带多项网络层防护能力,通过/etc/sysctl.conf或/etc/sysctl.d/99-security.conf持久化启用:
- 防范IP欺骗:开启反向路径过滤net.ipv4.conf.all.rp_filter=1,丢弃源地址不可信的数据包
- 抑制ICMP响应:关闭响应ping请求可减少主机暴露面net.ipv4.icmp_echo_ignore_all=1(生产环境慎用,调试时可临时关闭)
- 防止SYN洪泛:启用SYN Cookie机制net.ipv4.tcp_syncookies=1,缓解DDoS攻击影响
- 隐藏内核版本信息:设置net.ipv4.conf.all.hide_pid=2限制/proc下进程可见性,降低信息泄露风险
修改后执行sudo sysctl -p立即生效,并建议用sudo sysctl -a | grep "rp_filter\|syncookies"确认参数已加载。
轻量级入侵检测:使用AIDE进行文件完整性校验
AIDE(Advanced Intrusion Detection Environment)通过哈希比对关键系统文件(如/bin/bash、/etc/passwd)判断是否被篡改,适用于无专职IDS设备的中小环境。
安装后初始化数据库:sudo apt install aide && sudo aide --init,生成的数据库默认位于/var/lib/aide/aide.db.new.gz。将其重命名为生效库:sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz。
日常巡检只需执行sudo aide --check,输出差异即为可疑变更。建议结合cron每日自动扫描并邮件通知:
- 编辑定时任务:sudo crontab -e
- 添加行:0 3 * * * /usr/bin/aide --check | /usr/bin/mail -s "AIDE Report $(date)" admin@example.com
首次运行前确保排除临时文件和日志目录(在/etc/aide/aide.conf中配置!/var/log/.*等规则),避免误报干扰。










