,
|

NAT, Reglas de Filtrado e Iptables

¿Para qué sirve la tecnología NAT?

Permite a un único dispositivo, como un Router, actuar como un agente entre Internet (red pública) y una red local (red privada). Esto significa que solo hace falta una única dirección IP para representar a un grupo entero de ordenadores.

En terminología NAT, hay dos tipos de direcciones IP:

  • Privada: direcciones IP que no se enrutan, generalmente se usan las que están definidas en el RFC 1918, y al ser rangos privados pueden usarse como se quiera.
  • Pública: direcciones IP enrutables, asignadas por IANA (organismo encargado de asignar las direcciones IP) y que tienen un coste.

Esto explica el modo en que NAT ayuda a ampliar las direcciones disponibles, ya que puede haber hasta 16581375 dispositivos con direcciones IP distintas con acceso a internet con una sola dirección IP pública, en la práctica no sería posible que hubiese tantas direcciones IP, pero el NAT en teoría lo permitiría.

Hay varios tipos de NAT:


NAT estático: una dirección IP privada tiene asignada una IP pública fija, que siempre será la misma.


NAT dinámico: muchas direcciones IP privadas pueden tomar una dirección IP pública, cuando un host con IP privada quiere salir a internet, tomará una dirección IP pública si hay disponible, en caso de que no la haya habrá que esperar hasta que una asignación caduque. Las asignaciones tienen un temporizador tras el cual si no se está utilizando se elimina y la dirección IP pública asignada queda libre para otro host privado que quiera usarla.



NAT con sobrecarga: en este caso una o muchas direcciones IP privadas tienen asignada una sola dirección IP pública, cuando una dirección IP privada quiere salir a internet, en lugar de tener una IP pública solo para ese dispositivo, se le asigna un puerto público por cada petición de puerto privado que hay. Si un host tiene dos aplicaciones que quieren salir a internet, NAT le asigna dos puertos públicos, uno para cada puerto privado. Cuando caduca el temporizador el puerto público queda disponible para otra petición de puerto de una IP privada, es posible hacer que desde el exterior se pueda acceder al puerto privado pero esta opción ha de ser configurada explícitamente.

PAT: es una asignación estática de puertos públicos a puertos y IP privadas. Se diferencia entre los protocolos TCP y UDP.

NOTA:

Como se puede ver en el gráfico, el NAT estático es asignar a cada host de la red interna tuviese una dirección IP pública. El NAT dinámico es como si cada host interno tuviese una dirección IP pública aunque de forma temporal. En el NAT con sobrecarga todos los hosts tienen una dirección IP pública pero cada host tiene unos puertos abiertos según establece una conexión hacia el exterior aunque temporalmente. En el PAT o traducción de puertos, cada puerto externo está asignado permanentemente a un host y puerto interno para poder ser alcanzado desde el exterior permanentemente.

Los cuatro tipos de NAT pueden ser combinados en un mismo enrutador.

En algunos lugares he visto la siguiente subclasificación de los tipos de NAT:

  • SNAT: del inglés "Source NAT", es cuando se traduce la dirección o el puerto de origen.
  • DNAT: del inglés "Destination NAT", es cuando se traduce la dirección o el puerto de destino.

Según esta clasificación, los cuatro tipos de NAT descritos se clasificarían como:

  • SNAT: NAT dinámico, NAT con sobrecarga.
  • DNAT: NAT estático, PAT.

Vulnerabilidades

La principal vulnerabilidad es que si un ruteador “truena” en Internet no pasa nada, debido a que existe la retransmisión, con NAT se acaba la comunicación.

Los puertos estáticos para los servidores situados tras el NAT y los puertos para las aplicaciones y servicios que se ejecutan en el NAT lo hace vulnerable a los ataques. Los puertos dinámicos no son tan vulnerables porque es difícil que un atacante adivine cuando se abrirán. Si el NAT es un equipo en lugar de un dispositivo dedicado (por ejemplo, un dispositivo de puerta de enlace de Internet), el equipo está expuesto a los ataques.

Configuración de las Reglas de Filtrado

Las reglas de filtrado se basan en revisar la información que poseen los paquetes en su encabezado, lo que hace posible su desplazamiento en un proceso de IP. Esta información consiste:

  • Dirección IP de origen
  • Dirección IP de destino
  • Puerto de Origen
  • Puerto de destino
  • Protocolo Tipo de paquete

Filtrado por dirección

Esta es la forma más sencilla y más usada para realizar filtrado de paquetes. La restricción del flujo de paquetes se realiza basándose en la dirección origen y/o destino del paquete sin considerar qué protocolo está involucrado.

Filtrado por Servicio

Este es un tipo de filtrado más complejo y más completo. Este filtrado permite definir reglas basadas en servicios tales como telnet, SNMP, SMTP, etc. El software de filtrado utiliza la información de los puertos, protocolo y tipo que contiene cada paquete para realizar filtrado por servicio.

Generalmente existen tres acciones a tomar con un paquete de red:

  1. Aceptar. Indica que este paquete pasó el criterio de filtrado y será reenviado tal como lo hace un enrutador cualquiera.
  2. Denegar. Indica que este paquete no cumple con el criterio de aceptación y será descartado.
  3. Rechazar. Indica que este paquete no cumple con el criterio de acetación y será descartado, pero a diferencia de Denegar, se envía un mensaje ICMP a la máquina origen informado lo ocurrido. Generalmente es un paquete ICMPde destino inalcanzable o destino administrativamente inalcanzable. De esta forma el que envía el paquete es avisado y no tratará de retransmitir el paquete.

Herramientas IPtables

Iptables es el nombre de la herramienta de espacio de usuario mediante la cual el administrador puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. Sin embargo, el proyecto ofrece otros subsistemas independientes de iptables tales como el connection tracking system o sistema de seguimiento de conexiones, que permite encolar paquetes para que sean tratados desde espacio de usuario.

Netfilter es un framework disponible en el núcleo Linux que permite interceptar y manipular paquetes de red. Dicho framework permite realizar el manejo de paquetes en diferentes estados del procesamiento. Netfilter es también el nombre que recibe el proyecto que se encarga de ofrecer herramientas libres para cortafuegos basados en Linux.

El componente más popular construido sobre Netfilter es iptables, una herramientas de cortafuegos que permite no sólamente filtrar paquetes, sino también realizar traducción de direcciones de red (NAT) para IPv4 o mantener registros de log. El proyecto ofrecía compatibilidad hacia atrás con ipchains hasta hace relativamente poco, aunque hoy día dicho soporte ya ha sido retirado al considerarse una herramienta obsoleta. El proyecto Netfilter no sólo ofrece componentes disponibles como módulos del núcleo sino que también ofrece herramientas de espacio de usuario y librerias.

2 comentarios:

  • Anónimo   18 de julio de 2011, 7:32

    :) :D :$ :( :p ;) :k :@ :# :x :o

  • dayana cortes   18 de julio de 2011, 18:39

    Hola Pelenco tu información es muy concreta y acertada me parece interesante las redes de filtrado ya que analizan los paquetes de información tu blog me parece que es uno de los mejores y siempre estas al día con las tareas de la escuela y tus imagenes son muy buenas y ademas tus comentarios son interesantes mucho exito en esta materia (Y)