Bereitstellen von Crowdsec auf einem Linux-Rechner
Weiter geht es mit Crowdsec! Wir haben bereits in früheren Dokumenten die grundlegenden Konzepte gesehen und wie man es zentral und sogar in einem Windows einsetzt, Heute werden wir also die Schritte sehen, die wir befolgen müssen, wenn wir den Crowdsec-Agenten auf einem Linux-Computer installieren möchten, um ihn vor externen Bedrohungen zu schützen.
Wie Sie sich vorstellen können, Die Installation hängt von der Distribution ab, die von der Maschine verwendet wird, Dieses Dokument basiert auf der Installation auf einem Ubuntu-Server, Ich glaube, ich erinnere mich an einen Nginx, der eine Webseite bediente. Kommen wir also zur Sache, gewöhnlich, Es versteht sich, dass wir dies auf einem Linux-Server tun werden, für die ein Dienst veröffentlicht wurde und den wir schützen möchten; und muss nicht zwingend im Internet veröffentlicht werden. Wir beginnen mit der Installation der Crowdsec Security Engine für Sie, Dies ist der Agent, der für die Verarbeitung Ihrer Protokolle verantwortlich ist, Treffen Sie Ihre Entscheidungen… Dann installieren wir den Türsteher (o Komponente "Behebung") für Ihre Linux-Firewall, Ihres Betriebssystems (iptables in diesem Fall), falls wir daran interessiert sind, zu handeln und Regeln darin eintragen können, Blockieren des vorübergehenden Zugriffs auf bösartige IP-Adressen. Und am Ende werden wir es in der Crowdsec-Konsole registrieren.
Damit werden wir es fast haben, Während der Beitrag fortgesetzt wird, wird optional sein, Aber wenn Sie eine zentralisierte Verwaltung wünschen, Sie müssen einige zusätzliche Schritte unternehmen; Und das ist es, Sie haben die Wahl. Wenn Sie, Sie müssen sich selbst lesen, bevor Sie Der vorherige Beitrag.
Dieser Beitrag hat die folgende Struktur:
- Installation des Crowdsec-Agenten
- Installation des Crowdsec Firewall iptables Bouncers
- Registrieren von Crowdsec im Vergleich zur Crowdsec-Konsole
- Sammlungen
- Weiße Liste
- Benachrichtigungen
- Testen
- Registrieren von Crowdsec gegen unseren LAPI-Server
- Registrieren des Crowdsec-Bouncers gegen unseren LAPI-Server
Installation des Crowdsec-Agenten
Was ich gesagt habe, Diese Installation basiert auf einem Ubuntu Server, Wenn Sie eine andere Distribution haben, Schauen Sie sich die Offizielle Website. Wir begannen mit der Installation der offiziellen Crowdsec-Repositories mit:
curl -s https://install.crowdsec.net | Schweiß sh
Und wir haben Crowdsec installiert, dass, wie wir bereits wissen, Es erkennt die Dienste, die wir möglicherweise auf dem Gerät verwenden, und lädt auch seine Sammlungen herunter, um sie zu schützen, Gestartet:
sudo apt install crowdsec
Installation des Crowdsec Firewall iptables Bouncers
Sobald der Crowdsec-Agent installiert ist, wissen wir auch, dass wir keine Aktionen auf diesem Computer ausführen können, wenn wir keinen Bouncer installieren, Daher installieren wir diese Wartungskomponente, in meinem Fall bin ich Ubuntu und verwende iptables, Also fahren wir mit der Installation fort:
sudo apt install crowdsec-firewall-bouncer-iptables
Registrieren von Crowdsec im Vergleich zur Crowdsec-Konsole
Ich kann mir vorstellen, dass wir bereits ein Konto in https://app.crowdsec.net Wir wissen, dass wir es erstellen können, um alle unsere Crowdsec von einer GUI-Konsole aus auf zentralisierte Weise zu verwalten, Nicht erforderlich, und wir haben eine Community-Version, mit der Sie auch viele Dinge tun können, Einschließlich, Zeigen Sie dann Maschinenwarnungen an, Ihr Status, Wir können sie in verschiedene Blocklisten eintragen…. Wir fügen weiterhin unsere Crowdsec hinzu, Installation unter diesem Linux. Wir kopieren den Befehl, den wir ausführen müssen.
Und wir haben es auf eine Systemkonsole geklebt, Laufen:
sudo cscli console registrieren xxxxxxxxxxxxxxxxxx
Wir kehren zur Crowdsec-Konsole zurück und akzeptieren die Rolle,
Über die neu hinzugefügte Engine, Wir bearbeiten den Namen und fügen einen ein, der sich darauf bezieht, wer es ist,
Gewöhnlich, Wir geben den Namen der Maschine an, und wir geben “Aktualisieren”,
Und wenn wir wollen, Der nächste Schritt kann sein, einige Blocklisten hinzuzufügen, hierfür, Wir können Ihre “Sperrlisten”,
Wenn wir bereits eine Blockliste abonniert haben, Wir können es auswählen “Verwalten”
Und klicken Sie auf “Sicherheits-Engine hinzufügen” So fügen Sie diesen Computer zu dieser Sperrliste hinzu,
Wir wählen eine Art von Aktion und bestätigen. Abonnierter Computer!
Denken Sie daran, dass Sie nach der Registrierung von Crowdsec für die Konsole den vorhandenen Crowdsec-Dienst neu starten müssen.
sudo systemctl restart crowdsec
Sammlungen
Wie wir bereits wissen. Standardmäßig sucht Crowdsec, wenn es auf einem Computer installiert ist, nach den Diensten, die wir installiert haben, und versucht, sie zu schützen, In diesem Fall, unter meinem Linux hat mich nur der von der Basis entdeckt, Das heißt, das Betriebssystem und SSHd. Wenn ich zum Beispiel eine Nginx hätte, hätte ich ihre Sammlungen installiert, oder für Grafana… um die Sammlungen aufzulisten:
sudo CSCLI Sammlungsliste
Wir werden in der Lage sein, nach weiteren Sammlungen zu suchen in Ihr Hub, Sammlungen, die von ihnen oder von der Gemeinschaft vorgenommen wurden, die andere Dienste, die wir haben, schützen können, als ob wir zum Beispiel Nginx a posteriori installiert hätten und seine Sammlung wünschen, Ausführen:
CSCLI Collections installieren CrowdSecurity/NGINX
Und wir sollten in Ihrer Beschaffungsdatei '/etc/crowdsec/acquis.yaml’ Der folgende Inhalt, Machen Sie sich keine Sorgen, dass der Hub in jedem Fall detailliert beschreibt, was zu tun ist, Wir fixieren die Pfade der Nginx-Protokolle… und der Dienst wäre auch geschützt.
Filenamen: - /var/log/nginx/access.log - /var/log/nginx/error.log-Beschriftungen: Art: Zigeuner ---
Sowie zum Beispiel, wenn dieses Nginx in diesem Ubuntu Nextcloud bedient, Nun, wir sollten auch seine Sammlung darin unterbringen, und so unsachgemäße Zugriffe zu integrieren und zu verhindern, Lesen und Verarbeiten von Nextcloud-Protokollen, um dann Entscheidungen zu treffen.
CSCLI Collections installieren crowdsecurity/nextcloud
Und wir fügen der Datei acquire.yaml folgendes hinzu (Ich bestehe darauf, dass dies im Hub dokumentiert ist):
Filenamen: - /var/log/nextcloud/nextcloud.log-Beschriftungen: Art: Nächste Cloud --- Quelle: Reportedctl journalctl_filter: - "SYSLOG_IDENTIFIER=Nächste Wolke" etiketten: Art: Syslog (Englisch) ---
Denken Sie daran, den Crowdsec-Dienst neu zu starten, wenn Sie eine wesentliche Änderung vorgenommen haben:
sudo systemctl restart crowdsec
Weiße Liste
Die Whitelist wird, wie wir bereits wissen, uns dabei helfen, beispielsweise eine IP-Adresse von der Sperrung oder Blockierung durch Crowdsec auszuschließen, In der Regel können dies die IP-Adressen eines Checkpoints sein, Sprungausrüstung, etc… Neben anderen können wir auch Länder ausschließen, Zum Beispiel.
Name: Crowdsecurity/Whitelists Beschreibung: "Whitelist-Ereignisse von privaten IPv4-Adressen"
Weiße Liste:
Grund: "Private IPv4/IPv6 IP/Bereiche"
IP:
- "127.0.0.1"
- "::1"
- "192.168.1.33"
CIDR:
#- "192.168.0.0/16"
#- "10.0.0.0/8"
- "172.16.0.0/12"
# Ausdruck:
# - "'foo.com' in evt.Meta.source_ip.reverse"
Die Datei befindet sich in '/etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml', und wir werden sehen, dass wir einfach jede IP oder jeden IP-Bereich zur Ausschluss-Whitelist hinzufügen können.
Wenn wir Länder ausschließen wollen, Wir müssen zuerst den GeoIP-Enrich-Parser installieren, der die Protokolle mit Geolokalisierungsdaten füttert, wie z.B. Länder, Städte oder GPS-Koordinaten:
CSCLI-Parser installieren CrowdSecurity/GeoIP-Enrich
Und es reicht aus, den folgenden Ausdruck in die Whitelist-Datei einzufügen:
Ausdruck:
- evt.Enriched.IsoCode == 'ES'
Denken Sie daran, den Crowdsec-Dienst neu zu starten, um diese Änderungen neu zu laden.
sudo systemctl restart crowdsec
Benachrichtigungen
Benachrichtigungen: - slack_default - splunk_default - http_default - email_default
Wir können Benachrichtigungen aktivieren, indem wir die Datei '/etc/crowdsec/profiles.yaml' bearbeiten., wo wir die Kommentierung aufheben und die Art der Benachrichtigung auswählen können, die uns interessiert, Was können sie für Splunk sein?, zu Slack, per E-Mail, oder mit HTTP (zum Beispiel Telegram).
Wenn wir zum Beispiel E-Mail-Benachrichtigungen wünschen, im Verzeichnis '/etc/crowdsec/notifications/’ Wir würden die YAML-Datei email.yaml bearbeiten. (o slack.yaml oder splunk.yaml oder http.yaml), wo wir die Parameter unseres Mailservers konfigurieren werden. Diejenigen von uns von Telegram haben es in einem Beitrag gesehen Alter Mann.
Testen
Am Ende werden wir es versuchen, nicht wahr?? Wenn nicht, wie können wir darauf vertrauen, dass das funktioniert? 🙂 Sie können die falschen Aufnahmeprüfungen machen, die Sie wollen, oder validieren Sie es mit einem Schwachstellenscanner, oder Websites… In diesem alten Dokument haben Sie ein Beispiel mit Nikto.
Sie können die Entscheidungen sehen, die Ihre Maschine getroffen hat, mit:
Liste der CSCLI-Entscheidungen
In diesem Fall haben Sie die IP-Adresse gesperrt 192.168.1.122 weil ich einen Schwachstellenscanner eingesetzt habe, um es zu überprüfen, und es hat sofort erkannt, dass es Dinge verfolgt, die es nicht sollte…
Oder vom LAPI-Server, wenn wir ihn registriert haben (Wie geht es weiter?)
DOCKER EXEC -IT CROWDSEC-CROWDSEC-1 CSCLi-Entscheidungsliste
Wenn wir den Crowdsec Mirror bereits eingesetzt haben, Wir werden in der Lage sein zu überprüfen, ob die gesperrte IP-Adresse in der URL angezeigt wird, unter der wir unsere HTTP-Sperrliste veröffentlichen://DIRECCION_IP_CROWDSEC_MIRROR:41412/Sicherheit/Sperrliste
Wenn wir eine IP-Adresse sperren möchten, Wir werden es tun mit:
CSCLi-Entscheidungen --IP DIRECCIÓN_IP --reason hinzufügen "Beschreibung"
Wenn wir die Sperrung einer IP-Adresse aufheben möchten, Wir werden es tun mit:
CSCLI-Entscheidungen löschen --IP DIRECCIÓN_IP
Wir werden in der Lage sein, die Warnungen zu untersuchen, die wir mit:
CSCLI-Alarmliste
Mit dem vorherigen Befehl listen wir sie auf, und wählen Sie nun die ID einer bestimmten Warnung aus, und wir können wissen, welche Protokolldatei sie generiert hat, Was ich tat, Der Weg, HTTP-Status… In diesem Fall des Bildes gibt es viele 404 al Pfad /apps/files_sharing/publicpreview/
CSCLI Alert Inspect ID_ALERTA [-d]
Und, wenn wir es brauchen, Erstellen Sie unsere eigene Whitelist-Datei, um im Falle von Fehlalarmen Ausschlüsse vorzunehmen, pej unter '/etc/crowdsec/parsers/s02-enrich/whitelist-permite-pdfs.yaml, Sie können diese Beispielausdrücke verwenden, um Ausschlussfilter zu erstellen:
Name: Crowdsecurity/mylistablancapdfs Beschreibung: "PDFs ignorieren" Weiße Liste: Grund: "PDFs ignorieren" Ausdruck: #- evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/' #- evt.Meta.http_status == '404' && evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/' - evt.Parsed.request contains '/apps/files_sharing/publicpreview/'
Wie gewöhnlich, ohne zu vergessen, den Crowdsec-Dienst bei jeder Konfigurationsänderung neu zu starten.
Registrieren von Crowdsec gegen unseren LAPI-Server
API: ... Server: ermöglichen: FALSCH ...
Wir müssen das lokale LAPI deaktivieren, Bearbeiten der Datei '/etc/crowdsec/config.yaml', Wir haben das enable false hinzugefügt.
Dann registrieren wir uns bei dem LAPI-Server, den wir im Netzwerk bereitgestellt haben:
Sudo cscli lapi register -u HTTP://DIRECCION_IP_CROWDSEC_LAPI:8080 --Maschine NOMBRE_MAQUINA
Auf dem LAPI-Server können wir die Registrierungsanfrage des Linux-Rechners sehen, Wir listen mit:
sudo docker exec -it CrowdSEC-CrowdSEC-1 CSCLI Maschinenliste
Wir akzeptieren die Registrierungsanfrage und stellen sie erneut ein, um den Status zu bestätigen:
Sudo Docker exec -it CrowdSEC-CrowdSEC-1 CSCLI-Maschinen validieren NOMBRE_MAQUINA
Jetzt wird unser Crowdsec unter Linux jede Entscheidung vom LAPI-Server kommunizieren und lesen, daher über den zentralen Server. Wenn der Rest der Agenten von Crowdsec das Gleiche tun würde, Alle von ihnen hätten die gleichen Informationen gemeinsam, und daher, wenn eine Maschine den Verdacht hat, dass eine IP böse ist, der Rest der Crowdsec-Agenten wird es sofort wissen.
Denken Sie immer daran, Crowdsec nach jeder Änderung neu zu starten:
sudo systemctl restart crowdsec
Registrieren des Crowdsec-Bouncers gegen unseren LAPI-Server
Und zum Schluss, Wir müssen auch die Türsteher registrieren, die wir haben, in diesem Fall der Ubuntu-Firewall-Bouncer, für iptables; wenn wir möchten, dass dieser Türsteher vom zentralen LAPI liest, Wir müssen diese Schritte befolgen, Das ist es, was gesagt wurde, wenn jemand oder etwas eine IP zum zentralen LAPI hinzufügt, Diese Firewall des Betriebssystems erstellt eine Regel, die den Zugriff auf diese bösartige IP verweigert.
Vom LAPI-Server, Wir können zuerst, wenn wir wollen, die Türsteher auflisten, bei denen wir uns angemeldet haben:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli Türsteherliste
Und um den Firewall-Bouncer dieses Ubuntu zu registrieren, Ausführen:
sudo docker exec -it crowdsec-crowdsec-1 cscli Bouncers fügen NOMBRE_MAQUINA-FW hinzu
Wir schreiben den API-Schlüssel auf, den wir erhalten haben,
... api_url: HTTP (Englisch)://DIRECION_LAPI_SERVER:8080 api_key: xxxxxxxxxxxxxxxxxxxxxxxx ...
Wir bearbeiten die Datei /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml und setzen die IP des LAPI-Servers ein, seinen Port und den API-Schlüssel, der uns den vorherigen Befehl gegeben hat. Speichern Sie die Datei und starten Sie den Firewall-Bouncer-Dienst neu:
sudo systemctl restart crowdsec-firewall-bouncer
Und die FW des registrierten Ubuntu-Teams wird herauskommen, Wir verifizieren es mit:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli Türsteherliste
Ich hoffe, Sie fanden es interessant, Ich wollte einen Leitfaden machen zu 3 Basisdokumente und damit ist es beglichen, Wir haben bereits gelernt, wie man Crowdsec auf einem Linux-Computer installiert, unter Windows, Und wir haben eine zentralisierte Verwaltung geschaffen, bei der alle Agenten miteinander sprechen und sich gegenseitig mitteilen, ob es einen Angreifer gibt, Darüber hinaus mit Listen, die in Perimeter- oder internen Firewalls veröffentlicht werden, damit diese ebenfalls blockiert und mögliche Angreifer isoliert werden können. Nun, das Übliche, Es wird spät, Schauen Sie, zu welchen Zeiten… 😉 Hab eine tolle Woche!