GNU/Linux >> Linux Esercitazione >  >> Linux

Rendi Linux più forte con i firewall

Tutti hanno sentito parlare di firewall, anche se solo come espediente della trama in un dramma televisivo sulla criminalità informatica. Molte persone sanno anche che il proprio computer sta (probabilmente) eseguendo un firewall, ma meno persone capiscono come assumere il controllo del proprio firewall quando necessario.

I firewall bloccano il traffico di rete indesiderato, ma reti diverse hanno livelli di minaccia diversi. Ad esempio, se sei a casa, probabilmente ti fidi degli altri computer e dispositivi sulla tua rete molto di più rispetto a quando sei fuori al bar locale utilizzando il Wi-Fi pubblico. Puoi sperare che il tuo computer distingua tra una rete affidabile e una non affidabile, oppure puoi imparare a gestire, o almeno verificare, le tue impostazioni di sicurezza da solo.

Come funzionano i firewall

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

La comunicazione tra dispositivi su una rete avviene tramite gateway chiamati porte . Porta, in questo contesto, non significa una connessione fisica come una porta USB o una porta HDMI. Nel gergo della rete, una porta è un concetto interamente virtuale che rappresenta i percorsi per un tipo specifico di dati per arrivare o partire da un computer. Questo sistema avrebbe potuto essere chiamato in qualsiasi modo, come "connessioni" o "porte", ma erano chiamate porte almeno nel 1981, e questo è il nome in uso oggi. Il punto è che non c'è niente di speciale in nessun port; sono solo un modo per designare un indirizzo in cui può avvenire il trasferimento di dati.

Nel 1972 è stato pubblicato un elenco di numeri di porta (allora chiamati "socket"), che da allora si è evoluto in un insieme di noti numeri di porta standard che aiutano a gestire specifici tipi di traffico. Ad esempio, accedi alle porte 80 e 443 su base giornaliera quando visiti un sito Web, perché la maggior parte di tutti su Internet ha concordato, implicitamente o esplicitamente, che i dati vengano trasferiti dai server Web su quelle porte. Puoi testare questa teoria aprendo un browser Web e navigando su un sito Web con una porta non standard aggiunta all'URL. Ad esempio, se accedi a example.com:42 , la tua richiesta è stata rifiutata perché example.com non offre un sito Web alla porta 42.

Se visiti nuovamente lo stesso sito Web alla porta 80, ottieni un sito Web, come previsto. Puoi specificare la porta 80 con :80 alla fine dell'URL, ma poiché la porta 80 è la porta standard per il traffico HTTP, il browser Web assume la porta 80 per impostazione predefinita.

Quando un computer, come un server Web, prevede traffico su una porta specifica, è accettabile (e necessario) che la porta sia aperta al traffico. Il pericolo è lasciare aperte porte su cui non hai motivo di aspettarti traffico, ed è esattamente a questo che serve un firewall.

Installa firewalld

Ci sono molte interfacce per la configurazione del firewall. Questo articolo riguarda firewalld , che si integra con Network Manager sul desktop e firewall-cmd nel terminale. Molte distribuzioni Linux vengono fornite con questi strumenti installati. In caso contrario, puoi prendere questo articolo come consiglio generale per la gestione del firewall e applicarlo a ciò che usi, oppure puoi installare firewalld .

Su Ubuntu, ad esempio, devi abilitare l'universo repository, disattivare l'ufw predefinito firewall, quindi installa firewalld :

$ sudo systemctl disable ufw
$ sudo add-apt-repository universe
$ sudo apt install firewalld

Fedora, CentOS, RHEL, OpenSUSE e molti altri includono firewalld per impostazione predefinita.

Indipendentemente dalla tua distribuzione, affinché un firewall sia efficace, deve essere attivo e impostato per essere caricato all'avvio. Meno devi pensare alla manutenzione del firewall, meglio è.

$ sudo systemctl enable --now firewalld

Scegli la tua zona con Network Manager

Probabilmente ti connetti a molte reti diverse ogni giorno. Sei su una rete al lavoro, un'altra al bar e un'altra ancora a casa. Il tuo computer è in grado di rilevare quale rete usa più frequentemente di altre, ma non sa di quale ti fidi.

Una zona del firewall contiene i preset che decidono quali porte aprire e chiudere. Utilizzando le zone, puoi scegliere una norma più sensata per la rete in cui ti trovi attualmente.

Per visualizzare un elenco delle zone disponibili, apri Network Manager Connection Editor, che si trova nel menu Applicazioni, o con nm-connection-editor & comando.

Dall'elenco delle connessioni di rete, fai doppio clic sulla tua rete attuale.

Nella finestra di configurazione di rete visualizzata, fai clic sulla scheda Generale.

Nel pannello Generale, fai clic sul menu a discesa accanto a Firewall Zone per un elenco di tutte le zone disponibili.

Puoi ottenere lo stesso elenco con questo comando da terminale:

$ sudo firewall-cmd --get-zones

I titoli delle zone indicano cosa avevano in mente i loro progettisti durante la loro creazione, ma puoi ottenere le specifiche di qualsiasi zona con questo comando da terminale:

$ sudo firewall-cmd --zone work --list-all
work
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  [...]

In questo esempio, il lavoro la zona è configurata per consentire il traffico in entrata del client SSH e DHCPv6 ma elimina qualsiasi altro traffico in entrata non esplicitamente richiesto dall'utente. (In altre parole, il lavoro zone non blocca il traffico di risposta HTTP quando visiti un sito web, ma lo fa nega una richiesta HTTP sulla tua porta 80.)

Visualizza ogni zona per familiarizzare con il traffico che ciascuna consente. I più comuni sono:

  • Lavoro: Usa questo quando sei su una rete di cui ti fidi principalmente. Sono consentiti SSH, DHCPv6 e mDNS e puoi aggiungerne altri se necessario. Questa zona vuole essere un punto di partenza per un ambiente di lavoro personalizzato in base alle esigenze quotidiane dell'ufficio.
  • Pubblico: Per reti di cui non ti fidi. Questa zona è la stessa della zona di lavoro, ma presumibilmente non aggiungeresti le stesse eccezioni della tua zona di lavoro.
  • Rilascia: Tutte le connessioni in entrata vengono eliminate senza che venga fornita alcuna risposta. Questa è la più simile a una modalità invisibile che puoi ottenere senza interrompere completamente la rete perché sono possibili solo le connessioni di rete in uscita (anche uno scanner di porte casuale potrebbe rilevare il tuo computer dal traffico in uscita, quindi non confondere questa zona con un cloaking dispositivo). Questa è probabilmente la zona più sicura quando ci si trova su una rete Wi-Fi pubblica e sicuramente la migliore quando si ha motivo di credere che una rete sia ostile.
  • Blocca: Tutte le connessioni in entrata vengono rifiutate con un messaggio che dichiara che la porta richiesta è vietata. Sono possibili solo le connessioni di rete avviate. Questa è una versione "amichevole" della zona di rilascio perché, anche se nessuna porta è aperta per il traffico in entrata, una porta rifiuta in modo dettagliato una connessione non avviata.
  • Casa: Usalo quando ti fidi di altri computer sulla rete. Vengono accettate solo le connessioni in entrata selezionate e puoi aggiungerne altre se necessario.
  • Interno: Simile alla zona di lavoro, questa è destinata alle reti interne in cui ti fidi principalmente degli altri computer. Puoi aprire più porte e servizi secondo necessità, ma mantenere comunque un set di regole diverso da quello che hai nella tua zona di lavoro.
  • Fidato: Tutte le connessioni di rete sono accettate. Ottimo per la risoluzione dei problemi o su reti di cui ti fidi assolutamente.

Assegnazione di una zona a una rete

È possibile assegnare una zona a qualsiasi connessione di rete effettuata. Inoltre, puoi assegnare una zona diversa a ciascuna interfaccia di rete (cavo Ethernet, Wi-Fi e così via) che si collega a ciascuna rete.

Seleziona la zona che desideri e fai clic sul pulsante Salva per confermare la modifica.

Il modo più semplice per prendere l'abitudine di assegnare una zona a un'interfaccia di rete è occuparsi delle reti utilizzate più spesso. Assegna la zona di casa alla tua rete domestica, la zona di lavoro alla tua rete di lavoro e la rete pubblica alla tua biblioteca o rete di bar preferiti.

Dopo aver assegnato una zona a tutte le tue reti abituali, fai uno sforzo per assegnare una zona alla nuova rete successiva a cui ti unisci, che si tratti di un nuovo bar o della rete domestica del tuo amico. L'assegnazione delle zone è il modo migliore per rafforzare la tua consapevolezza che le reti non sono tutte uguali e che non sei più sicuro di chiunque altro solo perché esegui Linux.

Zona predefinita

Anziché richiedere una zona ogni volta che ci si collega a una nuova rete, firewalld assegna a qualsiasi rete sconosciuta una zona predefinita. Apri un terminale e digita questo comando per ottenere la tua zona predefinita:

$ sudo firewall-cmd --get-default
public

In questo esempio, la zona pubblica è l'impostazione predefinita. È previsto che manterrai la zona pubblica altamente restrittiva, quindi è una zona abbastanza sicura per assegnare reti sconosciute. Tuttavia, puoi invece impostare il tuo valore predefinito.

Ad esempio, se sei più paranoico della maggior parte degli altri, o se sai che frequenti reti di cui hai motivo di diffidare, puoi assegnare una zona altamente restrittiva come predefinita:

$ sudo firewall-cmd --set-default-zone drop
success
$ sudo firewall-cmd --get-default
drop

Ora qualsiasi nuova rete a cui ti unisci sarà soggetta alle regole della zona di rilascio a meno che tu non la modifichi manualmente con qualcosa di meno restrittivo.

Personalizzazione delle zone aprendo porti e servizi

Gli sviluppatori di Firewalld non intendono che le loro definizioni di zona soddisfino le esigenze di tutte le diverse reti e livelli di fiducia esistenti. Sono solo punti di partenza da utilizzare e personalizzare.

Non devi sapere molto sui firewall per poter aprire e chiudere le porte in base al tipo di attività di rete che sai di generare.

Servizi predefiniti

Il modo più semplice per aggiungere autorizzazioni al firewall è aggiungere un servizio predefinito. A rigor di termini, non esiste un "servizio" per quanto ne sa il firewall, perché i firewall comprendono i numeri di porta e i tipi di protocollo. Tuttavia, firewalld fornisce raccolte di porte e protocolli basati su standard e convenzioni.

Ad esempio, se sei uno sviluppatore web e desideri aprire il tuo computer sulla tua rete locale in modo che i tuoi colleghi possano vedere il sito web che stai costruendo, dovresti aggiungere il http e https Servizi. Se sei un giocatore e stai eseguendo il server di chat vocale open source mormorato per la tua gilda, dovresti aggiungere il mormorio servizio. Ci sono molti altri servizi disponibili, che puoi visualizzare con questo comando:

$ sudo firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client \
bgp bitcoin bitcoin-rpc ceph cfengine condor-collector \
ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch \
freeipa-ldap freeipa-ldaps ftp [...]

Se vedi un servizio che ti serve, aggiungilo alla configurazione corrente del firewall, ad esempio:

$ sudo firewall-cmd --add-service murmur

Questo comando apre tutte le porte ei protocolli necessari per un particolare servizio all'interno della tua zona predefinita , ma solo fino al riavvio del computer o al riavvio del firewall. Per rendere permanenti le modifiche, utilizza il --permanente bandiera:

$ sudo firewall-cmd --add-service murmur --permanent

Puoi anche impartire il comando per una zona diversa da quella predefinita:

$ sudo firewall-cmd --add-service murmur --permanent --zone home

Porte

A volte vuoi consentire il traffico per qualcosa che semplicemente non è definito dai servizi di firewalld. Forse stai configurando una porta non standard per un servizio comune o devi aprire una porta arbitraria.

Ad esempio, forse stai eseguendo il software da tavolo virtuale open source MapTool. Dal momento che stai utilizzando il server MapTool e non esiste uno standard di settore che regola su quale porta viene eseguito MapTool, puoi decidere quale porta utilizzare e quindi "fare un buco" nel tuo firewall per consentire il traffico su quella porta.

Il processo è sostanzialmente lo stesso dei servizi:

$ sudo firewall-cmd --add-port 51234/tcp

Questo comando apre la porta 51234 alle connessioni TCP in entrata nella tua zona predefinita , ma solo fino al riavvio del computer o al riavvio del firewall. Per rendere permanenti le modifiche, utilizza il --permanente bandiera:

$ sudo firewall-cmd --add-port 51234/tcp --permanent

Puoi anche impartire il comando per una zona diversa da quella predefinita:

$ sudo firewall-cmd --add-port 51234/tcp --permanent --zone home

Consentire il traffico attraverso il tuo computer è diverso dal consentire il traffico attraverso il firewall del tuo router. Il tuo router probabilmente ha un'interfaccia diversa per il proprio firewall incorporato (sebbene il principio sia lo stesso), che non rientra nell'ambito di questo articolo.

Rimozione di porte e servizi

Se decidi che un servizio o una porta non sono più necessari, puoi riavviare il firewall per cancellare le modifiche, a meno che non utilizzi il --permanente bandiera.

Se hai reso le modifiche permanenti, utilizza il --remove-port o --remove-service bandiera:

$ sudo firewall-cmd --remove-port 51234/tcp --permanent

Puoi rimuovere porte e servizi da una zona diversa da quella predefinita specificando una zona nel comando:

$ sudo firewall-cmd --remove-service murmur --permanent --zone home

Zone personalizzate

Puoi usare e abusare delle zone predefinite fornite da firewalld, ma hai anche la libertà di crearne di tue. Ad esempio, se ha senso avere una zona specifica per il gioco, puoi crearne una e passare ad essa solo durante il gioco.

Per creare una nuova zona vuota, crea una nuova zona chiamata gioco e ricarica le regole del firewall in modo che la tua nuova zona diventi attiva:

$ sudo firewall-cmd --new-zone game --permanent
success
$ sudo firewall-cmd --reload

Una volta creato e attivo, puoi personalizzarlo con tutti i servizi e le porte che devi tenere aperte per la serata di gioco.

Diligenza

Inizia a pensare alla tua strategia firewall oggi stesso. Inizia lentamente e costruisci alcune impostazioni predefinite sane che hanno senso per te. Potrebbe volerci del tempo prima di prendere l'abitudine di pensare al tuo firewall e capire quali servizi di rete usi, ma con un po' di esplorazione puoi rafforzare la tua workstation Linux indipendentemente dal tuo ambiente.


Linux
  1. Inizia con NetworkManager su Linux

  2. Visualizza le connessioni di rete del tuo server Linux con netstat

  3. Introduzione ai firewall Linux

  4. Dietro le quinte con i container Linux

  5. Linux:avvia Daemon con Linux?

Come monitorare l'utilizzo della rete con nload in Linux

Linux make comando spiegato con esempi

Proteggi la tua rete Linux con firewall-cmd

7 modi per controllare la velocità della rete in Linux con browser e cli

Network Manager su Linux con esempi

Linux make Command con esempi