CrowdSec Setup mit Community-Blocklists und SSH Log-Analyse.
┌─────────────────────────────────────────────────────────────┐
│ Alpine Linux Host │
│ │
│ ┌────────────────────┐ ┌──────────────────────────┐ │
│ │ Docker Container │ │ Host Service │ │
│ │ │ │ │ │
│ │ CrowdSec Engine │◄──────│ cs-firewall-bouncer │ │
│ │ (API + Blocklists │ │ (nftables) │ │
│ │ + Log-Analyse) │ └────────────┬─────────────┘ │
│ └─────────┬──────────┘ │ │
│ │ ▼ │
│ /var/log/messages ──────► nftables Firewall │
│ (SSH Logs) DROP böse IPs │
└─────────────────────────────────────────────────────────────┘
- IPs von Community-Blocklists (~15.000 bekannte Angreifer)
- IPs die SSH Brute-Force auf deinen Server machen (lokale Erkennung)
scp -r docker-compose.yml acquis.d setup-alpine.sh user@server:/opt/crowdsec/cd /opt/crowdsec
chmod +x setup-alpine.sh
doas ./setup-alpine.shdocker compose up -d- Account erstellen auf https://app.crowdsec.net
- Security Engines -> Add -> Enrollment Key kopieren
- Engine registrieren:
docker compose exec app cscli console enroll DEIN_ENROLLMENT_KEY
docker compose restart app- Im Dashboard die Engine bestätigen (Accept)
- Unter "Blocklists" die gewünschten Listen abonnieren
docker compose exec app cscli bouncers add firewall-bouncer -o rawvi /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
# api_url: http://127.0.0.1:1337/
# api_key: HIER_DEN_KEY_EINTRAGENrc-service cs-firewall-bouncer start# Bouncer verbunden?
docker compose exec app cscli bouncers list
# Decisions/IPs geladen?
docker compose exec app cscli metrics show decisions
# Lokale Alerts (SSH Brute-Force etc.)
docker compose exec app cscli alerts list
# nftables Regeln aktiv?
nft list ruleset | grep -A5 crowdsec
# Geblockte IPs anzeigen
nft list set ip crowdsec crowdsec-blacklists-CAPI | head -50# Bouncer Status
rc-service cs-firewall-bouncer status
# Bouncer Logs
tail -f /var/log/crowdsec-firewall-bouncer.log
# Container Logs
docker compose logs -f app
# Manuelle IP bannen
docker compose exec app cscli decisions add --ip 1.2.3.4 --reason "manual ban"
# Ban entfernen
docker compose exec app cscli decisions delete --ip 1.2.3.4crowdsec/
├── docker-compose.yml # CrowdSec Container
├── acquis.d/
│ └── syslog.yaml # Log-Quellen Konfiguration
├── setup-alpine.sh # Host Setup Script
└── README.md