Iptables: Introducción (I)

Tutorial IpTables
Los firewalls son una de las mejores bazas de cualquier administrador de sistemas o usuario para defenderse de casi todo. Por lo general, la gente desconoce bastante como funcionan estas piezas de software, y eso puede que para el usuario medio no sea un gran problema, buscar unas cuantas reglas en Google y listo, pero cuando lo que queremos es proteger un servidor o cualquier infraestructura crítica, es bastante importante entender bien como funciona, para poder establecer unas reglas óptimas.

Lo primero es saber que un programa no se tiene por qué ejecutar siempre en modo usuario o en modo kernel, y que depende del programa que estemos usando. Parte, puede que se ejecute de un modo, y otra parte de otro. Por poner un ejemplo, el comando que muestra la ayuda, no cambia ninguna configuración, ni altera el trabajo de la máquina, ni puede acabar representando algo en cuanto a la seguridad o integridad de la máquina, por lo tanto, se ejecuta en modo usuario. Cambiar una regla de firewall si que modifica como el kernel procesa los paquetes, por lo tanto, requiere privilegios de ejecución de kernel, esa es la razón por la que tienes que hacer “sudo” para que no salte error.



Los sistemas linux traen en sí 3 tablas. Estas tablas son filter, mangle y nat. Son tablas de sistema, están hechas a nivel de kernel, por lo que no podemos eliminarlas, o hacer que hagan cosas para lo que no están hechas. Cada tabla tiene su función específica:
  • Filter: Como su propio nombre indica, esta tabla se dedica a filtrar, permite a algunos paquetes pasa, a otros no, y redirige a los que hace falta. Contiene las cadenas INPUT, OUTPUT, y FORWARD
  • Mangle: Esta es la tabla se utiliza para configuraciones avanzadas, y modifica los propios paquetes. Tiene algunas cadenas más que filter, y son: PREROUTING, INPUT, FORWARD, OUTPUT, y POSTROUTING.
 
  • Nat: Esta tabla se dedica a decidir y a reescribir todos los paquetes de una conexión. Las cadenas que tiene dentro son: PREROUTING, POSTROUTING y OUTPUT.

¿Y que podemos hacer con los paquetes?

Las reglas nos permiten configurar el firewall para que se comporte de millones de maneras, sin embargo hay que tener en la cabeza un workflow básico, este esquema lo ilustra de manera bastante simple.

Si se quieren ver formas más complejas, basta con buscar en Google images la palabra “iptables”.

Entonces, estableciendo tanto políticas generales como reglas particulares, iptables nos ofrece una gran variedad de cosas que hacer, entre ellas: aceptar, rechazar, loguear, etc; además de tener opción de seguir conexiones y clasificar paquetes. Si las quieres ver todas, puedes ver el man del programa.

Todas estas cosas, y sobre todo, el hecho de que es un firewall embeido en el propio kernel, le dan a iptables una riqueza muy grande. Las opciones que podemos realizar con los paquetes solo tienen como límite nuestra propia creatividad, y si bien establecer unas reglas básicas es algo relativametne sencillo. El usuario avanzado puede hacer verdaderas maravillas.

En siguientes entregas ire explicando poco a poco, e intentando no saturar mucho al lector, las opciones que nos da, y como aplicarlas para mejorar la seguridad de nuestro, o nuestros sistemas.

0 comentarios:

Publicar un comentario en la entrada

ShellShock Labs es un blog dedicado a seguridad y hacking en general, un lugar donde buscamos que la gente participe con sus opiniones.

Síguenos




Posts Populares