GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Firewall Linux

Se il tuo sistema è connesso a Internet, può essere utile proteggerlo con un firewall per impedire accessi non autorizzati. Questa pagina illustra il processo di impostazione e configurazione di un firewall Linux con Webmin e iptables .

Introduzione al firewall con IPtables

Un firewall è un sistema che protegge se stesso e altri host su una rete da aggressori su reti non affidabili, come Internet. Può bloccare pacchetti e connessioni in base a una varietà di criteri, come l'indirizzo di origine, l'indirizzo di destinazione, la porta e il protocollo. Tipicamente un firewall è anche un router, che inoltra i pacchetti tra una rete locale sicura e Internet non affidabile, tuttavia è anche possibile che un sistema si protegga da solo.

Un sistema firewall può anche essere configurato per nascondere più host dietro un singolo indirizzo IP, utilizzando un processo noto come NAT (Network Address Translation). In genere, gli host nascosti si trovano su una LAN interna che utilizza una rete IP privata (come 192.168.0.0) e il firewall ha un unico indirizzo IP Internet. NAT consente a questi host interni di comunicare con altri su Internet, anche se non dispongono di indirizzi IP pubblici reali.

Il kernel Linux ha incluso diverse implementazioni firewall nel corso degli anni, come IPfwadm e IPchains. La serie 2.4 di kernel include il firewall IPtables, che è più potente e flessibile dei suoi predecessori. Tutte le distribuzioni Linux che utilizzano il kernel 2.4 hanno il supporto IPtables abilitato e includono i comandi necessari per configurarlo. Questo capitolo e il modulo Linux Firewall trattano solo la configurazione di un firewall utilizzando IPtables, non nessuna delle precedenti implementazioni come IPchains o IPfwadm.

Tutto il traffico di rete IP è suddiviso in pacchetti, che sono blocchi di dati con un'origine, una destinazione e informazioni sul protocollo. Anche un flusso continuo di dati come il download di un file di grandi dimensioni viene suddiviso in pacchetti quando viene inviato e riassemblato a destinazione. Poiché il firewall IPtables opera a livello IP, tutte le sue regole e catene valutano e operano su singoli pacchetti, non connessioni TCP o richieste HTTP.

Un firewall IPtables è composto da tre diversi tipi di oggetti:tabelle, catene e regole. Ciascuna delle tre tabelle contiene due o tre catene standard e possibilmente molte catene personalizzate definite dall'utente. Ogni catena contiene zero o più regole, che vengono applicate ai pacchetti ricevuti o inviati dal firewall per determinarne il destino. Le tre tabelle e le loro catene standard sono :

Filtraggio pacchetti (filtro)
Le catene di pacchetti INPUT, OUTPUT e FORWARD in questa tabella si applicano rispettivamente ai pacchetti ricevuti, inviati da o inoltrati dal firewall. Se il sistema firewall funge da router, ai pacchetti instradati si applica solo la catena FORWARD. Il traffico di rete destinato al sistema stesso viene elaborato dalla catena INPUT e il traffico inviato dal processo locale dalla catena OUTPUT. Per un sistema che è un normale router e non esegue alcuna mascheratura, o un sistema che necessita solo di un firewall per proteggersi, questa è l'unica tabella a cui devono essere aggiunte le regole.
Traduzione dell'indirizzo di rete (nat)
Questa tabella viene utilizzata solo per i pacchetti che avviano una nuova connessione. Le regole nella sua catena PREROUTING vengono applicate ai pacchetti non appena vengono ricevuti dal sistema per l'instradamento e il POSTROUTING per i pacchetti che stanno per partire dopo l'instradamento. Le regole della catena OUTPUT vengono applicate ai pacchetti generati localmente per la modifica prima dell'instradamento. Le regole vengono in genere aggiunte a questa tabella per impostare il mascheramento, il proxy trasparente o qualche altro tipo di traduzione degli indirizzi.
Alterazione pacchetto (mangiatore)
Questa tabella viene utilizzata solo per l'alterazione di pacchetti specializzata. Contiene due catene:PREROUTING per modificare i pacchetti prima dell'instradamento e OUTPUT per modificare i pacchetti generati localmente. Questa tabella viene utilizzata raramente in una configurazione tipica del firewall.

Quando un pacchetto di rete viene elaborato da una catena, ogni regola nella catena viene eseguita in ordine. Ogni regola ha una serie di condizioni che determinano se la regola corrisponde o meno e un'azione che viene intrapresa nel caso di una corrispondenza. Questa azione può consistere nell'accettare immediatamente il pacchetto, rilasciarlo immediatamente, eseguire alcune modifiche o continuare l'esecuzione. Se viene raggiunta la fine di una catena, verrà invece eseguita la sua azione predefinita, che di solito è consentire il passaggio del pacchetto.

Lo screenshot seguente mostra le tabelle e le catene attraverso le quali passa un pacchetto e l'ordine in cui vengono controllati. I pacchetti in arrivo dalla rete entrano nel diagramma in alto, e vengono elaborati da entrambe le catene di PREROUTING. A questo punto viene presa una decisione:i pacchetti destinati al sistema locale vanno a sinistra, mentre quelli che vengono inoltrati a qualche altra destinazione prendono il ramo di destra. Quelli che vanno a sinistra vengono elaborati dalla catena di pacchetti in entrata prima di essere consegnati ai processi locali, come i server. I dati inoltrati vengono elaborati dalle catene di instradamento Pacchetti inoltrati e Dopo prima di essere inviati a destinazione.

Il firewall può anche influenzare i pacchetti inviati dai processi sul sistema locale. Questi vengono controllati rispetto alle tre catene di output e alla catena di instradamento After prima di essere trasmessi tramite l'interfaccia di rete appropriata alle loro destinazioni. Ciò significa che è possibile utilizzare un firewall IPtables per limitare gli indirizzi a cui possono connettersi i processi locali e i protocolli che possono utilizzare.


Una panoramica di IPtables

Il modulo Firewall Linux

Questo modulo può essere utilizzato per configurare un firewall su un sistema Linux con IPtables abilitato o modificare qualsiasi parte di un firewall esistente. Memorizza la configurazione del firewall in un file di salvataggio creato e letto dai comandi iptables-save e iptables-restore, non in uno script di shell contenente chiamate al comando iptables. Redhat, Debian e Gentoo Linux usano tutti un file di salvataggio come questo come standard, che Webmin conosce e con cui lavorerà.

Se hai creato manualmente un firewall utilizzando uno script di shell e desideri utilizzare questo modulo per modificarlo d'ora in poi, dovrà essere convertito in un file di salvataggio IPtables in modo che Webmin possa modificarlo.

Quello che devi fare è interrompere l'esecuzione del tuo script personalizzato all'avvio e dire al modulo di creare invece il proprio script di installazione del firewall.

Questo vale anche per i firewall creati da strumenti come YaST o fBuilder, che scrivono script di shell dei comandi iptables. A meno che lo strumento non possa anche modificare un file di salvataggio IPtables (come knetfilter), non dovrebbe essere utilizzato insieme al modulo Linux Firewall di Webmin, altrimenti probabilmente sovrascriveranno le impostazioni dell'altro.

Quando accedi al modulo dalla categoria Networking, la pagina principale generalmente mostra un elenco di tutte le catene e regole nella prima tabella che ne contiene (di solito Filtraggio pacchetti ), come mostrato di seguito. Tuttavia, se Webmin rileva che i comandi iptables o iptables-save non sono installati, verrà visualizzato un messaggio di errore:controlla il CD di distribuzione o il sito Web per un pacchetto che li contenga.

Se è la prima volta che utilizzi il modulo e non è stato ancora impostato alcun firewall sul tuo sistema, la pagina principale visualizzerà invece un modulo per semplificare la creazione iniziale del firewall. Verranno visualizzate tre opzioni:selezionane una e fai clic su Imposta Firewall pulsante per configurarlo. Se necessario, Webmin visualizzerà anche un Abilitare il firewall all'avvio? casella di controllo che, se selezionata, causerà la creazione di uno script di avvio in modo che il firewall sia abilitato anche all'avvio. Le opzioni di configurazione del firewall sono :

Consenti tutto il traffico
Se selezionato, il firewall verrà creato 'vuoto' e sarà consentito il passaggio di tutto il traffico.
Esegui la traduzione degli indirizzi di rete su un'interfaccia esterna
Il firewall sarà configurato per NAT, in modo che gli host su una LAN interna possano accedere a Internet tramite un host con un unico indirizzo IP pubblico. È necessario selezionare l'interfaccia di rete connessa a Internet dall'elenco accanto a questa opzione, ad esempio ppp0.
Blocca tutte le connessioni in entrata sull'interfaccia esterna
Se selezionato, il firewall verrà configurato per bloccare tutto il traffico in entrata nel sistema sull'interfaccia di rete selezionata, ad eccezione delle connessioni stabilite, delle risposte DNS e dei pacchetti ICMP innocui. L'interfaccia selezionata dovrebbe essere quella connessa a Internet, come ppp0.

Se è la prima volta che il modulo viene utilizzato e Webmin rileva che esiste già un firewall sul tuo sistema, verranno visualizzate le sue regole e ti verrà chiesto di convertirlo in un file di salvataggio in modo che il modulo possa essere utilizzato per modificarlo . Se scegli di farlo, fai clic su Salva regole firewall pulsante, tutti i tavoli, le catene e le regole esistenti verranno registrati in sicurezza. Se necessario, verrà visualizzata anche una casella di controllo *Abilita firewall all'avvio?* che, se selezionata, farà sì che Webmin crei uno script di avvio per attivare le regole del firewall salvate all'avvio.

Se scegli di convertire una configurazione del firewall esistente creata manualmente, assicurati di disabilitare qualsiasi script esistente che lo configuri all'avvio. In caso contrario verranno eseguiti sia il vecchio script che quello creato da Webmin, causando eventualmente la cancellazione delle regole impostate in questo modulo dalla precedente configurazione manuale.

Consentire e negare il traffico di rete

Per limitare i tipi di connessioni e pacchetti che il firewall accetterà o inoltrerà, è necessario creare regole firewall aggiuntive. Il posto migliore per queste regole è il Filtro pacchetti tabella, nei Pacchetti in arrivo o Pacchetti inoltrati catena. Se il tuo firewall funge da router e desideri proteggere i sistemi sulla rete sicura a cui è collegato ma non il firewall stesso, i Pacchetti inoltrati dovrebbe essere usata la catena. Tuttavia, se desideri proteggere sia il firewall che gli altri sistemi a cui è indirizzato, è necessario aggiungere delle regole ai Pacchetti in arrivo catena.

È anche possibile limitare i dati inviati dal tuo sistema, che possono provenire da processi locali o essere inoltrati da altri host. Per fare ciò, puoi aggiungere regole ai Pacchetti in uscita catena. Questo può essere utile per limitare gli indirizzi e le porte a cui gli utenti locali possono connettersi, se lo desideri.

Per creare una nuova regola per bloccare il traffico, i passaggi da seguire sono :

  1. Nella pagina principale del modulo, seleziona Filtraggio pacchetti dall'elenco accanto a Mostra tabella IP e quindi fare clic su di esso per passare alla tabella dei filtri.
  2. Per aggiungere una regola che si applica a tutto il traffico in entrata, fai clic su Aggiungi regola pulsante nei Pacchetti in arrivo sezione. Se desideri limitare solo il traffico inoltrato, fai invece clic sul pulsante sotto Pacchetti inoltrati. In ogni caso, verrai indirizzato al modulo di creazione delle regole, mostrato nello screenshot qui sotto.
  3. Modifica l'Azione da intraprendere per Rilasciare , in modo che i pacchetti che soddisfano questa regola vengano eliminati silenziosamente dal firewall.
  4. Nei Dettagli delle condizioni sezione, selezionare le condizioni che determinano quali pacchetti verranno abbinati e quindi eliminati. Solo i pacchetti che soddisfano tutte le condizioni che non sono impostate su Ignora sarà abbandonato. Alcuni esempi delle condizioni da selezionare per bloccare determinati tipi di traffico sono :
    Blocco di tutte le connessioni a una determinata porta TCP
    Imposta il Protocollo di rete campo su Uguale a e seleziona TCP . Per bloccare una porta, è necessario selezionare sempre un protocollo. Imposta la porta TCP o UDP di destinazione a Uguale e inserisci un numero di porta in Porta/e campo accanto. Puoi bloccare più porte inserendo un elenco di numeri separati da virgole nel campo Port(s) oppure bloccare un intero intervallo selezionando Intervallo di porte e inserendo le porte di inizio e fine nei campi accanto.
    Blocco di tutto il traffico da un determinato indirizzo
    Imposta *Indirizzo di origine o rete* su Uguale a e inserisci l'indirizzo IP da bloccare nel campo accanto. Puoi anche bloccare un'intera rete inserendo una coppia rete/prefisso come 130.194.164.0/24 nel campo. Imposta lo Stato connessione a Non è uguale e seleziona Connessione esistente dal menu accanto. Questo passaggio consentirà al tuo sistema di connettersi agli indirizzi bloccati, ma non viceversa.
    Blocco del traffico verso un indirizzo particolare
    Imposta l'Indirizzo o rete di destinazione a Uguale e inserisci l'indirizzo IP o la rete da bloccare nel campo accanto. Poiché ciò impedirà efficacemente anche al sistema bloccato di connettersi al tuo, potrebbe essere una buona idea impostare lo Stato di connessione a Non è uguale e seleziona Connessione esistente dal menu accanto. In tutti i casi, di solito è una buona idea impostare l'Interfaccia in entrata all'interfaccia di rete connessa a Internet (come ppp0), in modo che la restrizione non si applichi alle connessioni dalla LAN locale.
  5. Quando hai finito di selezionare le condizioni, fai clic su Crea pulsante. Finché non ci sono errori nel tuo input, verrai riportato alla pagina principale del modulo in cui sarà elencata la nuova regola.
  6. Per rendere attiva la nuova regola, fai clic su Applica configurazione pulsante in fondo alla pagina.


Il modulo di creazione delle regole

Le regole in ciascuna catena vengono valutate dall'alto verso il basso e l'azione intrapresa è determinata da quella che corrisponde per prima. Se nessuno corrisponde, viene eseguita l'azione predefinita della catena, che di solito è accettare il pacchetto. È possibile utilizzare questo ordine di valutazione per creare una regola che consenta un singolo indirizzo IP, seguito da una regola per negare un'intera rete. L'effetto finale sarà che ogni host all'interno della rete viene negato tranne uno.

Poiché l'ordine delle regole è importante, a volte potresti voler aggiungere una regola nel mezzo di una catena esistente. Per fare ciò, usa uno dei pulsanti freccia sotto Aggiungi di una catena colonna nella pagina principale del modulo per creare una nuova regola prima o dopo quella esistente.

Di seguito sono elencate le azioni più comuni e il loro significato. Non tutti sono disponibili in tutte le catene e tavoli.

Non fare nulla
Se una regola con questa azione viene soddisfatta, non verrà eseguito nulla e l'elaborazione continuerà alla regola successiva.
Accetta
I pacchetti corrispondenti verranno immediatamente accettati e non verranno eseguite ulteriori elaborazioni nella catena. Tuttavia, le regole in altre tabelle possono comunque influenzare il pacchetto.
Rilascia
I pacchetti corrispondenti verranno scartati silenziosamente, come se non fossero mai stati ricevuti. Nessun ulteriore trattamento avrà luogo in questa catena o in qualsiasi altra.
Spazio utente
I pacchetti verranno passati a un normale processo dello spazio utente. Questa azione viene utilizzata raramente.
Catena di uscita
Salta immediatamente alla fine della catena ed esegui invece la sua azione predefinita. Se viene utilizzato in una catena definita dall'utente, l'elaborazione tornerà alla regola che l'ha chiamata.
Mascherata
I pacchetti corrispondenti avranno l'indirizzo di origine modificato in modo che sembrino provenire dal sistema firewall e non verranno elaborate ulteriori regole nella catena. Quando questa azione è selezionata, puoi utilizzare le porte di origine per il masquerading campo per controllare quali porte utilizzerà il firewall per le connessioni mascherate. Consulta Configurazione della traduzione degli indirizzi di rete sezione per maggiori dettagli. La Masquerade l'opzione è disponibile solo nella Traduzione dell'indirizzo di rete tabella, nella catena *Pacchetti dopo l'instradamento*.
Fonte NAT
Simile a Masquerade opzione, ma più adatto a sistemi che dispongono di un indirizzo IP Internet fisso. Se selezionato, puoi utilizzare gli IP e le porte per SNAT campo per controllare quale disponibile nella Traduzione dell'indirizzo di rete tabella, in Pacchetti dopo l'instradamento catena.
NAT di destinazione
I pacchetti corrispondenti avranno l'indirizzo di destinazione e la porta modificati in base agli IP e alle porte per il campo DNAT. Questa è la base per un proxy trasparente, quindi per saperne di più consulta la sezione Configurazione di un proxy trasparente sezione sottostante. Questa azione è disponibile solo nella Traduzione dell'indirizzo di rete tabella, in Pacchetti prima dell'instradamento e Uscita catene.
Reindirizzamento
Questa azione reindirizza tutti i pacchetti corrispondenti a una o più porte sulla casella del firewall, specificata dal campo *Porte di destinazione per il reindirizzamento*. Può essere utilizzato anche per un proxy trasparente, sebbene il NAT di destinazione sia più flessibile. L'azione di reindirizzamento è disponibile solo nella Traduzione dell'indirizzo di rete tabella, in Pacchetti prima dell'instradamento e Uscita Catene.

Puoi anche scegliere la Catena di corsa opzione per l'Azione da intraprendere , che passerà il pacchetto alla catena definita dall'utente o alla destinazione personalizzata inserita nel campo accanto. Per ulteriori informazioni sulle catene definite dall'utente, vedere la sezione *Creazione della propria catena* di seguito. Alcuni dei target disponibili sono LOG (per registrare i pacchetti in syslog), MIRROR (per riportare i pacchetti al mittente) e MARK (per contrassegnare un pacchetto per condizioni successive).

Per ogni condizione, le opzioni Ignorato , Uguale a e *Non è uguale* possono essere selezionati. Il primo significa che la condizione non viene utilizzata affatto quando si verifica se un pacchetto corrisponde alla regola. Il secondo significa che un pacchetto deve soddisfare la condizione affinché corrisponda all'intera regola e il terzo significa che il pacchetto NON deve soddisfare la condizione affinché la regola venga eseguita. Se ad esempio la condizione "Interfaccia in ingresso" fosse impostata su "Non è uguale" ed eth0 selezionato, la regola corrisponderebbe solo ai pacchetti in arrivo su qualsiasi interfaccia eccetto la scheda Ethernet primaria.

Poiché quasi tutti i protocolli di rete implicano il flusso del traffico in due direzioni, tentando di bloccare solo il traffico in entrata da un indirizzo utilizzando l'Indirizzo di origine o rete condizione bloccherà anche le connessioni all'indirizzo, perché i pacchetti di risposta che fanno parte della connessione verranno eliminati. Lo stesso vale per bloccare i dati in entrata su una porta particolare utilizzando la porta TCP o UDP di destinazione condizione - se nell'improbabile caso la porta di origine scelta a caso di una connessione dal tuo sistema corrisponde alla porta bloccata, tutte le risposte ad essa verranno eliminate. Per questi motivi, di solito è una buona idea quando si creano regole di rifiuto impostare lo Stato connessione condizione a Non è uguale a e seleziona Connessione esistente dal menu accanto. Ciò farà sì che IPtables tenga traccia delle connessioni in uscita effettuate dal tuo server e non le blocchi.

Come puoi vedere, sono disponibili molte condizioni diverse che possono essere combinate per creare regole piuttosto complesse. Per ulteriori informazioni sulle funzioni di ciascuna delle condizioni disponibili, vedere la sezione *Condizioni delle regole firewall* di seguito. Poiché ci sono così tante condizioni, Webmin ti consente di creare nuove regole quasi identiche a quelle esistenti. A tale scopo, fai clic su una regola esistente per modificarla e utilizza la Regola clona pulsante nella parte inferiore della pagina per accedere al modulo di creazione della regola con tutte le condizioni e le azioni impostate in base alla regola originale.

Modifica dell'azione predefinita di una catena

I pacchetti che non corrispondono a nessuna regola in una catena verranno elaborati utilizzando l'azione predefinita, che di solito è accettare il pacchetto. Nella pagina principale del modulo, l'azione predefinita per ciascuna catena è mostrata accanto a Imposta azione predefinita su pulsante. Per cambiarlo, i passaggi da seguire sono :

  1. Seleziona la nuova azione dal menu accanto al pulsante *Imposta azione predefinita su*. Solo Accetta , Rilascia , Spazio utente e Catena di uscita sono disponibili azioni - vedere la sezione *Consentire e negare il traffico di rete* sopra per i loro significati. In genere, solo Consenti e Rilascia ha senso come azione predefinita.
  2. Fai clic su Imposta azione predefinita su pulsante per salvare la nuova impostazione predefinita.
  3. Se si passa a Rilascia , aggiungi eventuali regole firewall aggiuntive necessarie in modo che il tuo sistema possa ancora accedere ad altri server e fornire servizi importanti.
  4. Al termine, fai clic su Applica configurazione pulsante per rendere attiva la nuova impostazione predefinita.

Basta cambiare l'azione predefinita in Rilascia per i pacchetti in entrata è un modo semplice per isolare completamente il sistema dalla rete e, eventualmente, renderlo inutilizzabile. Prima di farlo, assicurati di consentire almeno i seguenti tipi di traffico :

  • Tutte le connessioni stabilite. Crea un Consenti regola con lo Stato connessione impostato su Uguale a e Connessione esistente scelto.
  • Connessioni relative a quelle stabilite, come le connessioni dati FTP. Crea un Consenti regola con lo *Stato connessione* impostato su Uguale a e Connessione correlata scelto.
  • Tutto il traffico sull'interfaccia di loopback. Crea un Consenti regola con Interfaccia in entrata impostato su Uguale a e quello scelto.
  • Traffico dal tuo sistema a se stesso sulle sue interfacce di rete primarie. Per ogni interfaccia crea una regola Consenti sia con *Indirizzo di origine o rete* che con Indirizzo di destinazione o rete impostato sull'indirizzo IP dell'interfaccia.
  • Tipi di ICMP sicuri. Crea quattro Consenti regole con il *tipo di pacchetto ICMP* impostato su Uguale ed eco-risposta, destinazione irraggiungibile, source-quench e time-exceded scelto.

Modifica dell'azione predefinita per i pacchetti inoltrati su Rilascia non causerà tanti problemi:sarà semplicemente l'equivalente di disattivare del tutto l'inoltro. Modifica dell'azione predefinita per i pacchetti in uscita su Rilascia è una cattiva idea in quanto interromperà tutto l'accesso alla rete e probabilmente non ha molto senso nella maggior parte dei casi.

Modifica delle regole del firewall

Webmin può essere utilizzato per modificare qualsiasi regola del firewall esistente che è stata creata manualmente, in un altro programma o utilizzando questo modulo. Anche se il modulo non supporta tutte le condizioni e le opzioni di azione disponibili di IPtables, è comunque possibile utilizzarlo per modificare in modo sicuro regole contenenti opzioni sconosciute. Solo quelli noti a Webmin possono essere modificati e gli altri rimarranno intatti.

Per modificare una regola, i passaggi da seguire sono :

  1. Nella pagina principale del modulo, seleziona la tabella in cui si trova la regola dall'elenco accanto a Mostra tabella IP pulsante prima di cliccarlo.
  2. Fare clic sull'azione della regola che si desidera modificare nella tabella per la sua catena. Questo ti porterà a un modulo di modifica, che è identico al modulo di creazione mostrato nella Figura 19-3.
  3. Modifica l'azione o una qualsiasi delle condizioni e fai clic su Salva pulsante per tornare all'elenco delle catene e delle regole. Oppure, per eliminare del tutto la regola, fai clic su Elimina pulsante.
  4. Per rendere attive le modifiche, fai clic su Applica configurazione .

Le regole possono essere spostate su e giù all'interno della loro catena utilizzando le frecce sotto Sposta colonna nella pagina principale. Poiché le regole vengono valutate in ordine dal firewall, la modifica del loro ordinamento può influire sul traffico consentito o negato. Ogni volta che crei una nuova regola, questa verrà aggiunta alla fine della sua catena, quindi potrebbe essere necessario spostarla nella posizione corretta per ottenere l'effetto desiderato.

Creare la tua catena

È possibile creare le proprie catene di regole personalizzate oltre a quelle standard. La differenza è che verranno eseguiti solo se una regola in una delle catene standard ha la sua azione impostata per saltare esplicitamente a una catena personalizzata. Al termine dell'esecuzione di una catena personalizzata (o di una regola con la catena di uscita l'azione corrisponde), la valutazione tornerà alla catena di chiamate. Ciò significa che le catene personalizzate possono essere utilizzate per definire regole condivise da più catene standard, invece di ripetere le stesse regole in più punti. In un certo senso, una catena personalizzata è come una subroutine in un linguaggio di programmazione.

Per creare la tua catena, i passaggi da seguire sono :

  1. Nella pagina principale del modulo, seleziona la tabella in cui desideri inserire la catena dal menu accanto a Mostra tabella IP e fare clic sul pulsante. Le catene personalizzate possono essere chiamate solo da altre catene nella stessa tabella.
  2. Inserisci il nome della tua nuova catena nella casella di testo accanto a Aggiungi una nuova catena denominata pulsante, quindi fare clic sul pulsante per crearlo. I nomi delle catene devono essere univoci e generalmente sono composti solo da lettere minuscole e numeri.
  3. Una volta creata la nuova catena, apparirà in fondo alla pagina. Puoi utilizzare la sua Aggiungi regola pulsante per aggiungere regole ad esso, proprio come con una delle normali catene.

Le catene personalizzate non hanno una politica predefinita, quindi non hanno il pulsante *Imposta azione predefinita su* nella pagina principale. Se l'esecuzione della catena raggiunge la fine, il controllo tornerà sempre al chiamante. Tuttavia, le catene personalizzate possono essere eliminate utilizzando Elimina catena pulsante sotto le tabelle delle regole.

Una catena personalizzata può contenere regole che passano ad altre catene personalizzate. Tuttavia, una catena non può saltare su se stessa, né puoi creare anelli saltando su un'altra catena per tornare alla prima. Anche se ciò fosse possibile, sarebbe una pessima idea!

Configurazione della traduzione degli indirizzi di rete

Se hai più sistemi in casa o in ufficio collegati da una LAN e un solo indirizzo IP Internet, la traduzione dell'indirizzo di rete può essere utilizzata per fornire a tutti quei sistemi un accesso a Internet quasi completo. NAT nasconde gli indirizzi di tutti i sistemi sulla LAN interna dietro un singolo indirizzo Internet, convertendo indirizzi e porte avanti e indietro secondo necessità. Ciò consente a tutti i sistemi interni di effettuare connessioni a qualsiasi host su Internet, come server Web, server DNS, server POP3 e così via. L'unica limitazione è che i sistemi interni non possono ricevere connessioni da altri host Internet, il che può causare il malfunzionamento di alcuni protocolli (come telefonia Internet e giochi di rete).

A causa di questa limitazione, i sistemi interni sono protetti dalla maggior parte degli attacchi di altri host su Internet, proprio come se si dovessero bloccare tutti i pacchetti inoltrati in arrivo sull'interfaccia esterna. NAT semplifica anche l'assegnazione degli indirizzi IP, poiché non è necessario preoccuparsi di esaurire gli indirizzi Internet reali da assegnare agli host interni che non sono realmente necessari. Per questi motivi, può avere senso impostare NAT nella tua organizzazione anche se non è del tutto necessario dal punto di vista della rete.

NAT funziona modificando l'indirizzo di origine e la porta dei pacchetti inviati dagli host interni e instradati attraverso il firewall. L'indirizzo di origine viene sempre modificato nell'indirizzo IP esterno del sistema firewall e la porta di origine in una porta inutilizzata scelta a caso. Quando un pacchetto di risposta ritorna, la sua porta di destinazione viene utilizzata per determinare l'indirizzo IP del client interno originale e la porta a cui il pacchetto deve essere inoltrato.

Per configurare NAT, tutto ciò che serve è un sistema con due interfacce di rete:una per la LAN interna e una connessa a Internet tramite dial-up, ISDN o banda larga. Una volta ottenuto questo, i passaggi da seguire sono :

  1. Sulla LAN interna, all'interfaccia Ethernet di ogni sistema deve essere assegnato un indirizzo su una rete IP privata come 192.168.0.0, incluso il sistema gateway.
  2. Impostare il router predefinito su tutti i sistemi interni sull'indirizzo IP LAN del sistema gateway.
  3. Assicurati che il gateway abbia l'inoltro IP abilitato nel modulo Configurazione di rete in Routing e gateway. Vedere NetworkConfiguration per ulteriori informazioni su come eseguire questa operazione.
  4. Nella pagina principale del modulo Linux Firewall sul sistema gateway, seleziona Traduzione dell'indirizzo di rete dall'elenco accanto a Mostra tabella IP pulsante. Quindi fare clic sul pulsante per visualizzare le catene nella tabella NAT.
  5. Fai clic su Aggiungi regola pulsante in Pacchetti dopo l'instradamento sezione, che ti porterà al modulo di creazione della regola.
  6. Imposta l'Azione da intraprendere a Maschera .
  7. Per controllare quali porte utilizzerà il firewall per le connessioni mascherate, imposta le Porte di origine per la mascheratura opzione per Intervallo di porte e inserisci i numeri di porta iniziale e finale nei campi accanto ad essa. Di solito basta selezionare Qualsiasi per consentire al firewall di utilizzare qualsiasi porta disponibile funzionerà correttamente.
  8. Modifica l'Interfaccia in uscita condizione a Uguale a e selezionare l'interfaccia di rete esterna dall'elenco accanto ad essa, ad esempio ppp0.
  9. Fare clic sul pulsante Salva in fondo alla pagina per tornare all'elenco di catene e regole.
  10. Fare clic su Applica configurazione per rendere attiva la nuova regola (e NAT).

È possibile combinare NAT con altre regole del firewall nel Filtraggio pacchetti tabella per bloccare le connessioni all'host del firewall stesso. Puoi anche anteporre le regole di negazione alla catena *Pacchetti dopo l'instradamento* per impedire a determinati host interni di accedere a Internet o limitare le porte a cui possono connettersi.

Le istruzioni precedenti funzioneranno su qualsiasi rete che dispone di un sistema gateway con un unico indirizzo IP Internet. Tuttavia, se l'indirizzo del tuo gateway è statico, è meglio selezionare Source NAT nel passaggio 6 invece di Masquerade . Quando si utilizza il masquerading, tutte le connessioni inoltrate dal firewall verranno perse se l'interfaccia di rete esterna si interrompe, anche se viene ripristinata con lo stesso indirizzo IP. Se l'interfaccia esterna ha un indirizzo assegnato dinamicamente, questo non ha importanza in quanto le connessioni andrebbero comunque perse. Ma quando si utilizza un indirizzo IP statico, è possibile mantenere una connessione anche in caso di breve interruzione della rete.

Per utilizzarlo, al passaggio 6 imposta l'Azione da intraprendere a NAT di origine . Quindi imposta gli IP e le porte per SNAT a intervallo IP e inserisci l'indirizzo IP esterno statico del tuo sistema nel campo accanto ad esso. Tutti gli altri passaggi del processo di configurazione NAT sono gli stessi.

Impostazione di un proxy trasparente

Molte reti utilizzano server proxy come Squid per memorizzare nella cache i siti Web a cui si accede comunemente e quindi ridurre la quantità di larghezza di banda utilizzata dai client di navigazione sul Web. Tuttavia, normalmente ogni client deve essere configurato per utilizzare il server proxy invece di effettuare connessioni dirette ai siti Web. Su una grande rete con molti sistemi client o presso un ISP in cui sono di proprietà di molte persone diverse, questa configurazione individuale può essere difficile. È aggravato dal fatto che ogni browser ha le proprie impostazioni del server proxy, quindi se un utente installa un nuovo browser probabilmente non utilizzerà affatto un proxy.

Fortunatamente, c'è una soluzione:proxy trasparente. Se tutti i sistemi client accedono a Internet tramite un gateway che esegue un firewall IPtables, è possibile configurarlo per reindirizzare le connessioni alla porta 80 (utilizzata dalla maggior parte dei siti Web) a un server proxy su un altro sistema. Ciò significa che i client non devono essere configurati per accedere a un proxy, poiché tutte le richieste HTTP effettuate verranno inviate in modo trasparente al server proxy a loro insaputa.

Per impostare un proxy trasparente, i passaggi da seguire sono :

  1. Nella pagina principale del modulo Linux Firewall sul sistema gateway, seleziona Traduzione dell'indirizzo di rete dall'elenco accanto a Mostra tabella IP button before clicking it.
  2. In the Packets before routing section, click on Add rule to go to the rule creation form. The rule being added will redirect all traffic on port 80 forwarded by the firewall system to a proxy server.
  3. Set the Action to take to Destination NAT .
  4. In the IPs and ports for DNAT field, select IP range and enter the address of the proxy server system into the field next to it. If the proxy is running on the same system, enter its Ethernet IP address (not 127.0.0.1). In the field next to Port range , enter the port the proxy server is running on, such as 8080.
  5. Set the Incoming interface to Equals and select the internal LAN interface, such as eth0.
  6. Set the Network protocol to Equals and select TCP .
  7. If the proxy is on another system that is also on the internal LAN, make sure that its connections on port 80 will not be proxied by the firewall as well! To do this, set the *Source address or network* condition to Does not equal and enter the IP address of the proxy server into the field next to it. If the proxy is on a different LAN or is the firewall system, this is not necessary.
  8. Set the Destination TCP or UDP port to Equals and enter 80 into the Port(s) campo.
  9. Click the Create button to save the rule and return to the module's main page.
  10. Click on Add rule under Packets after routing to bring up the rule creation form again. This rule will forward packets back in the other direction from the proxy to the client. If your firewall system is also running the proxy server, this rule is not necessary and you can skip to step 16.
  11. For the Action to take , select Source NAT .
  12. In the IPs and ports for SNAT field, select IP range and enter the LAN IP address of the firewall server into the field next to it.
  13. Set the Destination address or network to Equals and enter the IP address of the proxy server into the field next to it.
  14. Set the Network protocol to Equals and select TCP .
  15. Fai clic su Crea button to add the new rule.
  16. Back on the main page, click the Apply Configuration pulsante. All packets on port 80 forwarded by your firewall will now be sent to the proxy server instead.
  17. Assuming you are running the Squid proxy server (version 2.4 or above) on the proxy system, you can use Webmin to configure it. Otherwise, there is no point reading beyond this step.
  18. On the proxy system, enter the Squid Proxy Server module and click on Miscellaneous Options.
  19. Set the HTTP Accel Host field to Virtual , and the *HTTP Accel Port* to 80 .
  20. Set both the HTTP Accel With Proxy and *HTTP Accel Uses Host Header* fields to Yes.
  21. Finally, click Save to return to the main page of the Squid module, and click the Apply Changes link near the top of the page to activate the new configuration.

From now on, any HTTP requests on port 80 forwarded by your firewall will be sent to the proxy server for processing. Transparent proxying can be safely used at the same time as conventional NAT by creating a masquerade rule in the packets after routing chain, as explained in the instructions in the *Setting up network address translation* section above.

Setting up port forwarding

On a network that uses NAT to hide internal systems from the Internet, outside hosts cannot connect directly those on the internal network. This is great for security, but can be annoying if there is some internal service that you do want to make available to the outside world. For example, your mail server system may not be the firewall host, which would normal make it inaccessible from the Internet. Fortunately, there is a solution to this problem - port forwarding.

This lets you re-direct all connections to some port on the firewall system to a different host and port on your internal network. For a mail server, all data received on port 25 might be send to the same port on the host that is actually being used to host user email. Of course, this would make it impossible for your firewall system to receive email itself.

To set up port forwarding, follow these steps :

  1. On the main page of the Linux Firewall module on the gateway system, select Network address translation from the list next to the Showing IPtable button before clicking it.
  2. In the Packets before routing section, click on Add rule to go to the rule creation form. The rule being added will redirect all external traffic received by the firewall to some internal address.
  3. Set the Action to take to Destination NAT .
  4. In the IPs and ports for DNAT field, select IP range and enter the address of the internal host into the adjacent text box, such as 192.168.1.10 . In the Port range box, enter the port number on the internal host to which data should be sent, such as 25 for SMTP, 110 for POP3 or 80 for HTTP.
  5. Set the Network protocol to Equals and select TCP .
  6. In the Destination TCP or UDP port field, select Equals from the menu and enter the external port number for which forwarding should be done into the adjacent text field. Typically this will be the same as the port entered in step 4.
  7. Premi Salva button to create the rule and return to the main page, and then click the Apply Configuration pulsante.

The only problem with this method is that connections from inside your network to the firewall system will not be forwarded to the other host.

Firewall rule conditions

When creating a firewall rule, you can select many different conditions to control which packets the rule matches. A rule's action will only be executed if all the conditions are matched. Each condition can be in one of three states, chosen by the menu next to it on the rule creation form :

  • Ignore The condition will be totally ignored when deciding whether the rule matches or not.
  • Equals The rule will only match if the packet matches the address, port, interface or whatever was selected for this condition.
  • Does not equal The rule will only match if the packet does NOT match whatever was selected for this condition.

The available conditions and what each matches are listed in the table below. Note that some are not available in all tables and chains.

Remember that each condition is applied on a per-packet basis, and that a single TCP connection may involve multiple packets flowing in both directions.

Contenuti

Vedi anche

  • Firewall Shoreline
  • Firewall Shorewall6
  • FirewallD

Webmin
  1. Introduzione ai firewall Linux

  2. Spazi dei nomi Linux

  3. Come disabilitare il firewall su CentOS 8 Linux

  4. Come registrare i pacchetti eliminati dal firewall di Linux IPTables in un file di registro

  5. perché il bridge linux non funziona

Firewall D

Firewall IPFilter

Firewall del litorale

comando Linux tcpdump

Come configurare il firewall UFW su Linux

I 5 migliori firewall Linux