Come installare e configurare UFW: un firewall semplice in Debian/Ubuntu
Poiché i computer sono collegati tra loro, i servizi crescono rapidamente. E-mail, Social Media, Negozio online, Chat fino alle Web Conferencing sono servizi che utilizzato dall'utente. Ma d'altra parte questa connettività è proprio come un coltello a doppia faccia. È anche possibile inviare messaggi dannosi a quei computer come virus, malware, trojan-apps sono uno di questi.
Internet, in quanto la più grande rete di computer, non è sempre piena di brave persone. Per garantire che i nostri computer/server siano sicuri, dobbiamo proteggerli.
Uno dei componenti indispensabili sul tuo computer/server è il Firewall. Da Wikipedia, una definizione è:
Nell'informatica, un firewall è un sistema di sicurezza di rete basato su software o hardware che controlla il traffico di rete in entrata e in uscita analizzando i pacchetti di dati e determinando se devono essere consentiti o meno, in base al set di regole applicate.
Iptables è uno dei firewall ampiamente utilizzato dai server. È un programma utilizzato per gestire il traffico in entrata e in uscita nel server in base a una serie di regole. In genere, solo le connessioni attendibili possono accedere al server. Ma IPTables funziona in modalità console ed è complicato. Coloro che hanno familiarità con le regole e i comandi di iptables possono leggere il seguente articolo che descrive come utilizzare il firewall iptables.
- Guida di base a IPTables (firewall Linux).
Installazione del firewall UFW in Debian/Ubuntu
Per ridurre la complessità delle procedure per l'impostazione di IPTables, ci sono molte cose da fare. Se utilizzi Ubuntu Linux, troverai ufw come strumento firewall predefinito. Iniziamo ad esplorare il firewall ufw.
Cos'è ufw
ufw (Uncomplicated Firewall) è un frontend per il firewall iptables più utilizzato ed è molto comodo per i firewall basati su host. ufw fornisce una struttura per la gestione di netfilter, oltre a fornire un'interfaccia a riga di comando per il controllo del firewall. Fornisce un'interfaccia intuitiva e facile da usare per i principianti di Linux che non hanno molta familiarità con i concetti di firewall.
Mentre, dall'altro lato, gli stessi comandi complicati aiutano gli amministratori a impostare regole complicate utilizzando l'interfaccia della riga di comando. L'ufw è un upstream per altre distribuzioni come Debian, Ubuntu e Linux Mint.
Utilizzo di base ufw
Innanzitutto, controlla se ufw è installato utilizzando il seguente comando.
sudo dpkg --get-selections | grep ufw
ufw install
Se non è installato, puoi installarlo utilizzando il comando apt come mostrato di seguito.
sudo apt-get install ufw
Prima dell'uso, dovresti controllare se ufw è in esecuzione o meno. Utilizzare il comando seguente per verificarlo.
sudo ufw status
Se trovi Stato: inattivo, significa che non è attivo o è disabilitato.
NOVITÀ! Un ebook indispensabile per ogni amministratore Linux!Scarica l'eBook gratuito da 696 pagine
Abilitare/Disabilitare ufw
Per abilitarlo è sufficiente digitare il seguente comando sul terminale.
sudo ufw enable
Firewall is active and enabled on system startup
Per disabilitarlo basta digitare.
sudo ufw disable
Elenca le attuali regole ufw
Dopo che il firewall è attivato puoi aggiungervi le tue regole. Se vuoi vedere quali sono le regole predefinite, puoi digitare.
sudo ufw status verbose
Uscita del campione
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$
Come aggiungere regole ufw
Come vedi, per impostazione predefinita ogni connessione in entrata viene negata. Se desideri remotare la tua macchina, devi consentire la porta corretta. Ad esempio, vuoi consentire la connessione ssh. Ecco il comando per consentirlo.
Consentire l'accesso
sudo ufw allow ssh
[sudo] password for pungki :
Rule added
Rule added (v6)
$
Se controlli di nuovo lo stato, vedrai un output come questo.
sudo ufw status
To Action From
-- ----------- ------
22 ALLOW Anywhere
22 ALLOW Anywhere (v6)
Se hai molte regole e vuoi mettere dei numeri su ogni regola al volo, usa il parametro numerato.
sudo ufw status numbered
To Action From
------ ----------- ------
[1] 22 ALLOW Anywhere
[2] 22 ALLOW Anywhere (v6)
La prima regola dice che è consentita la connessione in entrata alla porta 22 da Anywhere, sia pacchetti tcp che udp. Cosa succede se desideri consentire solo i pacchetti tcp? Successivamente puoi aggiungere il parametro tcp dopo il numero di porta. Ecco un esempio con un output di esempio.
sudo ufw allow ssh/tcp
To Action From
------ ----------- ------
22/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere (v6)
Negare l'accesso
Gli stessi trucchi vengono applicati alla regola Nega. Supponiamo che tu voglia negare la regola ftp. Quindi devi solo digitare.
sudo ufw deny ftp
To Action From
------ ----------- ------
21/tcp DENY Anywhere
21/tcp DENY Anywhere (v6)
Aggiunta di una porta specifica
A volte abbiamo una porta personalizzata che non segue alcuno standard. Diciamo di cambiare la porta ssh sulla nostra macchina da 22 a 2290. Quindi per consentire la porta 2290, possiamo aggiungerla in questo modo.
sudo ufw allow
To Action From
-- ----------- ------
2290 ALLOW Anywhere
2290 ALLOW Anywhere (v6)
È anche possibile aggiungere port-range alla regola. Se vogliamo aprire la porta da 2290 – 2300 con il protocollo tcp, allora il comando sarà così.
sudo ufw allow 2290:2300/tcp
To Action From
------ ----------- ------
2290:2300/tcp ALLOW Anywhere
2290:2300/tcp ALLOW Anywhere (v6)
mentre se vuoi usare udp, basta usare il seguente comando.
sudo ufw allow 2290:2300/udp
To Action From
------ ----------- ------
2290:2300/udp ALLOW Anywhere
2290:2300/udp ALLOW Anywhere (v6)
Ricorda che devi inserire esplicitamente "tcp" o "udp" altrimenti riceverai un messaggio di errore simile al seguente.
ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports
Aggiunta di IP specifico
In precedenza abbiamo aggiunto regole basate sul servizio o sulla porta. Ufw ti consente anche di aggiungere regole basate sull'indirizzo IP. Ecco il comando di esempio.
sudo ufw allow from 192.168.0.104
Puoi anche utilizzare una maschera di sottorete per ampliare l'intervallo.
sudo ufw allow form 192.168.0.0/24
To Action From
-- ----------- ------
Anywhere ALLOW 192.168.0.104
Anywhere ALLOW 192.168.0.0/24
Come puoi vedere, il parametro from limiterà solo la fonte della connessione. Mentre la destinazione, rappresentata dalla colonna A, è Ovunque. Puoi anche gestire la destinazione utilizzando il parametro "A". Vediamo l'esempio per consentire l'accesso alla porta 22 (ssh).
sudo ufw allow to any port 22
Il comando precedente consentirà l'accesso da qualsiasi luogo e da qualsiasi protocollo alla porta 22.
Combinazione di parametri
Per regole più specifiche, puoi anche combinare indirizzo IP, protocollo e porta. Diciamo che vogliamo creare una regola che limiti la connessione solo dall'IP 192.168.0.104, solo protocollo tcp e alla porta 22. Quindi il comando sarà come di seguito.
sudo ufw allow from 192.168.0.104 proto tcp to any port 22
La sintassi per creare la regola di negazione è simile alla regola di autorizzazione. Devi solo modificare il parametro da consenti a nega.
Eliminazione di regole
A volte potresti dover eliminare la regola esistente. Ancora una volta con ufw è facile eliminare le regole. Dall'esempio sopra, hai una regola qui sotto e vuoi eliminarla.
To Action From
-- ----------- ------
22/tcp ALLOW 192.168.0.104
21/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere (v6)
Esistono due metodi per eliminare le regole.
Metodo 1
Il comando seguente eliminerà le regole che corrispondono al servizio ftp. Quindi la 21/tcp che significa la porta ftp verrà eliminata.
sudo ufw delete allow ftp
Metodo 2
Ma quando hai provato a eliminare la prima regola nell'esempio sopra usando il comando seguente.
sudo ufw delete allow ssh
Or
sudo ufw delete allow 22/tcp
Potresti trovare un messaggio di errore come.
Could not delete non-existent rule
Could not delete non-existent rule (v6)
Allora puoi fare questo trucco. Come accennato in precedenza, puoi mostrare il numero di regola per indicare quale regola vogliamo eliminare. Lascia che te lo mostriamo.
sudo ufw status numbered
To Action From
-- ----------- ------
[1] 22/tcp ALLOW 192.168.0.104
[2] 21/tcp ALLOW Anywhere
[3] 21/tcp ALLOW Anywhere (v6)
Quindi puoi eliminare la prima regola utilizzando. Premi "Y" per eliminare definitivamente la regola.
sudo ufw delete 1
Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y
Da questi metodi vedrai la differenza. Il metodo 2 chiederà la conferma dell'utente prima di eliminare la regola, mentre il metodo 1 no.
Come reimpostare le regole
In alcune situazioni, potresti voler eliminare/reimpostare tutte le regole. Puoi farlo digitando.
sudo ufw reset
Resetting all rules to installed defaults. Proceed with operation (y|n)? y
Se premi "y", ufw eseguirà il backup di tutte le regole esistenti prima di ripristinare il tuo ufw. La reimpostazione delle regole disabiliterà anche il firewall. È necessario abilitarlo nuovamente se si desidera utilizzarlo.
Funzionalità avanzate
Come ho affermato sopra, il firewall ufw può fare tutto ciò che può fare iptables. Ciò si ottiene utilizzando vari set di file di regole, che non sono altro che file di testo iptables-restore appropriati. La regolazione fine di ufw e/o l'inserimento di comandi iptables aggiuntivi non consentiti tramite il comando ufw è una questione di modifica di diversi file di testo.
- /etc/default/ufw: la configurazione principale per le policy predefinite, il supporto IPv6 e i moduli del kernel.
- /etc/ufw/before[6].rules: le regole in questi file vengono calcolate prima di qualsiasi regola aggiunta tramite il comando ufw.
- /etc/ufw/after[6].rules: le regole in questi file vengono calcolate dopo qualsiasi regola aggiunta tramite il comando ufw.
- /etc/ufw/sysctl.conf: parametri sintonizzabili di rete del kernel.
- /etc/ufw/ufw.conf: imposta se ufw è abilitato o meno all'avvio e imposta LOGLEVEL.
Conclusione
UFW come front-end per iptables costituisce sicuramente un'interfaccia semplice per l'utente. L'utente non ha bisogno di ricordare la complicata sintassi di iptables. UFW utilizza anche "plain english" come parametro.
Consenti, nega, reimposta sono alcuni di questi. Credo che ci siano molti altri front-end per iptables là fuori. Ma sicuramente ufw è una delle migliori alternative per gli utenti che desiderano configurare il proprio firewall in modo rapido, semplice e ovviamente sicuro. Per favore visita la pagina manuale di ufw digitando man ufw per maggiori dettagli.