Iniziare con ufw-firewall-su-debian, Ubuntu, Linux Mint Server | Linuxiano.it
Privacy Policy

Iniziare con ufw-firewall-su-debian, Ubuntu, Linux Mint Server

Iniziare con UFW Firewall su Debian, Ubuntu, Linux Mint Server

In Questo tutorial mostrerò come usare UFW (UnWill FireWall) su Debian/Ubuntu/Linux Mint con alcuni esempi del mondo reale. La gestione del firewall è una competenza di base che ogni amministratore di sistema deve conoscere

UFW è un front-end per iptables, per semplificare la gestione diro un firewall Netfilter, da cui il nome “Uncomplicated Firewall”. Fornisce un’interfaccia da riga di comando con sintassi simile a Packet Filter di OpenBSD.
Particolarmante adatto come firewall, basato su host, è il front-end raccomandato per le distribuzioni Linux basate su Debian e solitamente preinstallato su dette distros.
Come impostazione predefinita, UFW imposta le regole del firewall per l’indirizzo IPv4 e IPv6. Un altro noto front-end di iptables è firewalld, che è l’applicazione firewall predefinita su distribuzioni Linux basate su RPM (RHEL, CentOS, Fedora, OpenSUSE, ecc.).

Disabilitazione di altri servizi di ripristino di Iptables

Come probabilmente saprai, le regole del firewall iptables verranno cancellate quando il sistema operativo si spegne e il programma iptables stesso non ripristina le regole del firewall. UFW ripristina per impostazione predefinita le regole del firewall dopo il riavvio del sistema. Prima di utilizzare UFW, è importante verificare sul sistema se esiste un altro servizio di ripristino di iptables. Se ci sono due servizi di ripristino, questi saranno in conflitto tra loro, il che spesso si traduce in applicazioni Web non disponibili dopo il riavvio del sistema.

Se utilizzate direttamente il firewall iptables allora è arrivata l’ora di passare a UFW, è sufficiente disabilitare il servizio di ripristino di iptables. Iptables-persistent è un noto servizio di ripristino di iptables su Debian / Ubuntu. Possiamo verificare se è in esecuzione con il seguente comando.

Terminale
  1. systemctl status iptables-persistent

Se è in esecuzione, puoi fermarlo e disabilitarlo:

Terminale
  1. sudo systemctl stop iptables-persistent
  2. sudo systemctl disable iptables-persistent

O puoi rimuoverlo dal tuo sistema:

Terminale
  1. sudo apt rimuove iptables-persistent

Se hai configurato il tuo server di posta usando iRedMail, esegui questo comando per verificare se il servizio iptables è in esecuzione:

Terminale
  1. systemctl status iptables

Questo servizio iptables viene fornito con iRedMail per ripristinare le regole del firewall iptables. Se è in esecuzione, puoi fermarlo e disabilitarlo:

Terminale
  1. sudo systemctl stop iptables
  2. sudo systemctl disable iptables

Ora impariamo come usare UFW

Iniziare con UFW su Deint / Ubuntu / Linux Mint Server

UFW è solitamente preinstallato su Debian / Ubuntu / Linux Mint, sebbene sia sempre se non eseguite il seguente comando per installarlo:

Terminale
  1. sudo apt install ufw

Nota: è possibile installare UFW su Arch Linux con sudo pacman -S ufw , ma è anche necessario abilitare il servizio systemd UFW con sudo systemctl enable ufw.

Durante l’installazione, ufw è disabilitato. Possiamo verificare lo stato UFW con:

Terminale
  1. sudo ufw status
  2. ufw firewall

ufw-firewall-su-debian

Al momento il mio firewall è inattivo

Prima di abilitare UFW, dobbiamo sapere quali porte sono aperte sull’indirizzo IP pubblico del server, che può essere ottenuto con l’aiuto di nmap (Network Mapper).

Installare NMAP

Installa nmap sul tuo server Debian / Ubuntu / Linux Mint ed esegui la scansione delle porte aperte sull’indirizzo IP pubblic:

Terminale
  1. sudo apt install nmap
  2. sudo nmap 83.79.198.92

Sostituisci 83.79.198.92 con l’indirizzo IP pubblico reale del tuo server. Come puoi vedere dallo screenshot qui sotto, ci sono diverse porte aperte sul mio server. Per vedere il tuo IP Pubblico clicca qui.

ufw-firewall-su-debian

Ci sono anche porte aperte che ascoltano solo su localhost, che possono essere ottenute eseguendo sudo nmap localhost , ma non dobbiamo preoccuparcene.

Nmap per impostazione predefinita scansiona solo le porte TCP. Possiamo usare il seguente comando per scansionare le porte UDP:

Terminale
  1. sudo nmap -sU 83.79.198.92

Tuttavia, la scansione UDP è terribilmente lenta. Se non si può aspettare così a lungo, è possibile utilizzare netstat per elencare le porte UDP:

Terminale
  1. sudo netstat -lnpu

Dopo aver ottenuto le porte TCP e UDP aperte sul server, dobbiamo decidere quali porte accettare per le connessioni in entrata. Se è in esecuzione un server openSSH, dobbiamo consentire sempre la porta TCP 22 prima di attivare UFW. Otteremo questo tramite il seguente comando:

Terminale
  1. sudo ufw allow 22/tcp

o

Terminale
  1. sudo ufw allow ssh

ufw-firewall-su-debian

Probabilmente vuoi consentire il traffico HTTP e HTTPS, quindi esegui il seguente comando per consentire la connessione in entrata sulla porta TCP 80 e 443:

Terminale
  1. sudo ufw allow 80/tcp
  2. sudo ufw allow 443/tcp

Se eseguite un server di posta elettronica , dovete consentire la porta TCP 25 (SMTP), 587 (invio), 143 (imap) e 993 (imaps):

Terminale
  1. sudo -s
  2. ufw allow 25/tcp
  3. ufw allow 587/tcp
  4. ufw allow 143/tcp
  5. ufw allow 993/tcp

Se desiderate che l’utente sia in grado di utilizzare il protocollo POP3, diamo il consenso alla porta TCP 110 (POP3) e 995 (POP3S):

Terminale
  1. sudo ufw allow 110/tcp
  2. sudo ufw allow 995/tcp

Se si esegue un server BIND DNS , dobbiamo aprire la porta TCP e UDP 53:

Terminale
  1. sudo ufw allow 53

Il comando precedente consentirà la porta TCP e UDP. Se  desiderate consentire solo la porta UDP:

Terminale
  1. sudo ufw allow 53/udp

Abilitazione UFW

Dopo aver impostato le porte consentite in UFW, dobbiamo abilitarlo. Ma prima di farlo, si consiglia di abilitare la registrazione con il seguente comando in modo da capire meglio se il firewall funziona correttamente:

Terminale
  1. sudo ufw logging on

Il livello di registro predefinito è ‘basso’. Il file di registro si trova /var/log/ufw.log . Di solito uso il livello di log “medio”:

Terminale
  1. sudo ufw logging medium

Ora abilita UFW

Terminale
  1. sudo  ufw enable

ufw-firewall-su-debian

Nota: se avete utilizzato in precedenza il firewall iptables, tali regole del firewall iptables verranno annullate una volta abilitato UFW.

Controllare lo stato:

Terminale
  1. sudo ufw status

Per mostrare più informazioni, esegui

Terminale
  1. sudo ufw status verbose

Ora puoi eseguire nuovamente la scansione del tuo server per scoprire quali porte sono ancora aperte.

Terminale
  1. sudo nmap 83.79.198.92

ufw-firewall-su-debian

Come eliminare una regola del firewall

Innanzitutto, dobbiamo ottenere il numero di riferimento della regola firewall che desideriamo eliminare con il seguente comando:

Terminale
  1. sudo ufw status numbered

Quindi puoi eliminare una regola, ad esempio l’ottava regola:

Terminale
  1. sudo ufw cancel 8

Da notare che il numero di riferimento cambierà dopo aver eliminato una regola, quindi dobbiamo eseguire di nuovo  sudo ufw status numbered per eliminare un’altra regola.

Reimposta UFW

In caso di errore, possiamo disabilitare e ripristinare il firewall alle impostazioni predefinite di installazione:

Terminale
  1. sudo ufw reset

Questo è particolarmente utile per i principianti.

Profilo dell’applicazione UFW

Molti programmi server vengono forniti con profili UFW. Possiamo elencare tutti i profili dell’applicazione con:

Terminale
  1. sudo ufw app list

ufw-firewall-su-debian

Possiamo mostrare informazioni su un profilo di applicazione specifico, ad esempio, il profilo “CUPS”.

Terminale
  1. sudo ufw app info “CUPS”

Possiamo vedere che la porta utilizzata da questo profilo sono la porta TCP 631. Se abilitiamo questo profilo con il seguente comando, saranno consentite la porta TCP 631.

Terminale
  1. sudo ufw allow “CUPS”

Creazione di una lista nera di indirizzi IP con UFW

Diciamo che c’è uno spammer cerca costantemente di inviare spam al tuo server di posta. È possibile utilizzare UFW per bloccare l’indirizzo IP dello spammer dall’accesso alla porta TCP 25 del proprio server di posta, con il seguente comando. Sostituisci 83.79.198.92 con l’indirizzo IP dello spammer:

Terminale
  1. sudo ufw insert 1 deny in from 83.79.198.92 to any port 25 proto tcp

Da notare che per impostazione predefinita le nuove regole del firewall aggiunte sono messe in fondo. Se in precedenza hai autorizzato l’accesso alla porta 25, devi inserire la regola di negazione come prima regola, proprio come sopra, quindi la regola di negazione verrà applicata per prima. È sempre possibile inserire una nuova regola di negazione come prima regola.

Terminale
  1. sudo ufw insert 1 deny in from 78.56.34.12 to any port 25 proto tcp

Puoi anche bloccare un intervallo di indirizzi IP come di seguito:

Terminale

sudo ufw insert 1 deny in from 192.168.0.0/24 to any port 25 proto tcp

Per bloccare un indirizzo IP dall’accesso a tutte le porte sul tuo server, esegui:

Terminale
  1. sudo ufw insert 1 deny in from 83.79.198.92

Creazione di whitelist indirizzi IP con UFW

Supponiamo che tu esegua un server OpenSSH e desideri consentire solo a determinati indirizzi IP di accedere al tuo server tramite SSH. Possiamo utilizzare UFW per creare una whitelist di indirizzi IP. Ad esempio, non ho l’indirizzo IP statico a casa, ma ho configurato diversi server VPN sul cloud , quindi ora posso configurare UFW per consentire la connessione in entrata alla porta 22 solo dall’indirizzo IP del mio server VPN.

Innanzitutto, aggiungi l’indirizzo IP all’elenco delle autorizzazioni:

Terminale
  1. sudo ufw insert 1 allow in from 83.79.198.92 to any port 22 proto tcp

Quindi è necessario ottenere il numero di riferimento della regola SSH consenti da qualsiasi luogo ed eliminare quella regola:

Terminale
  1. sudo ufw status numbered
  2. sudo ufw delete reference-number

ufw-firewall-su-debian

Da notare che è necessario eliminare entrambe le regole IPv4 e IPv6, inoltre se si elimina prima la regola superiore, il numero di riferimento della regola inferiore cambierà.

Da qui in poi, solo il tuo indirizzo IP può accedere alla porta TCP 22.

Come utilizzare l’indirizzo IPv6 in UFW

Innanzitutto, assicurati che IPV6=yes sia impostato nel /etc/default/ufw . Se non è impostato, aggiungilo in quel file e riavvia UFW:

Terminale

sudo systemctl restart ufw

Quindi puoi semplicemente sostituire IPv4 con l’indirizzo IPv6 nei comandi ufw come sotto:

Terminale

sudo ufw allow in from 2607:f8b0:4005:804::200e to any port 587

Come configurare IP Masquerading con UFW

Se volessimo configurare il nostro server VPN ,dobbiamo impostare il masquerading IP sul server VPN in modo che diventi un router virtuale per i client VPN. Sfortunatamente, UFW non fornisce un modo conveniente per farlo. Dobbiamo aggiungere il comando iptables in un file di configurazione UFW.

Terminale
  1. sudo gedit /etc/ufw/before.rules

Per impostazione predefinita, ci sono alcune regole per la tabella dei filter . Aggiungi le seguenti righe alla fine di questo file:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] # Forward traffic through eth0 – Change eth0 to match your network interface
-A POSTROUTING -o eth0 -j MASQUERADE

# End each table with the ‘COMMIT’ line or these rules won’t be processed
COMMIT

Da notare che se l’interfaccia di rete principale non è eth0 , dobbiano modificare eth0 con il nome dell’interfaccia di rete, che può essere ottenuto con il comando ip addr . E poiché stiamo aggiungendo le regole del firewall a una nuova tabella, ovvero la tabella nat , dobbiamo aggiungere la riga ‘COMMIT’.

Salva e chiudi il file. Quindi modifica il /etc/default/ufw:

Terminale
  1. sudo gedit /etc/default/ufw

Cambia il criterio di inoltro predefinito da “DROP” a “ACCEPT”.

DEFAULT_FORWARD_POLICY=”ACCEPT”

Salva e chiudi il file. Quindi riavviare UFW:

Terminale
  1. sudo ufw disable
  2. sudo ufw enable

o semplicemente:

Terminale
  1. sudo systemctl restart ufw

Sebbene questo non sia correlato per la configurazione UFW, ma per instradare i pacchetti, dobbiamo anche configurare l’IP forwarding. Questo può essere fatto impostando quanto segue alla fine del file /etc/sysctl.conf:

Terminale
  1. net.ipv4.ip_forward = 1

Quindi applicare le modifiche con il seguente comando.

Terminale
  1. sudo sysctl -p

UFW e fail2ban

Fail2ban è un programma che utilizza il firewall iptables per prevenire i server dagli attacchi brute-force. UFW e Fail2ban non interferiranno tra loro.

Grazie! per l’utilizzo della Guida di Linuxiano.

Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Iscriviti al sito

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio


Ho letto

l’informativa Privacy

e autorizzo il trattamento dei miei dati personali per le finalità ivi indicate.

Risolvi il reCAPTCHA per dimostrare che non sei un robot:
[recaptcha]

clicca qui per tornare a Linuxiano