NAT y calandrado de paquetes con iptables

En la primera parte de este artículo vamos a aprender a realizar Network Address Translation (NAT) y Port Address Translation (PAT), también conocido como dirección de red y Port Translation (NAPT), con iptables. Después de eso, vamos a aprender lo que calandrado paquete es y cómo mangle paquetes.

Breve introducción a NAT y PAT (NAPT)

  

De acuerdo con la forma en TCP / IP de las obras, a fin de que los ejércitos de comunicarse en Internet, cada uno debe tener una dirección IP única.
Sin embargo, debido a la escasez de direcciones IP públicas disponibles, es necesario utilizar una dirección IP para ordenadores que utiliza NAT.
Network Address Translation es una manera de traducir una dirección IP en otra. Esto implica un router NAT (Linux en nuestro caso) que vuelve a escribir la IP de origen o de destino de un dispositivo detrás de un router NAT.
Hay muchos cuadros de pequeño llamado SOHO routers o enrutadores NAT que pueden ser utilizados para realizar NAT para una red LAN privada pequeña. Son baratos y por lo general sólo puede conectarse a entrar y todo funciona. Si ya ha utilizado uno, verás que hay muchas cosas que puedes hacer con Linux.


SNAT y Masquerade

SNAT es un alias para la fuente de traducción de direcciones de red. Se llama así porque se traduce sólo la dirección IP de origen. El cuadro de NAT sobrescribir la dirección de origen en los encabezados IP de todos los paquetes enviados por un cuadro de detrás de NAT a una o varias direcciones IP.
Uno o muchos huéspedes pueden traducirse en una o varias direcciones IP públicas sólo cuando el acceso a Internet, pero cuando una solicitud de la Internet se realiza a la dirección IP pública (es), la solicitud no llegarán a cualquiera de los anfitriones (si el dirección traducido es el router, llegará el router, de lo contrario los paquetes serán descartados). Esta es una buena protección para las redes locales y ahorra una gran cantidad de direcciones IP públicas.
Si una o muchas máquinas detrás de NAT se traducen en una única dirección IP pública, se llama el proceso de SNAT estática. Si se traducen en varias direcciones IP públicas (por lo general un rango de direcciones IP), se llama el proceso de SNAT dinámica. En el caso de SNAT dinámica, el router NAT elige una dirección IP de un rango, de modo que una computadora para acceder a Internet es muy probable que se traduzcan en diferentes direcciones IP para cada conexión que inicia. Para SNAT dinámica, iptables elige el menos utilizado dirección IP del rango especificado. Si muchas direcciones IP del rango no se utilizan en todos, iptables elige aleatoriamente uno de ellos.
Masquerade o MASQ funciona exactamente igual que hace SNAT estática, excepto que no se puede especificar la dirección IP pública que se utilizará. Se usará automáticamente la dirección IP de la interfaz de salida de un router NAT.

SNAT fue introducido con iptables, y no existía en netfilter para los núcleos inferiores a 2,4. Sin embargo, Masquerade y se mantuvo en iptables, simplemente porque con interfaces como adaptadores PPP que recibir una dirección IP asignada dinámicamente, es más sencillo que hacer un MASQ en lugar de buscar la dirección IP asignada dinámicamente y hacer SNAT.

 

Si el equipo está SNATed o enmascarado, el router Linux cambiar la dirección IP de origen en la cabecera del paquete de 192.168.1.3 a 1.1.1.1 y pasar el paquete a la 2.2.2.2 de acuerdo con el proceso de enrutamiento. Información acerca de esta conexión se almacena en / proc / net / ip_conntrack.
2.2.2.2 Cuando las respuestas, el paquete IP que llega al router Linux tendrá 2.2.2.2 dirección IP de origen y de destino la dirección IP 1.1.1.1. Búsquedas de Linux para obtener información acerca de este paquete en / proc / net / ip_conntrack, y encuentra una coincidencia de la información almacenada en el paso anterior. En este punto, Linux va a cambiar la dirección IP de destino en la cabecera del paquete a 192.168.1.3 y pasará el paquete IP para el equipo NAT de acuerdo con el proceso de enrutamiento.

DNAT o de red de destino Dirección mapas Traducciones una dirección IP pública a una dirección IP privada. DNAT es el reverso de SNAT, de modo que, si SNAT para traducir una dirección IP privada a una dirección IP pública y DNAT para traducir la misma dirección IP pública en la misma dirección IP privada, el resultado será NAT completo.
DNAT se utiliza generalmente cuando se tiene servidores que están detrás de NAT, por lo que la misma dirección IP pública se asigna a diferentes direcciones IP privadas en función de los puertos o protocolos. Este proceso se llama también el reenvío de puertos.
Normalmente, 2.2.2.2 no puede iniciar una comunicación a 192.168.1.3 porque esta es una dirección IP privada y no se enrutan a través de Internet.

Cuando las respuestas de 192.168.1.3, el paquete se encuentra en la tabla conntrack del router Linux por lo que "sabe" que el paquete pertenece a la conexión iniciada por 2.2.2.2 a 1.1.1.1. El router Linux cambiar la dirección IP de origen en la cabecera del paquete IP desde 192.168.1.3 a 1.1.1.1.

Si se configura DNAT, SNAT, pero no lo es, 2.2.2.2 podrá establecer conexiones con 192.168.1.3 usando 1.1.1.1 como dirección IP de destino, pero 192.168.1.3 no será capaz de iniciar conexiones a 2.2.2.2.

 

En otras palabras, NAT completo es SNAT y DNAT presentado anteriormente.
Esta es la función que los enrutadores SOHO llamada "zona de distensión", como se explicó anteriormente. La razón de que llamar a esta función "DMZ" es que los paquetes IP que no pertenecen a una conexión por cualquier host de la red privada 192.168.1.0/24 será enviada a 192.168.1.3, por lo que este host no tiene la protección prevista por el hecho de que tiene una dirección IP privada.

En el caso que acabamos de presentar, 1.1.1.1 puede ser la dirección del router NAT IP o simplemente pueden dirigirse a ella. Si la dirección IP del router público (como en los anteriores esquemas), el router NAT no se puede acceder desde Internet (por ejemplo, no se puede SSH en él), ya que remitirá todos los paquetes a 192.168.1.3.

PAT o NAPT

PAT significa Port Address Translation y también se le llama NAPT, siglas de Network Address y Port Translation. La idea detrás de PAT es traducir no sólo la dirección IP, sino también el número de puerto para hosts y puertos específicos.
Servidor web de la empresa está detrás de NAT y tiene la dirección IP 192.168.1.100. Tener una única dirección IP pública, http://www. . com está configurado para responder a 1.1.1.1. Para el servidor web para acceder desde Internet, tenemos que volver a escribir la dirección 1.1.1.1 a 192.168.1.100 cada vez que llega una solicitud en nuestro router NAT con el puerto de destino 80.
Más que esto, tenemos un servidor de intranet de la compañía con la dirección IP 192.168.1.200, ejecutando un servidor web en el puerto 80. Cuando se está en la oficina, los empleados tienen que escribir http://192.168.1.200 en su navegador web y se puede iniciar sesión en el servidor web de la intranet.
Si queremos permitir a los usuarios iniciar sesión en el servidor de intranet cuando están fuera de la oficina, PAT es la respuesta. Con PAT, podemos elegir un puerto que no se abrió en el router NAT (por ejemplo, 2143), y cuando llega una solicitud de la Internet con la dirección IP de destino 217.156.123.3 y el puerto de destino 2143, el router NAT reescribe la dirección IP de destino a 192.168.1.200 y el puerto de destino 2143-80.
De esta manera, a través de Internet cuando un usuario escribe:

  1. http://www. . com / la solicitud se remite a 192.168.1.100 en el puerto 80 y la página web de la empresa se muestra
  2. http://www. . com: 2143 / se traslade la solicitud a la 192.168.1.200 en el puerto 80 y la página web de la intranet de la empresa se muestra

No tenemos que reescribir el puerto cuando un paquete tiene la dirección IP 192.168.1.200; sólo tenemos que configurar SNAT o Masquerade para que el servidor accede a la intranet de la Internet a través 1.1.1.1.

un artículo presentado por Philip A Clara


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "NAT y calandrado de paquetes con iptables" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.


Online: 250 users browsing the articles directory