Bu rehberde Coolify sunucusunu ve üzerinde barındırdığınız tüm web sitelerini CrowdSec ile güvenceye alacağız. CrowdSec’i Ubuntu host’a kuracak, nftables firewall bouncer’ı etkinleştirecek ve Traefik plugin’i ile HTTP/HTTPS trafiğini global olarak koruyacağız.
Yalnızca web sitelerini korumak istiyorsanız Coolify web siteleri için CrowdSec rehberini kullanın. Bu rehber ayrıca SSH ve sistem seviyesindeki saldırıları korur.
Neden CrowdSec firewall?
- CrowdSec Host Agent: SSH ve sistem seviyesini korur.
- nftables Firewall Bouncer: saldırganları ağ seviyesinde engeller.
- Traefik Bouncer Plugin: HTTP/HTTPS uygulama trafiğini korur.
- Global middleware: tüm domain’lere label eklemeden uygulanır.
- Düşük kaynak kullanımı: küçük kaynak maliyetiyle güçlü koruma sağlar.
CrowdSec; logları gerçek zamanlı analiz eden, şüpheli davranışları tespit eden ve topluluk ağıyla tehdit istihbaratı paylaşan açık kaynaklı bir IPS’tir.

1. CrowdSec’i Coolify host’a kurun
curl -s https://install.crowdsec.net | sudo bash
sudo apt install crowdsec
sudo systemctl status crowdsec
8080 portunun boş olduğundan emin olun. Gerekirse /etc/crowdsec/config.yaml içindeki dinleme adresini değiştirin:
sudo nano /etc/crowdsec/config.yaml
sudo systemctl restart crowdsec
listen_uri değerini 127.0.0.1:8080 yerine şu şekilde ayarlayın:
listen_uri: 0.0.0.0:8080
2. nftables firewall bouncer’ı kurun
sudo apt install crowdsec-firewall-bouncer-nftables -y
sudo systemctl enable crowdsec-firewall-bouncer-nftables --now
sudo cscli metrics
Çıktıda cs-firewall-bouncer değerini Local API Bouncers Metrics altında görmelisiniz.
CrowdSec Console’a katılmak isteğe bağlıdır. Yerel analiz ve IP engelleme console olmadan da çalışır. Merkezi görünürlük ve topluluk tehdit istihbaratı için CrowdSec Console kullanılabilir.
sudo cscli console enroll XXXXX

3. Traefik bouncer API anahtarını alın
sudo cscli bouncers add traefik-bouncer

4. Traefik’i CrowdSec için hazırlayın
crowdsec-plugin.yaml dosyasını oluşturun:
http:
middlewares:
crowdsec:
plugin:
crowdsec-bouncer:
crowdsecMode: live
crowdsecLapiHost: 'host.docker.internal:8080'
crowdsecLapiKey: 'PASTE_YOUR_KEY_HERE'
enabled: true
Traefik docker-compose.yml içine global middleware ve plugin ayarlarını ekleyin:
- '--entrypoints.http.http.middlewares=crowdsec@file'
- '--entrypoints.https.http.middlewares=crowdsec@file'
- '--experimental.plugins.crowdsec-bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin'
- '--experimental.plugins.crowdsec-bouncer.version=v1.2.1'
- '--accesslog=true'
- '--accesslog.format=json'
- '--accesslog.bufferingsize=0'
- '--accesslog.fields.headers.defaultmode=drop'
- '--accesslog.fields.headers.names.User-Agent=keep'
- '--accesslog.filepath=/traefik/access.log'
- '--log.level=INFO'
Cloudflare DNS kullanıyorsanız forwarded headers ayarlarını ekleyin:
- "--entryPoints.http.forwardedHeaders.insecure=true"
- "--entryPoints.https.forwardedHeaders.insecure=true"
Traefik’i yeniden başlatın:
docker restart coolify-proxy
5. Traefik log parser’ını etkinleştirin
cscli collections install crowdsecurity/traefik
sudo systemctl reload crowdsec
sudo nano /etc/crowdsec/acquis.yaml
acquis.yaml içine şunları ekleyin:
filenames:
- /data/coolify/proxy/access.log
labels:
type: traefik
log_type: http_access-log
docker restart coolify-proxy
sudo systemctl restart crowdsec
Güvenlik kurulumunu test edin
Bir IP’yi 10 dakika engelleyin:
cscli decisions add -i 1.2.3.4 -d 10m
Bu IP’den herhangi bir web sitesine ve SSH’ye erişmeyi deneyin. Test tamamlanınca kararı kaldırın.
Sonuç
Bu kurulumla:
- Tüm Coolify web siteleri için global HTTP ve HTTPS koruması sağlanır.
- Firewall bouncer SSH’yi ve kritik sunucu portlarını korur.
- Per-project label eklemek gerekmez.
- İleride Traefik AppSec WAF eklenebilir.
Üretime geçmeden önce kurulumu bir geliştirme sunucusunda test edin, logları inceleyin ve Cloudflare proxy kullanıyorsanız gerçek istemci IP’sinin Traefik’e ulaştığını doğrulayın.
