Home @giubbe.org


×

Attenzione!

Le parole scritte in rosso devono essere sostituite dai vostri parametri.

×

Beta!

Stiamo lavorando al sito e commetteremo tanti errori: potete segnalarceli tramite il modulo "Contattaci" (@giubbe.org).
Segnalateci anche eventuali vostre richieste.
Grazie. !!!

UFW

Uncomplicated FireWall.

Ufw è una applicazione firewall, molto facile da impostare.
È stato sviluppato da Canonical, gli sviluppatori di Ubuntu, per gestire le iptables in maniera molto semplificata, iptables che a loro volta gestiscono netfilter, un sistema che filtra i pacchetti di dati del kernel Linux.
La gestione di questi filtri attraverso iptable è si molto completa, ma anche molto complessa.
Ed è per questo che è stato sviluppato Ufw, per "maneggiare" netfilter da linea di comando in maniera molto semplice.

Come al solito, prima aggiorniamo il sistema :

sudo apt update && sudo apt upgrade

Ed in seguito installiamo UFW :
sudo apt install -y ufw


Di default, UFW nega tutto, anche se non è avviato di default, altrimenti non riusciremmo neanche a collegarci alla macchina.
cat /etc/default/ufw
ufw

Supporta IPv6 e blocca le connessioni .
L'opzione Drop, a differenza di Reject, non invia una risposta al client.

Dato che abbiamo disabilitato IPv6 sulla macchina, disabilitiamo il protocollo anche in UFW:
sudo nano /etc/default/ufw
e poniamo un commento davanti a IPv6.

ufw

Ctrl+X, Y, Invio, così salviamo le modifiche.

Adesso, dobbiamo abilitare le porte interessate dalle applicazioni installate, affinchè queste siano raggiungibili dall'esterno.
Possiamo o nominare la porta con il protocollo (ad esempio: 80/tcp), oppure, usare una funzione di UFW per agevolare l'inserimento delle applicazioni:
sudo ufw app list
ufw

Possiamo anche chiedere informazioni sulla singola app:
sudo ufw app info 'WWW"
ufw

Passiamo alle autorizzazioni.

La prima è per noi stessi, per non rimanere "tagliati fuori" dal server :
sudo ufw prepend allow from 192.168.1.0/24
ufw

Abbiamo preposto una regola che ci permette qualsiasi connessione da qualunque indirizzo della nostra maschera di sottorete.
Adeguatela ai vostri indirizzi ; se usate solo un client per connettervi, indicate solo l'indirizzo di questo.

Abilitiamo il nostro primo servizio:
sudo ufw allow DNS
ufw

Allo stesso modo, abilitiamo IMAP e IMAPS.

Passando all'abilitazione delle applicazioni della lista, dovremo indicarle tra doppie virgolette:
sudo ufw allow "Mail submission"
ufw

Continuiamo, abilitando POP3, POP3S, Postfix, Postfix SMTPS, Postfix Submission e WWW

Per la porta SSH, potremmo volere abilitare solo il range dei nostri indirizzi privati, impedendo connessioni dall'esterno.
Per fare ciò, prima disabilitiamo OpenSSH:
sudo ufw delete allow "OpenSSH"
ufw

E, poi, abilitiamo i nostri indirizzi sulla porta 22/tcp, quella usata dal servizio SSH:
sudo ufw allow from 192.168.1.0/24 proto tcp to any port 22
ufw

Possiamo fare lo stesso per la porta 3306, usata da MariaDB:
sudo ufw allow from 192.168.1.0/24 to any port 3306
ufw


A questo punto, possiamo abilitare UFW:
sudo ufw enable
ufw

UFW ci avverte della possibilità di disconnessioni SSH, se mal configurate.
Premiamo il tasto Y seguito da Invio .

ufw

UFW attivato.
Vediamone lo stato
sudo ufw status
ufw


Sempre a fini didatici, vediamo un'altro caso.
Apriamo il file di log del nostro Mail Server; con tail -n 200, vediamo solo le ultime 200 righe del file e con less rendiamo tutto più facilmente consultabile :
sudo tail -n /var/log/mail.log | less
ufw

e troviamo, tra le tante, una riga preoccupante:

ufw

Qualcuno, con ip 171.244.185.15, tenta di connettersi ad una utenza non gestita dal nostro Server.
Intanto, dobbiamo conoscere da dove si connette.
Abbiamo bisogno di un paio di applicazioni da installare:
sudo apt install -y curl jq
ufw

Adesso abbiamo i mezzi per conoscere da dove si connette l'ip sospetto:
curl https://ipinfo.io/171.244.185.15
ufw

Non abbiamo nessun contatto risiedente in Vietnam, perciò vogliamo impedire a quel ip di connettersi al nostro server :
sudo ufw deny from 171.244.185.15
ufw

Fatto, ma non abbiamo risolto il problema, se non temporaneamente: colui che tenta di connettersi, sicuramente non avrà quel ip come "suo", fisso.
Perciò basterà che egli si disconnetta, per ottenere un nuovo ip dhcp e ritentare di connettersi al nostro server.
Inoltre, la persona a cui sarà assegnata quel numero ip, sempre con il dhcp del provider, sarà ignara dei tentativi di chi l'ha preceduto, ma ne pagherà comunque le conseguenze, non potendosi connettere al nostro server, anche se, per ipotesi, utente abilitato.
Queste problematiche potranno essere superate con un altra app, Fail2ban, che affronteremo in una prossima pagina.

Possiamo anche disabilitare tutto un range di indirizzi:

ufw

Ed abilitare un range di porte:

ufw

Possiamo chiedere uno stato maggiormente dettagliato:

ufw

Ed uno numerato:

ufw

I numeri possono essere utili, per richiamare una regola.
Abbiamo inserito la regola 12, riguardante SSH ed anche la 13 per la porta di mysql, ma non ne avevamo bisogno (se non sempre a fini didattici), perchè, la regola numero 1 ci permette tutte le connessioni, senza bisogno di specificarle singolarmente.
Perciò possiamo eliminarle;
eliminiamo prima la 12:
sudo ufw delete 12
ufw

e poi nuovamente la 12, avendo la 13 preso il posto dell'eliminata precedentemente:
sudo ufw delete 12
ufw


Altro caso ed altra opzione di UFW.
Sempre nei file di log del nostro server, troviamo questo ip che tenta di connettersi al protocollo Imap, senza successo, ma intasando il servizio con le sue connessioni.
Non sembra un attacco brute force, ma vi si avvicina.

ufw


ufw

Per impedirlo, UFW ci offre una opzione:
sudo ufw limit 143/tcp
ufw

Abbiamo impostato un limite alle connessioni permesse, cosa molto buona per proteggerci da attacchi di forza bruta, limite di 5 connessioni ogni 30 secondi; se lo stesso indirizzo ip tenta più connessioni nell'arco di quei secondi, gli sarà negata la connessione.

Per conoscere ancora più opzioni di UFW, consultarne il manuale:
man ufw

Per puro scopo di conoscenza, diamo uno sguardo a come sarebbe impostare i netfilters con iptable :
sudo iptables -L | less
ufw

ufw

ufw

ufw


Comparativamente, decisamente tantissimo Uncomplicated FireWall :

ufw