海量编程文章、技术教程与实战案例

网站首页 > 技术文章 正文

打造基于 Linux 的自适应入侵防御系统(AIDE + Fail2Ban + iptables )

yimeika 2025-05-26 02:01:40 技术文章 13 ℃

在日益复杂的网络环境中,仅依赖传统的防火墙或杀毒软件已远远不够。本文将手把手教你如何基于 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 安全演练。

Tags:

最近发表
标签列表