🛡️ 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负责“拦截”
扫码访问小程序中的本文

© 版权声明
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,不得用于商业用途,请遵循相关法律法规。请勿传播使用转载,若由于商用引起版权纠纷,一切责任均由使用者承担。如若本站内容侵犯了原著者的合法权益,联系我们进行处理邮箱∶1058824498@qq.com
THE END











暂无评论内容