在日益复杂的网络环境中,仅依赖传统的防火墙或杀毒软件已远远不够。本文将手把手教你如何基于 Linux 平台,从零构建一个具备文件完整性监控 + SSH 防暴力破解 + 入侵阻断联动能力的自适应入侵防御系统(AIDE + Fail2Ban + iptables),实现“事前预警、事中阻断、事后追溯”的完整防御闭环。
二、系统架构图
+----------------+ +-----------------+ +-----------------+
| AIDE | | Fail2Ban | | iptables |
|(完整性检测系统)| <---> |(异常行为拦截) | <---> |(动态封禁 IP) |
+----------------+ +-----------------+ +-----------------+
三、安装与部署
1. 安装 AIDE(Advanced Intrusion Detection Environment)
sudo apt update && sudo apt install aide -y
初始化数据库:
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
设置定时检查任务:
echo "0 3 * * * root /usr/bin/aide.wrapper --check" | sudo tee -a /etc/crontab
2. 安装 Fail2Ban
sudo apt install fail2ban -y
编辑 SSH 防护规则:
sudo tee /etc/fail2ban/jail.local > /dev/null <<EOF
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 3
bantime = 1h
EOF
重启服务:
sudo systemctl restart fail2ban
3. 启用 iptables 自动封禁策略(联动)
在 Fail2Ban 中添加 iptables 操作:
sudo fail2ban-client set sshd addignoreip 192.168.1.0/24
查看已封禁 IP:
sudo iptables -L -n
四、自定义实战脚本(邮件告警 + 本地日志记录)
创建一个自动触发告警脚本
/usr/local/bin/aide-check.sh:
#!/bin/bash
LOG="/var/log/aide-check.log"
DATE=$(date +%Y-%m-%d-%H:%M:%S)
if aide.wrapper --check | grep -q 'Changed files'; then
echo "$DATE - AIDE 检测到变更" >> $LOG
mail -s "AIDE Alert - Linux 主机有异常变更" your_email@example.com < $LOG
fi
添加至每日 cron:
echo "0 2 * * * root /usr/local/bin/aide-check.sh" | sudo tee -a /etc/crontab
五、实战测试:模拟攻击 + 封禁验证
1. 模拟 SSH 暴力破解:
for i in {1..5}; do ssh wronguser@your_ip; done
2. 查看封禁记录:
sudo fail2ban-client status sshd
六、总结
通过整合 AIDE、Fail2Ban、iptables,我们实现了一个具备自我感知、防御与告警能力的入侵检测与防护系统,适用于中小企业服务器、云主机安全加固、或居家 Linux 安全演练。