GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Fail2Ban su CentOS 7

La maggior parte dei server Linux offre un accesso SSH tramite la porta 22 per scopi di amministrazione remota. Questo porto è un porto ben noto, quindi è spesso attaccato da attacchi di forza bruta. Fail2ban è un software che esegue la scansione dei file di registro per i tentativi di accesso con forza bruta in tempo reale e bandisce gli aggressori con firewalld o iptables. Fail2ban riconosce gli accessi indesiderati o gli sforzi di violazione della sicurezza al server entro l'intervallo di tempo impostato dall'amministratore e blocca gli indirizzi IP che mostrano segni di attacchi di forza bruta o attacchi di dizionario. Questo programma funziona in background ed esegue continuamente la scansione dei file di registro alla ricerca di schemi di accesso insoliti e tentativi di violazione della sicurezza.

Questo tutorial mostra l'installazione e la configurazione di Fail2Ban con firewalld su CentOS 7.

Installazione di Fail2Ban

Per installare Fail2Ban su CentOS 7, dovremo prima installare il repository EPEL (Extra Packages for Enterprise Linux). EPEL contiene pacchetti aggiuntivi per tutte le versioni di CentOS, uno di questi pacchetti aggiuntivi è Fail2Ban.

I seguenti comandi devono essere eseguiti dopo essere passati all'utente root.

yum install epel-release
yum install fail2ban fail2ban-systemd

Se hai installato SELinux, aggiorna le politiche di SELinux:

yum update -y selinux-policy*

Configura le impostazioni per Fail2Ban

Una volta installato, dovremo configurare e personalizzare il software con un file di configurazione jail.local. Il file jail.local sovrascrive il file jail.conf e viene utilizzato per rendere sicuro l'aggiornamento della configurazione personalizzata.

Fai una copia del file jail.conf e salvalo con il nome jail.local:

cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Apri il file jail.local per la modifica in Nano con il seguente comando.

nano /etc/fail2ban/jail.local

Il codice del file può essere costituito da molte righe di codice che vengono eseguite per impedire il ban su uno o più indirizzi IP, impostare la durata del bantime, ecc. Un tipico file di configurazione jail contiene le seguenti righe.

[DEFAULT]

#
# MISCELLANEOUS OPTIONS
#

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

Ignora viene utilizzato per impostare l'elenco degli IP che non verranno bannati. L'elenco degli indirizzi IP deve essere fornito con uno spazio separatore. Questo parametro viene utilizzato per impostare il tuo indirizzo IP personale (se accedi al server da un IP fisso).

Bantimo parametro viene utilizzato per impostare la durata dei secondi per i quali un host deve essere bannato.

Trova tempo è il parametro che viene utilizzato per verificare se un host deve essere bannato o meno. Quando l'host genera maxrety nel suo ultimo tempo di ricerca, viene bannato.

Riprova massima è il parametro utilizzato per impostare il limite per il numero di tentativi da parte di un host, al superamento di tale limite, l'host viene bannato.

Aggiungi un file jail per proteggere SSH.

Crea un nuovo file con l'editor Nano

nano /etc/fail2ban/jail.d/sshd.local

Al file sopra, aggiungi le seguenti righe di codice.

[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

Parametro abilitato è impostato su true, per fornire protezione, per disattivare la protezione, è impostato su false. Il parametro filter controlla il file di configurazione sshd, che si trova nel percorso /etc/fail2ban/filter.d/sshd.conf.

Il parametro azione viene utilizzato per ricavare l'indirizzo IP che deve essere bannato utilizzando il filtro disponibile da /etc/fail2ban/action.d/firewallcmd-ipset.conf.

Porto il parametro può essere modificato in un nuovo valore come port=1212, come nel caso. Quando si utilizza la porta 22, non è necessario modificare questo parametro.

Percorso log fornisce il percorso in cui è archiviato il file di registro. Questo file di registro viene scansionato da Fail2Ban.

Riprova massima viene utilizzato per impostare il limite massimo per le voci di accesso non riuscite.

Bantimo parametro viene utilizzato per impostare la durata dei secondi per i quali un host deve essere bannato.

Esecuzione del servizio Fail2Ban

Quando non stai ancora eseguendo CentOS Firewall, avvialo:

systemctl enable firewalld
systemctl start firewalld

Eseguire le seguenti righe di comando per eseguire il software di protezione Fail2Ban sul server.

systemctl enable fail2ban
systemctl start fail2ban 

Tracciamento delle voci di accesso non riuscite

Il comando seguente viene utilizzato per verificare se ci sono stati tentativi falliti di accesso al server tramite la porta ssh.

cat /var/log/secure | grep 'Failed password'

L'esecuzione del comando precedente otterrà un elenco di tentativi di password root non riusciti da indirizzi IP diversi. Il formato dei risultati sarà simile a quello mostrato di seguito:

Apr 4 17:05:12 htf sshd[4287]: Failed password for root from 108.61.157.25 port 23121 ssh2
Apr 4 17:05:15 htf sshd[3154]: Failed password for root from 108.61.157.25 port 14486 ssh2
Apr 4 17:05:16 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2
Apr 4 17:05:18 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2

Controllo degli IP bannati da Fail2Ban

Il comando seguente viene utilizzato per ottenere un elenco di indirizzi IP vietati che sono stati riconosciuti come minacce di forza bruta.

iptables -L -n

Controlla lo stato di Fal2Ban

Usa il seguente comando per controllare lo stato delle jail Fail2Ban:

fail2ban-client status

Il risultato dovrebbe essere simile a questo:

[[email protected] ]# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

Annullamento di un indirizzo IP

Per rimuovere un indirizzo IP dall'elenco dei banditi, il parametro IPADDRESS è impostato sull'IP appropriato che deve essere annullato. Il nome "sshd" è il nome della jail, in questo caso la jail "sshd" che abbiamo configurato sopra. Il comando seguente fa il lavoro.

fail2ban-client set sshd unbanip IPADDRESS

Cent OS
  1. Come installare PHP 7, 7.2 e 7.3 su CentOS 7

  2. Come installare Java 11 e 12 su CentOS 7

  3. Come installare Wine 4.0 su CentOS 7

  4. Installa Fail2ban su CentOS

  5. Come installare Logaholic su CentOS

Come installare R su CentOS 8

Come installare e utilizzare Fail2ban su RHEL 8 / CentOS 8

Come installare e configurare Fail2ban su CentOS 8

Come installare Fail2Ban su CentOS

Come installare Fail2Ban su CentOS 7

Come installare Fail2Ban su CentOS 8