|
forum
“help for poors country's”
google-page
AL for banners
GPL
CreativeCommons
NAT-IPTABLES.txt
antivirus-avira
(for Linux require dazuko)
aleander67.9k
|
IPTABLES
E IPTABLES-CHAIN
Iptables
è nato per la protezione di Servers, della propria rete o
di qualsiasi wan. Le funzioni avanzate ci permettono di avere un
controllo fine in aggiunta alle regole del Firewall e, quindi di
essere maggiormente protetti contro qualsiasi tentativo di
intrusione, spoofing etc.. vedi man iptables-save e iptables
restore, per salvare la lista di regole, iptables -L per
visualizzare le regole. iptables -A input [nomeservizio] -J ACCEPT
questa e' una semplice regola che dice di lasciar passare ad
esempio il servizio TCP ...o altro specificato..
QUESTE
SONO LE MIE REGOLE per un semplice utilizzo con pppoe, firewall,
router e eth1 iptables-regole
generate
da iptables-save e lette da iptables
-L
per
una maggiore accuratezza delle informazioni su come configurare un
server con piu' interfacce di rete o delle sottoreti, clicca sul
link a sinistra NAT-IPTABLES.txt
NAT
Networking
Address Traslating
ovvero:
traslazione di indirizzi IP
NAT
(Network
Address Translation)
è una tecnica usata per sostituire nell’intestazione di
un pacchetto IP un indirizzo, sorgente o destinazione, con un
altro indirizzo. E’ definito nella RFC
3022 NAT,
nel suo impiego più diffuso, viene usato per permettere ad
una rete che usa una classe di indirizzi privata di accedere ad
Internet usando uno o più indirizzi pubblici. E’ stato
studiato nel momento in cui ci si è accorti che lo spazio
di indirizzamento IPv4 non era poi così grande come era
sembrato al momento della sua creazione. All’inizio si
credeva fosse una soluzione temporanea, che l’implementazione di
IPv6 sarebbe arrivata presto, invece la rapida crescita
dell’accesso ad Internet ha reso il NAT una pratica molto
comune, IPv6 è di là da venire, e gli indirizzi IPv4
sono sempre meno e sempre più costosi. Tutto questo ha
portato alla situazione attuale, tanto più che ci si è
accorti che i principali protocolli TCP funzionano molto bene
anche dietro ad un NAT. In realtà non tutti nuovi tipi
di comunicazione funzionano con NAT, una per tutte IPSec, quindi
si è reso necessario aggiungere il supporto per questi
protocolli. In particolare si tratta di aggiungere lo specifico
supporto ALG (Application
Level Gateway)
per l’applicazione desiderata. Il supporto ALG usato per
permettere alle connessioni IPSec di passare attraverso un NAT si
chiama NAT
Traversal.
La
versione di NAT tradizionale è di due tipi:
Basic
NAT,
che si occupa della traduzione degli indirizzi. Durante una
sessione di comunicazione iniziata da un host all’interno della
rete privata verso un server pubblico, stabilisce un mapping uno
a uno dei due indirizzi. La connessione può essere
iniziata solo dall’interno.
NATP
(Network
Address Port Translation),
che si occupa della traduzione degli indirizzi ed anche delle
porte TCP. Diversi indirizzi IP e le loro porte TCP/UDP sono
mappate in un singolo indirizzo con le sue porte TCP/UDP. (E’
detta anche NAT/PAT).
I
due metodi spesso sfumano uno nell’altro, ma l’accezione
comune del termine NAT si riferisce al secondo tipo. Ci sono
anche altri tipi di NAT, come il bidirezionale, dove il mapping è
uno a uno e la connessione può essere iniziata da entrambe
le parti, ed il NAT doppio, che si usa per mettere in
comunicazione due reti che condividono lo stesso spazio di
indirizzi.
Facciamo
un esempio pratico: una rete con una ventina di host usa una
classe di indirizzi privati del tipo 192.168.0.0. In qualche punto
del path che collega la rete ad Internet c’è un
dispositivo che fa il NAT, tipicamente il firewall o il router,
che espone la rete verso Internet con un unico indirizzo IP
pubblico, che può essere statico o dinamico. Configurando
opportunamente il router ed il firewall si controlla il traffico
e, opzionalmente si possono pubblicare servizi che “girano” su
host in rete. In realtà è più sicuro usare
una DMZ
(DeMilitarized
Zone),
ma non ne parliamo, qui. Il device NAT si comporta così:
nel pacchetto in uscita toglie l’indirizzo privato ed inserisce
il proprio (pubblico), quando il pacchetto di risposta arriva fa
il processo inverso, toglie il proprio IP e mette l’indirizzo
privato dell’host che ha generato la sessione, e glielo
inoltra. Ma come fa a capire di chi è il pacchetto, se
due o più host iniziano una connessione verso lo stesso
server, e quindi l’indirizzo e la porta TCP sorgente dei
pacchetti di ritorno sono gli stessi? Presto detto: le porte
sorgenti degli host privati, unite all’indirizzo IP,
costituiscono un socket univoco che permette di identificare il
destinatario del pacchetto. (Le porte di origine sono scelte
tramite un algoritmo pseudo casuale). Esempio: Connessione
A, tra host 192.168.0.1, porta origine 45875, e 212.239.40.76,
porta destinazione 80. Connessione B, tra host 192.168.0.2,
porta origine 35821, e 212.239.40.76, porta destinazione 80. Dopo
il NAT, i due indirizzi privati saranno sostituiti da un unico IP
pubblico (es:151.44.134.29), ma le porte di origine rimarranno le
stesse. Al momento dell’arrivo del pacchetto con sorgente IP
212.239.40.76, porta 80 e destinazione 151.44.134.29 porta 45875,
il router NAT riconoscerà la connessione A. Il pacchetto
con sorgente IP 212.239.40.76, porta 80 e destinazione
151.44.134.29 porta 35821 sarà destinato all’host che ha
generato la connessione B.
Da
sottolineare come in NAT sia completamente trasparente per gli
host in comunicazione. Inoltre non esiste alcun modo per stabilire
se e quanti host privati ci siano dietro un IP pubblico “nattato”.
In parole povere il vostro provider non è in grado di
sapere se in casa vostra c’è un solo PC oppure un intero
datacenter. Nel più puro stile hacker qualcuno si
è chiesto se fosse possibile un simile conteggio,
ma a quanto pare è difficile cercare di capire cosa si
trovi dietro ad un NAT, a meno di non sniffare il traffico nelle
immediate vicinanze, e comunque non esiste alcun tool che faccia
una cosa del genere, si tratta solo di uno studio teorico.
(Attenzione! Lettura consigliata solo a geek duri e puri. :D)
I
vantaggi del NAT sono quelli che abbiamo visto:
Risolve
in parte il problema della carenza di indirizzi IPv4.
Non
è necessario cambiare gli indirizzi della rete privata per
accedere ad Internet.
I
dati viaggiano tra le reti in maniera trasparente.
I
protocolli più comuni funzionano bene.
E’
una sicurezza in più poichè il traffico entrante
non può raggiungere gli host sulla rete privata, a meno
che non siano state definite specifiche regole di NAPT.
Gli
svantaggi:
NAT
non è conforme ai dettami che prevedono che la connessione
end-to-end debba essere trasparente ed i pacchetti non
modificati.
Dato
il suo funzionamento, è richiesto uno specifico supporto
ALG per tutte le applicazioni che inseriscono l’indirizzo di
destinazione nell segmento dati del pacchetto.
Sempre
per queste applicazioni, il pacchetto deve essere deframmentato
prima di essere inoltrato ad un host dietro ad un NAT.
E’
un lavoro aggiuntivo per la CPU dei router che lo implementano.
Introduce
un “single point of failure” nella rete, poichè, a
meno di complicate acrobazie di sharing, gli host della rete non
possono usare più di un dispositivo NAT.
Anche
in ambiente casalingo si usa il NAT: tutti router ADSL lo usano, e
va correttamente configurato, se si desidera aprire porte verso
servizi interni. Non è sufficiente configurare il firewall
sul proprio PC, anche il router va “istruito” perchè
inoltri le richieste provenienti dall’esterno su una determinata
porta, verso l’indirizzo e la porta dell’host interno che
fornisce il servizio. Ciascun router ha una gestione diversa,
la sezione NAT può chiamarsi di volta in volta NAT,
SUA/NAT, PAT, NAT/PAT, Public Server e così via. Bisogna
comunque fare riferimento al manuale. Nei router/firewall ZyXel,
ad esempio, non è immediatamente chiaro che, oltre a creare
la regola del firewall che consenta il passaggio del protocollo
desiderato, bisogna anche specificare l’indirizzo e la porta del
“SUA Server” nella sezione “SUA/NAT”.
Dal
punto di vista della sicurezza, anche se non efficace come un
firewall, un NAT offre già buone garanzie, proprio perchè
nasconde gli host interni e non indirizza loro il traffico
“generico” proveniente dall’esterno.
|
|