Come Proteggere il Vostro Server Linux con fail2ban

0
181
Fatmawati Achmad Zaenuri/Shutterstock

Con fail2ban, il tuo computer con Linux blocca automaticamente gli indirizzi IP che sono troppi errori di connessione. Si tratta di auto-regolazione di sicurezza! Vi mostreremo come usarlo.

Sicurezza Sicurezza Sicurezza

La duchessa di Windsor, Wallis Simpson, una volta ha detto, “non Si può mai essere troppo ricchi o troppo sottile.” Abbiamo aggiornato questo per il nostro moderno mondo interconnesso: non Si può mai essere troppo prudenti o troppo sicuro.

Se il computer accetta le richieste di connessione, come il Secure Shell (SSH) connessioni, o agisce come un server web o server di posta elettronica, è necessario proteggerlo dalla forza bruta attacchi e password-guessers.

Per farlo, avrete bisogno di monitorare le richieste di connessione che non riescono a ottenere in un conto. Se più volte non riescono ad autenticarsi all’interno di un breve periodo di tempo, essi dovrebbero essere banditi dal fare ulteriori tentativi.

Il solo modo in cui questo può essere realizzato praticamente è quello di automatizzare l’intero processo. Con un po ‘ di semplice configurazione, fail2ban gestirà il monitoraggio, il divieto, e unbanning per voi.

fail2ban si integra con il firewall di Linux iptables. Si applica il divieto di il sospetto che gli indirizzi IP da aggiungere regole per il firewall. Per mantenere questa spiegazione ordinato, stiamo usando iptables con un vuoto di regole.

Naturalmente, se siete preoccupati per la sicurezza, probabilmente hai un firewall configurato con un popoloso schema di gioco. fail2ban solo aggiunge e rimuove le sue regole regolari funzioni firewall rimarrà intatta.

Siamo in grado di vedere il nostro vuoto di regole che utilizza questo comando:

sudo iptables -L

CORRELATI: La Guida per Principianti per iptables, il Firewall di Linux

L’installazione di fail2ban

L’installazione di fail2ban è semplice su tutte le distribuzioni che abbiamo usato per la ricerca di questo articolo. Su Ubuntu 20.04, il comando è il seguente:

sudo apt-get install fail2ban

Su Fedora 32, tipo:

sudo dnf installare fail2ban

Su Manjaro 20.0.1, abbiamo utilizzato pacman:

sudo pacman -Sy fail2ban

La configurazione di fail2ban

Il fail2ban di installazione contiene un file di configurazione predefinito chiamato carcere.conf. Questo file viene sovrascritto quando fail2ban è aggiornato, così ci perderemo i nostri cambiamenti, se ci apportare modifiche a questo file.

Invece, si copierà il carcere.conf file chiamato carcere.locale. Mettendo la nostra modifiche di configurazione in carcere.locale, faranno mantenere gli aggiornamenti. Entrambi i file vengono letti automaticamente da fail2ban.

Questo è il modo per copiare il file:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.locale

Ora aprire il file nell’editor di testo preferito. Stiamo andando a utilizzare gedit:

sudo gedit /etc/fail2ban/jail.locale

Vedremo per le due sezioni del file: [DEFAULT] e [sshd]. Prendersi cura di trovare la vera sezioni, però. Quelle etichette appaiono anche vicino alla parte superiore di una sezione che li descrive, ma non è quello che vogliamo.

Troverai i [DEFAULT] sezione da qualche parte intorno alla linea 40. Si tratta di un lungo tratto con un sacco di commenti e spiegazioni.

Scorrere verso il basso per circa 90 riga, e troverai le seguenti quattro impostazioni che è necessario conoscere:

  • ignoreip: Un elenco di indirizzi IP che non potrà mai essere bannato. Hanno un permanente Uscire di Prigione carta Libera. L’indirizzo IP localhost (127.0.0.1) è nella lista per impostazione predefinita, insieme con il suo IPv6 equivalente (::1). Se ci sono altri indirizzi IP si sa mai dovrebbe essere vietato, aggiungere a questa lista e lasciare uno spazio tra ciascuno di essi.
  • bantime: La durata di un indirizzo IP è bannato (la “m” sta per minuti). Se si digita un valore senza una “m” o “h” (per ore) sarà trattato come secondi. Il valore -1 permanente il divieto di un indirizzo IP. Essere molto attenti a non bloccare permanentemente te stesso fuori.
  • findtime: La quantità di tempo entro cui un numero eccessivo di tentativi di connessione non riusciti si tradurrà in un indirizzo IP di essere bannati.
  • maxretry: Il valore di “troppi tentativi falliti.”

Se una connessione con lo stesso indirizzo IP rende maxretry tentativi di connessione non riusciti nell’findtime periodo, sono vietati per tutta la durata del bantime. Le uniche eccezioni sono gli indirizzi IP in ignoreip elenco.

fail2ban mette gli indirizzi IP in carcere per un determinato periodo di tempo. fail2ban supporta diverse prigioni, e ognuno di loro rappresenta tiene le impostazioni si applicano per un solo tipo di connessione. Questo permette di avere impostazioni diverse per i vari tipi di connessione. O si può avere fail2ban monitor solo una serie di tipi di connessione.

Si può immaginare dal [DEFAULT] il nome della sezione, ma le impostazioni che abbiamo visto sono quelle di default. Ora, proviamo ad esaminare le impostazioni per l’SSH carcere.

CORRELATI: Come Modificare i File di Testo in forma grafica su Linux Con gedit

Configurazione di un Carcere

Carceri consentono di spostare i tipi di connessione e di fail2ban di monitoraggio. Se le impostazioni predefinite non corrispondono a quelle che si desidera applicare al carcere, è possibile impostare valori specifici per bantime, findtime, e maxretry.

Scorrere verso il basso per circa linea 280, e vedrai che il [sshd] sezione.

Questo è dove è possibile impostare i valori per la connessione SSH carcere. Per includere questo carcere, il monitoraggio e il divieto di, dobbiamo digitare la seguente riga:

enabled = true

Abbiamo anche tipo questa riga:

maxretry = 3

L’impostazione di default è di cinque, ma vogliamo essere più cauto con le connessioni SSH. Abbiamo lasciato per tre, e poi salvato e chiuso il file.

Abbiamo aggiunto questa prigione di fail2ban di monitoraggio, ed escludeva una delle impostazioni predefinite. Un carcere possibile utilizzare una combinazione di default in carcere e le impostazioni specifiche.

Abilitazione fail2ban

Finora, abbiamo installato fail2ban e configurato. Ora, è necessario abilitare l’esecuzione come servizio di avvio automatico. Quindi, abbiamo bisogno di test per assicurarsi che funzioni come previsto.

Per attivare fail2ban come un servizio, utilizziamo il comando systemctl:

sudo systemctl enable fail2ban

Facciamo anche uso di esso per avviare il servizio:

sudo systemctl start fail2ban

Siamo in grado di controllare lo stato del servizio mediante il systemctl, troppo:

sudo systemctl status fail2ban.servizio

Sembra tutto a posto, abbiamo ottenuto la luce verde, quindi tutto va bene.

Vediamo se fail2ban è d’accordo:

sudo fail2ban-stato del client

Questo rispecchia quello che abbiamo impostato. Abbiamo attivato un singolo carcere, denominato [sshd]. Se si include il nome di carcere con la nostra precedente comando, si può prendere uno sguardo più profondo:

sudo fail2ban-stato del client sshd

Questo è indicato il numero di errori e di indirizzi IP esclusi. Naturalmente, tutte le statistiche sono pari a zero al momento.

Prova La Nostra Prigione

Su un altro computer, ci sarà una richiesta di connessione SSH per la nostra macchina di test e volutamente digitata la password. Hai tre tentativi per ottenere la password su ogni tentativo di connessione.

Il maxretry valore attiveranno dopo tre tentativi di connessione non riusciti, non tre tentativi con password errate. Così, abbiamo a digitare una password errata per tre volte di esito negativo del tentativo di connessione uno.

Ci sarà poi un altro tentativo di connessione e digitare la password in modo errato altre tre volte. La prima password errata tentativo di terza richiesta di connessione, dovrebbe scatenare fail2ban.

Dopo la prima password errata la terza richiesta di connessione, non si ottiene una risposta dal computer remoto. Non abbiamo alcuna spiegazione; fare in modo che la spalla freddo.

È necessario premere Ctrl+C per tornare al prompt dei comandi. Se si prova una volta di più, si otterrà una risposta diversa:

ssh dave@ubuntu20-04.local

In precedenza, il messaggio di errore era “Permesso negato”. Questa volta, la connessione è addirittura rifiutato. Stiamo persona non grata. Siamo stati vietati.

Vediamo i dettagli del [sshd] carcere di nuovo:

sudo fail2ban-stato del client sshd

Ci sono stati tre errori, e un solo indirizzo IP (192.168.4.25) è stato vietato.

Come abbiamo accennato in precedenza, fail2ban impone divieti aggiungendo regole per la configurazione. Diamo un’altra occhiata al set di regole (che era vuoto prima):

sudo iptables -L

Una regola è stata aggiunta la politica INPUT, l’invio di traffico SSH per il f2b-sshd catena. La regola in f2b-sshd catena rifiuta le connessioni SSH da 192.168.4.25. Non abbiamo alterare l’impostazione predefinita per bantime, così, in 10 minuti, l’indirizzo IP verrà fosse liberato e può fare fresco richieste di connessione.

Se si imposta un lungo ban durata (come diverse ore), ma si desidera consentire a un indirizzo IP per fare un’altra richiesta di connessione prima, si può parole presto.

Abbiamo digitare il seguente per fare questo:

sudo fail2ban-set di client sshd unbanip 192.168.5.25

Sul nostro computer remoto, se facciamo un’altra richiesta di connessione SSH e digitare la password corretta, saremo autorizzati a connettersi:

ssh dave@ubuntu20-04.local

Semplice ed Efficace

Più semplice è di solito migliore, e fail2ban è un elegante soluzione di un problema difficile. Ci vuole molto poco di configurazione e impone quasi nessun sovraccarico operativo—per voi o il vostro computer.

CONTINUA A LEGGERE

  • “Come Proteggere il Vostro Server Linux con fail2ban
  • “Può il Vostro iPhone Essere Violato?
  • “Come Trasferire il Vostro Facebook Foto e Video di Google Foto
  • “Come Creare un Custom Zoom Sfondo
  • “Come la Ricerca all’interno di Messaggi di Testo su iPhone o iPad