NAT y calandrado de paquetes con iptablesEn 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.
|
| 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 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.
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:
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.
|
|