Você está na página 1de 11

Linux 2.

4 NAT HOWTO
Rusty Russell, mailing list netfilterlists.samba.org
Traduo para Portugus do Brasil: Guilherme Ude Braz (guilhermelinuxpla e. om.br)
Date: 2001/05/26 20:26:48

Revision: 1.14

Este do umento des reve omo fazer masquerading, proxy transparente, redire ionamento de portas, e outras
formas de Tro a de Endreo de Rede (Network Address Translations) om os kernels Linux 2.4.

Contents
1 Introduo

2 Onde en ontrar o site o ial e a mailing list?

2.1 O que Network Address Translation (Tro a de Endereo de Rede)? . . . . . . . . . . . . . .

2.2 Porque utilizar NAT? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Os dois tipos de NAT

4 Pequenas notas dos Kernels 2.0 e 2.2

4.1 So orro! Eu s quero masquerading! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2 E o ipmasqadm? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Controlando o que ser submetido a NAT

5.1 Seleo simples utilizando iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.2 Pontos mais espe  os sobre o tratamento dos pa otes . . . . . . . . . . . . . . . . . . . . . .

6 E agora, omo tratar os pa otes?


6.1 Sour e NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1

6
6

Masquerading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2 Destination NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.2.1

Redire ionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3 Algumas uriosidades menos utilizadas... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.1

Seleao de mltiplos endereos em um range . . . . . . . . . . . . . . . . . . . . . . . .

6.3.2

Criando mapeamentos NAT nulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.3

Comportamento padro do NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.4

Mapeamento de portas de origem impl ito . . . . . . . . . . . . . . . . . . . . . . . .

6.3.5

O que o orre quando NAT falha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3.6

Mapeamentos mltiplos, overlap e onitos . . . . . . . . . . . . . . . . . . . . . . . .

6.3.7

Alterando destino de pa otes gerados lo almente . . . . . . . . . . . . . . . . . . . . .

1. Introduo

7 Proto olos espe iais

8 Algumas prevenes sobre NAT

9 Sour e NAT e roteamento

10

10 Destination NAT para a mesma rede

10

11 Agrade imentos

11

1 Introduo
Bemvindo, gentil leitor.
Vo est prestes a entrar no fas inante (e algumas vezes horrendo) mundo do NAT: Network Address
Translation (Tro a de Endereo de Rede), e esse HOWTO ser seu guia para kernels Linux 2.4 e futuros.
No Linux 2.4, uma estrutura para lidar om pa otes foi introduzida, seu nome 'netlter'. Uma amada
externa prov NAT, ompletamente reimplementada em relao a kernels anteriores.
(C) 2000 Paul `Rusty' Russell. Li en iado sob a GNU GPL.

2 Onde en ontrar o site o ial e a mailing list?


Estes so os sites o iais:
Agrade imentos para Filewat her http://netfilter.filewat her.org/ .
Agrade imentos para The Samba Team and SGI http://netfilter.samba.org/ .
Agrade imentos para Harald Welte http://netfilter.gnumonks.org/ .

Para a mailing list o ial do Netlter v em

Netlter List http://www.netfilter.org/ onta t.html#list .

2.1 O que Network Address Translation (Tro a de Endereo de Rede)?


Normalmente, pa otes em uma rede viajam de sua origem (por exemplo, o omputador de usa asa) para seu
destino (por exemplo, www.gnumonks.org) atravs de vrios links. Nenhum destes links realmente alteram
seu pa ote: eles apenas reenviam o mesmo.
Se algum destes links zesse NAT, eles iriam alterar a origem ou o destino do pa ote. Como vo pode
imaginar, esta no a forma pela qual seu sistema foi feito para trabalhar, logo NAT sempre algo omplexo.
Geralmente a mquina que faz NAT vai relembrar-se omo o pa ote foi alterado, e quando um pa ote de
resposta segue o aminho inverso, a mquina ir fazer a alterao reversa naquele pa ote resposta, assim
que as oisas fun ionam.

2.2 Porque utilizar NAT?


Em um mundo perfeito, vo no usaria. Por enquanto, as razes so:

3. Os dois tipos de NAT

Conexes om a Internet via modem


A maioria dos provedores de a esso te d um ni o endereo IP quando vo one ta. Vo pode
mandar pa otes om qualquer endereo de origem que vo quiser, mas apenas respostas para pa otes
om esse endereo de origem retornaro para vo . Se vo quiser utilizar mais de uma mquina (uma
rede lo al na sua asa) para one tar na Internet atravs deste ni o link, vo pre isar de NAT.
Esta a maneira de NAT mais utilizada atualmente, e onhe ida omo Masquerading no mundo
Linux. Eu hamo isso de SNAT, porque vo altera o endereo de origem do primeiro pa ote.

Mltiplos Servidores
s vezes, vo quer mudar o destino dos pa otes que hegam na sua rede. Frequentemente isto o orre
porque ( omo dito a ima) vo tem apenas um endereo IP, mas quer que as pessoas al an em servidores
atrs do que tem o endereo IP real. Rees revendo o destino dos pa otes que hegam, possvel
implementar isso.
Uma variao omum disto load-sharing, na qual a arga de pa otes dividida entre mquinas. este
tipo de NAT era hamado de port-forwarding em verses anteriores do Linux.

Proxy Transparente
s vezes vo pretende que ada pa ote que atravesse sua mquina Linux destinado a um programa
espe  o. Isto utilizado para fazer proxies transparentes: um proxy um programa que  a entre sua
rede e o mundo extertno, ontrolando a omuni ao entre os mesmos. O termo transparente refere-se
ao fato de que sua rede no saber que est lidando om um proxy, a no ser, laro, que seu proxy
no fun ione :).
O Squid pode ser ongurado de forma a trabalhar desta maneira, e isto hamado de redire tion ou
transparent proxying em verses Linux anteriores.

3 Os dois tipos de NAT


Eu divido NAT em duas ategorias distintas:
Destino (Destination NAT) (DNAT).

NAT de Origem (Sour e NAT)

(SNAT) e

NAT de

Sour e NAT o orre quando o endreo de origem do primeiro pa ote alterado: por exemplo, quando se
muda de onde vem uma onexo. Sour e NAT sempre o orre no momento de post-routing, logo antes que o
pa ote deixe o rewall. Masquerading uma forma espe ializada de SNAT.
Destination NAT o orre quando o endereo de destino do primeiro pa ote alterado: por exemplo, quando se
altera o destino nal de uma onexo. Destination NAT sempre o orre no momento de pre-routing, quando
o primeiro pa ote est prestes a entrar no rewall. Port forwarding, load sharing, e proxy transparente so
forma de DNAT.

4 Pequenas notas dos Kernels 2.0 e 2.2


Peo des ulpas queles que ainda esperam para fazer a transio das verses 2.0 (ipfwadm) e 2.2 (ip hains).
H not ias boas e ruins.
Primeiramente, pode-se usar ip hains ou ipfwadm omo antes. Para fazer isto, arregue os mdulos do kernel
`ip hains.o' ou `ipfwadm.o' que esto na sua distribuio do netlter. Tais mdulos so in ompatveis (vo
est avisado!), e no podem ser utilizados em onjunto om quaisquer outros mdulos do netlter.
Tendo estes mdulos instalados, ip hains e ipfwadm podem ser utilizados normalmente, om as seguintes
diferenas:

4. Pequenas notas dos Kernels 2.0 e 2.2

Congurar masquerading timeouts om ip hains -M -S, ou ipfwadm -M -s no adianta. Uma vez que
os timeouts so maiores na nova infraestrutura NAT, isso no faz muita diferena.
Os ampos init_seq, delta e previous_delta no verbose masquerade listing so sempre zero.
Zerar e es utar os ontadores ao mesmo tempo `-Z -L' no fun iona mais: os ontadores no sero
zerados.

Ha kers tambm notaro:


possvel bloquear as portas 61000-65095 at fazendo masquerading. O digo de masquerading ode
assumia que no havia ataques neste port range, abrindo uma bre ha de segurana.
O ha k (no do umentado)`getso kname', que permitia que programas transparent proxy a hassem o
destino real dos pa otes, no fun iona mais.
O ha k (no do umentado) 'bind-to-foreign-address' tambm no foi implementado; ele era utilizado
para ompletar o servio de proxy transparente.

4.1 So orro! Eu s quero masquerading!


Masquerading o que a maioria das pessoas quer. Se vo tem um IP dinmi o via PPP (se vo no sabe,
vo tem um), e quer apenas passar para sua mquina que todos os pa otes vindos da sua rede interna deve
pare er que tm omo origem sua mquina om uma onexo dialup PPP.
# Carregar o mdulo NAT (isso arrega todos os outros.
modprobe iptable_nat
# Na tabela NAT (-t nat), adi ionar uma regra (-A) aps o routing
# (POSTROUTING) para todos os pa otes saindo por ppp0 (-o ppp0) dizendo para
# MASCARAR a onexo (-j MASQUERADE).
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Habilitar IP forwarding
e ho 1 > /pro /sys/net/ipv4/ip_forward

Note que vo no est ltrando nenhum pa ote aqui: para isso, veja o Pa ket Filtering HOWTO (Como
fazer ltragem de pa otes): `Misturando NAT e Filtragem de Pa otes'.

4.2 E o ipmasqadm?
O ipmasqadm era utilizado por um menor nmero de usurios, ento no me preo upei muito om a ompatibilidade de verses anteriores. Vo pode utilizar `iptables -t nat' para fazer port forwarding. No Linux
2.2 vo faria:
# Linux 2.2
# Transformar pa otes TCP indo para a porta 8080 de 1.2.3.4 para a porta 80 de 192.168.1.1's
ipmasqadm portfw -a -P t p -L 1.2.3.4 8080 -R 192.168.1.1 80

Agora, vo faria:

5. Controlando o que ser submetido a NAT

# Linux 2.4
# Adi ionar uma regra em pre-routing (-A PREROUTING) para a tabela NAT (-t nat) na qual
# pa otes TCP (-p t p) indo para 1.2.3.4 (-d 1.2.3.4) na porta 8080 (--dport 8080)
# tm seu destino tro ado (-j DNAT) para 192.168.1.1, porta 80
# (--to 192.168.1.1:80).
iptables -A PREROUTING -t nat -p t p -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80

Se vo quer que esta regra altere tambm as onexes lo ais (a NAT box tentando one tar-se via telnet
om o endereo 1.2.3.4 porta 8080, ela hegar no endereo 192.168.1.1 porta 80), vo pode inserir a mesma
regra na hain OUTPUT (que serve para pa otes de sadagerados lo almente):
# Linux 2.4
iptables -A OUTPUT -t nat -p t p -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80

5 Controlando o que ser submetido a NAT


Vo pre isa riar regras NAT as quais diro ao kernel quais onexes sero alteradas, e omo alter-las.
Para fazer isso, utiliza-se o verstil iptables e dizemos a ele para alterar a tabela NAT ao espe i ar a
opo `-t nat'.
As regras da tabela NAT ontm trs listas hamadas ` hains': ada regra examinada em ordem, at que
alguma delas orresponda-se om o pa ote analizado. As trs ' hains' so hamadas PREROUTING (para
Destination NAT, quando os pa otes esto prestes a entrar), POSTROUTING (para Sour e NAT, assim que
os pa otes saem), e OUTPUT (para Destination NAT de pa otes gerados lo almente.
O diagrama abaixo ilustraria isso perfeitamente se eu tivesse talento artsti o: :)
_____
_____
/
\
/
\
PREROUTING -->[De iso ----------------->POSTROUTING----->
\D-NAT/
[de Roteamento
\S-NAT/
|
^
|
__|__
|
/
\
|
| OUTPUT|
|
\D-NAT/
|
^
|
|
----> Pro essamento Lo al ----

Em ada um dos pontos a ima, quando um pa ote passa, veri ado a onexo om a qual ele est asso iado.
Se uma nova onexo, veri ada a hain orrespondente na tabela NAT para ver o que fazer om a mesma.
A resposta dada ser idnti a para todos os outros pa otes rela ionados om tal onexo.

5.1 Seleo simples utilizando iptables


iptables tem um nmero de opes padro onforme a lista abaixo. Todas as opes om dois hfens ()
podem ser abreviadas, desde que o iptables ainda possa diferen i-las das demais opes disponveis. Se
seu kernel tem suporte a iptables via mdulos, vo pre isar arregar o mdulo ip_tables.o antes om o
seguinte omando: `insmod ip_tables'.

6. E agora, omo tratar os pa otes?

A opo mais importante a seleo da tabela om `-t'. Para todas as operaes NAT, ser ne essria a
opo `-t nat' para a tabela NAT. A segunda mais importante a opo '-A', que adi iona uma nova regra
no m da hain (`-A POSTROUTING'), ou `-I' para adi on-la no in io (eg. `-I PREROUTING').
Vo pode espe i ar a origem (`-s' or `sour e') e o destino (`-d' or `destination') dos pa otes que
sofrero NAT. Tais opes podem ser seguidas de um simples endereo IP ( 192.168.1.1), um nome
(www.gnumonks.org), ou um endereo de rede (192.168.1.0/24 ou 192.168.1.0/255.255.255.0).
Tambm podem ser espe i adas as interfa es de entrada (`-i' ou `in-interfa e') ou de sada (`-o' ou `outinterfa e'). Qual das interfa es que poder ser espe i ada depender da hain que re eber a regra: em
PREROUTING vo pode sele ionar apenas a interfa e de entrada, e em POSTROUTING (e OUTPUT)
apenas a interfa e de sada sele ionada. Se vo zer a opo errada, o iptables restornar um erro.

5.2 Pontos mais espe  os sobre o tratamento dos pa otes


Foi dito a ima que podem ser espe i ados endreos de origem e destino. Se o endereo de origem foi omitido,
a regra servir para qualquer origem. Se o endereo de destino for omitido, a regra servi para qualquer
destino.
Um proto olo espe  o tambm pode ser indi ado (`-p' or `proto ol'), omo o TCP ou o UDP. Ao sele ionar
um proto olo, apenas pa otes do mesmo se en aixaro na regra. A prin ipal razo para sele ionar um
proto olo, que isso permite algumas opes extras. Espe i amente as opes `sour e-port' e `destinationport' (abreviadas omo `sport' and `dport').
Essas opes permitem espe i ar que apenas pa otes om erta porta de origem e destino se en aixaro na
regra. Isso til para redire ionamento de requisies web (porta TCP 80 ou 8080).
Todas essas opes devem seguir a `-p' (a qual arrega uma bibliote a ompartilhada para aquele proto olo).
Podem ser usados os nmeros das portas ou um nome do arquivo /et /servi es.
Todas as outras formas de se sele ionar um pa ote esto des ritas em detalhes na pgina de manual do
iptables (man iptables).

6 E agora, omo tratar os pa otes?


Agora j sabemos omo es olher os pa otes a serem tratados. Para ompletar, pre isamos dizer ao kernel o
que fazer om estes pa otes.

6.1 Sour e NAT


Vo quer fazer Sour e NAT; mudar o endereo de origem das onexes para algo diferente. Isso feito na
hain POSTROUTING, logo antes de que o pa ote saia da mquina. Isso um detalhe muito importante,
pois signi a que qualquer tarefa da sua mquina Linux (routing, pa ket ltering) ver o pa ote inalterado.
Isso tambm signi a que a opo `-o'(interfa e de sada) pode ser utilizada.
Sour e NAT espe i ado om `-j SNAT', e a opo `to-sour e' demonstra um endereo IP, um range de
endereos IP, e uma porta op ional ou um range de portas (apenas para os proto olos TCP e UDP).
## Mudando o endereo de origem para 1.2.3.4.
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
## Mudando o endereo de origem para 1.2.3.4, 1.2.3.5 ou 1.2.3.6
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6

6. E agora, omo tratar os pa otes?

## Mudando o endereo de origem para 1.2.3.4, portas 1-1023


# iptables -t nat -A POSTROUTING -p t p -o eth0 -j SNAT --to 1.2.3.4:1-1023

6.1.1 Masquerading
H um aso espe ial de Sour e NAT hamado masquerading, que s deve ser utilizado para endereos IP
dinmi os, omo as onexes dialup (para endereos IP estti os, utilize SNAT des rito a ima).
No masquerading, no ne essrio expli itar o endereo de origem: ser utilizado o endereo de origem
da interfa e de sada do pa ote. Mas o mais importante que se o link air, o endereo de origem que
estava sendo utilizado des artado, dando lugar ao novo endereo de origem da interfa e quando o link for
restabele ido.
## Mas arando tudo que sai pela interfa e ppp0.
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

6.2 Destination NAT


DNAT feito na hain PREROUTING, assim que o pa ote hega; isso signi a que todas as outras tarefas
da sua mquina Linux (routing, pa ket ltering) vero o pa ote j indo para seu destino verdadeiro. A opo
`-i' (interfa e de entrada) pode ser utilizada.
Para alterar o destino de pa otes gerados lo almente, a hain OUTPUT deve ser utilizada, mas isso no
muito utilizado (alm disso, mudar o destino para outro lo al que no a prpria mquina Linux ainda no
fun iona  Abril 2001).
Destination NAT espe i ada utilizando `-j DNAT', e a opo `to-destination' espe i a um endereo IP,
um range de IPs, e uma porta op ional ou um range de portas (apenas para proto olos TCP e UDP).
## Mudando destino para 5.6.7.8
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8
## Mudando destino para 5.6.7.8, 5.6.7.9 ou 5.6.7.10.
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
## Mudando destino do trfego web para 5.6.7.8, porta 8080.
# iptables -t nat -A PREROUTING -p t p --dport 80 -i eth0 \
-j DNAT --to 5.6.7.8:8080
## Redire ionar pa otes lo ais om destino a 1.2.3.4 para loopba k.
# iptables -t nat -A OUTPUT -d 1.2.3.4 -j DNAT --to 127.0.0.1

6.2.1 Redire ionamento


H um aso espe ializado de Destination NAT hamado redire ionamento: uma simples onvenin ia, a
qual equivale a fazer DNAT para o endereo da prpria interfa e de entrada.
## Mandando trfego web da porta-80 para nosso squid proxy (transparente)
# iptables -t nat -A PREROUTING -i eth1 -p t p --dport 80 \
-j REDIRECT --to-port 3128

Lembre-se que o squid pre isa ser ongurado para saber que est sendo um proxy transparente!

6. E agora, omo tratar os pa otes?

6.3 Algumas uriosidades menos utilizadas...


H alguns renamentos do NAT os quais a maioria das pessoas nun a utilizar. Eles esto aqui do umentados
apenas para os uriosos.

6.3.1 Seleao de mltiplos endereos em um range


Se um range de endereos IP dado, o IP es olhido para uso o que est sendo menos utilizado pelas
onexes onhe idas. Isso porv um balan eamento de arga (load-balan ing) bem primitivo.

6.3.2 Criando mapeamentos NAT nulos


Vo pode utilizar `-j ACCEPT' para a eitar uma onexo sem que haja nenhuma esp ie de NAT.

6.3.3 Comportamento padro do NAT


O omportamento padro alterar a onexo o mnimo possvel, modi ando apenas o denido pelo usurio
nas suas regras. Isso signi a que as portas no sero remapeadas a no ser que as regras mandem que elas
sejam.

6.3.4 Mapeamento de portas de origem impl ito


Mesmo quando nenhum tipo de NAT requisitado para uma onexo, a alterao da porta de origem pode
o orrer de forma impl ita, quando uma onexo requisita uma porta que est em uso. Considere um aso
de masquerading, que gera esse tipo de situao:
1. Uma onexo web estabele ida pela mquina 192.1.1.1 vinda da porta 1024 para www.nets ape. om
porta 80.
2. Tal onexo mas arada pela mquina de masquerading a m de usar o endreo de IP de origem
1.2.3.4, que o endereo de origem da mquina que realiza o masquerading.
3. A mquina que faz o masquerading tenta realizar a onexo web om www.nets ape. om porta 80
vinda de 1.2.3.4 (endereo de origem da interfa e de sada) porta 1024.
4. O digo de NAT alterar a porta de origem da segunda onexo para a porta 1025, assim as duas
onexo no onitaro.
Quando esse mapeamento de origem impl ito o orre, as portas so divididas em trs lasses:
Portas menores que 512
Ports entre 512 e 1023
Portas a ima de 1024.

Uma porta NUNCA ser mapeada impli itamente para uma lasse diferente.

6.3.5 O que o orre quando NAT falha


Se no h formas de mapear uma onexo onforme requisitado pelo usurio, a mesma ser des artada
(DROP). Isso tambm se apli a a pa otes que no foram lassi ados omo parte de qualquer onexo,
devido a malformao, ou falta de memria da mquina, et .

7. Proto olos espe iais

6.3.6 Mapeamentos mltiplos, overlap e onitos


Vo pode ter regras NAT que mapeiam pa otes para o mesmo range; o digo NAT su ientemente inteligente para evitar onitos. No h nenhum problema em mapear os endereos de origem 192.168.1.1 e
192.168.1.2 para 1.2.3.4.
Alm disso, vo pode mapear para endereos IP reais e utilizados, desde que tais endereos passem pela
mquina responsvel pelo mapeamento. Ento, se vo tem uma rede vlida (1.2.3.0/24), mas possui uma
rede interna que utilize um IP privado (192.168.1.0/24), vo pode realizar SNAT do endereo 192.168.1.0/24
para a rede 1.2.3.0, sem medo de quaisquer onitos:
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \
-j SNAT --to 1.2.3.0/24

A mesma lgi a se apli a aos endereos utilizados pela prpria mquina que realiza NAT: essa a forma que
o masquerading fun iona ( ompartilhando o endereo da interfa e de sada entre os pa otes mas arados e os
gerados lo almente).
Vo tambm pode mapear os mesmos pa otes para alvos distintos, e estes serao ompartilhados. Por
exemplo, se vo no quer mapear NADA para o endereo 1.2.3.5, vo faria:
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \
-j SNAT --to 1.2.3.0-1.2.3.4 --to 1.2.3.6-1.2.3.254

6.3.7 Alterando destino de pa otes gerados lo almente


Se o destino de um pa ote gerado lo almente alterado (pela hain OUTPUT), e isso leva o pa ote a passar
por uma interfa e diferente, e ento o endereo de origem tambm alterado para o endereo da interfa e de
sada. Por exemplo, mudando o destino de um pa ote loopba k para sair por eth0 ir resultar na mudana
do endereo de origem de 127.0.0.1 para o endereo de eth0; ao ontrrio dos outros mapeamentos de origem
(que so feitos depois de tudo, na hain POSTROUNTING) esse realizado imediatamente. Naturalmente,
todos esses mapeamentos so revertidos no momento que os pa otes de resposta hegam.

7 Proto olos espe iais


Alguns proto olos no se do muito bem om NAT. Para ada um destes proto olos, duas extenses tiveram
de ser es ritas; uma para o a ompanhamento do proto olo, e a outra para o atual NAT.
Dentro da distribuio do netlter, h atualmente mdulos para ftp: ip_ onntra k_ftp.o e ip_nat_ftp.o.
Se vo arregar esses mdulos para dentro de seu kernel (ou ompil-los permanentemente), qualquer tipo
de NAT em onexes FTP deve fun ionar. Se no fun ionar, vo s pode utilizar ftp passivo, e talvez nem
isso fun ione de forma onvel se vo est fazendo mais que um simples Sour e NAT.

8 Algumas prevenes sobre NAT


Se vo est fazendo NAT em uma onexo, todos os pa otes passando nas duas direes (entrando e
saindo da rede) DEVEM passar pela mquina responsvel pelo NAT, ou nada fun ionar onavelmente.
Parti ularmente, o digo de a ompanhamento de onexes remonta fragmentos, o que signi a que alm do
a ompanhamento de onexes, toda a rede pode ter problemas, uma vez que os fragmentos sero detidos.

9. Sour e NAT e roteamento

10

9 Sour e NAT e roteamento


Se vo est fazendo SNAT, vo vai querer ter erteza de que toda mquina destino dos pa otes SNAT'ed
vai responder para a mquina que est fazendo NAT. Por exemplo, se vo est mapeando alguns pa otes
que esto saindo om o endereo de origem 1.2.3.4, o roteador externo pre isa saber que as respostas devem
ser enviadas para 1.2.3.4. Isso pode ser feito das seguintes formas:
1. Se vo est fazendo SNAT para o prprio endereo da mquina que realiza NAT (para a qual o
roteamento e todos os outros servios j fun ionam), nada pre isa ser feito.
2. Se vo est fazendo SNAT para um endereo inutilizado na sua rede lo al (por exemplo, vo est
mapeando para 1.2.3.99, um endereo livre na sua rede 1.2.3.0/24 network), sua mquina responsvel
pelo NAT ter de responder a requisioes ARP para aquele endereo (1.2.3.99) assim omo responde os
destinados a ela prpria. A maneira mais f il de implementar isso riando um apelido de IP (alias),
onforme esse exemplo:
# ip address add 1.2.3.99 dev eth0

3. Se vo est fazendo SNAT para um endereo ompletamente diferente, vo ter de ter erteza que as
mquinas atingidas pelos pa otes SNAT'ed rotearo tal endereo de volta para a mquina responsvel
por NAT. Isso j est implementado se a NAT box o gateway padro da LAN, aso ontrrio vo
ter de es lare er uma rota ( aso vo esteja utilizando algum proto olo de roteamento) ou adi ionar
rotas manualmente em ada mquina envolvida.

10 Destination NAT para a mesma rede


Se vo est fazendo portforwarding para a mesma rede, vo pre isa ter erteza que pa otes de requisio e
de resposta passaro pela mquina responsvel por NAT (podendo ento serem alterados). O digo NAT
vai agora (desde 2.4.0-test6), bloquear redire ionamento de sada ICMP que o orre quando o pa ote NAT'ed
sai pela mesma interfa e pela qual entrou, mas o servidor que re ebeu ainda tentar responder diretamente
para o liente (que no vai re onhe er a resposta).
O aso lssi o o orre quando as mquinas internas tentam a essar o web server `pbli o', que na verdade
sofre DNAT do endereo externo (1.2.3.4) para uma mquina interna (192.168.1.1), omo des rito abaixo:
# iptables -t nat -A PREROUTING -d 1.2.3.4 \
-p t p --dport 80 -j DNAT --to 192.168.1.1

Uma maneira rodar um servidor DNS interno que sabe os endereos IP reais (internos) do seu web site
pbli o, e repassa todas as outras requisies para um servidor DNS externo. Isso signi a que o log no seu
web server mostrar os endereos IP internos orretamente.
A outra forma dizer mquina responsvel por NAT que mapeie o endereo IP de origem para o seu
prprio nessas onexes. Nesse exemplo, faramos o seguinte (assumindo que o endereo interno da NAT
box seja 192.168.1.250):
# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \
-p t p --dport 80 -j SNAT --to 192.168.1.250

Devido ao fato de que a hain PREROUTING analizada antes, os pa otes j estaro destinados para o
web server interno: podemos dizer quais onexes tm origem interna pelo endereo IP de origem.

11. Agrade imentos

11

11 Agrade imentos
Primeiramente, gostaria de agrade er Wat hGuard, e ao David Bonn, aqueles que a reditaram na idia do
netlter e me apoiaram enquanto eu o desenvolvia.
E a todos aqueles que me levantaram enquanto eu aprendia sobre a feiura do NAT, espe ialmente queles
que leram meu dirio.
Rusty
E eu, (Guilherme Ude, tradutor para o Portugus do Brasil) gostaria de agrade er a todo o time da
LinuxPla e, ao pessoal do di ionrio Merriam-Webster (http://www.m-w. om) que muito me ajudou nesta
traduo e a todas as pessoas que sempre a reditaram em mim. Muito obrigado!
Tradutor para o Portugus do Brasil: Guilherme Ude Braz (guilhermelinuxpla e. om.br).

Você também pode gostar