Sommario
I server non esistono in isolamento e la maggior parte sono installati e personalizzati solo con la configurazione SSH di base che può essere vulnerabile agli attacchi di forza bruta.Lo strumento fail2ban fornisce un modo per proteggere automaticamente il server da attacchi sospetti e software dannoso.
Il programma funziona scansionando i file di registro e aiuta a reagire ad azioni come ripetuti tentativi di connessione falliti.
Inizieremo installando fail2ban
Poiché fail2ban non è disponibile in CentOS, dobbiamo iniziare scaricando il repository:
rpm-Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Quindi installiamo fail2ban dalla riga di comando con il seguente comando
yum install fail2ban
Copiamo il file di configurazione
Il file di configurazione fail2ban predefinito è la posizione in /etc/fail2ban/jail.conf. Tuttavia, il lavoro di configurazione non dovrebbe essere eseguito su quel file e dovrebbe essere invece eseguita una copia locale per il backup.
cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local
Una volta copiato il file, possiamo apportare tutte le modifiche al nuovo file jail.local. Molti dei possibili servizi che potrebbero richiedere protezione sono già preconfigurati in questo file. Ognuno è nella propria sezione, configurato e spento.
Imposta le impostazioni predefinite su Jail.Local
Apri il nuovo file di configurazione fail2ban:
vi / etc / fail2ban / jail.local
La prima sezione delle impostazioni predefinite copre le regole di base che fail2ban seguirà. Se desideri configurare una protezione più personalizzata per il tuo server privato virtuale, puoi personalizzare i dettagli di ciascuna sezione.
Puoi vedere la sezione predefinita alcuni dettagli come i seguenti.
[DEFAULT] # "Ignoreip" può essere un indirizzo IP, una maschera CIDR o un host DNS. Fail2ban non # Bannerà una stringa che corrisponde a un indirizzo in questo elenco. Più indirizzi possono essere #definiti dal separatore di spazio. ignoreip = 127.0.0.1 # "Bantime" è il numero di secondi in cui a un host è stato vietato l'accesso o vietato. bantime = 3600 # Il tempo in secondi in cui un host verrà bloccato se effettua un numero massimo di query non riuscite findtime = 600 # "Maxretry" è il numero di errori consentiti prima di essere bannato. maxretry = 3
Inserisci il tuo indirizzo IP nella riga personale ignoreip. Puoi separare ogni indirizzo con uno spazio. IgnoreIP inserirà nella whitelist determinati indirizzi IP e si assicurerà che non vengano esclusi dal tuo VPS. Includere il tuo indirizzo ti assicurerà di non vietarti accidentalmente dal tuo server privato virtuale.
Il prossimo passo è decidere un tempo di ban, il numero di secondi in cui un host viene bloccato dal server se viola una qualsiasi delle regole. Ciò è particolarmente utile nel caso di robot, che una volta vietato l'accesso, passeranno semplicemente al bersaglio successivo. Il valore predefinito è 10 minuti, puoi aumentarlo a un'ora se lo desideri.
Maxretry è il numero di tentativi di accesso errati che un host può avere prima che i suoi tentativi di accesso vengano bannati per la durata del tempo di ban.
Findtime si riferisce alla quantità di tempo che un host deve inserire il valore predefinito è 10 minuti, il che significa che se viene effettuato un tentativo di accedere a un host a un server e fallisce, per accedere più del numero massimo di tentativi 3 volte in i 10 minuti designati, il tuo IP verrà bloccato e non potrai accedere.
Configura la sezione ssh - iptables in Jail.Local
La sezione dei dettagli SSH è appena più in basso nelle impostazioni ed è già installata e attivata. Sebbene non ti venga richiesto di apportare modifiche all'interno di questa sezione, puoi trovare i dettagli su ciascuna riga di seguito.
[ssh - iptables] abilitato = true filter = sshd action = iptables [name = SSH, port = ssh, protocol = tcp] sendmail-whois [name = SSH, dest = root, [email protected]] logpath = / var / log / secure maxretry = 5
Abilitato si riferisce semplicemente al fatto che la protezione SSH è attivata. Puoi disattivarlo con la parola false.
Il filtro, che utilizzi per impostazione predefinita per sshd, fa riferimento al file di configurazione che contiene le regole utilizzate da fail2banuses per trovare corrispondenze. Il nome è una versione abbreviata dell'estensione del file. Ad esempio sshd si riferisce a /etc/fail2ban/filter.d/sshd.conf
Azione, descrive i passaggi che fail2ban eseguirà per escludere un indirizzo IP corrispondente. Come la voce del filtro, ogni azione fa riferimento a un file all'interno della directory action.d. L'azione di ban predefinita, iptable, può essere trovata in /etc/fail2ban/action.d/iptables.conf
In iptables, puoi personalizzare ulteriormente fail2ban. Ad esempio, se si utilizza una porta non standard, è possibile modificare il numero di porta tra parentesi in altezza, rendendo la linea di vista della stessa famiglia:
ad esempio . iptables [nome = SSH, porta = 30000, protocollo = tcp]
Puoi anche cambiare il protocollo da TCP a UDP su questa linea, a seconda di quale vuoi che fail2ban controlli.
Se hai un server di posta configurato sul tuo server privato virtuale, fail2ban può inviarti un'e-mail quando un indirizzo IP viene bannato. In caso di bypass, il sendmail-whois si riferisce alle azioni che si trovano in /etc/fail2ban/action.d/sendmail-whois.conf.
log path si riferisce alla posizione del log che fail2ban terrà traccia.
La riga massima di tentativi all'interno della sezione SSH ha la stessa definizione dell'opzione predefinita. Tuttavia, se un servizio è stato abilitato e desideri avere valori specifici per ciascuno di essi, puoi impostare qui il nuovo importo massimo di tentativi per SSH.
Riavvia fail2ban
Dopo aver apportato modifiche alla configurazione di fail2ban, assicurati sempre di riavviare fail2ban:
sudo riavvia il servizio fail2ban
Puoi vedere le regole che fail2ban mette in vigore all'interno della tabella IP:
iptables- LTi è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo