هل تستضيف تطبيقاتك ذاتياً باستخدام Coolify وTraefik v3، وتريد حماية المواقع من الروبوتات الضارة وإساءة الاستخدام والهجمات؟ يشرح هذا الدليل الطريقة الأبسط لتثبيت CrowdSec على Coolify وربطه بـTraefik v3 عبر CrowdSec bouncer plugin.
يناسب هذا الإعداد من يستضيف عدة مواقع باستخدام Docker وTraefik على خادم Coolify.
ملاحظة: يحمي هذا الإعداد مواقع الويب فقط، ولا يعمل كجدار حماية شامل للخادم أو SSH أو بقية المنافذ. للحماية الكاملة، استخدم دليل تأمين Coolify باستخدام CrowdSec وnftables وTraefik.
ما هو CrowdSec؟
CrowdSec محرك أمان مجاني ومفتوح المصدر يحلل السجلات، ويرصد عناوين IP الضارة ويحظرها، ويستفيد من معلومات التهديدات التي يشاركها المجتمع. يشبه Fail2Ban في الفكرة، لكنه يضيف تحليلاً تعاونياً أوسع.
المتطلبات
- نسخة Coolify ذاتية الاستضافة على خادم Linux.
- Traefik v3 بوصفه reverse proxy، وهو مثبت مع Coolify.
- Docker وDocker Compose.
- صلاحيات root أو sudo.
الخطوة الأولى: نشر CrowdSec باستخدام Docker Compose
أنشئ حاوية CrowdSec واربطها بشبكة Coolify:
version: '3.8'
services:
crowdsec:
image: 'crowdsecurity/crowdsec:latest'
container_name: crowdsec
expose:
- "8080"
environment:
GID: '${GID-1000}'
COLLECTIONS: 'crowdsecurity/linux crowdsecurity/traefik'
volumes:
- 'crowdsec-db:/var/lib/crowdsec/data'
- './crowdsec/config:/etc/crowdsec/'
- './crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml'
- '/data/coolify/proxy:/traefik'
networks:
- coolify
security_opt:
- 'no-new-privileges:true'
restart: unless-stopped
volumes:
crowdsec-db: null
networks:
coolify:
external: true
يجب أن يحتوي /etc/crowdsec/acquis.yaml على:
filenames:
- /traefik/access.log
labels:
type: traefik
الخطوة الثانية: إعداد Traefik
أضف الخيارات التالية ضمن command في ملف docker-compose.yml الخاص بـTraefik.
إضافة CrowdSec Traefik plugin:
- '--experimental.plugins.crowdsec-bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin'
- '--experimental.plugins.crowdsec-bouncer.version=v1.2.1'
تفعيل سجل الوصول وحفظه في ملف:
- '--accesslog=true'
- '--accesslog.filepath=/traefik/access.log'
ولمتابعة سجلات Traefik مباشرةً قد تحتاج أيضاً إلى:
- '--accesslog=true'
تطبيق CrowdSec middleware على جميع المواقع:
- '--entrypoints.http.http.middlewares=crowdsec@file'
- '--entrypoints.https.http.middlewares=crowdsec@file'
تطبق هذه الخطوة الحماية على كل المواقع من دون إضافة labels إلى كل تطبيق.
الخطوة الثالثة: إنشاء CrowdSec middleware
أنشئ الملف /data/coolify/proxy/dynamic/crowdsec-plugin.yaml:
http:
middlewares:
crowdsec:
plugin:
crowdsec-bouncer:
crowdsecMode: live
crowdsecLapiHost: 'crowdsec:8080'
crowdsecLapiKey: your_lapi_key_here
enabled: true
أنشئ مفتاح LAPI من داخل الحاوية:
docker exec -it crowdsec cscli bouncers add traefik-bouncer
الخطوة الرابعة: حماية جميع مواقع Coolify تلقائياً
أصبح CrowdSec مطبقاً عبر middleware موحداً، ولا تحتاج إلى إضافة labels لكل موقع.
يمكنك اختيارياً استخدام router على نمط
HostRegexp('.+')إذا أردت تصفية إضافية أو حظر مسارات محددة.
اختبر الحظر بإضافة قرار لعنوان IP:
docker exec -it crowdsec cscli decisions add -i 1.2.3.4 -d 30m
ولإلغاء الحظر:
docker exec -it crowdsec cscli decisions delete -i YOUR.IP.ADDRESS
أصبحت مواقعك الآن محمية بطبقة CrowdSec موحدة.
هل ما زلت تحتاج إلى Fail2Ban؟ يتعامل هذا الإعداد مع الهجمات المرتبطة بالويب. لحماية SSH يمكنك استخدام Fail2Ban مع Coolify، أو إعداد CrowdSec شاملاً مع SSH وnftables.
الخلاصة
يضيف هذا الإعداد طبقة حماية إلى جميع المواقع المستضافة على Coolify، ويساعد على التعامل مع:
- فحص صفحات إدارة WordPress وغيرها.
- البحث عن الملفات الحساسة.
- الهجمات المرتبطة بثغرات CVE.
- محاولات XSS وSQLi وغيرها.
وتُطبق الحماية عالمياً من دون إعداد كل موقع على حدة.
إذا أردت حماية الخادم بالكامل بما في ذلك SSH والخدمات غير المرتبطة بـHTTP، انتقل إلى تأمين خادم Coolify ومواقعه باستخدام CrowdSec وnftables وTraefik.
هل تحتاج إلى مساعدة؟
أقدم خدمات إعداد ومراجعة تشمل CrowdSec وFail2Ban، وتحسين Traefik، وتأمين Coolify، وضبط الأداء والمراقبة.
تواصل معي لمراجعة إعدادك الحالي أو تأمين خادمك.
