Configuración básica de Iptables en Linux

Actualizado el martes, 22 mayo, 2018

Configuración básica de Iptables en Linux.

Este articulo donde realizamos una configuración básica de Iptables en Linux, tiene como propósito ser un paso previo a nuestro próximo tutorial, «Proteger un servidor de ataques DDoS con Iptables«.

Iptables es una aplicación que nos permite la administración de las tablas incluidas en el firewall del kernel Linux, implementando los módulos de Netfilter, reglas e indicaciones.

Aun que existen intentos de suplantar Iptables por otras aplicaciones, la verdad es que ninguna a llegado a cuajar definitivamente. Iptables sigue siendo la herramienta más usada y la preferida por los sysadmin, tal vez por su seguridad y robustez junto con su facilidad de uso.

Vamos al articulo (ejemplos de Iptables creados en un servidor CentOS 7 Minimal ya configurado y operativo).

Configuración básica de Iptables en Linux 1

 

Configurar Iptables en Linux

 

Comprobamos la versión de iptables que tenemos instalada.

iptables -V

ejemplo…
iptables -V
iptables v1.4.21

 

Vemos el estado de Iptables.

yum info iptables

ejemplo…
yum info iptables

Paquetes instalados
Nombre        : iptables
Arquitectura        : x86_64
Versión     : 1.4.21
Lanzamiento     : 24.el7
Tamaño        : 1.5 M
Repositorio        : installed
Desde el repositorio   : base
Resumen     : Tools for managing Linux kernel packet filtering capabilities
URL         : http://www.netfilter.org/
Licencia     : GPLv2
Descripción :The iptables utility controls the network packet filtering code in
           : the Linux kernel. If you need to set up firewalls and/or IP
           : masquerading, you should install this package.

Paquetes disponibles
Nombre        : iptables
Arquitectura        : i686
Versión     : 1.4.21
Lanzamiento     : 24.el7
Tamaño        : 423 k
Repositorio        : base/7/x86_64
Resumen     : Tools for managing Linux kernel packet filtering capabilities
URL         : http://www.netfilter.org/
Licencia     : GPLv2
Descripción :The iptables utility controls the network packet filtering code in
           : the Linux kernel. If you need to set up firewalls and/or IP
           : masquerading, you should install this package.

Nota: Si tienes algún problema puedes instalar iptables con:
yum install iptables -y

Configuración básica de Iptables en Linux 2

 

La configuración por defecto de Iptables en CentOS no permite ni el acceso HTTP (puerto tcp 80), ni el HTTPS (puerto tcp 443) que son los que se usan por ejemplo en un servidor Apache.

Eliminar las reglas predefinidas de Iptables.

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

 

Establecemos nuevas reglas predeterminadas y agregamos el acceso al puerto 80 y 443.

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT 
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

 

Habilitamos el inicio de Iptables con el sistema, guardamos las reglas y reiniciamos.

chkconfig iptables on

service iptables save

service iptables restart

Nota: Puedes iniciar o detener iptables con:
# Iniciar
service iptables start


# Detener
service iptables stop

 

Como preámbulo al próximo articulo activaremos una protección contra ataques synflood.

Editaremos el archivo «/etc/sysctl.conf».

nano /etc/sysctl.conf

Copia y pega lo siguiente:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.netfilter.ip_conntrack_max = 1048576

Guarda el archivo y cierra el editor.

De nuevo en la consola, ejecuta las siguientes reglas.

iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 --syn -m recent --set --name CHECK --rsource
 
iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 --syn -m recent --update --seconds 5

 

Recuerda visitar el siguiente articulo: «Proteger un servidor de ataques DDoS con Iptables«.

 

Agregar comentario