
Distribuzione di Crowdsec su una macchina Linux
Continuiamo con Crowdsec! abbiamo già visto nei documenti precedenti i concetti di base e come distribuirlo centralmente e anche in un Windows, quindi oggi vedremo i passaggi che dobbiamo seguire se vogliamo installare l'agente Crowdsec su un computer Linux per proteggerlo da minacce esterne.
Como imaginaréis, la instalación dependerá de la distribución que use la máquina, este documento estará basado en la instalación en un Ubuntu Server, que tiene creo recordar un Nginx sirviendo alguna página web. Quindi andiamo al sodo, habitualmente, se entiende que lo haremos en un servidor Linux, que tenga algún servicio publicado y queramos proteger; y no por ello obligatoriamente tenga que estar en Internet publicado. Inizieremo installando il Crowdsec Security Engine per te, que es el agente que se encargará procesar sus logs, Prendi le tue decisioni… Quindi installeremo il buttafuori (o Componente di correzione) para su firewall de Linux, del tuo sistema operativo (iptables en este caso), nel caso in cui siamo interessati ad agire e possiamo registrare le regole in esso, blocco dell'accesso temporaneo agli indirizzi IP dannosi. E finiremo per registrarlo nella console Crowdsec.
Con eso lo tendremos casi, ya que el post continuará, sarà facoltativo, ma se hai intenzione di volere una gestione centralizzata, deberás de realizar algunos pasos adicionales; E questo è tutto, A tua scelta. Si te necesitas, Devi leggere te stesso prima Il post precedente.
Questo post ha la seguente struttura:
- Installazione dell'agente Crowdsec
- Instalación del bouncer de Crowdsec Firewall iptables
- Registrazione di Crowdsec vs. Crowdsec Console
- Collezioni
- Lista bianca
- Notifiche
- Testarlo
- Registrazione di Crowdsec sul nostro server LAPI
- Registrazione del buttafuori Crowdsec sul nostro server LAPI
Installazione dell'agente Crowdsec
Cosa ho detto, esta instalación está basada en un Ubuntu Server, si tienes otra distribución, échale un vistazo a la Sito ufficiale. Comenzamos instalando los repositorios oficiales de Crowdsec mediante:
ricciolo -s https://install.crowdsec.net | sudo sh
E instalamos Crowdsec, que como sabemos ya, detectará los servicios que podemos estar usando en la máquina y nos descargará también sus colecciones para protegerlos, Avviato:
sudo apt install crowdsec
Instalación del bouncer de Crowdsec Firewall iptables
Una vez instalado el agente de Crowdsec también sabemos que si no instalamos un bouncer no podremos realizar acciones en esta máquina, así que instalaremos este componente de remediación, en mi caso al ser Ubuntu uso iptables, así que procedemos a su instalación:
sudo apt install crowdsec-firewall-bouncer-iptables
Registrazione di Crowdsec vs. Crowdsec Console
Imagino que ya tendremos una cuenta en https://app.crowdsec.net sabemos que nos la podemos crear para gestionar desde una consola GUI de manera centralizada todos nuestros Crowdsec, Non richiesto, e abbiamo una versione Community con la quale puoi fare anche tante cose, Comprendente, pues ver las alertas de las máquinas, Il tuo stato, Possiamo iscriverli a diverse blocklist…. Continuiamo ad aggiungere il nostro Crowdsec, la instalación en este Linux. Copiamo il comando che dobbiamo eseguire.
E l'abbiamo incollato su una console di sistema, Correre:
sudo cscli console enroll xxxxxxxxxxxxxxxxxx
Torniamo alla Crowdsec Console e accettiamo il rotolo,
Informazioni sul motore appena aggiunto, Modifichiamo il nome e ne metteremo uno che si riferisce a chi è,
Abitualmente, Indichiamo il nome della macchina, e noi diamo “Aggiornare”,
E se vogliamo, La prossima cosa può essere quella di aggiungere alcune blocklist, per questo, podemos pulsar sus “Blocklists”,
Se siamo già iscritti a una blocklist, possiamo selezionarlo da “Amministrare”
E clicca su “Aggiungi motore di sicurezza” Per aggiungere questo computer a questa blocklist,
Scegliamo un tipo di azione e confermiamo. Computer sottoscritto!
Recordar que tras registrar Crowdsec contra la Consola hay que reiniciar el servicio de Crowdsec que tenemos.
sudo systemctl restart crowdsec
Collezioni
Como ya sabemos. por defecto Crowdsec cuando se instala en una máquina escanea en busca de los servicios que tenemos instalados y los intenta proteger, In questo caso, en mi Linux sólo me ha detectado el de la base, Cioè, el del SO y el del SSHd. Si tuviera un Nginx por ejemplo me hubiera instalado sus colecciones, o para Grafana… para listar las colecciones:
sudo cscli collection list
Saremo in grado di cercare altre collezioni in il tuo Hub, raccolte effettuate da loro o dalla collettività, che possono proteggere altri servizi di cui disponiamo, como si por ejemplo hemos instalado Nginx a posteriori y queremos su colección, Eseguire:
cscli collections install crowdsecurity/nginx
Y deberíamos añadir en su fichero de adquisiciones ‘/etc/crowdsec/acquis.yaml’ El Contenido de Abajo, no os preocupéis que en el Hub viene detallado en cada caso qué hay que hacer, corregimos los paths de los logs de Nginx… y quedaría también el servicio protegido.
filenames: - /var/log/nginx/access.log - /var/log/nginx/error.log labels: digitare: nginx ---
Así como por ejemplo si este Nginx en este Ubuntu sirve Nextcloud, pues también le deberíamos meter su colección, y así integrar y evitar cualquier acceso indebido, leerá y tratará los logs de Nextcloud para luego tomar decisiones.
cscli collections install crowdsecurity/nextcloud
Y añadimos al fichero adquis.yaml lo siguiente (insisto esto lo tenéis documentado en el Hub):
filenames: - /var/log/nextcloud/nextcloud.log labels: digitare: Successivocloud --- Fonte: journalctl journalctl_filter: - "SYSLOG_IDENTIFIER=Nextcloud" Etichette: digitare: syslog ---
Recordar reiniciar el servicio de Crowdsec cuando hayáis hecho algún cambio sustancial:
sudo systemctl restart crowdsec
Lista bianca
La lista blanca como ya conocemos nos servirá para que podamos excluir por ejemplo una dirección IP de que pueda ser baneada o bloqueada por Crowdsec, di solito possono essere gli indirizzi IP di un checkpoint, Attrezzatura per il salto, and so on… Así como entre otras también podremos excluir países, Per esempio.
Nome: Descrizione di Crowdsecurity/Whitelist: "Whitelist di eventi da indirizzi ipv4 privati"
Lista bianca:
ragione: "IP/intervalli IPv4/IPv6 privati"
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"
# espressione:
# - "'foo.com' in evt.Meta.source_ip.reverse"
El fichero lo encontraremos en ‘/etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml’, e vedremo che possiamo semplicemente aggiungere qualsiasi IP o intervallo IP alla whitelist di esclusione.
Si queremos excluir países, Dobbiamo prima installare il parser GeoIP-Enrich che alimenterà i log con i dati di geolocalizzazione, como por ejemplo países, città o coordinate GPS:
I parser CSCLI installano CrowdSecurity/GeoIP-Enrich
E sarà sufficiente aggiungere la seguente espressione nel file della whitelist:
espressione:
- evt.Enriched.IsoCode == 'ES'
Ricordarsi di riavviare il servizio Crowdsec per ricaricare queste modifiche.
sudo systemctl restart crowdsec
Notifiche
Notifiche: - slack_default - splunk_default - http_default - email_default
Podremos habilitar notificaciones editando el fichero ‘/etc/crowdsec/profiles.yaml’, dove possiamo decommentare e selezionare il tipo di notifica che ci interessa, Cosa possono essere per Splunk, su Slack, via e-mail, o con HTTP (ad esempio Telegram).
Se vogliamo, ad esempio, le notifiche via email, en el directorio ‘/etc/crowdsec/notifications/’ modificheremmo il file YAML email.yaml (o slack.yaml o splunk.yaml o http.yaml), dove configureremo i parametri del nostro server di posta. Quelli di noi di Telegram l'hanno visto in un post Anziano.
Testarlo
Finiremo per provarci, no?? In caso contrario, come possiamo fidarci che funzioni? 🙂 Puoi fare gli esami di ammissione sbagliati che desideri, o convalidarlo con uno scanner di vulnerabilità, o siti web… In quel vecchio documento c'è un esempio con Nikto.
Puoi vedere le decisioni che la tua macchina ha preso con:
Elenco delle decisioni CSCLI
In questo caso hai bannato l'indirizzo IP 192.168.1.122 por que le he puesto un escaner de vulnerabilidades a checkearlo y enseguida le ha detectado que estaba rastreando cosas que no debe…
O dal server LAPI se lo abbiamo registrato (Cosa viene dopo)
docker exec -it crowdsec-crowdsec-1 elenco delle decisioni cscli
Se abbiamo già implementato il Crowdsec Mirror, saremo in grado di verificare che l'indirizzo IP bannato appaia nell'URL in cui pubblichiamo la nostra blocklist http://DIRECCION_IP_CROWDSEC_MIRROR:41412/Sicurezza/Elenco bloccati
Se vogliamo bannare un indirizzo IP, Lo faremo con:
Le decisioni CSCLI aggiungono --ip DIRECCIÓN_IP --reason "Descrizione"
Se vogliamo sbloccare un indirizzo IP, Lo faremo con:
Le decisioni CSCLI cancellano --IP DIRECCIÓN_IP
Saremo in grado di indagare sugli avvisi che abbiamo avuto con:
Elenco avvisi CSCLI
Con il comando precedente li elenchiamo, e ora selezionando l'ID di un particolare avviso e saremo in grado di sapere quale file di registro lo ha generato, Cosa stavo facendo, Il percorso, Stato HTTP… in questo caso dell'immagine ce ne sono molti 404 al percorso /apps/files_sharing/publicpreview/
Avviso CSCLI Ispeziona ID_ALERTA [-d]
E, se ne abbiamo bisogno, creare il nostro file Whitelist per effettuare esclusioni in caso di falsi positivi, pej en ‘/etc/crowdsec/parsers/s02-enrich/whitelist-permite-pdfs.yaml, È possibile utilizzare queste espressioni di esempio per creare filtri di esclusione:
Nome: Crowdsecurity/MylistablancaPDF Descrizione: "Ignora PDF" Lista bianca: ragione: "ignorare i PDF" espressione: #- 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/'
Come al solito, senza dimenticare di riavviare il servizio Crowdsec ad ogni cambio di configurazione.
Registrazione di Crowdsec sul nostro server LAPI
API: ... Server: abilitare: Falso ...
Dobbiamo disabilitare il LAPI locale, editando el fichero ‘/etc/crowdsec/config.yaml’, le añadimos el enable false.
A continuación nos registramos contra el servidor LAPI que tenemos desplegado en la red:
sudo cscli lapi register -u http://DIRECCION_IP_CROWDSEC_LAPI:8080 --NOMBRE_MAQUINA macchina
En el servidor LAPI podremos ver la petición de registro de la máquina Linux, Elenchiamo con:
Sudo Docker Exec -it CrowdSEC-CrowdSEC-1 Elenco macchine CSCLI
Accettiamo la richiesta di registrazione e rimettiamo in vendita per confermare lo stato:
Sudo Docker exec -it CrowdSEC-CrowdSEC-1 CSCLI macchine convalidare NOMBRE_MAQUINA
Ahora nuestro Crowdsec en Linux comunicará y leerá del servidor LAPI cualquier decisión, quindi utilizzando il server centrale. Se il resto degli agenti di Crowdsec facesse lo stesso, Tutti avrebbero le stesse informazioni in comune, e quindi, quando una macchina sospetta che un IP sia dannoso, il resto degli agenti di Crowdsec lo saprà all'istante.
Recordar siempre reiniciar Crowdsec tras cualquier modificación:
sudo systemctl restart crowdsec
Registrazione del buttafuori Crowdsec sul nostro server LAPI
E per concludere, Dobbiamo anche registrare i buttafuori che abbiamo, en este caso el bouncer del firewall del Ubuntu, para iptables; se vogliamo che quel buttafuori legga dal LAPI centrale, Dobbiamo seguire questi passaggi, Questo è quanto è stato detto, quando qualcuno o qualcosa aggiunge un IP al LAPI centrale, questo firewall del sistema operativo creerà una regola che nega l'accesso a detto IP dannoso.
Dal server LAPI, Possiamo prima se vogliamo elencare i buttafuori con cui ci siamo registrati:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli bouncers list
Y para dar de alta al bouncer del firewall de este Ubuntu, Eseguire:
sudo docker exec -it crowdsec-crowdsec-1 cscli buttafuori aggiungere NOMBRE_MAQUINA-FW
Annotiamo la chiave API che ci ha dato,
... api_url: Protocollo HTTP://DIRECION_LAPI_SERVER:8080 api_key: xxxxxxxxxxxxxxxxxxxxxxxx ...
Editamos el fichero /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml y ponemos la IP del servidor LAPI, la sua porta e la chiave API che ci ha fornito il comando precedente. Guardamos el fichero y reiniciamos el servicio del bouncer del firewall:
sudo systemctl restart crowdsec-firewall-bouncer
Y ya saldrá el FW del equipo Ubuntu registrado, lo verificamos con:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli bouncers list
Spero che tu l'abbia trovato interessante, quería hacer una guía de 3 documentos base y con esto queda zanjado, ya hemos aprendido a instalar Crowdsec en un equipo Linux, en un Windows, y hemos generado una gestión centralizada donde todos los agentes hablan entre sí y se chivan si hay algún atacante, además con listas publicadas a los firewall perimetrales o internos para que puedan bloquear ellos también y aislar a cualquier posible atacante. Beh, il solito, se va haciendo tarde, mirar que horas… 😉 ¡que tengáis muy buena semana!