Netfilter/Iptables (Firewall en CentOS)



·         Que es un Firewall?

Un firewall también es conocido como muro de fuego, este funciona entre las redes conectadas permitiendo o denegando las comunicaciones entre dichas redes. También un firewall es considerado un filtro que controla el tráfico de varios protocolos como TCP/UDP/ICMP que pasan por el para permitir o denegar algún servicio, el firewall examina la petición y dependiendo de este lo puede bloquear o permitirle el acceso Un firewall puede ser un dispositivo de tipo Hardware o software que de instala entre la conexión a Internet y las redes conectadas en el lugar, como podemos ver en la Figura 1.1.

DMZ.

Un firewall con configuración DMZ indica que va tener una zona Desmilitarizada o red perimetral, es una red local en la cual se encuentra dentro de una organización. Para poder ser una zona tipo DMZ deben ver servidores ofreciendo servicios de WWW, FTP, DNS, Samba, etc, esto permite ofrecer servicios de una red local hacia el exterior. Dentro de esta zona se podrá tener acceso desde la red local e internet y firewall controlara los accesos a los servicios que se encuentren alojados dentro de la DMZ, como podemos ver en la Figura 1.2.

Firewall GNU/Linux.

En GNU/Linux existe gran variedad de herramientas que nos permite controlar nuestro firewall desde un servidor que este conectado a internet y a la red local. Esta herramientas son: Ipchains: Esta herramienta ya quedo en el olvido ya que se usaba para kernel 2.4. Iptables: Esta herramienta es la que se esta ocupando actualmente y apareció a partir del kernel 2.4 y 2.6 en adelante. Con Iptables crea las reglas mas rápidas y sencillas que ipchains. Shorewall: Es una herramienta muy flexible, rápida y sencilla que permite crear reglas iptables, en shorewall se configuran varios archivos para poder controlar el firewall de nuestra red. ufw: Esta es un herramienta que nos permite crear reglas iptables de una forma demasiado sencilla dentro de distribuciones debian, ubuntu y derivados.

Conceptos Iptables.

Antes de poder administrar nuestro firewall tendremos que saber para que nos sirve cada de una de las tablas que usa iptables para sus reglas.
Tablas
Cuando nosotros enviamos un paquete o una solicitud de servicio este pasa por 3tipos de tablas que debemos conocer.

NAT

Esta tabla que debe ser usada cuando se desea hacer los paquetes sean enrutados a una máquina cliente dentro de una red local o DMZ, pero también podremos enmascarar un red local y tener salida hacia internet. Dentro de esta tabla tenemos las siguientes opciones:


* DNAT: Este parámetro se emplea cuando tenemos casos en donde se tiene un IP Publica y el servicio se encuentra dentro de la red local o DMZ y el firewall el encargado de redirigir esta petición a la máquina en donde se encuentre el servicio.

* SNAT: Esta opción se ocupa cuando queremos esconder nuestra IP de red local o DMZ, cambiándola dentro del firewall con la IP Publica del servidor.

* MASQUERADE: Hace lo mismo que SNAT, pero MASQUERADE automáticamente convierte nuestra IP de la red local o DMZ a IP publica y se recomienda tener esta configuración cuando en nuestra red asignamos IP de forma DHCP.

MANGLE

Esta tabla se usa principalmente para modificar paquetes. Dentro de esta tabla tenemos las siguientes opciones:

* TOS: Es usado para definir o cambiar el tipo de servicio de un paquete que puede ser usado para configurar políticas en la red considerando a ser enrutados los paquetes, no lo uses para paquetes que vayan hacia internet.

* TTL: Es usado para cambiar el campo tiempo de vida de un paquete y con ello conseguir un TTL especifico.

* MARK: Se usa para marca los paquetes con valores especifico, con estas marcas podremos limitar el ancho de banda y generar colas.

FILTER

Esta esta la tabla principal para el filtrado de paquetes que podemos comparar y filtar paquetes dentro del firewall. Dentro de esta tabla tenemos las siguientes opciones:

* INPUT: Paquetes de entrada hacia nuestro firewall.

* FORWARD: Paquetes enrutados por medio del firewall a otra máquina.

* OUTPUT: Paquetes de salida de nuestro firewall.

Estados
Los estados en realidad son los seguimientos de conexiones dentro del firewall. Para esto tenemos las siguiente opciones:

* ESTABLISHED: El paquete seleccionado se asocia con otros paquetes en una conexión establecida.

* INVALID: El paquete seleccionado no puede ser asociado hacia ninguna conexion conocida.

* NEW: El paquete seleccionado esta creando una nueva conexión o bien forma parte de una conexión de dos caminos.

* RELATED: El paquete seleccionado esta iniciando una nueva conexión en algún punto de la conexión existente.

Podemos tomar decisiones a partir del estado del paquete por medio del modulo state con el parametro “-m state”, se refiere a la posibilidad de mantener información sobre el estado de la conexión en memoria. El seguimiento de conexiones se realiza en cadenas PREROUTING y OUTPUT, el numero máximo de conexiones esta guardada en /proc/sys/net/ipv4/ip_conntrack_max.
Protocolos
Todos los servicios manejan protocolos para su comunicaciones, por lo cual iptables podremos administrar servicios dentro de los protocolos:

* TCP: Protocolo de Control de Transmisión, este protocolo es mas utilizado por los servicios ofrecidos por algún servidor.

* UDP: Protocolo de Datagrama de Usuario, sirve para el envía de datagrama pero debe existir una conexión establecida.

* ICMP: Protocolo de Mensajes de Control y Error de Internet, este protocolo solamente lo utilizamos cuando hacemos envío de paquetes de un máquina a otra, en resumen es un ping.

Para poder ocupar estos protocolos podremos ocupar el parámetro -p.
Objetivos
Cuando nosotros creamos una regla iptables tenemos varias acciones básicas en las cuales podremos indicar al firewall que hacer con ellas. Estas acciones son:

* ACCEPT: Acepta los paquete que pase por el firewall.

* DROP: Deniega los paquete que pase por el firewall, cortando la comunicación.

* REJECT: Funciona básicamente igual que el objetivo DROP, aunque en este caso se devuelve un mensaje de error al host que envío el paquete bloqueado.

* REDIRECT: Sirve para redirigir paquetes y flujos hacia una máquina de la red local o DMZ. También sirve para redirigir peticiones entre puerto del mismo firewall para la activación de servicios.

* MASQUERADE: Hace lo mismo que SNAT, pero MASQUERADE automáticamente convierte nuestra IP de la red local o DMZ a IP publica y se recomienda tener esta configuración cuando en nuestra red asignamos IP de forma DHCP.

* LOG: Este objetivo funciona para registrar información detallada sobre los paquetes que pasan por el firewall.

Comando Iptables

Hasta este momento solamente sabemos sobre los conceptos de iptables pero ahora aprenderemos la estructura de la creación de la reglas de iptables y con parámetros que podemos utilizar. El comando iptables contiene las siguientes opciones:


Opción Descripción
-A Agrega una cadena iptables al firewall.
-C Verifica una cadena antes de añadirla al firewall.
-D Borra una cadena de iptables en el firewall
-E Renombra una cadena de iptables.
-F Libera o limpia de cadena en el firewall.
-I Inserta una cadena en una cadena en un punto especificado por un valor entero definido por el usuario.
-L Lista todas las cadena de iptables aplicadas en el firewall.
-N Crea una nueva cadena con un nombre especificando por el usuario.
-P Configura la política por defecto en una cadena en particular y puede ser ACCEPT o DROP.
-R Reemplaza una regla en una cadena en particular, se debe especificar el numero de regla.
-X Borra cadenas especificada por el usuario, no se permiten borrar cadenas no creada por el usuario.
-Z Pone en ceros los contadores de bytes y de paquetes.

Parámetros Iptables


El comando iptables tiene varios parámetros que debemos conocer antes de ver su nomenclatura ya que estos parámetros nos sirve para indicar alguna propiedad a nuestra regla creada dentro de firewall. Entonces revisemos los siguientes paramentas de iptables. 

Engel aus Metall
Think Free, Think Linux --> armandoyepezjim@hotmail.com
Twitter: @engelausmetall 

No hay comentarios:

Publicar un comentario