Wie wir bereits gelernt haben, ist Corwdsec ein sehr cooles und zeitgemäßes Tool um unerwünschte Zugriffe von außen zu blockieren. Um diese Blockierungen auch zu gewährleisten brauchen wir eine Liste an IP-Adressen welche blockiert werden sollen. Allerdings nicht alle Systeme können direkt mit Crowdsec sprechen, sondern können nur IP Listen lesen. Mit dem Tool “Blocklist mirror” stellt und CS genau diese Funktion zur Verfügung.

Auf diese Liste kann dann beispielsweise direkt via HTTP zugegriffen werden und in entsprechende Scheduler aufgenommen werden.

WireGuard im Einsatz
  • Stubbig, Markus (Autor)

Installation von Crowdsec Blocklist Mirror

Hast du schon irgendwo den Crowdsec Dienst laufen? Wenn ja, dann kannst du den ersten Schritt für die Installation von Crowdsec überspringen, denn dieser Mirror Dienst muss sich an der Local API von CS bedienen.

Installation von Crowdsec findet du hier…

Dann installierst du auf deinem Wunschsystem oder vielleicht sogar auf dem selben System den CS Blocklist mirror Dienst.

apt install crowdsec-blocklist-mirror

Einstellungen vornehmen

Bevor du den Mirror Dienst startest muss du den Zugriff auf die API einrichten. Öffne die “crowdsec-blocklist-mirror.yaml” Datei und editiere den Part bei lapi_key und lapi_url. Wenn dein Crowdsec Dienst auf einem anderen Server läuft, dann füge bei lapi_url dort bitte die IP / Hostname des Dienstes hinzu. Wenn der Dienst auf dem selben Server läuft, kannst du das bei den Standardeinstellungen belassen.

2. Ganz wichtige Sache ist die listen_uri zu ändern. Als Defaultwert steht dieser auf 127.0.0.1:41412, damit kann man dann leider nur Lokal auf diese Liste zugreifen, das wollen wir aber nicht. Ändere das auf die IP von deinem Lokalen Server z.b. 192.168.10.210:41421.

nano /etc/crowdsec/bouncers/crowdsec-blocklist-mirror.yaml
config_version: v1.0
crowdsec_config:
  lapi_key: ${API_KEY}
  lapi_url: http://127.0.0.1:8080/
  update_frequency: 10s
  include_scenarios_containing: []
  exclude_scenarios_containing: []
  only_include_decisions_from: []
  insecure_skip_verify: false

blocklists:
  - format: plain_text # Supported formats are either of "plain_text"
    endpoint: /security/blocklist
    authentication:
      type: none # Supported types are either of "none", "ip_based", "basic"
      user:
      password:
      trusted_ips: # IP ranges, or IPs which don't require auth to access this blocklist
        - 127.0.0.1
        - ::1

listen_uri: 192.168.10.210:41421
tls:
  cert_file:
  key_file:

metrics:
  enabled: true
  endpoint: /metrics

log_media: file
log_dir: /var/log/
log_level: info
log_max_size: 40
log_max_age: 30
log_max_backups: 3
enable_access_logs: true
compress_logs: true

Jetzt bist du fertig diesen Dienst zu starten.

sudo systemctl start crowdsec-blocklist-mirror

Auf die Crowdsec Blocklist Mirror zugreifen

Der Zugriff geschieht natürlich über HTTP und auf die IP von deinem Mirror Server. Filtern kannst du zusätzlich mit den Flags, aber schau hier in die Übersicht.

Diese URL kann dann z.B. bei pfSense oder OPNsense als URL Alias (IPs) hinzugefügt werden. Aber auch Sophos und Fortinet unterstützen solche Listen.

http://192.168.10.210:41412/security/blocklist
http://192.168.10.210:41412/security/blocklist?ipv4only
http://192.168.10.210:41412/security/blocklist?ipv6only
http://192.168.10.210:41412/security/blocklist?nosort

Beispiel Ausgabe
[....]
190.120.248.143
190.120.253.197
190.120.254.129
190.120.255.6
190.121.207.183
190.121.236.10
190.123.237.28
190.123.34.126
[....]