Iptable es la herramienta de administración para el filtrado de paquetes IPv4 y NAT. Iptables se usa para configurar, mantener e inspeccionar las tablas de reglas de filtrado de paquetes IPv4 en el kernel de Linux. Se pueden definir varias tablas diferentes. Cada tabla contiene una serie de cadenas integradas y también puede contener cadenas definidas por el usuario. Cada cadena es una lista de reglas que pueden coincidir con un conjunto de paquetes. Cada regla especifica qué hacer con un paquete que coincida. Esto se denomina 'objetivo', que puede ser un salto a una cadena definida por el usuario en la misma tabla.
Una regla de firewall especifica criterios para un paquete y un objetivo. Si el paquete no coincide, se examina la siguiente regla de la cadena; si coincide, la siguiente regla se especifica mediante el valor del objetivo, que puede ser el nombre de una cadena definida por el usuario o uno de los valores especiales ACCEPT, DROP, QUEUE o RETURN.
- ACEPTAR significa dejar pasar el paquete.
- DROP significa dejar caer el paquete al suelo
- QUEUE significa pasar el paquete al espacio de usuario
- RETORNO significa dejar de atravesar esta cadena y reanudar en la siguiente regla de la cadena anterior.
Hay un total de 4 cadenas:
- ENTRADA - La cadena predeterminada se utiliza para los paquetes dirigidos al sistema. Use esto para abrir o cerrar puertos entrantes y direcciones IP/subred
- SALIDA - La cadena predeterminada se usa cuando los paquetes se generan desde el sistema. Use esto para abrir o cerrar puertos salientes y direcciones IP/subredes
- ADELANTE - Las cadenas predeterminadas se utilizan cuando los paquetes se envían a través de otra interfaz. Por lo general, se usa cuando configura Linux como enrutador
- Cortafuegos-RH-1-ENTRADA - Esta es una cadena personalizada definida por el usuario. Es utilizado por las cadenas INPUT, OUTPUT y FORWARD.
Instalación de Iptables
Podemos instalar iptables mediante el siguiente comando.
[root@vpn ~]# yum install iptables -y
Compruebe la versión de iptable:
[root@vpn ~]# iptables --version
iptables v1.3.5
Verifique el estado de las iptables:
[root@vpn ~]# service iptables status
Iniciar iptables:
[root@vpn ~]# service iptables start
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Para configurar el inicio de iptables en el arranque:
[root@vpn ~]# chkconfig iptables on
El archivo de configuración predeterminado de CentOS es /etc/sysconfig/iptables. Son los scripts del sistema los que activan el firewall al leer este archivo
Reglas de IPtable
1) Restablecer todas las reglas (F) y cadenas (X), necesario si ya se han definido reglas de iptables
#iptables -t filter -F
#iptables -t filter -X
2) Mostrar estado del cortafuegos
#iptables -L -n -v
3) Bloqueo de paquetes nulos
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
4) Rechazar ataque SYN -FLOOD
#iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
5) Rechazar un paquete de reconocimiento
#iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
6) Adición de la interfaz localhost al filtro del cortafuegos
#iptables -A INPUT -i lo -j ACCEPT
7) Permitir el tráfico del servidor web
#iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
8) Permitir que los usuarios utilicen servidores SMTP
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
9) Permitir que los usuarios lean el correo electrónico en su servidor
permitir tráfico POP3
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
permitir tráfico POP3
#iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
10) Permitir tráfico ssh
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
permitir el tráfico al puerto SSH si proviene de una fuente
#iptables -A INPUT -p tcp -s YOUR_IP_ADDRESS -m tcp --dport 22 -j ACCEPT
11) Permitir que cualquier conexión saliente establecida reciba respuestas del servidor
#iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12) Bloquear una dirección IP
#iptables -A INPUT -s IP_ADDRESS -j DROP
13) Bloquear un puerto para una dirección IP específica
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j DROP
14) Abrir un puerto para una dirección IP específica
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j ACCEPT
15) Permitir impresora para una dirección IP específica
#iptables -A INPUT -s IP_ADDRESS -p udp -m udp --dport 631 -j ACCEPT
16) Abrir DNS
#iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
17) Abrir puerto MYSQL
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
18) Abra un rango de puertos (p. ej.:7000-7100)
#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7100 -j ACCEPT
Después de configurar todas las reglas, debe guardar las reglas y reiniciar iptables
#service iptables save
#service iptables restart