A Basic Script Firewall, Linux come workstation

Finora, abbiamo imparato soprattutto riguardo l'utilizzo di iptables opzioni di filtro. Passo ora a creare un piccolo script firewall che penso dovrebbe essere di default quando si installa qualsiasi distribuzione Linux.
Per impostazione predefinita, tutte le distribuzioni Linux hanno il ACCEPT policy di default su tutte le catene di filtro. Inoltre, su una installazione di default, la maggior parte delle distribuzioni Linux e lascia un sacco di servizi in esecuzione. Se si installa una distribuzione Linux vecchia e decidono di andare a pranzo, dopo che avete appena avviato senza alcun firewall e con un indirizzo IP pubblico, sono buone possibilità che nel momento in cui ho mangiato la minestra, un rootkit è già installato sul vostro computer.
Diamo uno sguardo al seguente script semplice:

  

#! / bin / bash
# assegnare la variabile $ IPT con il comando iptables
IPT = / sbin / iptables
# impostare le politiche di ogni catena
$ IPT-P INPUT DROP
$ IPT-P FORWARD DROP
$ IPT-P OUTPUT ACCEPT # default, ma lo stesso set
# elimina tutte le regole nella tabella di filtraggio
$ IPT-F
# consentire il traffico sulla interfaccia di loopback
$ IPT-A INPUT-i lo-j ACCEPT
# consentire il traffico ICMP
P icmp $ IPT-A INPUT-j ACCEPT
# consentire il traffico in entrata DNS
P udp $ IPT-A INPUT-- sport 53-j ACCEPT
# permettono stabilito connessioni TCP
P tcp $ IPT-A INPUT-! - syn-j ACCEPT

Allora, che cosa abbiamo fatto è stato per impostare le catene INPUT e FORWARD DROP politica. La politica catena OUTPUT è impostato per accettare, che è la politica di default per questa catena.
Noi non aggiungere tutte le regole della catena in avanti, perché si tratta di un personal computer e non un router, e così la trasmissione sarà off. Noi non anche aggiungere tutte le regole nella catena OUTPUT-qualcosa che provengono sia OK.
Successivamente, a filo tutte le regole esistenti fuori dal tavolo di filtro. A questo punto, nulla funziona davvero. Alcune applicazioni utilizzano le connessioni TCP / IP per l'interfaccia di loopback, quindi è sicuro per consentire i pacchetti che arrivano sull'interfaccia "Lo".
Abbiamo imparato a conoscere gli attacchi ICMP di cui all'articolo 2. Tuttavia, è mia opinione che ICMP dovrebbe essere consentito. Filtraggio ICMP non vi permetterà di testare la tua connessione ad internet utilizzando il ping, traceroute, MTR, ecc, e anche la scoperta della MTU del percorso non funziona, che è un protocollo molto importante in molti casi.

Risposte DNS utilizzano il protocollo UDP e la porta di origine 53. Tenere presente che la linea:

P udp $ IPT-A INPUT-- sport 53-j ACCEPT

è una potenziale violazione della sicurezza. Abbiamo lasciato in questo modo perché abbiamo in precedenza affermato che questo è ciò che pensiamo che il firewall di default dovrebbe essere simile. Tuttavia, se non si utilizza un server DNS (che non è raccomandato per un personal computer), accettare le connessioni UDP con porta di origine 53 solo dal DNS server del provider (quelli che hai in / etc / resolv.conf). Ad esempio, se i server DNS del provider sono 1.1.1.1 e 1.1.2.1, sostituire la riga precedente con:

$ IPT-A INPUT-s 1.1.1.1-p udp - sport 53-j ACCEPT
$ IPT-A INPUT-s 1.1.2.1-p udp - sport 53-j ACCEPT

In questo modo, sarà più sicuro.

 

L'ultima cosa di cui abbiamo bisogno per la nostra connessione ad Internet al lavoro è quello di consentire il traffico TCP in entrata già stabiliti per le connessioni TCP. Meglio formulata, negare tutto il traffico TCP in entrata che non appartiene a una connessione TCP che questo computer ha avviato (negare pacchetti TCP SYN).


iproute2 e di controllo del traffico

iproute2 è un pacchetto software che fornisce vari strumenti per il routing avanzato, gallerie, e il controllo del traffico.
iproute2 è stato originariamente progettato da Alexey Kuznetsov, ed è noto per l'attuazione QoS nel kernel Linux ed è ora gestito da Stephen Hemminger. Il sito primario di iproute2 è http://linux-net.osdl.org/index.php/Iproute2e il suo sito principale è la documentazione http://www.lartc.org.
Gli strumenti più importanti che sono iproute2 fornisce ip e tc.
Configurazione di rete: "IP" Tool

Lo strumento IP fornisce la maggior parte della configurazione di rete ha bisogno un sistema Linux. Si possono configurare le interfacce, ARP, le politiche di routing, gallerie, ecc
Ora, con IPv4 e IPv6, IP può fare praticamente tutto (tra cui molte cose che non abbiamo bisogno nel nostro situazioni particolari). La sintassi di IP non è difficile, e ci sono un sacco di documentazione su questo argomento. Tuttavia, la cosa più importante è sapere che cosa abbiamo bisogno e quando ne abbiamo bisogno.
Prima di tutto, IP è il principale strumento di cui abbiamo bisogno per i protocolli di routing dinamico (BGP, OSPF e RIP) su Linux fornite da Zebra, che sarà discussa più avanti in questo articolo.
Let's have a guardare il comando ip aiutare a vedere cosa sa IP:

root @ router: ~ # help ip

Ip link mostra le configurazioni del dispositivo di rete che può essere cambiato con ip link set. Questo comando è usato per modificare le proprieta 'del dispositivo e non l'indirizzo IP.
Gli indirizzi IP può essere configurato usando il comando ip addr. Questo comando può essere utilizzato per aggiungere un primario o secondario (alias), l'indirizzo IP di un dispositivo di rete (ip addr add), per visualizzare gli indirizzi IP per ogni dispositivo di rete (ip addr show), o per eliminare gli indirizzi IP da interfacce (ip addr del). Gli indirizzi IP possono anche essere lavata con criteri diversi, ad esempio, dinamica ip addr flush flush saranno tutti gli itinerari aggiunto al kernel da un protocollo di routing dinamico.
Vicino / gestione tabella ARP viene fatto usando prossimo IP, che ha alcuni comandi espressivamente chiamato aggiungere, modificare, sostituire, eliminare e da incasso.
ip tunnel viene utilizzato per gestire le connessioni tunneling. Tunnel può essere GRE, ipip, e sedersi. Ci sono un esempio avanti in questo articolo su come costruire tunnel IP.
Lo strumento IP offre un modo per monitorare gli itinerari, indirizzi, e gli stati dei dispositivi in tempo reale. Ciò può essere eseguito utilizzando monitor IP, rtmon, e comandi rtacct incluso nel pacchetto iproute2.
Molto importante e probabilmente l'oggetto più utilizzato dello strumento IP è ip route, che può fare qualsiasi operazione sulla tabella di routing del kernel. Ha i comandi per aggiungere, cambiare, sostituire, eliminare, show, a filo, e ottenere percorsi.
Una delle cose iproute2 introdotta per Linux che hanno garantito la sua popolarità è stata la politica di routing. Questo può essere fatto utilizzando la regola di IP e via IP in pochi semplici passi.

Controllo del traffico: tc

Il comando TC consente agli amministratori di creare le diverse politiche di QoS nelle loro reti con Linux, invece di molto costose macchine dedicate QoS. Usando Linux, è possibile implementare QoS in tutti i modi qualsiasi macchina dedicata QoS può e ancora di più. Inoltre, si può fare un ponte con un buon PC con Linux che può essere trasformata in un potente e molto economici dedicato QoS macchina.
Per questo, il supporto QoS deve essere configurato nel kernel di Linux (CONFIG_NET_QOS = "Y" e CONFIG_NET_SCHED = "Y").

Classless Queuing Discipline (Classless qdiscs)

Qdiscs Classless sono quelle più semplici, perché solo accettare, goccia, ritardo o la rinegoziazione dei dati. Possono essere collegata ad una interfaccia e non può che forma l'intera interfaccia.

Ci sono diverse implementazioni qdisc su Linux, la maggior parte di essi inclusi nel kernel Linux.

  1. FIFO (pfifo e bfifo): Il qdisc più semplice, che funzioni da parte del primo, First Out regola. Algoritmi FIFO hanno un limite di coda di dimensioni (dimensione del buffer), che può essere definita in pacchetti per pfifo o in byte per bfifo.
  2. pfifo_fast: Il qdisc di default su tutte le interfacce Linux. E 'importante sapere come funziona pfifo_fast; così abbiamo lo spiegherò presto.
  3. Token Bucket Filter (TBF): Un qdisc semplice che è perfetta per rallentare l'interfaccia di un determinato tasso. Si può consentire brevi raffiche oltre l'aliquota e processore è molto amichevole.
  4. Stocastico Fair Queuing (SFQ): Uno dei qdiscs più usati. SFQ cerca di distribuire equamente la trasmissione dei dati tra un certo numero di flussi.
  5. Enhanced Stochastic Fair Queuing (ESFQ): Non incluso nel kernel di Linux, che funziona nello stesso modo come SFQ con l'eccezione che l'utente può controllare più parametri dell'algoritmo, come la profondità (flussi) limite, le opzioni di dimensione tabella di hash (hardcoded in originale SFQ) e hash tipi.
  6. Random Early Detection and Generic Random Early Detection (RED e GRED): qdiscs adatto per i dati di backbone in coda, con velocità di trasferimento dati di oltre 100 Mbps.

Ci sono qdiscs più di quelli che ho detto qui. Tuttavia, dalla mia esperienza, SFQ e ESFQ fare un grande lavoro, e sono i qdiscs che ho ottenuto i migliori risultati con.
Come ho già detto, la qdisc di default su Linux per tutte le interfacce è pfifo_fast. Normalmente, si potrebbe pensare che questo è proprio come pfifo, nel senso c'è un buffer e pacchetti passano attraverso il buffer usando il First In First Out regola. In realtà, non è vero. pfifo_fast ha 3 bande-0, 1 e 2, in cui i pacchetti vengono immessi in base alla loro byte TOS. I pacchetti vengono inviati da quelle bande come segue:

  1. Pacchetti nella banda 0 avere la massima priorità
  2. Pacchetti nella banda 1 sono inviati solo se non ci sono i pacchetti nella banda 0
  3. Pacchetti nella banda 2 hanno la priorità più bassa e vengono inviati solo se non ci sono i pacchetti in 0 e 1 bande.

E 'importante sapere questo, perché questo può essere un modo per ottimizzare le modalità di pacchetti di viaggio attraverso le interfacce di rete del nostro router Linux.

un articolo presentato da Philip A Clare


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "A Basic Script Firewall, Linux come workstation" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 240 users browsing the articles directory   


  

|