Protezione della rete con Iptables - Proxy - NAT - IDS: PARTE 2

Nel post precedente Abbiamo visto la configurazione di IPTables per funzionare come un firewall. Ora possiamo vedere come creare quegli script in modo che le regole vengano eseguite automaticamente all'avvio del sistema e anche come possiamo eliminare o fermare quelle regole per un momento.

Prima di fare la sceneggiatura e mostrarti come appare, parliamo un po 'del NAT e del concetto di ciò che vogliamo fare con questa attrezzatura.

NAT e contesto dell'esempio.

Quando parliamo di NAT, possiamo confonderlo con il routing, poiché entrambi sono incaricati di connettere tra loro due reti diverse. La differenza è che il routing viene applicato per passare da una rete locale a un'altra e quest'altra rete può connettersi a un router e uscire su Internet.

Mentre, quando parliamo di NAT, parliamo di instradamento di pacchetti da una rete locale o privata a una rete pubblica o Internet. Lo fa mascherando i pacchetti inserendo l'IP pubblico con cui va su Internet. Cioè, non abbiamo bisogno di un router, perché l'IP pubblico è detenuto direttamente dal computer con GNU / Linux.

nat

Lavoreremo su questo con lo slogan che stiamo usando il nostro Linux come router / firewall per accedere a Internet da una rete locale. Ma qui possono apparire due scenari.

  • Che il nostro Linux è tra il router del fornitore di servizi e la rete locale.

In questo caso, tra il router e il nostro Linux ci sarebbe una rete, e tra Linux e la rete locale ci sarebbe un'altra rete diversa. Ciò significa che il nostro router non dovrebbe fare NAT in quanto tale, con un semplice instradamento del traffico come spiegato in post precedente Sarebbe buono.

  • Che il nostro Linux abbia un'interfaccia connessa alla rete locale e tramite l'altra interfaccia riceve direttamente un IP pubblico con cui naviga.

Ciò significa che il nostro Linux deve eseguire NAT in modo che i pacchetti possano raggiungere Internet.

Ai fini di questo piccolo laboratorio quindi, diremo che il nostro Linux riceve direttamente un IP pubblico e quindi potrà testare gli effetti del NAT.

Per fare NAT usiamo quindi la sintassi

 iptables -t nat -A POSTROUTING -O eth1 -j MASCHERA

Dove eth1 è l'interfaccia in cui riceviamo l'IP pubblico, cioè dove andiamo su Internet.

MASQUERADE viene utilizzato quando l'ip è pubblico ma può variare nel tempo (dinamico). Altrimenti possiamo usare SNAT –to-source ip

Creazione di script iptables

Supponiamo quindi che: 172.26.0.0 sia la nostra rete locale e 81.2.3.4 sia l'IP pubblico con cui andiamo su Internet. (è un ip statico). Ho le interfacce eth0 (rete locale)

eth1 (rete pubblica).

Fondamentalmente consiste nel creare uno script che può essere chiamato da /etc/init.d/firestop (per esempio). e da questo script possiamo avviare, fermare o controllare lo stato della nostra configurazione, proprio come facciamo con qualsiasi demone di sistema.

Supponiamo che le mie regole IPTABLES SIANO:

#! / bin / bash # Firewall di casa mia. # Nome file / etc / firewall_on # Di Jlcmux Twitter: @Jlcmux # # Politica di base. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT per condividere Internet da eth0 a eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Consenti connessioni in entrata avviate da iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT # # Traffico in uscita autorizzato iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Non dimentichiamo di dare i permessi di esecuzione

Spiegazione:

Lo script fondamentalmente fa quanto segue:

  1. Prima limita tutta la navigazione, le connessioni e il traffico. (Criteri firewall di base)
  2. Quindi creare il NAT con la destinazione eth1. indicando che abbiamo un IP pubblico statico "81.2.3.4"
  3. Apre le porte necessarie a ricevere i pacchetti di connessioni da me avviate.
  4. Accetta il traffico HTTP, HTTPS e DNS in uscita.
Le regole sono destinate al traffico FORWARD perché stiamo usando il nostro Linux come Router, quindi le policy sono usate per il traffico che PASSA ATTRAVERSO Linux, cioè funge da intermediario. Ciò significa che il nostro Linux non può davvero navigare o ricevere dati direttamente. Si applica solo ai computer ad esso collegati, ma non a se stesso

Se vogliamo usare la nostra attrezzatura per navigare dovremmo ripetere le righe e cambiare FORWARD in INPUT o OUTPUT a seconda dei casi.

Annulla script.

Ora creeremo uno script che sovrascrive tutto quanto sopra e lascia il computer pulito da tutto questo. (A scopo di test o vogliamo solo disattivare il firewall).

#! / bin / bash # Firewall di casa mia. # Nome del file / etc / firewall_off # Di Jlcmux Twitter: @Jlcmux # # Eliminazione delle regole di iptables -F # #Applicazione delle politiche predefinite (tutto il traffico accettato) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automazione.

Ora dobbiamo creare lo script all'interno /etc/init.d/ e il servizio si avvia automaticamente e possiamo gestirlo in modo più comodo.

#! / bin / bash # Firewall di casa mia. # Nome file /etc/init.d/ firewall # Di Jlcmux Twitter: @Jlcmux case $ 1 in start) / etc / firewall_on ;; stop) / etc / firewall_off ;; stato) iptables -L ;; *) echo "Sintassi errata. Valido = /etc/init.d/ firewall start | stop | status ;; esac

Spiegazione:

Quest'ultimo script che abbiamo inserito /etc/init.d/ con il nome firewall. Quindi, se vogliamo gestire il firewall, possiamo usare il comando /etc/init.d/ firewall start. Allo stesso modo possiamo fermarlo o vedere lo stato.

Ora modificheremo il file /etc/rc.local e mettiamo qualcosa come: /etc/init.d/ firewall start per iniziare con il sistema.

Anche. Questa è la seconda parte. Spero che porti qualcosa a tutti voi. Nel prossimo vediamo Proxy e IDS.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   cacciatore suddetto

    Se stai usando Debian c'è un pacchetto nel repo (iptables-persistent) che fa esattamente questo, scarica le regole correnti in /etc/iptables/rules.v4 o v6 a seconda di cosa usi e poi le applica a te quando si solleva il sistema.

  2.   OCZ suddetto

    In pratica, per pulire la configurazione di un firewall iptables convenzionale (e l'utilizzo di NAT non sarebbe così dal mio punto di vista), nella maggior parte dei casi sarebbe sufficiente un flush delle regole e reimpostare le policy di default su ACCEPT.
    Ma in teoria, e per quanto ne so, oltre a questo devi anche cancellare le stringhe non predefinite e azzerare i contatori. Azioni da compiere tenendo conto che oltre al "filtro" ci sono altre tabelle, (per questo è obbligatorio leggere il file "/ proc / net / ip_tables_names").

    A proposito, l'ortodossia dice che un firewall deve essere già attivo prima che la rete lo sia. Non so come sia ottenuto su altri sistemi Linux, ma su quelli Debian lo script potrebbe essere adattato e impostato nella directory "/etc/network/if-pre-up.d/".

    Buon firewall a tutti. 😉

  3.   NauTilu S suddetto

    Ciao, il post è molto buono. Ho letto tutti i 2 volumi.

    Aspettando il prossimo 🙂

  4.   anonimo suddetto

    Una domanda dalla mia ignoranza, continuiamo con iptables, ma per diverse versioni del kernel abbiamo nftables, sto già testando, le domande sono, nftables è qualcosa di beta rispetto a iptables? Iptables continuerà ad essere utilizzato ancora per molto?

    Grazie.

    1.    yukiteru suddetto

      nftables include tutte le funzionalità di iptables, ip6tables, arptables ed ebtables, tutti utilizzando una nuova infrastruttura sia nello spazio kernel che nello spazio utente, che garantisce prestazioni migliori e funzionalità migliorate. nftables sostituirà iptables e tutti gli altri strumenti menzionati ma non per il momento, almeno fino a quando non ci sarà un uso più ampio di nftables in quanto tali.

  5.   Alexander suddetto

    post molto buono, avrei voluto leggere di più visto che è spiegato molto bene .. un saluto grazie ottimo contributo

  6.   Avra suddetto

    Ciao! Molto buoni entrambi i post.
    Come contributo potresti aggiungere alla fine in questa parte:

    "Ora modificheremo il file /etc/rc.local e inseriremo qualcosa come: /etc/init.d/firestop start in modo che inizi con il sistema."

    Aggiungilo a rc.local.

    se [-x /etc/init.d/ firewall]; poi
    /etc/init.d/ firewall start
    fi

    Il che significa che se "firewall" ha i permessi di esecuzione, eseguirlo, in caso contrario.
    Se vuoi che il "firewall" non si avvii, devi solo rimuovere i permessi.

    Ad esempio: chmod + x /etc/init.d/ firewall
    per farlo funzionare ad ogni avvio o ...
    chmod -x /etc/init.d/ firewall
    per disabilitarlo completamente.

    Saluti!