GNU/Linux >> Linux Esercitazione >  >> Linux

Sicurezza Linux:proteggi i tuoi sistemi con fail2ban

La sicurezza, per gli amministratori di sistema, è una lotta continua perché è necessario proteggere i propri sistemi a sufficienza per proteggerli da attacchi indesiderati, ma non così tanto da ostacolare la produttività degli utenti. È un equilibrio difficile da mantenere. Ci sono sempre lamentele per "troppa" sicurezza, ma quando un sistema è compromesso, le lamentele vanno da "Non c'era abbastanza sicurezza" a "Perché non hai usato controlli di sicurezza migliori?" La lotta è reale. Ci sono controlli che puoi mettere in atto che sono entrambi efficaci contro gli attacchi degli intrusi e tuttavia abbastanza furtivi da consentire agli utenti di operare in modo generalmente libero. Fail2ban è la risposta per proteggere i servizi dalla forza bruta e da altri attacchi automatici.

Nota:Fail2ban può essere utilizzato solo per proteggere i servizi che richiedono l'autenticazione con nome utente/password. Ad esempio, non puoi proteggere il ping con fail2ban.

In questo articolo, mostro come proteggere il demone SSH (SSHD) da un attacco di forza bruta. Puoi impostare filtri, come fail2ban li chiama, per proteggere quasi tutti i servizi di ascolto sul tuo sistema.

Installazione e configurazione iniziale

Fortunatamente, esiste un pacchetto pronto per l'installazione per fail2ban che include tutte le dipendenze, se presenti, per il tuo sistema.

$ sudo dnf -y install fail2ban

Abilita e avvia fail2ban .

$ sudo systemctl enable fail2ban

$ sudo systemctl start fail2ban

A meno che tu non abbia qualche tipo di problema di sintassi nel tuo fail2ban configurazione, non vedrai alcun messaggio di output standard.

Ora per configurare alcune cose di base in fail2ban per proteggere il sistema senza che questo interferisca con se stesso. Copia il /etc/fail2ban/jail.conf file in /etc/fail2ban/jail.local . Il jail.local file è il file di configurazione di nostro interesse.

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Apri /etc/fail2van/jail.local nel tuo editor preferito e apporta le seguenti modifiche o verifica che questi pochi parametri siano impostati. Cerca l'impostazione ignoreip e aggiungi tutti gli indirizzi IP a questa linea che deve avere accesso senza possibilità di blocco. Per impostazione predefinita, dovresti aggiungere l'indirizzo di loopback e tutti gli indirizzi IP locali al sistema protetto.

ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20

Puoi anche aggiungere intere reti di indirizzi IP, ma questo toglie gran parte della protezione che desideri attivare fail2ban per. Mantienilo semplice e locale per ora. Salva il jail.local file e riavviare fail2ban servizio.

$ sudo systemctl restart fail2ban

Devi riavviare fail2ban ogni volta che apporti una modifica alla configurazione.

Configurazione di un servizio filtrato

Una nuova installazione di fail2ban non fa molto per te. Devi impostare i cosiddetti filtri per qualsiasi servizio che desideri proteggere. Quasi tutti i sistemi Linux devono essere accessibili tramite SSH. Ci sono alcune circostanze in cui sicuramente interromperesti e disabiliteresti SSHD per proteggere meglio il tuo sistema, ma presumo che ogni sistema Linux consenta connessioni SSH.

Le password, come tutti sanno, non sono una buona soluzione di sicurezza. Tuttavia, è spesso lo standard con cui viviamo. Pertanto, se l'accesso dell'utente o amministrativo è limitato a SSH, è necessario adottare misure per proteggerlo. Usando fail2ban "guardare" SSHD per tentativi di accesso falliti con conseguente ban è un buon inizio.

Nota:prima di implementare qualsiasi controllo di sicurezza che potrebbe ostacolare l'accesso di un utente a un sistema, informa gli utenti che questo nuovo controllo potrebbe bloccarli fuori da un sistema per dieci minuti (o per quanto tempo tu decida) se i loro tentativi di accesso non riusciti superano la soglia impostata .

Per impostare i servizi filtrati, devi creare un file "jail" corrispondente sotto /etc/fail2ban/jail.d directory. Per SSHD, crea un nuovo file denominato sshd.local e inserisci le istruzioni di filtraggio del servizio al suo interno.

[sshd]
enabled = true
port = ssh
action = iptables-multiport
logpath = /var/log/secure
maxretry = 3
bantime = 600

Crea il [sshd] voce e inserisci l'impostazione che vedi sopra come punto di partenza. La maggior parte delle impostazioni sono autoesplicative. Per i due che potrebbero non essere intuitivamente ovvi, l'impostazione "azione" descrive l'azione che desideri fail2ban prendere in caso di violazione. Per noi, fail2ban utilizza iptables bannare l'indirizzo IP del sistema incriminato per un "bantime" di 600 secondi (10 minuti).

Ovviamente puoi modificare qualsiasi di queste impostazioni per soddisfare le tue esigenze. Dieci minuti sembrano essere abbastanza lunghi per far "spostare" un bot o uno script su host meno sicuri. Tuttavia, dieci minuti non sono così lunghi da alienare gli utenti che digitano male le loro password più di tre volte.

Quando sei soddisfatto delle impostazioni, riavvia fail2ban servizio.

Che aspetto ha il divieto

Sul sistema protetto (192.168.1.83), tail il /var/log/fail2ban.log per vedere eventuali azioni di divieto in corso.

2020-05-15 09:12:06,722 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:06
2020-05-15 09:12:07,018 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:07
2020-05-15 09:12:07,286 fail2ban.actions        [25417]: NOTICE  [sshd] Ban 192.168.1.69
2020-05-15 09:22:08,931 fail2ban.actions        [25417]: NOTICE  [sshd] Unban 192.168.1.69

Puoi vedere che l'indirizzo IP 192.168.1.69 è stato bandito alle 09:12 e sbloccato dieci minuti dopo alle 09:22.

Sul sistema remoto, 192.168.1.69, un'azione di ban è simile alla seguente:

$ ssh 192.168.1.83

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

$ ssh 192.168.1.83

ssh: connect to host 192.168.1.83 port 22: Connection refused

Puoi vedere che ho inserito la mia password in modo errato tre volte prima di essere bannato. L'utente bannato, se non esplicitamente informato, non saprà perché non può più raggiungere il sistema di destinazione. Il fail2ban filter esegue un'azione di esclusione silenziosa. Non fornisce alcuna spiegazione all'utente remoto, né l'utente viene informato quando il divieto viene revocato.

Annullamento di un sistema

Accadrà inevitabilmente che un sistema venga bandito che deve essere rapidamente rimosso. In altre parole, non puoi o non vuoi aspettare che scada il periodo di ban. Il comando seguente riattiverà immediatamente un sistema.

$ sudo fail2ban-client set sshd unbanip 192.168.1.69

Non è necessario riavviare il demone fail2ban dopo aver eseguito questo comando.

Concludi

Questo è fondamentalmente come fail2ban lavori. Si imposta un filtro e, quando le condizioni sono soddisfatte, il sistema remoto viene bannato. Puoi vietare per periodi di tempo più lunghi e puoi impostare più filtri per proteggere il tuo sistema. Ricorda che fail2ban è un'unica soluzione e non protegge il tuo sistema da altre vulnerabilità. La strategia che vuoi perseguire è un approccio alla sicurezza a più livelli e sfaccettato. Nessuna singola soluzione fornisce una sicurezza sufficiente.

Puoi trovare esempi di altri filtri e alcuni fail2ban avanzati implementazioni descritte su fail2ban.org.

[ Vuoi saperne di più sulla sicurezza? Consulta la checklist di sicurezza e conformità IT. ]


Linux
  1. Ripristina il tuo sistema con la modalità utente singolo in Linux Mint / Linux Mint 12

  2. Migliora la sicurezza del firewall del tuo sistema Linux

  3. Sopravvivere a un controllo di sicurezza con Linux aziendale

  4. Bilanciare la sicurezza di Linux con l'usabilità

  5. 13 tutorial sulla sicurezza di Linux

Screenshot della configurazione del tuo sistema Linux con gli strumenti Bash

Come salvare il tuo sistema Windows o Linux con Rescatux

Come controllare un sistema Linux remoto con Lynis Security Tool

Controllo della sicurezza di Linux con Lynis

Audit di sicurezza con Lynis

5 Best practice per la sicurezza SSH Linux per proteggere i tuoi sistemi