Sei sulla pagina 1di 10

Linux 2.

4 NAT COMO

Rusty Russell, lista de orreo netfilterlists.samba.org


Tradu ido por Ri ardo J. Cárdenes Medina a1402dis.ulpg .es
v1.0.1 Lunes 1 de Mayo 18:38:22 CST 2000, tradu ión del 25 de Junio de 2000

Este do umento des ribe ómo ha er el enmas arado (masqueradinq), proxy transparente, reenvío de puertos
(port forwarding), y otras formas de Network Address Translation (Tradu ión de Dire iones de Red) on los
nú leos 2.4 de Linux.

Índi e
1. Introdu ión 2

2. ¾Dónde está el sitio web o ial y la lista? 2


2.1. ¾Qué es Network Address Translation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Razones para usar NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3. Los dos tipos de NAT 3

4. Puesta al día rápida on respe to a los nú leos 2.0 y 2.2 3


4.1. ½Sólo quiero enmas arar! ½Ayuda! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

5. ¾Qué pasa on ipmasqadm? 4

6. Controlar qué osas pasar por NAT 5


6.1. Sele ión sen illa usando iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.2. Op iones más renadas de sele ión de paquetes a toquetear. . . . . . . . . . . . . . . . . . . 6

7. Cómo modi ar los paquetes 6


7.1. Sour e NAT (Cambio de Origen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.1.1. Enmas aramiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2. Destination NAT (Cambio de destino) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2.1. Redire ión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.3. Corresponden ias (mappings) en profundidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.3.1. Sele ión de múltiples dire iones de un rango dado . . . . . . . . . . . . . . . . . . . 8
7.3.2. Crear orresponden ias NAT nulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.3.3. Comportamiento NAT estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.3.4. Corresponden ia implí ita del puerto de origen . . . . . . . . . . . . . . . . . . . . . . 8
7.3.5. Qué su ede uando NAT falla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7.3.6. Múltiples orresponden ias (mappings), solapado y olisiones . . . . . . . . . . . . . . 9
1. Introdu ión 2

7.3.7. Alterar el destino de onexiones generadas de forma lo al . . . . . . . . . . . . . . . . 9

8. Proto olos espe iales 9

9. Defe tos del NAT 10

10.Agrade imientos 10

1. Introdu ión
Bienvenido, gentil le tor.
Está a punto de sumergirse en el fas inante (y a ve es horrendo) mundo del NAT (Network Address Trans-
lation), y este COMO va a ser su guía más o menos pre isa para el nú leo 2.4 de Linux y posteriores.
En Linux 2.4, se ha introdu ido una infrastu tura para trastear on los paquetes, llamada netlter. Hay
una apa por en ima que propor iona NAT, ompletamente rees rita on respe to a anteriores nú leos.

2. ¾Dónde está el sitio web o ial y la lista?


Hay tres sitios o iales:

Gra ias a Penguin Computing: http://netfilter.filewat her.org/ .


Gra ias a el equipo Samba y a SGI http://netfilter.samba.org/ .
Gra ias a Harald Welte http://netfilter.gnumonks.org/ .

La lista o ial de orreo de netlter está en el servidor de listas de Samba:


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

2.1. ¾Qué es Network Address Translation?


Normalmente, los paquetes viajan en una red desde su origen (por ejemplo su ordenador) a su destino ( omo
por ejemplo www.gnumonks.org) a través de varios enla es diferentes: unos 19 desde donde yo estoy en
Australia (esto lo di e Rusty, laro). Ninguno de estos enla es altera realmente el paquete: simplemente lo
envían un paso adelante.
Si uno de estos enla es hi iera NAT, podría alterar el origen o destino del paquete según pasa a través suyo.
Como puede imaginar, ésta no es la fun ión para la que se diseñó el sistema, y por tanto NAT es siempre un
tanto enrevesado. Normalmente, el enla e que esté ha iendo NAT re ordará ómo jugueteó on el paquete,
para ha er la a ión inversa on el paquete de respuesta, de manera que todo fun iona omo se esperaba.

2.2. Razones para usar NAT


En un mundo perfe to, no debería. Mientras tanto, las razones prin ipales son:

Conexiones on módem a Internet


La mayoría de los PSI (Proveedor de Servi ios de Internet) le dan una sola dire ión IP uando se
one ta on ellos. Puede enviar paquetes on ualquier dire ión que le plaz a, pero sólo obtendrá
3. Los dos tipos de NAT 3

respuestas a los paquetes on esa IP de origen. Si desea utilizar varias máquinas diferentes ( omo una
red asera) para one tar a Internet a través de un enla e, ne esita NAT.
Este es, de lejos, el uso más omún de NAT hoy en día, ono ido normalmente omo enmas aramiendo
(masquerading) en el mundo de Linux. Yo lo llamo SNAT, porque se ambia la dire ión de origen
(sour e) del primer paquete.
Varios servidores
Puede que quiera ambiar el destino de los paquetes que entran en su red. Con fre uen ia esto se
debe ( omo antes), a que sólo tiene una dire ión IP, pero desea que la gente sea apaz de llegar a las
máquinas detrás de la que tiene la IP real. Si rees ribe el destino de los paquetes entrantes, podrá
onseguirlo.
Una variante omún de esto es el balan eo de arga, en la ual se toma un ierto número de máquinas,
repartiendo los paquetes entre ellas. Este tipo de NAT se llamó reenvío de puerto (port-forwarding) en
anteriores versiones de Linux.
Proxy transparente
Hay ve es que deseará simular que ada paquete que pase por su máquina Linux esté destinado a
un programa en la propia máquina. Esto se utiliza para ha er proxyes transparentes: un proxy es un
programa que se pone entre su red y el mundo real, ltrando las omuni a iones entre ambos. La parte
transparente se debe a que su red nun a tendrá por qué enterarse de que está omuni ándose on un
proxy, a menos, laro, que el proxy no fun iones.
Se puede ongurar Squid para que trabaje de esta manera, y a esto se le llamó redire ión o proxy
transparente en anteriores versiones de Linux.

3. Los dos tipos de NAT


Yo divido NAT en dos diferentes tipos: Sour e NAT (SNAT, por origen), y Destination NAT (DNAT,
por destino).
Sour e NAT es uando alteramos el origen del primer paquete: esto es, estamos ambiando el lugar de donde
viene la onexión. Sour e NAT siempre se ha e después del en aminamiento, justo antes de que el paquete
salga por el able. El enmas aramiento es una forma espe ializada de SNAT.
Destination NAT es uando alteramos la dire ión de destino del primer paquete: esto es, ambiamos la
dire ión a donde se dirige la onexión. DNAT siempre se ha e antes del en aminamiento, uando el paquete
entra por el able. El port forwarding (reenvío de puerto), el balan eo de arga y el proxy transparente son
formas de DNAT.

4. Puesta al día rápida on respe to a los nú leos 2.0 y 2.2


Lo siento por aquellos que todavía estén aturdidos por la transi ión desde 2.0 (ipfwadm) a 2.2 (ip hains).
Hay buenas y malas noti ias.
Primero, puede seguir usando ip hains o ipfwadm omo antes. Para ha erlo, ne esita argar los módulos del
nú leo ip hains.o o ipfwadm.o que en ontrará en la última distribu ión de netlter. Son mutuamente
ex lusivos (está advertido), y no deberían ombinarse on ningún otro módulo de netlter.
Una vez haya instalado uno de estos módulos puede utilizar ip hains e ipfwadm on normalidad, ex epto
por las siguientes diferen ias:
5. ¾Qué pasa on ipmasqadm? 4

Estable er los tiempos límite (timeout) on ip hains -M -S o ipfwadm -M -s no ha e nada. Como los
límites de tiempo on la nueva infrastru tura NAT son más grandes, no debería haber problema.
Los ampos init_seq, delta y previous_delta en la lista ampliada de enmas aramiento (verbose mas-
querade listing) siempre son 0.
Listar los ontadores y ponerlos a ero al mismo tiempo -Z -L ya no fun iona: los ontadores no se
pondrán a ero.

Los ha kers también se darán uenta de que:

Ahora puede aso iar un programa (bind) a los puertos 61000-65095 in luso si está ha iendo enmas-
aramiento. El ódigo de enmas arado asumía que no había nada en este rango, de manera que los
programas no lo podían usar.
El par he (no do umentado) de getso kname, que podían utilizar los programas de proxy transpar-
ente para averiguar el destino real de la onexión no fun iona.
El par he (no do umentado) bind-to-foreign-address (aso iado-a-una-dire ión-externa) tampo o está
implementado; se usaba para ompletar la ilusión del proxy transparente.

4.1. ½Sólo quiero enmas arar! ½Ayuda!


Esto es lo que la mayoría de la gente quiere. Si tengo una onexión PPP on IP dinámi a (si no sabe lo que
es, enton es tiene una), simplemente querré de irle a mi máquina que todos los paquetes que vengan de la
red interna deberían aparentar venir de la máquina que tiene el enla e PPP.

# Cargue el módulo NAT (esto arga también los otros).


modprobe iptable_nat

# Agrega (-A) una regla a la tabla NAT (-t nat), después del
# en aminamiento (POSTROUTING) para todos los paquetes que salgan por
# ppp0 (-o ppp0) enmas arando la onexión (-j MASQUERADE).
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Ponga en mar ha el reenvío de IP (IP forwarding)


e ho 1 > /pro /sys/net/ipv4/ip_forward

Fíjese que no está ha iendo ltrado de paquetes: para eso, lea el COMO de Filtrado de Paquetes: Mez lando
NAT on Filtrado de Paquetes.

5. ¾Qué pasa on ipmasqadm?


Este programa tiene un ni ho de usuarios mu ho más denido, de manera que no me he preo upado mu ho
de darle ompatibilidad retroa tiva. Puede usar iptables -t nat para ha er reenvío de puertos. De manera
que, por ejemplo, en Linux 2.2 podría haber he ho:

#Linux 2.2
#Reenvía los paquetes TCP dirigidos al puerto 8080 de 1.2.3.4 al 80 de
#192.168.1.1
ipmasqadm portfw -a -P t p -L 1.2.3.4 8080 -R 192.168.1.1 80
6. Controlar qué osas pasar por NAT 5

Ahora debería ha er:

# Linux 2.4
# Agrega una regla previa al en aminamiento (-A PREROUTING) a la tabla NAT
# (-t nat) de manera que los paquetes TCP (-p t p) que vayan a 1.2.3.4
# (-d 1.2.3.4), puerto 8080 (--dport 8080) tengan una orresponden ia de
# destino (-j DNAT) on 192.168.1.1, puerto 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

Si desea que esta regla altere también las onexiones lo ales (aquellas que se originen en la propia máquina
que ha e NAT), puede insertar la misma regla en la adena OUTPUT (que es para los paquetes lo ales de
salida):

# 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

6. Controlar qué osas pasar por NAT


Ne esita rear reglas NAT que le digan al nú leo qué onexiones ambiar, y ómo ha erlo. Para ello, usaremos
la muy versátil herramienta iptables, y le diremos que altere la tabla de NAT usando la op ión -t nat.
La tabla de reglas NAT ontiene tres listas llamadas  adenas: ada regla se examina por orden hasta
que una oin ide. Las tres adenas se llaman PREROUTING (para Destination NAT , según los paquetes
entran), POSTROUTING (para SOURCE NAT, según los paquetes salen), y OUTPUT (para Destination
NAT on los paquetes generados en la propia máquina).
El siguiente diagrama lo ilustraría bastante bien si yo tuviese algo de talento artísti o:

_____ _____
/ \ / \
PREROUTING -->[De isión de ℄----------------->POSTROUTING----->
\D-NAT/ [En aminamiento℄ \S-NAT/
| ^
| __|__
| / \
| | OUTPUT|
| \D-NAT/
| ^
| |
----------> Pro eso Lo al ----------

En ada uno de los puntos anteriores, uando un paquete pasa miramos la onexión a la que está aso iado.
Si es una onexión nueva, omprobamos la adena orrespondiente en la tabla de NAT para ver qué ha er
on ella. La respuesta que obtenemos se apli ará a ualquier paquete posterior de esa onexión.

6.1. Sele ión sen illa usando iptables


iptables toma ierto número de de isiones estándar que se listarán ahora. Todas las op iones on doble
guión pueden ser abreviadas, siempre que iptables pueda distinguirlas de otras op iones posibles. Si el
7. Cómo modi ar los paquetes 6

nú leo tiene la implementa ión de iptables omo módulo, ne esitará argar el módulo ip_tables.o antes:
insmod ip_tables.
La op ión más importante aquí es la op ión de sele ión de tabla, -t. Para todas las opera iones de NAT,
querrá usar -t nat para la tabla NAT. La segunda más importante es -A para añadir una nueva regla
al nal de una adena (-A POSTROUTING), o -I para insertarla al prin ipio (-I PREROUTING).
Puede espe i ar el origen (-s o sour e) y el destino (-d o destination) de los paquetes sobre
los que quiere ha er NAT. Estas op iones pueden ir seguidas por una IP sen illa (192.168.1.1), un nombre
(www.gnumonks.org), o una dire ión de red (192.168.1.0/24 o 192.168.1.0/255.255.255.0).
Puede espe i ar qué interfaz de entrada (-i o in-interfa e) o de salida (-o o out-interfa e) mirar,
pero lo que puede espe i ar depende de en qué adena esté poniendo la regla: en PREROUTING sólo puede
elegir la interfaz de entrada, y en POSTROUTING (y OUTPUT) sólo la de salida. Si usa la equivo ada,
iptables le avisará on un mensaje de error.

6.2. Op iones más renadas de sele ión de paquetes a toquetear.


Dije antes que se puede espe i ar una dire ión de origen y destino. Si omite la op ión de origen, enton es
será ualquier dire ión de origen. Si omite la de destino, será ualquier dire ión de destino.
También puede indi ar un proto olo espe í o (-p o proto ol), omo TCP o UDP; sólo los paquetes
de este proto olo oin idirán on la regla. La razón prin ipal para ha er esto es que espe i ar uno de los
proto olos t p o udp permite más op iones: espe í amente las op iones sour e-port y destination-
port (abreviadas sport y dport).
Estas op iones le permiten espe i ar que sólo los paquetes on un determinado origen y destino oin idirán
on la regla. Esto es útil para redire ionar peti iones web (puertos TCP 80 u 8080) y dejar los demás
paquetes tranquilos.
Estas op iones deben seguir a la -p (que tiene el efe to se undario de argar la bibliote a ompartida de
extensión para ese proto olo). Puede usar números de puerto, o un nombre de  hero /et /servi es.
Todos los diferentes parámetros por los que se puede sele ionar un paquete vienen enumerados on toda
lase de dolorosos detalles en la página de manual (man iptables).

7. Cómo modi ar los paquetes


De manera que ahora sabemos ómo elegir los paquetes que queremos modi ar. Para ompletar nuestra
regla, ne esitamos de irle al nú leo exa tamente qué queremos que haga on los paquetes.

7.1. Sour e NAT (Cambio de Origen)


Quiere ha er Sour e NAT ; ambiar la dire ión de origen de las onexiones a algo diferente. Esto se ha e en
la adena POSTROUTING, justo antes de que sea enviado. Este es un detalle importante, ya que signi a
que ualquier otro servi io de la máquina Linux (en aminamiento, ltrado de paquetes) verá el paquete sin
ambiar. También signi a que se puede utilizar la op ión -o (interfaz de salida).
El Sour e NAT se espe i a indi ando -j SNAT, y la op ión to-sour e espe i a una dire ión IP, un
rango de dire iones IP, y un puerto o rango de puertos op ionales (sólo on los proto olos UDP y TCP).

## Cambiar la dire ión de origen por 1.2.3.4


# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
7. Cómo modi ar los paquetes 7

## Cambiar la dire ión de origen a 1.2.3.4, 1.2.3.5 o 1.2.3.6


# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6

## Cambiar la dire ión de origen por 1.2.3.4, puertos 1-1023


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

7.1.1. Enmas aramiento


Hay un aso espe ializado de Sour e NAT denominado enmas aramiento (masquerading): sólo debería ser
usado para dire iones IP asignadas de forma dinámi a, tales omo las de onexiones por llamada estándar
(para dire iones IP estáti as, utilize el SNAT des rito anteriormente).
No es ne esario es ribir la dire ión de origen de forma explí ita on el enmas aramiento: utilizará la dire ión
de origen de la interfaz por la que el paquete está saliendo. Pero más importante aún, si el enla e ae, las
onexiones (que se iban a perder de todas maneras) se olvidan, lo que signi a que habrá menos follón uando
la onexión vuelva a la normalidad on una IP diferente.

## Enmas arar todo lo que salga por ppp0.


# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

7.2. Destination NAT (Cambio de destino)


Esto se ha e en la adena PREROUTING, según entra el paquete; esto signi a que ualquier otro servi io
de la máquina on Linux (en aminamiento, ltrado de paquetes) verá el paquete yendo a su destino real
(el denitivo). Esto signi a que se puede utilizar la op ión -i (interfaz de entrada).
Para alterar el destino de un paquete generado de forma lo al (en la máquina que ha e el NAT), se debe
usar la adena OUTPUT, pero esto es más inusual.
Destination NAT se espe i a utilizando -j DNAT, y la op ión to-destination espe i a una dire ión
IP, un rango de dire iones IP, y un puerto o rango de puertos op ionales (sólo para los proto olos UDP y
TCP).

## Cambia la dire ión de destino por 5.6.7.8


# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8

## Cambia la dire ión de destino por 5.6.7.8, 5.6.7.9 o 5.6.7.10.


# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8-5.6.7.10

## Cambia la dire ión de destino del tráfi o web por 5.6.7.8,


## puerto 8080.
# iptables -t nat -A PREROUTING -p t p --dport 80 -i eth1 \
-j DNAT --to 5.6.7.8:8080

## Redirige los paquetes lo ales que van a 1.2.3.4 ha ia el dispositivo


## loopba k.
# iptables -t nat -A OUTPUT -d 1.2.3.4 -j DNAT --to 127.0.0.1

7.2.1. Redire ión


Hay un aso espe ializado de Destination NAT llamado redire ión: es una simple onvenien ia que es
exa tamente lo mismo que ha er DNAT, pero on la dire ión de la interfaz de entrada.
7. Cómo modi ar los paquetes 8

## Envía el tráfi o que entra dirigido al puerto 80 (web) a nuestro


## proxy squid (transparente)
# iptables -t nat -A PREROUTING -i eth1 -p t p --dport 80 \
-j REDIRECT --to-port 3128

7.3. Corresponden ias (mappings) en profundidad


Hay algunas sutilezas de NAT on las que la mayoría de la gente no tendrá que enfrentarse nun a. Las he
do umentado aquí para los más uriosos.

7.3.1. Sele ión de múltiples dire iones de un rango dado


Si se da un rango de dire iones IP, la dire ión a usar se elegirá basándose en la menos utilizada para las
onexiones de las que sabe nuestra máquina. Esto nos permite ha er un balan eo de arga primitivo.

7.3.2. Crear orresponden ias NAT nulas


Puede utilizar el objetivo -j ACCEPT para dejar que una onexión pase sin que se produz a ninguna
onversión NAT.

7.3.3. Comportamiento NAT estándar


El omportamiento estándar es alterar la onexión lo menos posible, dentro de los límites de la regla dada
por el usuario. Esto signi a que no ambiaremos el puerto a menos que nos veamos obligados.

7.3.4. Corresponden ia implí ita del puerto de origen


In luso uando no se pide NAT para una onexión, puede ser que haya un ambio de puerto de forma
implí ita, si otra onexión lo está usando ya. Consideremos el aso del enmas aramiento, que es lo más
omún:

1. Se estable e una onexión web entre la máquina 192.1.1.1, puerto 1024 y www.nets ape. om, puerto
80.
2. Esta onexión es enmas arada por otra máquina para que utili e su dire ión omo origen (1.2.3.4).
3. La máquina enmas aradora intenta ha er la onexión web on www.nets ape. om puerto 80, desde
1.2.3.4 (la dire ión de su interfaz interna), puerto 1024.
4. El ódigo de NAT alterará la dire ión de origen de una segunda onexión al puerto 1025, de manera
que no pueda haber solapado.

Cuando se produ e este ambio implí ito de origen, los puertos se dividen en tres lases:

Puertos por debajo del 512.


Puertos entre el 512 y el 1023 (in lusive).
Puertos 1024 y superiores.

Nun a se hará orresponder un puerto on otro de lase diferente.


8. Proto olos espe iales 9

7.3.5. Qué su ede uando NAT falla


Si no hay manera de ha er orresponder una onexión de forma úni a tal omo ha pedido el usuario, será
des artada. Esto se apli a también a los paquetes que no pueden ser lasi ados omo parte de una onexión,
porque están malformados, o nos hemos quedado sin memoria, et .

7.3.6. Múltiples orresponden ias (mappings), solapado y olisiones


Podemos tener reglas NAT que asignen paquetes dentro del mismo rango. El ódigo NAT es su ientemente
inteligente para evitar olisiones. Por tanto, tener dos reglas que hagan orresponder las dire iones de origen
192.168.1.1 y 192.168.1.2 respe tivamente on 1.2.3.4 es orre to.
Aún más, se pueden ha er orresponden ias sobre dire iones reales y en uso, siempre y uándo estas dire -
iones pasen también a través de nuestra máquina. De manera que si tenemos una red asignada (1.2.3.0/24),
pero tenemos una red interna que está usando esas dire iones y otra on Dire iones Privadas de Internet
192.168.1.0./24, podemos ha er NAT on las dire iones de origen 192.168.1.0/24 dentro del rango de la red
1.2.3.0, sin temor a olisiones:

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \


-j SNAT --to 1.2.3.0/24

La misma lógi a se apli a a las dire iones que usa la propia aja que ha e NAT: ésta es la manera en que
fun iona el enmas aramiento ( ompartiendo las dire iones de la interfaz entre los paquetes enmas arados y
los paquetes reales que vienen de la propia máquina).
Aún más, podemos dire ionar los mismos paquetes a varios objetivos diferentes, y serán ompartidos. Por
ejemplo, si no queremos dire ionar nada usando 1.2.3.5, podríamos ha er:

# 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

7.3.7. Alterar el destino de onexiones generadas de forma lo al


Si se ambia el destino de un paquete generado de forma lo al (esto es, usando la adena OUTPUT), y eso
ha e que el paquete salte a una interfaz diferente, enton es se ambia también la dire ión de origen a la
de esa interfaz. Por ejemplo, ambiar el destino de un paquete de loopba k para que salga por eth0 tendrá
omo resultado que también se ambie la dire ión de origen, 127.0.0.1, por la de eth0. Al ontrario que on
el resto de ambios, esto se ha e de forma inmediata. Naturalmente, ambos ambios son invertidos uando
llega la respuesta del paquete.

8. Proto olos espe iales


A algunos proto olos no les gusta pasar por NAT. Se deben es ribir dos extensiones para ada uno de ellos;
uno para el seguimiento de las onexiones de ese proto olo, y otro para el propio NAT.
Junto on la distribu ión de netlter, hay módulos para el ftp: ip_ onntra k_ftp.o e ip_nat_ftp.o. Si inserta
estos módulos en el nú leo (o los ompila de forma permanente), enton es podrá ha er NAT sobre onexiones
FTP. Si no lo ha e, enton es sólo podrá utilizar FTP pasivo, e in luso eso no será del todo able si ha e algo
más que un sen illo Sour e Nat .
9. Defe tos del NAT 10

9. Defe tos del NAT


Si ha e NAT sobre una onexión, todos los paquetes que pasen en ambas dire iones (dentro y fuera de la
red) deberán ha erlo a través de la máquina que ha e NAT, ya que si no, no fun ionará de forma able. En
parti ular, el ódigo de seguimiento de onexiones ensambla los fragmentos, lo que signi a que no sólo la
onexión no será able, sino que los paquetes pueden terminar por no llegar, ya que los fragmentos quedarán
retenidos.

10. Agrade imientos


Gra ias antes que nada a Wat hGuard, y a David Bonn, quien reyó en la idea de netlter lo su iente para
darme soporte mientras trabajaba en ello.
Y al resto del mundo que soportó mis abreos mientras aprendía sobre los horrores de NAT, espe ialmente
a aquellos que leyeron mi diario.
Rusty.

Potrebbero piacerti anche