Seleziona una pagina

Installare e Configurare Fail2Ban per proteggere FreePBX su di un server unix come Debian o Ubuntu

Fail2ban è disponibile nei repository predefiniti, quindi può essere facilmente installato tramite yum, dpkg, apt. Per questa guida userò il comando apt di Ubuntu:

sudo apt update
sudo apt install fail2ban

Possiamo trovare i file di configurazione di Fail2ban nella directory /etc/fail2ban. Il file principale da modificare è jail.conf.

jail.conf potrebbe essere sovrascritto dagli aggiornamenti del pacchetto, quindi consiglio di creare una copia di questo file che chiameremo jail.local, questo andrà a sovrascrivere quello originale. In questo modo non dovremo avere problemi anche in seguito ad aggiornamenti del pacchetto Fail2ban.

Installare e Configurare Fail2Ban per proteggere FreePBX

La sezione principale di jail.conf (jail.local, la nostra copia) si chiama [DEFAULT]. Successivamente troviamo le varie sezioni dei singoli servizi, come per esempio [sshd].

Creiamo il nostro file jail.local da terminale:

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

fail2ban è configurato per impostazione predefinita per vietare solo i tentativi di accesso SSH non riusciti. Verificare la configurazione corrente con il seguente comando:

sudo fail2ban-client status 

Status

|- Number of jail: 1

`- Jail list: sshd

Impostare Ufw

Cominciamo configurando fail2ban per usare ufw invece di iptables.

Modifichiamo il file jail.local a riguardo:

sudo nano /etc/fail2ban/jail.local

Cerca e sostituisci il valore:

banaction = iptables-multiport

con

banaction = ufw

Installare e Configurare Fail2Ban per proteggere FreePBX

Abilitare i Jail per FreePBX

fail2ban viene fornito con molti jail pronti per l’uso. Si trovano nella directory /etc/fail2ban/jail.d/. Ma non sempre fanno al caso nostro ed ovviamente possono essere personalizzati o creati di nuovi.

Quindi noi andremo a crearne uno nuovo e lo chiameremo asterisk-full

sudo nano /etc/fail2ban/jail.d/asterisk-full

Ed incolliamo il seguente codice:

[asterisk-full]
enabled = true
port = all
filter = asterisk-full
logpath = /var/log/asterisk/full
maxretry = 3
findtime = 1200

Nella prima riga, tra parentesi quadre, troveremo il nome del jail.

La seconda riga, booleana, potremo abilitare il jail (true) o disabilitarlo (modificando in false il valore).

La terza riga indica su quali porte verrà bannato l’ip che risponderà al jail

Nella quarta riga si indica quale filtro deve usare questa jail

Invece logpath indica quale fil di log deve essere valutato

Il maxretry indica quante volte un determinato IP deve essere trovato prima di venir bannato entro il tempo impostato in findtime (in secondi)

A questo punto possiamo ricaricare le impostazioni di fail2ban con il seguente comando:

sudo fail2ban-client reload

Verifichiamo che il nostro jail sia attivo:

sudo fail2ban-client status

Dovremmo vedere nel responso il nostro jail chiamato asterisk-full:

Status
|- Number of jail: 2
`- Jail list: asterisk-full, sshd

Installare e Configurare Fail2Ban per proteggere FreePBX

Creare il Filtro

È facile estendere fail2ban con filtri personalizzati. Creiamo un filtro per impedire richieste di accoppiamento interni compatibili con i log di Asterisk. Sarà chiamato asterisk-full e lo creeremo in /etc/fail2ban/filter.d/.

sudo nano /etc/fail2ban/filter.d/asterisk-full.conf

Ed incolliamo nel file creato quanto sotto:

[Definition]
failregex = .*NOTICE.* .*: Request '.*' from '.*' failed for '<HOST>:.*' .*- Failed to authenticate
            .*NOTICE.* .*: Request '.*' from '.*' failed for '<HOST>:.*' .*- No matching endpoint found
ignoreregex =

Installare e Configurare Fail2Ban per proteggere FreePBX

Dopo aver salvato il file è possibile verificare che l’espressione definita sia corretta e trovi in effetti riscontro nel file log di asterisk, tramite il comando fail2ban-regex:

sudo fail2ban-regex /var/log/asterisk/full /etc/fail2ban/filter.d/asterisk-full.conf

A seconda della grandezza del file log di asterisk, questo comando potrebbe richiedere anche decine di minuti di tempo per dare un riscontro simile a questo:

Running tests
=============

Use   failregex filter file : asterisk-full, basedir: /etc/fail2ban
Use         log file : /var/log/asterisk/full
Use         encoding : UTF-8


Results
=======

Failregex: 80 total
|-  #) [# of hits] regular expression
|   1) [40] .*NOTICE.* .*: Request '.*' from '.*' failed for '<HOST>:.*' .*- Failed to authenticate
|   2) [40] .*NOTICE.* .*: Request '.*' from '.*' failed for '<HOST>:.*' .*- No matching endpoint found
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [80] Year(?P<_sep>[-/.])Month(?P=_sep)Day 24hour:Minute:Second(?:,Microseconds)?
`-

Lines: 80 lines, 0 ignored, 80 matched, 0 missed [processed in 0.06 sec]

Installare e Configurare Fail2Ban per proteggere FreePBX

Come possiamo vedere ha trovato 80 corrispondenze, di cui 40 con la prima espressione regolare ed il restante con la seconda. Quindi possiamo andare a concludere la configurazione ricaricando le impostazioni di fail2ban con il solito comando:

sudo fail2ban-client reload

Ricontrolliamo che la nostra jail sia attiva con:

sudo fail2ban-client status

Status
|- Number of jail:      2
`- Jail list:   asterisk-full, sshd

Da questo momento la nostra jail è attiva e funzionante! Possiamo verificarne lo stato di funzionamento con il comando:

sudo fail2ban-client status asterisk-full

nonchè vedere gli IP bannati tramite ufw con

ufw status

Aggiungere o Rimuovere un IP Bannato

Semmai volessimo aggiungere un IP al fail2ban appena creato, per bannarlo su tutte le porte e fare in modo che non dia più fastidio nei log che ci piacciono controllare, possiamo usare il seguente comando:

sudo fail2ban-client set asterisk-full banip 1.2.3.4

Al contrario, per eliminare un IP dal ban:

sudo fail2ban-client set asterisk-full unbanip 1.2.3.4

Questo è quanto! ^_^

Installare e Configurare Fail2Ban per proteggere FreePBX

Summary
Installare e Configurare Fail2Ban per proteggere FreePBX
Article Name
Installare e Configurare Fail2Ban per proteggere FreePBX
Description
Installare e Configurare Fail2Ban per proteggere FreePBX - Come farlo su un sistema Unix, con FreePBX, Asterisk e Fail2Ban
Author
Publisher Name
ServerBiT
Publisher Logo