Ingresar  \/ 
x
 Use Facebook account  Use Google account  Use Microsoft account  Use LinkedIn account
o
x
  • Fututel
  • Blog
  • Cómo Funciona el Firewall o Cortafuegos IPTables

Cómo Funciona el Firewall o Cortafuegos IPTables

como funciona el firewall o cortafuegos iptables

Introducción

La configuración de un buen firewall es un paso esencial a realizar para asegurar cualquier sistema operativo moderno. La mayoría de las distribuciones de Linux vienen con algunas diversas herramientas de firewall que podemos utilizar para configurar nuestros firewalls o cortafuegos. En esta guía, vamos a estar cubriendo el firewall llamado iptables.

Iptables es un firewall estándar incluido en la mayoría de distribuciones de Linux por defecto (una variante moderna llamados nftables comenzarán a reemplazarlo). En realidad, es un front-end para la configuración de los puntos de filtrado (hooks) de netfilter a nivel de kernel que puede manipular la estructura de red (network stack) de Linux. Funciona comparando cada paquete que atraviesa la interfaz de red en relación con un conjunto de reglas, para decidir qué hacer.

En esta guía vamos a discutir cómo iptables funciona. En un tutorial, espero mostrarles cómo configurar un conjunto básico de reglas para proteger su servidor de Ubuntu 14.04.

 

Cómo Funciona Iptables

Antes de empezar la discusión de los comandos necesarios para controlar iptables y construir una política de firewall, vamos a repasar algunos de los términos y discutir cómo funciona iptables.

El firewall iptables funciona comparando el tráfico de red en relación con un conjunto de reglas. Las reglas definen las características que un paquete debe tener para que coincida con la regla y la acción que se debe tomar para los paquetes que efectivamente coincidan.

Hay muchas opciones en una regla específica contra las cuales comparar un paquete. Puede compararse con el tipo de protocolo de paquetes, la dirección o puerto de origen o destino, la interfaz que se utiliza, su relación con los paquetes anteriores, etc.

Cuando el patrón definido en la regla coincide con las características del paquete, la acción que tiene lugar se llama un target (objetivo). Un target puede ser una decisión final (policy) de qué hacer con el paquete tales como aceptarlo (accept) o cancelarlo (drop). También el target puede ser mover el paquete a una cadena diferente para el procesamiento, o simplemente loguear el evento. Hay muchas opciones.

Estas reglas se organizan en grupos llamados chains (cadenas). Una cadena es un conjunto de reglas contras las cuales un paquete se compara secuencialmente. Cuando el paquete coincide con una de las reglas, se ejecuta la acción asociada y no se sigue comparando con las reglas restantes de la cadena.

Un usuario puede crear chains (cadenas) según sea necesario. Hay tres chains/cadenas definidas por defecto. Ellas son:

  • INPUT: Esta cadena se encarga de todos los paquetes que se dirigen a su servidor.
  • OUTPUT: Esta cadena contiene reglas para el tráfico creado por su servidor.
  • FORWARD: Esta cadena se utiliza para tratar el tráfico destinado a otros servidores que no se crean en el/su servidor. Esta cadena es básicamente una manera de configurar el servidor para enrutar las solicitudes a otras máquinas.

Cada cadena puede contener cero o más reglas, y tiene una policy (política) predeterminada. La policy/política determina lo que sucede cuando un paquete pasa a través de todas las reglas de la cadena y no coincide con ninguna regla. Usted puede ya sea descartar o aceptar el paquete si no coincide con ninguna regla.

A través de un módulo que se puede cargar a través de reglas, iptables también puede realizar un seguimiento de las conexiones. Esto significa que usted puede crear reglas que definen lo que ocurre con un paquete basado en su relación con los paquetes anteriores. Llamamos a esta capacidad "state tracking" (seguimiento de estado), "connection tracking" (seguimiento de conexiones), o configuración del "state machine" (estado de máquina).

En esta guía vamos principalmente a estar cubriendo la configuración de la cadena INPUT, ya que contiene el conjunto de reglas que nos ayudarán a negar el tráfico no deseado dirigido a nuestro servidor.

IPv4 Versus IPv6

El firewall/cortafuegos netfilter que se incluye en el kernel de Linux mantiene el tráfico IPv4 e IPv6 completamente separados. Del mismo modo, las herramientas utilizadas para manipular las tablas que contienen los conjuntos de reglas de firewall son distintas también. Si usted tiene IPv6 habilitado en su servidor, tendrá que configurar ambas tablas para hacer frente al tráfico a que servidor está sometido.

El comando regular iptables se utiliza para manipular la tabla que contiene las reglas que rigen el tráfico IPv4. Para el tráfico IPv6, un comando compañero llamado ip6tables se utiliza. Este es un punto importante para internalizar, ya que significa que las normas que ha establecido con iptables no tendrán ningún efecto sobre los paquetes que utilizan la versión 6 del protocolo.

La sintaxis entre estos comandos individuales es la misma, por lo que la creación de un conjunto de reglas para cada una de estas tablas no es demasiado abrumador. Sólo recuerde modificar las dos tablas cada vez que hagas un cambio. El comando iptables hará las reglas que se aplican al tráfico IPv4, y el comando ip6tables hará las reglas que se aplican al tráfico IPv6.

Usted debe estar seguro de usar las direcciones IPv6 apropiadas de su servidor para elaborar las reglas ip6tables.

 

Cosas a Tener en Cuenta

Ahora que sabemos cómo iptables dirige los paquetes que llegan a través de su interfaz (dirigir el paquete a la cadena apropiada, cotejarla con cada regla hasta que una coincida, aplicar la política por defecto (default policy) de la cadena si no se encuentra ninguna coincidencia), podemos empezar a ver algunas cosas a a tener en cuenta a medida que hacemos las reglas.

En primer lugar, tenemos que asegurarnos de que tenemos reglas para mantener las conexiones actuales activas si ponemos en práctica una política de hacer caer paquetes por defecto (drop policy). Esto es especialmente importante si usted está conectado a su servidor a través de SSH. Si implementa accidentalmente una regla o política que hace caer su conexión actual, quizás pueda acceder a través de su consola web (si es que la tiene).

Otra cosa a tener en cuenta es que el orden de las reglas en cada cadena importa. Un paquete no debe pasar a través de una regla más general con la cual coincida si tiene la intención de coincidir con una regla más específica.

Debido a esto, las reglas cerca de la parte superior de una cadena deben tener un mayor nivel de especificidad que las reglas de la parte inferior. Usted debe comparar con casos específicos primero, y luego establecer reglas más generales con patrones más amplios. Si un paquete pasa a través de toda la cadena sin coincidir con ninguna norma, se ejecutará la regla más general: la política predeterminada (default policy).

Por esta razón, la política por defecto de una cadena dicta muy fuertemente los tipos de reglas que se incluirán en la cadena. Una cadena con la política por defecto de ACCEPT contendrá reglas que hacen caer (cancelar) de forma explícita paquetes. Una cadena que tiene como política por defecto a DROP contendrá excepciones para los paquetes que deben ser específicamente aceptados.

 

Conclusión

En este punto, la forma más fácil de aprender acerca de cómo funciona iptables es utilizarlo para implementar su propio firewall.

Como ya escribí antes, en un tutorial espero explicarles cómo crear un cortafuegos iptables básico en Ubuntu 14.04. Esto bloqueará su servidor a excepción de los pocos servicios que desea permitir.

Fuente:

Traducido ligeramente de: https://www.digitalocean.com/community/tutorials/how-the-iptables-firewall-works

Sobre el Autor
Adesh Johnson
Author: Adesh Johnson
Soy muy creyente en Dios. Ésto no me ha impedido un gran interés por la ciencia y la tecnología, y antes bien Dios me ha servido como guía e inspiración. Soy colombiano y tengo un grado en ingeniería. Busco ser no sólo espectador sino también creador en lo referente a la industria del internet. Específicamente, trabajo en el tema de telecomunicaciones bajo Protocolo de Internet IP. Me gusta la optimización de recursos y me considero perfeccionista. También me gusta el cine reflexivo.

ImprimirCorreo electrónico

Donaciones - Tutoriales y VideoTutoriales Fututel

Dona si crees que lo merecemos. Ésto nos ayudará para seguir publicando y hacerte la vida más fácil :)

Cantidad: