最近网站老是被攻击 自己通过AI搞了一套开源的安全加固系统 CrowdSec + iptables 完整安装手册(Docker版)

 

🛡️ CrowdSec + iptables 自动防护完整手册(Docker版)


🎯 一、最终效果(你要达到的)

自动分析日志 → 自动识别攻击 → 自动封IP → 防火墙直接拦截

👉 简单理解就是:

  • 有人攻击你的网站

  • 系统自动识别

  • 自动加入黑名单

  • 服务器直接拒绝访问

无需人工干预 = 全自动防护


🧠 二、架构说明(必须理解)

CrowdSec(Docker) = 分析日志(大脑)
↓
Firewall Bouncer(宿主机) = 执行封禁(指挥官)
↓
iptables + ipset = 真正拦截(保安)

👉 核心逻辑:

  • CrowdSec 不拦人,只“判断谁是坏人”

  • 真正拦截的是 iptables


🚀 三、安装步骤(一步一步来)


🔥 第一步:安装 Docker(如果没装)

yum install -y docker
systemctl enable docker
systemctl start docker

🔥 第二步:拉取 CrowdSec

docker pull crowdsecurity/crowdsec

🔥 第三步:创建数据目录(重要)

mkdir -p /etc/crowdsec
mkdir -p /var/lib/crowdsec/data

🔥 第四步:启动 CrowdSec(核心)

docker run -d \
--name crowdsec \
-v /etc/crowdsec:/etc/crowdsec \
-v /var/lib/crowdsec/data:/var/lib/crowdsec/data \
-v /var/log:/var/log \
-p 8080:8080 \
--restart=always \
crowdsecurity/crowdsec

🧠 说明(必须理解)

✔ /var/log → 用来读取 nginx / 系统日志
✔ data → 保存封禁记录(否则重启丢数据)

🔥 第五步:注册 CAPI(全球黑名单)

docker exec -it crowdsec cscli capi register

👉 成功后:

✔ 自动同步全球攻击IP
✔ 不用等攻击你,直接提前封

🔥 第六步:安装规则(非常重要)

docker exec -it crowdsec cscli collections install crowdsecurity/nginx
docker exec -it crowdsec cscli collections install crowdsecurity/base-http-scenarios

👉 作用:

✔ 防扫描
✔ 防爆破
✔ 防漏洞攻击

🔥 第七步:安装 Firewall Bouncer(宿主机)

yum install -y crowdsec-firewall-bouncer-iptables

🔥 第八步:生成 API Key

docker exec -it crowdsec cscli bouncers add firewall-bouncer

👉 保存输出的 key


🔥 第九步:配置 bouncer

vim /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
api_url: http://127.0.0.1:8080/
api_key: 你的key
mode: ipset
update_frequency: 10s

🔥 第十步:启动 bouncer

systemctl enable crowdsec-firewall-bouncer
systemctl start crowdsec-firewall-bouncer

🧪 四、验证是否成功(必须做)


✔ 查看封禁IP

docker exec -it crowdsec cscli decisions list

✔ 查看 ipset

ipset list

✔ 查看防火墙拦截

iptables -L -n -v | grep crowdsec

👉 正常应该看到:

DROP packets > 0

✔ 手动测试封IP

docker exec -it crowdsec cscli decisions add --ip 1.2.3.4
ipset list | grep 1.2.3.4

👉 有 = 成功 ✅


🔥 五、可选:WordPress防护

docker exec -it crowdsec cscli bouncers add wp-bouncer

👉 填入 WordPress 插件


⚠️ 六、常见坑(非常重要)


❌ Docker里直接用 ipset

错误 ❌

👉 正确:

✔ 必须由宿主机 bouncer 操作

❌ 没挂载 data

重启数据丢失 ❌

❌ 没安装规则

只记录,不封IP ❌

❌ bouncer没启动

有封禁但不生效 ❌

🧾 七、日常运维命令大全


🎯 1️⃣ 查看黑名单

docker exec -it crowdsec cscli decisions list

🔍 查某个IP

docker exec -it crowdsec cscli decisions list | grep 1.2.3.4

🚫 2️⃣ 解封IP

docker exec -it crowdsec cscli decisions delete --ip 1.2.3.4

❗ 清空全部(慎用)

docker exec -it crowdsec cscli decisions delete --all

🧠 3️⃣ 查看攻击记录

docker exec -it crowdsec cscli alerts list

👉 区别:

alerts = 检测到攻击
decisions = 已封IP

📊 4️⃣ 查看运行状态

docker exec -it crowdsec cscli metrics

👉 可以看到:

  • 日志是否读取

  • 哪些规则在触发

  • 是否在拦截


🔥 5️⃣ 查看拦截情况(最重要)

iptables -L -n -v | grep crowdsec

👉 看:

packets / bytes(是否在增长)

✔ 查看 ipset 黑名单

ipset list

✔ 查看某IP是否被封

ipset list | grep 1.2.3.4

🧪 六、测试命令(常用)


✔ 手动封IP

docker exec -it crowdsec cscli decisions add --ip 1.2.3.4

✔ 验证是否生效

ipset list | grep 1.2.3.4

⚙️ 七、规则管理(进阶)


查看规则

docker exec -it crowdsec cscli scenarios list

查看规则详情

docker exec -it crowdsec cscli scenarios inspect crowdsecurity/http-probing

查看规则包

docker exec -it crowdsec cscli collections list

🧾 八、日志排查


CrowdSec 日志

docker logs -f crowdsec

bouncer 日志

journalctl -u crowdsec-firewall-bouncer -f

🧠 九、最常用5个命令(记住这几个就够)

# 看封禁
cscli decisions list

# 解封
cscli decisions delete --ip IP

# 看攻击
cscli alerts list

# 看状态
cscli metrics

# 看是否拦截
iptables -L -n -v | grep crowdsec

👉 Docker记得加:

docker exec -it crowdsec

🧾 最终总结(核心理解)

封不封看 decisions
有没有攻击看 alerts
有没有生效看 iptables
系统状态看 metrics

🔥 最后一行总结(精华)

CrowdSec负责“判断”
Bouncer负责“执行”
iptables负责“拦截”

 

扫码访问小程序中的本文

微信小程序二维码
最近网站老是被攻击 自己通过AI搞了一套开源的安全加固系统 CrowdSec + iptables 完整安装手册(Docker版)-与其焦虑,不如其说。欢迎来到 AI 时代的超级个体实验场。月其说
最近网站老是被攻击 自己通过AI搞了一套开源的安全加固系统 CrowdSec + iptables 完整安装手册(Docker版)
此内容为免费阅读,请登录后查看
R币0
免费阅读
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容