Ver destacados

Cómo configurar firewall Iptables para seguridad Linux

Te explicamos los pasos que debes seguir para saber cómo configurar firewall Iptables y aumentar la seguridad en Linux con todo detalle.
Escrito por
12.2K Visitas  |  Publicado jul 10 2017 17:43
Favorito
Compartir
Comparte esta pagina a tus Amigos y Contactos usando las siguientes Redes Sociales


Aunque Linux es uno de los sistemas operativos más fiables y seguros gracias a sus características siempre existirá algún tipo de vulnerabilidad ya sea propia del sistema o de forma no intencional por parte del usuario. Para incrementar la seguridad de Linux contamos con diversas herramientas diseñadas para proteger servicios, procesos, perfiles o archivos y hoy nos centraremos en una especial llamada Iptables.

 

Qué es Iptables
Iptables es una herramienta avanzada de firewall la cual está integrada en el kernel de Linux la cual forma parte de un proyecto llamado netfilter.

 

Gracias a Iptables podremos administrar de forma precisa y directa todas las conexiones entrantes y salientes del servidor. Iptables está desarrollado para el direccionamiento Ipv4 mientras que para Ipv6 contamos con Ip6tables.

 


1. Estructura de Iptables en Linux


La estructura que encontramos en Iptables es la siguiente:

 

Raw
Se encarga de filtrar los paquetes antes que cualquier otra tabla existente

 

Filter
Esta es la tabla por defecto de la aplicación

 

Nat
Es usado para la traducción de direcciones de red

 

Mangle
Es utilizado para la alteración de los paquetes de red especializados

 

Security
Puede ser implementado para reglas de conexión de red Mandatory Access Control

 


2. Estructura del comando en Iptables en Linux


En Iptables cada regla es un comando que indica la forma como debe ser manejado el tráfico de los paquetes de red.
Podemos usar la siguiente estructura:
-A INPUT -i eth0 -p tcp -m state -- ESTABLISHED,RELATED --sport 80 -j ACCEPT
Los parámetros usados son:
  • -A: Indica que serán agregadas las reglas a Iptables
  • -i: Indica la interfaz en la cual será aplicada la regla
  • -p: Hace referencia al protocolo donde aplicara la regla
  • -m: Hace referencia a que existe una condición que debe cumplirse para aplicar la regla
  • --state: Permite la aceptación de nuevas conexiones
  • --sport: Indica el puerto de origen
  • -j: (Jump) indica que pueden aceptar todo el tráfico que cumple las condiciones dadas.

 


3. Creación de reglas usando Iptables en Linux


Aunque podemos agregar las reglas de forma manual es mucho más practico crear un archivo de reglas y posteriormente realizar su importación. En este caso crearemos el archivo en la ruta /tmp/iptables-ip4 y podemos usar algún editor para su respectivo ajuste:
sudo nano /tmp/iptables-ip4
La sintaxis será la siguiente:
*filter
 # Reglas a agregar
 COMMIT
Ahora crearemos las siguientes reglas dentro de dicho archivo:

 

Loopback= Es la interfaz externa de Linux
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

 

Ping= Nos permite comprobar las conexiones de red
-A INPUT -i eth0 -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT
-A INPUT -i eth0 -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -p icmp -j ACCEPT

 

Web= Mediante estas reglas controlamos el tráfico entrante y saliente.
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 443 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT

 

En caso de agregar el DNS usaremos las siguientes líneas:
-A INPUT -i ens3 -s 192.168.0.1 -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j ACCEPT

 

Nota:
Aquí debemos modificar la IP según sea necesario

 

Tiempo= Estas reglas permiten la conexión a NTP para la correcta sincronización de la hora
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --dport 123 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT

 

Impresión= Permite que los puertos USB para la conexión de impresoras sean habilitados
-A INPUT -p udp -m udp --dport 631 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 631 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 631 -j ACCEPT

 

Email= Podemos habilitar los diversos protocolos de correo electrónico
# IMAP
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 993 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT
 # POP3
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 995 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT
 # SMTP
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 465 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT

 

SSH= Habilita las conexiones seguras al equipo usando el protocolo SSH
# Input
-A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT
# Output
-A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT
-A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT

 

DHCP: Podemos crear reglas para autorizar el direccionamiento IP a través de DHCP
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --sport 67:68 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT

 

Rechazar todas las conexiones: Podemos agregar las siguientes líneas para deshabilitar todo lo anterior:
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j REJECT

 

Todas estas líneas serán agregadas en el archivo mencionado:

 

 

Guardamos los cambios

 

Ctrl + O

 

 

Salimos del editor usando

 

Ctrl + X

 

 


4. Importación de las reglas usando Iptables Linux


Una vez editado el archivo podremos importar dichas reglas en Iptable ejecutando el siguiente comando:
sudo iptables -F && sudo iptables -X
Podremos ver el estado de las reglas usando el comando sudo iptables -S:

 

 

 

En caso de desear restaurar todas las reglas ejecutaremos la siguiente línea:

sudo iptables-restore < /tmp/itpables-ip4
Si deseamos que estas reglas sean permanentes ejecutaremos lo siguiente:
sudo apt install iptables-persistent
De esta forma Iptables es nuestra mejor aliada a la hora de configurar el firewall en ambientes Linux.

 

En este tutorial descrubrirás cómo poder configurar tu Firewall, cerrar puertos o crear reglas en Ubuntu Linux gracias a UFW.

¿Te ayudó este Tutorial?

Ayuda a mejorar este Tutorial!
¿Quieres ayudarnos a mejorar este tutorial más? Puedes enviar tu Revisión con los cambios que considere útiles. Ya hay 0 usuario que han contribuido en este tutorial al enviar sus Revisiones. ¡Puedes ser el próximo!