Questo articolo mostra come installare e utilizzare UFW sul tuo Ubuntu 20.Sistema 04 LTS.
Installazione
UFW viene preinstallato sulla maggior parte dei sistemi Ubuntu. Se la tua build non ha questo programma già installato, è possibile installarlo utilizzando i gestori di pacchetti SNAP o APT.$ sudo snap install ufw
$ sudo apt install ufw
Personalmente preferisco usare il gestore dei pacchetti APT per farlo perché SNAP è meno popolare e non voglio avere questa ulteriore complessità. Al momento di questo documento, la versione pubblicata per UFW è 0.36 per il 20.04 Rilascio.
In arrivo vs. Traffico in uscita
Se sei un principiante nel mondo del networking, la prima cosa che devi chiarire è la differenza tra traffico in arrivo e in uscita.
Quando si installano aggiornamenti utilizzando Apt-get, naviga su Internet o controlla la tua e-mail, quello che stai facendo è inviare richieste "in uscita" a server, come Ubuntu, Google, ecc. Per accedere a questi servizi, non hai nemmeno bisogno di un IP pubblico. Di solito, un singolo indirizzo IP pubblico è assegnato, per esempio, una connessione a banda larga a casa e ogni dispositivo ottiene il proprio IP privato. Il router gestisce quindi il traffico usando qualcosa noto come NAT o traduzione di indirizzi di rete.
I dettagli di Nat e gli indirizzi IP privati vanno oltre lo scopo di questo articolo, ma il video collegato sopra è un eccellente punto di partenza. Tornando a UFW, per impostazione predefinita, UFW consentirà a tutti i regolari traffico web in uscita. I browser, i pacchetti e altri programmi scelgono un numero di porta casuale - di solito un numero superiore a 3000 - ed è così che ogni applicazione può tenere traccia delle sue connessioni.
Quando esegui i server nel cloud, di solito sono dotati di un indirizzo IP pubblico e le regole di cui sopra per consentire il traffico in uscita ancora. Perché utilizzerai ancora utility, come i pacchetti, che parlano con il resto del mondo come "cliente", UFW lo consente per impostazione predefinita.
Il divertimento inizia con il traffico in arrivo. Applicazioni, come il server OpenSSH che usi per accedere alla VM, ascolta porte specifiche (come 22) per in arrivo richieste, così come altre applicazioni. I server Web hanno bisogno di accedere alle porte 80 e 443.
Fa parte del lavoro di un firewall per consentire ad applicazioni specifiche di ascoltare un determinato traffico in arrivo bloccando tutti quelli non necessari. Potresti avere un server di database installato sulla tua VM, ma di solito non è necessario ascoltare le richieste in arrivo sull'interfaccia con un IP pubblico. Di solito, ascolta solo l'interfaccia Loopback per le richieste.
Ci sono molti robot sul Web, che bombardano costantemente i server con richieste fasulle di costruire bruto o fare un semplice attacco di smentito del servizio. Un firewall ben configurato dovrebbe essere in grado di bloccare la maggior parte di questi shenanigans con l'aiuto di plugin di terze parti come Fail2Ban.
Ma, per ora, ci concentreremo su una configurazione molto semplice.
Uso di base
Ora che hai installato UFW sul tuo sistema, esamineremo alcuni usi di base per questo programma. Poiché le regole del firewall sono applicate a livello di sistema, i comandi seguenti vengono eseguiti come utente di root. Se preferisci, puoi usare SUDO con privilegi adeguati per questa procedura.
# Stato UFW
Stato: inattivo
Per impostazione predefinita, UFW è in uno stato inattivo, che è una buona cosa. Non si desidera bloccare tutto il traffico in arrivo sulla porta 22, che è la porta SSH predefinita. Se hai effettuato l'accesso a un server remoto tramite SSH e blocchi la porta 22, verrai bloccato dal server.
UFW ci rende facile fare un buco solo per OpenSsh. Esegui il comando seguente:
root@TestoBuntu: ~# Elenco delle app UFW
Applicazioni disponibili:
OpenSSH
Si noti che non ho ancora abilitato il firewall. Aggiungeremo ora OpenSsh al nostro elenco di app consentite e quindi abiliteremo il firewall. Per fare ciò, inserisci i seguenti comandi:
# UFW Consenti OpenSsh
Regole aggiornate
Regole aggiornate (V6)
# ufw abilita
Il comando può interrompere le connessioni SSH esistenti. Procedere con l'operazione (y | n)? y.
Il firewall è ora attivo e abilitato all'avvio del sistema.
Congratulazioni, UFW è ora attivo e in esecuzione. UFW ora consente solo a OpenSsh di ascoltare le richieste in arrivo alla porta 22. Per controllare lo stato del tuo firewall in qualsiasi momento, eseguire il seguente codice:
# Stato UFW
Stato: attivo
All'azione da
-- ------ ----
OpenSsh consenti ovunque
OpenSSH (V6) Consenti ovunque (V6)
Come puoi vedere, OpenSsh ora può ricevere richieste da qualsiasi luogo su Internet, a condizione che lo raggiunga sulla porta 22. La linea V6 indica che anche le regole sono applicate per IPv6.
Ovviamente, puoi vietare particolari gamme di IP o consentire solo una particolare gamma di IP, a seconda dei vincoli di sicurezza in cui stai lavorando.
Aggiunta di applicazioni
Per le applicazioni più popolari, il comando Elenco delle app UFW aggiorna automaticamente il suo elenco di politiche al momento dell'installazione. Ad esempio, dopo l'installazione del server Web Nginx, vedrai visualizzare le seguenti nuove opzioni:
# APT Installa nginx
# Elenco delle app UFW
Applicazioni disponibili:
Nginx pieno
Nginx http
Nginx https
OpenSSH
Vai avanti e prova a sperimentare queste regole. Nota che puoi semplicemente consentire i numeri di porta, piuttosto che aspettare che il profilo di un'applicazione venga visualizzato. Ad esempio, per consentire la porta 443 per il traffico HTTPS, utilizzare semplicemente il seguente comando:
# ufw consenti 443
# Stato UFW
Stato: attivo
All'azione da
-- ------ ----
OpenSsh consenti ovunque
443 Consenti ovunque
OpenSSH (V6) Consenti ovunque (V6)
443 (V6) Consenti ovunque (V6)
Conclusione
Ora che hai le basi ordinate di UFW, puoi esplorare altre potenti funzionalità di firewall, a partire da permettendo e bloccando le gamme di IP. Avere politiche di firewall chiare e sicure manterrà i tuoi sistemi sicuri e protetti.