Costruzione di Linux Firewall

In primo luogo, abbiamo bisogno di configurare Squid proxy server per essere in grado di eseguire proxy trasparente per i computer dei bambini e negare l'accesso a siti porno e di alcuni virus.
Squid può essere trovato alla www.squid-cache.org, ed è il server più utilizzato proxy sotto-distribuzioni Linux la maggior parte dei pacchetti per Squid. La documentazione migliore per Squid è il file di configurazione stessa, che è molto commentato.
Correremo Squid sulla sua porta di default, 3128. Per essere in grado di utilizzare Squid come proxy trasparente, dobbiamo aggiungere le seguenti informazioni nel file di configurazione (di solito / etc / squid / squid.conf):

httpd_accel_host virtuale
httpd_accel_port 80
httpd_accel_with_proxy su
httpd_accel_uses_host_header su

Successivamente, abbiamo bisogno di definire liste di accesso Squid per la rete interna di avere accesso a Squid e negare siti porno e di file pericolosi. Faremo questo per tutta la nostra rete interna, ma useremo il proxy trasparente solo per i computer dei bambini. Ogni file può essere un virus, e le estensioni dei file che seguono sono solo un esempio, quindi per favore sentitevi liberi di aggiungere qualsiasi estensione di file si considera pericoloso. Nel file squid.conf, si aggiungono le seguenti linee:

acl all src 0.0.0.0/0.0.0.0
src 192.168.1.0/24 acl our_network
ACL url_regex porn-i sex adult fetish hardcore porno
acl download urlpath_regex \. exe $ \. rar $ \. zip $ \. pif $ \. scr $
http_access deny porn
http_access deny download
http_access allow our_network
http_access deny all

L'ACL chiamato "porn" contiene un elenco di nomi che non sono ammessi nella URL, in modo da non essere in grado di accedere a un sito che ha una di quelle parole a suo nome utilizzando il server proxy.
L'ACL denominato "download" contiene un elenco di tipi di file che non sono autorizzati ad accedere, in modo che non sarà in grado di scaricare i file con le estensioni in tale elenco utilizzando il server proxy.
Ora che abbiamo configurato il server proxy, let's attuare il firewall in modo che corrisponda alla politica di sicurezza che abbiamo appena costruita.
Per il dispositivo di gioco, abbiamo bisogno di sapere come funziona quando ci host GameSpy Arcade su di esso. Andiamo ai loro siti web e vediamo che abbiamo bisogno di trasmettere le seguenti porte per la periferica di gioco:

  • 6.500 UDP: per GameSpy Arcade
  • 6.700 UDP: per GameSpy Tunnel
  

Let's avanti queste porte:

iptables-t nat-A PREROUTING-p udp - dport 6500-j DNAT - to 192.168.1.200
iptables-t nat-A PREROUTING-p udp - dport 6700-j DNAT - to 192.168.1.200

Per la periferica di gioco al lavoro, dobbiamo anche effettuare NAT per esso, che sarà inclusa nella regola di NAT per tutta la nostra rete, che sarà alla fine.
Successivamente, abbiamo bisogno di negare l'accesso per la stampante di rete a Internet. Normalmente, non facciamo di filtraggio nella tabella NAT, ma non vogliamo fare masquerading per l'indirizzo IP della stampante. Dato che la stampante è dotata di un indirizzo IP privato, non sarà accessibile dall'esterno e anche noi i pacchetti di uscire di eth0 nella catena POSTROUTING della tabella nat in modo che l'indirizzo IP della stampante non viene NATed.

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.100-j DROP

Per i computer dei bambini, ci si esibiranno proxy trasparente, il che significa che il computer si utilizza il server proxy senza configurare il browser web. Abbiamo già impostato il server proxy, quindi ora abbiamo bisogno di reindirizzare tutto il traffico per la porta 80 TCP al server proxy. Vogliamo anche di computer per i bambini l'accesso alla porta TCP 443, che è HTTPS:

iptables-t nat-A PREROUTING-s 192.168.1.55-p tcp - dport 80-j REDIRECT - to-port 3128
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p tcp - dport 443-j MASQUERADE

Ora, le richieste da 192.168.1.55 a qualsiasi host che la porta di destinazione 80 o 443 andranno al nostro server proxy, così tutto è stato fatto a livello locale e non abbiamo a mascherarsi 192.168.1.55 per tali richieste.
Successivamente, abbiamo bisogno di computer in maschera dei bambini quando si invia le richieste DNS al nostro provider:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p udp - dport 53-j MASQUERADE

Richieste DNS utilizzano la porta 53 UDP, così ora i computer dei bambini possono accedere a qualsiasi server DNS.
Vogliamo permettere loro di utilizzare Yahoo! Messenger solo per chattare (non la voce o il trasferimento di file). La lettura del Yahoo! Aiuto Messenger, vediamo che Yahoo! Messenger utilizza le porte 20, 23, 25, 80, 119, 5050, 8001 e 8002. Inoltre, vediamo che i padroni di casa necessarie per l'instant messaging di Yahoo! Messenger sono:

  1. scs.msg.yahoo.com
  2. scsa.msg.yahoo.com
  3. scsb.msg.yahoo.com
  4. scsc.msg.yahoo.com

Quindi è meglio mascherata computer per i bambini indirizzo IP quando si accede a questi host, dobbiamo fare in questo modo:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scs.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsa.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsb.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsc.msg.yahoo.com-j MASQUERADE

Quando si utilizza un nome canonico, invece di un indirizzo IP nella sintassi di iptables, il router Linux risolvere l'indirizzo IP (es) del nome canonico e inserire le norme nel kernel usando questi indirizzi IP. Se un nome canonico è risolto a più indirizzi IP, quindi iptables inserirà nel kernel una serie di regole uguali per il numero di indirizzi IP risolto, ogni linea con uno degli indirizzi IP risolto.

 

Ora che abbiamo impostato l'accesso per i computer dei bambini, dobbiamo negare l'accesso ai porti e gli altri ospiti. Facciamo che nella catena POSTROUTING della tabella nat:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-j DROP

Il laptop e desktop computer devono poter accedere a qualsiasi cosa, e così, senza regole speciali sono inserite per loro, tranne la regola MASQUERADE per la nostra rete, che si aggiungerà ora:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.0/24-j MASQUERADE

Una configurazione più deve essere fatto nella tabella nat di fornire la possibilità di accedere in remoto al computer desktop utilizzando VNC. Abbiamo impostato il server VNC per utilizzare la porta TCP 9112 sul computer desktop, quindi dobbiamo eseguire DNAT per questa porta come segue:

iptables-t nat-A PREROUTING-p tcp - dport 9112-j DNAT - to 192.168.1.11

Questa è la configurazione di cui abbiamo bisogno per la rete locale. Abbiamo bisogno di impostare alcune regole di firewall per garantire il router Linux.
In primo luogo, abbiamo bisogno di SSH per eseguire il router Linux in modo che possiamo gestire da remoto. Per garantire l'accesso SSH, è meglio creare una catena chiamata SSH in cui consentire o negare l'accesso a SSH. Se una vulnerabilità viene scoperta in OpenSSH, è molto probabile che i vermi di scansione per i server di OpenSSH sulla porta 22 verrà visualizzato in poche ore. Pertanto, si potrebbe voler eseguire il server SSH su un'altra porta di quella standard (per esempio, 1234). La catena di SSH è creato da:

iptables-N SSH

Avanti, inseriamo una regola che dice al kernel di cercare la catena di SSH per tutte le connessioni TCP in ingresso sulla porta 1234:

iptables-A INPUT-p tcp - dport 1234-j SSH

Dobbiamo inserire regole della catena SSH per consentire l'accesso solo da host attendibili. Diciamo che l'indirizzo IP presso il nostro ufficio è 1.2.3.4:

iptables-A SSH-s 1.2.3.4-j ACCEPT
iptables-A SSH-s 192.168.1.0/27-j ACCEPT
iptables-A SSH-s 0 / 0-j DROP

La prima regola accetta connessioni dal nostro ufficio indirizzo IP 1.2.3.4. La seconda regola consente le connessioni SSH solo da 192.168.1.0/27, che contiene gli indirizzi IP da 192.168.1.1 a 192.168.1.32, come non vogliamo permettere l'accesso SSH dal computer dei bambini, la stampante, e il dispositivo di gioco . La terza regola gocce di tutte le altre connessioni in ingresso sulla porta 1234.
Il server proxy (Squid) ha la propria sicurezza utilizzando gli elenchi di accesso. Tuttavia, il modo migliore per garantire e il router è di cadere pacchetti TCP SYN da Internet nella catena input. In questo modo, nessuna connessione in ingresso al router Linux può essere fatto da Internet, ad eccezione SSH sulla porta 1234 di 1.2.3.4, che è compensata prima di questa regola. Vogliamo anche ad accettare tutti i pacchetti sulla interfaccia di loopback (lo) per IPC (processo di comunicazione interna).

iptables-A INPUT-i lo-j ACCEPT
iptables-A INPUT-i eth0-p tcp - syn-j DROP

Perdendo i pacchetti SYN offre una buona protezione per i processi che possono avere bug. Tuttavia, questo scende solo le connessioni TCP con il flag SYN (la richiesta di istituire una connessione TCP), e non offre alcuna protezione per il software che apre le porte UDP.

un articolo presentato da T Ronald Besser


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


Online: 471 users browsing the articles directory