Multi-Server-Umgebung mit Crowdsec

Mit diesem unverdaulichen Titel, Wir werden versuchen, Crowdsec zu erklären, was ein braunes Biest ausmacht… Wie üblich wird der Crowdsec-Agent in jeder unserer Organisationsmaschinen vorhanden sein, Wir werden ihnen die Kommunikation ermöglichen, um Angriffe zu verhindern.

nämlich, dass, wenn ein Gerät mit Windows oder Linux angegriffen wird, Der Rest der Maschinen in der Organisation kann von dem Angriff erfahren und die IP-Adresse des Angreifers blockieren, bevor er überhaupt an die Tür klopfen kann. Nehmen wir an, Crowdsec arbeitet standardmäßig lokal, Jeder Crowdsec-Agent kommuniziert mit seinem eigenen lokalen API-Server, Was wir tun werden, ist, dass sie alle mit demselben LAPI-Server kommunizieren.

Lokale Server-API,

wir begannen, zuerst, auf der Maschine, die wir als API-Server für den Rest der Agenten fungieren möchten. Also aktivieren wir es in Ihrer Konfigurationsdatei ‚ /etc/crowdsec/config.yaml‘, Wir geben die IP an, auf die es hören wird, und den Port:

API:
...
  Server:
...
    Zuhörer: 192.168.2.10:8080
...

in ‚/etc/crowdsec/local_api_credentials.yaml‘ nur die gleiche IP-Adresse:

url: http://192.168.2.10:8080
...

Wir starten neu, um die Änderungen zu übernehmen:

sudo systemctl startet Crowdsec neu

Crowdsec-Agenten,

jetzt, den Rest der Maschinen mit Crowdsec müssen wir sie gegen die lokale API des Servers registrieren, Außerdem werden wir die LAPI jedes Crowdsec-Computers deaktivieren, da sie nicht verwendet wird.

dafür, dass ich es offtopic gemacht habe, wenn Sie Crowdsec nicht auf dem zu schützenden Zielcomputer installiert haben, es ist soweit 😉 Sie haben in früheren Beiträgen erfahren, wie man ein Windows schützt, Linux…

gut, ist, Wille, Wir registrieren uns gegen den LAPI-Server von jedem Agenten mit:

sudo cscli lapi register -u http://192.168.2.10:8080
    INFO[14-11-2022 10:14:08 PN] Successfully registered to Local API (LAPIS)
    INFO[14-11-2022 10:14:08 PN] Local API credentials dumped to '/etc/crowdsec/local_api_credentials.yaml'
    WARN[14-11-2022 10:14:08 PN] Run 'sudo systemctl reload crowdsec' for the new configuration to be effective.

Paramos nuestro propio servidor API ya que no lo usaremos:

sudo cp /lib/systemd/system/crowdsec.service /etc/systemd/system/crowdsec.service

und fügen ‚-no-apien el fichero de configuración de Crowdsec ‚/etc/systemd/system/crowdsec.service

...
ExecStart=/usr/bin/crowdsec -c /etc/crowdsec/config.yaml -no-api
...

Finalmente recargamos los servicios para usar esta nueva configuración:

sudo systemctl daemon-reload
sudo systemctl restart crowdsec

Ahora ya si nos vamos al servidor LAPI, podremos ver que hay solicitudes de conexiones pendientes con el comando ‚Sudo cscli-Maschinenliste‘:

---------------------------------------------------------------------------------------------------------
 NAME IP-ADRESSE LETZTE UPDATE STATUS VERSION AUTH TYP LETZTER HEARTBEAT
---------------------------------------------------------------------------------------------------------
 b91d17c64c4e4a2 192.168.x.xxx 2022-11-14T22:18:00Z ✔️ v1.4.1-debian Passwort 19s
 9c70ab3970dd4cc 192.168.x.xxx 2022-11-14T22:14:08Z 🚫 Passwort ⚠️ 4m11s
---------------------------------------------------------------------------------------------------------

Wir validieren die Maschinen durch Ausführen ‚sudo cscli-Maschinen validieren 9c70ab3970dd4cc‘

sudo cscli-Maschinen validieren 9c70ab3970dd4cc
    DIE INFO[14-11-2022 10:19:35 PN] Maschine '9c70ab3970dd4cc' erfolgreich validiert

Und wir prüfen noch einmal ‚Sudo cscli-Maschinenliste‘:

---------------------------------------------------------------------------------------------------------
 NAME IP-ADRESSE LETZTE UPDATE STATUS VERSION AUTH TYP LETZTER HEARTBEAT
---------------------------------------------------------------------------------------------------------
 b91d17c64c4e4a 192.168.x.xxx 2022-11-14T22:19:00Z ✔️ v1.4.1-debian Passwort 40s
 9c70ab3970dd4cc 192.168.x.xxx 2022-11-14T22:19:35Z ✔️ Passwort 5s
---------------------------------------------------------------------------------------------------------

Ohne zu vergessen, Crowdsec in jedem Agenten neu zu laden, sobald wir ihn validiert haben, mit:

sudo systemctl startet Crowdsec neu

Abmilderungen,

jetzt, Mildern, Maßnahmen ergreifen, die es uns ermöglichen, die Risiken der Anfälligkeit für bestimmte Bedrohungen zu verringern, Wir müssen die Türsteher benutzen. zuerst, Vom APIs-Server erstellen wir die Token, die von den Türstehern der Agenten benötigt werden. Wir werden es mit jedem Türsteher machen, den wir in jedem Agenten brauchen, Beispiel ‚Sudo cscli-Türsteher fügen OS-JITSI hinzu-05-fw‘

API-Schlüssel für 'OS-JITSI-05-fw':
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Bitte bewahren Sie diesen Schlüssel auf, da Sie ihn nicht abrufen können!

In jedem Crowdsec-Agenten müssen wir den Bouncer installieren, den wir brauchen, In diesem Fall verwenden wir Bouncer vom Firewall-Typ, für jedes Betriebssystem, Gibt es eine kompatible Türsteher: Windows-Firewall, iptables, nftables, ipset, pf… Wenn wir iptables haben:

sudo apt install crowdsec-firewall-bouncer-iptables -y

Und wir bearbeiten die Konfigurationsdatei des Firewall-Bouncers ‚ /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml‘ Angabe der IP-Adresse unseres LAPI-Servers und des Tokens, das wir gerade dafür generiert haben:

...
api_url: http://192.168.2.10:8080/
API-Schlüssel: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...

Wir starten den Firewall-Bouncer-Dienst neu:

sudo systemctl startet Crowdsec-Firewall-Bouncer neu
sudo systemctl status Crowdsec-Firewall-Bouncer

und bereit! Diese Maschine wird bereit sein, Sie können Einträge in der Betriebssystem-Firewall hinzufügen, die den Zugriff auf bestimmte IP-Adressen verweigern, die der API-Server Ihnen mitteilt.

Vom LAPI-Server aus können wir den Status der Türsteher überprüfen ‚Sudo cscli Türsteherliste‘:

-----------------------------------------------------------------------------------------------------------------------
 NAME IP-ADRESSE GÜLTIG LETZTER API-PULL-TYP VERSION AUTH-TYP
-----------------------------------------------------------------------------------------------------------------------
 OS-JITSI-05-fw 192.168.x.xxx ✔️ 2023-02-02T16:40:16Z Crowdsec-Firewall-Bouncer v0.0.24-Debian-API-Schlüssel
 OS-ELK-03-fw 192.168.x.xxx ✔️ 2023-02-02T16:40:11Z Crowdsec-Firewall-Bouncer v0.0.24-Debian-API-Schlüssel
 OS-GRA-04-fw 192.168.x.xxx ✔️ 2023-02-02T16:40:11Z Crowdsec-Firewall-Bouncer v0.0.24-Debian-API-Schlüssel
 OS-NGINX-01-fw 192.168.x.xxx ✔️ 2023-02-02T16:40:10Z Crowdsec-Firewall-Bouncer v0.0.24-Debian-API-Schlüssel
 OS-NGINX-01-Spiegel 192.168.x.xxx ✔️ 2023-02-02T16:40:18Z Crowdsec-Blocklist-Mirror v0.0.1-9-g86d6 API-Schlüssel
 OS-OTRS-01-fw 192.168.x.xxx ✔️ 2023-02-02T16:40:16Z Crowdsec-Firewall-Bouncer v0.0.24-Debian-API-Schlüssel
...
------------------------------------------------------------------------------------------------------------------------

und bereit! Damit ist das Netz geschlossen! Alle unsere Crowdsec in der Organisation werden von einem einzigen API-Server gesprochen, damit alle gleichermaßen geschützt sind, gemeinsame Nutzung einer einzigen schwarzen Liste von IP-Adressen, Blockieren der IPs der Angreifer in ihren jeweiligen FWs…

Umarmungen! Geht SEHR gut 😉

Hector Herrero