Come utilizzare il firewall di Ubuntu

Cos'è UFW
La maggior parte degli amministratori di sistema non ama configurare applicazioni di sicurezza di rete, come i firewall, in remoto. Queste applicazioni bloccano di default l'accesso dall'esterno per tutte le applicazioni, ad eccezione di quelle chiaramente indicate come consentite.
Se si verifica un errore, potresti perdere il controllo remoto sulla rete. Abbiamo creato questa guida specificamente affinché tu possa di nuovo vedere la procedura corretta per configurare un firewall UFW standard sul sistema operativo Linux Ubuntu.
Se approfondisci, UFW non è realmente un firewall. È solo un'utilità comoda con cui è possibile configurare il netfilter incorporato nel kernel Linux dalla versione 2.4. Non c'è modo di configurare direttamente netfilter, quindi per questo scopo è stata scritta l'utilità iptables.
Beh, UFW ha reso possibile semplificare ulteriormente questo processo, rendendo possibile gestire rapidamente le regole senza la necessità di scrivere file di configurazione o leggere attentamente il manuale di iptables. Questo è ciò che è effettivamente codificato nell'acronimo UFW: Uncomplicated Firewall.
Perché UFW è disabilitato di default
Una Volta™ installato il sistema operativo Ubuntu su un server, di default non ha una singola porta aperta che dovrebbe essere protetta da un firewall. Quindi, anche se UFW è installato, rimane in uno stato inattivo fino a quando l'utente non ha bisogno di configurare la protezione. La cosa da ricordare è che prima di abilitare il firewall, devi assicurarti che facendo così non ti priverai del modo di configurare il server.
Ad esempio, se gestisci il server utilizzando una connessione SSH, allora prima di attivare il firewall, devi indicare esplicitamente che il demone OpenSSH ha il permesso di utilizzare la porta 22 (o un'altra, se configurata) e dovrebbe accettare le connessioni dall'esterno, e non scartarle, come è implementato per tutte le connessioni esterne di default. Per fare ciò, devi utilizzare un profilo di applicazione OpenSSH pronto all'uso o creare una regola personalizzata.
Stato UFW
Prima di tutto, assicuriamoci che UFW sia nel sistema operativo. Per fare ciò, esegui il comando:
sudo ufw status verbose
Se ricevi la seguente risposta, significa che UFW è installato sul sistema operativo, ma come menzionato sopra, è in uno stato inattivo:
Stato: inattivo
Altrimenti, aggiorna la cache del pacchetto e installa UFW utilizzando il packer manager standard:
sudo apt update && sudo apt -y install ufw
Abilita il firewall
Attenzione! Prima di eseguire il seguente comando, assicurati di avere la possibilità di controllare il server abilitando un profilo di applicazione (OpenSSH per esempio) o attivando una regola personalizzata.
sudo ufw enable
Verifichiamo lo stato di UFW chiamando di nuovo il seguente comando:
sudo ufw status verbose
Disabilita il firewall
Il firewall può essere spento con il comando "disabilita". Si noti che questa azione non influisce in alcun modo sulle regole precedentemente create. Continueranno tutte a funzionare non appena il firewall verrà riattivato:
sudo ufw disable
Abilita la registrazione
La seconda funzione più importante del firewall è la registrazione. Con il suo aiuto, è possibile sia verificare che UFW funzioni correttamente sia identificare i segni di cyberattacchi. Per attivare la funzione di registrazione, esegui il seguente comando:
sudo ufw logging on
Registrazione abilitata
tail -f /var/log/ufw.log
… 10 lug 05:54:24 ubuntu22044 kernel: [56235.006445] [UFW BLOCK] IN=enp134s0f1 OUT= M AC=ac:1f:6b:f5:60:43:02:01:01:01:01:02:08:00 SRC=152.32.129.154 DST=37.230.134.118 LEN=60 TOS=0x00 PREC=0x00 TTL=41 ID=5377 DF PROTO=TCP SPT=47633 DPT=6606 WINDOW=29200 RES=0x00 SYN URGP=0 …
Inoltre, puoi controllare syslog e kern.log:
grep -i ufw /var/log/syslog
grep -i ufw /var/log/kern.log
In entrambi i casi il risultato sarà lo stesso. Per aumentare la quantità di informazioni registrate nel log, cambia il suo livello. Livelli disponibili: basso (per impostazione predefinita) / medio / alto / completo:
sudo ufw logging full
Disabilita la registrazione
Per disabilitare la registrazione, è previsto il livello off:
sudo ufw logging off
Gestione delle regole
Accesso da specifici IP
Nella creazione delle regole, due scenari sono i più comuni. Nel primo, l'amministratore di sistema richiede che solo gli utenti che hanno un indirizzo IP specifico o un indirizzo IP da un determinato range possano collegarsi al server. I tentativi di connessione da qualsiasi altro indirizzo dovrebbero essere bloccati. Questo è più applicabile per servizi non pubblici o aziendali:
sudo ufw allow from [indirizzo_ip]
sudo ufw allow from [indirizzo_ip/maschera_sottorete]
Blocca specifici IP
Il secondo scenario sarà rilevante per i servizi pubblici i cui server sono costretti ad accettare e processare tutte le connessioni in entrata. Ciò li rende vulnerabili agli attacchi di forza bruta e agli attacchi di denial of service (DoS). In questo caso, saranno utili le regole che proibiscono di connettersi da un determinato indirizzo IP o da un indirizzo IP da un certo range:
sudo ufw deny from [indirizzo_ip]
sudo ufw deny from [indirizzo_ip/maschera_sottorete]
Se il tuo server non viene utilizzato per l'invio di email, sarebbe logico bloccare qualsiasi traffico SMTP in uscita per prevenire potenziali spam. Puoi farlo con il seguente comando:
sudo ufw deny out 25
Elimina le regole esistenti
Il modo più conveniente per eliminare le regole è per loro numero seriale. Per scoprire quale numero corrisponde a quale regola del firewall, esegui questo comando:
sudo ufw status numbered
Status: attivo A Azione Da -- ------ --- [ 1] OpenSSH PERMETTI IN Ovunque [ 2] OpenSSH (v6) PERMETTI IN Ovunque (v6)
adesso puoi eliminare una regola sostituendo il suo numero nel comando:
sudo ufw delete [numero_regola]
Profili di applicazione
I profili di applicazione sono set di regole pronte all'uso che semplificano la vita di un amministratore di sistema. Prendono immediatamente in considerazione le porte di connessione standard e consentono di applicare diverse regole con un solo comando.
Elenco dei profili disponibili
Per controllare quali profili sono disponibili per l'attivazione, esegui il comando:
sudo ufw app list
Applicazioni disponibili: OpenSSH
Abilita il profilo di applicazione
Per impostazione predefinita, Ubuntu avrà sempre disponibile un profilo OpenSSH, che permette al traffico SSH di passare attraverso la porta standard 22. Per assicurarti che dopo aver abilitato UFW non perdi il controllo tramite SSH, esegui il seguente comando:
sudo ufw allow OpenSSH
Ora puoi abilitare UFW e verificare che la regola abilitata per OpenSSH funzioni:
sudo ufw status verbose
Stato: attivo Registro: on (low) Default: deny (in entrata), allow (in uscita), disabled (instradato) Nuovi profili: skip A Azione Da -- ------ ---- 22/tcp (OpenSSH) PERMETTI IN Ovunque 22/tcp (OpenSSH (v6)) PERMETTI IN Ovunque (v6)
Disabilita il profilo di applicazione
Puoi eliminare una regola attivata utilizzando il comando “delete”. Presta molta attenzione a questo comando e non disabilitare il profilo OpenSSH, perché se il firewall è abilitato e non c'è una regola che consente OpenSSH, perderai l'accesso remoto al server:
sudo ufw delete allow [nome_profilo_app]
Blocco IP
Non è un segreto che Internet sia piena di dispositivi programmati per eseguire automaticamente la scansione e tentare di ottenere accesso non autorizzato. Sarebbe saggio bloccare tutti gli indirizzi visti impegnati in tale attività. Il progetto IPsum mantiene un registro degli indirizzi IP dannosi basato su dati da 30 servizi pubblici disponibili che pubblicano regolarmente elenchi di tali indirizzi. Questo registro sarà un'eccellente fonte di dati per UFW.
Inizia installando il pacchetto ipset:
sudo apt -y install ipset
Ora devi fare una copia di backup del file di configurazione after.init esistente:
sudo cp /etc/ufw/after.init /etc/ufw/after.init.orig
Clona il repository con i file di configurazione pre-preparati:
git clone https://github.com/poddmo/ufw-blocklist.git
Cambia la directory di lavoro:
cd ufw-blocklist
Copia e sostituisci il file di configurazione:
sudo cp after.init /etc/ufw/after.init
Copia il file del lavoro cron:
sudo cp ufw-blocklist-ipsum /etc/cron.daily/ufw-blocklist-ipsum
Cambia il proprietario di questi due file all'utente root:
sudo chown root:root /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
Imposta anche i permessi a 750 (rwxr-x—) per entrambi i file:
sudo chmod 750 /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
Scarica una blocklist di base:
curl -sS -f --compressed -o ipsum.4.txt 'https://raw.githubusercontent.com/stamparm/ipsum/master/levels/4.txt'
Imposta i permessi a 640 (rw-r-----) per la blocklist base. Sarà memorizzata direttamente nella directory /etc, quindi cambiare i permessi è una precauzione ragionevole contro le manomissioni di questo elenco:
sudo chmod 640 ipsum.4.txt
È tempo di mettere l'elenco nella directory /etc:
sudo cp ipsum.4.txt /etc/ipsum.4.txt
Avviamo lo script iniziale:
sudo /etc/ufw/after.init start
Il seguente comando aiuterà a visualizzare il numero corrente di voci nella lista di blocco:
sudo ipset list ufw-blocklist-ipsum -terse | grep 'Number of entries'
Infine, assicurati che la lista sia accettata e che UFW stia funzionando correttamente:
sudo /etc/ufw/after.init status
Nome: ufw-blocklist-ipsum Tipo: hash:net Revisione: 7 Intestazione: family inet hashsize 2048 maxelem 65536 bucketsize 12 initval 0x5822a4bb Dimensione in memoria: 186912 Riferimenti: 3 Numero di voci: 6744 0 0 ufw-blocklist-input all -- * * 0.0.0.0/0 0.0.0.0/0 match- set ufw-blocklist-ipsum src 0 0 ufw-blocklist-forward all -- * * 0.0.0.0/0 0.0.0.0/0 match- set ufw-blocklist-ipsum dst 0 0 ufw-blocklist-output all -- * * 0.0.0.0/0 0.0.0.0/0 match- set ufw-blocklist-ipsum dst
Vedi anche:
Aggiornato: 28.03.2025
Pubblicato: 12.07.2024