Prerequisiti
- Un server Linux (Ubuntu, Debian, CentOS)
- Accesso root o permessi sudo
- Fail2ban installato
- Conoscenze base di configurazione di firewall
Step 1: Installazione di Fail2ban
Iniziamo installando Fail2ban, un servizio che monitora i log e blocca gli indirizzi IP sospetti. È fondamentale per proteggere il tuo server da attacchi brutali.
sudo apt-get update
sudo apt-get install fail2ban
# Output:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
fail2ban
Perché funziona: Questo comando aggiorna la lista dei pacchetti e installa Fail2ban.
Nota cross-distro: Su CentOS, utilizza yum install fail2ban.
Step 2: Configurazione di Fail2ban
Una volta installato, è necessario configurarlo per monitorare i servizi più vulnerabili, come SSH.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# Output:
cp: cannot create regular file '/etc/fail2ban/jail.local': File exists
Perché funziona: Copiamo il file di configurazione per evitare di sovrascrivere le impostazioni predefinite.
Step 2.1: Modifica del file di configurazione
Ora modifichiamo il file jail.local per abilitare le regole che ci interessano.
sudo nano /etc/fail2ban/jail.local
# Output:
(aprirà l'editor nano)
Perché funziona: Apriamo il file di configurazione per apportare modifiche necessarie.
All'interno del file, cerca la sezione relativa a SSH e modifica i seguenti parametri:
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
# Output:
(nessun output, salvataggio delle modifiche)
Perché funziona: Queste impostazioni abilitano Fail2ban per monitorare le connessioni SSH e bloccano gli IP dopo 5 tentativi falliti per 10 minuti.
Step 3: Avvio e verifica di Fail2ban
Dopo aver configurato tutto, dobbiamo avviare il servizio e verificare che funzioni correttamente.
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
# Output:
(nessun output, avvio del servizio)
Perché funziona: Avviamo Fail2ban e lo impostiamo per avviarsi automaticamente al boot.
Step 3.1: Verifica dello stato di Fail2ban
Controlliamo lo stato di Fail2ban per assicurarci che stia monitorando correttamente.
sudo fail2ban-client status
# Output:
Status
|- Number of jail: 1
`- Jail list: sshd
Perché funziona: Questo comando mostra lo stato di Fail2ban e le prigioni attive.
Verifica finale
Per assicurarci che Fail2ban funzioni correttamente, possiamo tentare di effettuare più accessi SSH falliti da un IP diverso. Dopo 5 tentativi, dovremmo vedere il blocco.
sudo fail2ban-client status sshd
# Output:
Status for the jail: sshd
|- Filter
| |- Currently banned: 1
| `- Total banned: 1
|- Actions
| |- Currently banned: 1
| `- Total banned: 1
Interpretazione: Questo output indica che l'IP è stato bloccato correttamente.
Troubleshooting
- Errore:
ERROR 'No file found for sshd' in /etc/fail2ban/filter.d/sshd.conf- Causa: Il file di configurazione del filtro non esiste.
- Soluzione: Assicurati che il pacchetto
fail2bansia installato correttamente.
- Errore:
Ban time not set- Causa: Il parametro
bantimenon è configurato. - Soluzione: Aggiungi
bantime = 600al filejail.local.
- Causa: Il parametro
- Errore:
Failed to start fail2ban.service- Causa: Problemi di permessi o configurazione errata.
- Soluzione: Controlla i log di sistema con
journalctl -xe.
Conclusione
Abbiamo configurato Fail2ban per proteggere il nostro server Linux da attacchi di forza bruta. Come prossimo passo, considera di monitorare ulteriori servizi critici come FTP o HTTP per una protezione completa.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.