25 reglas útiles de firewall de IPtable que todo administrador de Linux debe conocer

Table of Contents

25 reglas útiles de firewall de IPtable que todo administrador de Linux debe conocer

La gestión del tráfico de la red es una de las tareas más difíciles con las que tienen que lidiar los administradores de sistemas. Debe configurar el firewall de tal manera que cumpla con los requisitos del sistema y de los usuarios para las conexiones entrantes y salientes, sin dejar el sistema vulnerable a los ataques.

 25 reglas de firewall de IPtables para Linux  25 reglas de firewall de IPtables para Linux 25 reglas de firewall de IPtables para Linux

Aquí es donde iptables resulta útil. Iptables. es un firewall de línea de comandos de Linux que permite a los administradores del sistema administrar el tráfico entrante y saliente a través de un conjunto de reglas de tabla configurables.

Iptables. usa un conjunto de tablas que tienen cadenas que contienen un conjunto de reglas integradas o definidas por el usuario. Gracias a ellos, un administrador del sistema puede filtrar adecuadamente el tráfico de red de su sistema.

Según el manual de iptables, actualmente existen 3 tipos de tablas:

    1. FILTRO-esta es la tabla predeterminada, que contiene las cadenas integradas para:
      1. INPUT. paquetes destinados a sockets locales
      2. FORWARD. paquetes enrutados a través del sistema
      3. SALIDA. paquetes generados localmente
    2. NAT: una tabla que se consulta cuando un paquete intenta para crear una nueva conexión. Tiene lo siguiente integrado:
      1. PREROUTING. se usa para alterar un paquete tan pronto como se recibe
      2. OUTPUT. se usa para alterar paquetes generados localmente
      3. POSTROUTING. usado para alterar paquetes cuando están a punto de salir
    3. MANGLE-esto La tabla se utiliza para alterar paquetes. Hasta la versión del kernel 2.4. esta tabla solo tenía dos cadenas, pero ahora son 5:
      1. PREROUTING. para alterar las conexiones entrantes
      2. SALIDA. para alterar paquetes generados localmente
      3. ENTRADA. para paquetes entrantes
      4. POSTROUTING. para alterar los paquetes cuando están a punto de salir
      5. FORWARD. para paquetes enrutados a través de la caja

En este artículo, verá algunos comandos útiles que lo ayudarán a administrar el firewall de su caja de Linux a través de iptables. Para el propósito de este artículo, comenzaré con comandos más simples y pasaré a los más complejos hasta el final.

1. Iniciar/Detener/Reiniciar el firewall de Iptables

freestar.config.enabled_slots.push

Primero, debe saber cómo administrar el servicio de iptables en diferentes Linux distribuciones. Esto es bastante fácil:

En distribuciones Linux basadas en SystemD———— En Cent/RHEL 7 y Fedora 22+. ———–# systemctl start iptables # systemctl stop iptables # systemctl restart iptables En distribuciones Linux basadas en SysVinit———— En Cent/RHEL 6/5 y Fedora. ———–#/etc/init.d/iptables start #/etc/init.d/iptables stop #/etc/init.d/iptables reiniciar

2. Verifique todas las reglas de firewall de IPtables

Si desea verificar sus reglas existentes, use el siguiente comando:

# iptables-L-n-v

Esto debería devolver un resultado similar al siguiente :

Cadena ENTRADA (política ACCEPT 1129K paquetes, 415M bytes) pkts bytes target prot opt ​​in out source destination 0 0 ACCEPT tcp-lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt: 53 0 0 ACCEPT udp-lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt: 53 0 0 ACEPTAR tcp-lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt: 67 0 0 ACEPTAR udp-lxcbr0 * 0.0 .0.0/0 0.0.0.0/0 udp dpt: 67 Chain FORWARD (política ACCEPT 0 paquetes, 0 bytes) pkts bytes target prot opt ​​in out source destination 0 0 ACCEPT all-* lxcbr0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all-lxcbr0 * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (política ACCEPT 354K paquetes, 185M bytes) pkts bytes target prot opt ​​in out source destination

Si prefiere verificar las reglas para una tabla específica, puede usar la opción-t seguida de la tabla que desea verificar. Por ejemplo, para verificar las reglas en la tabla NAT, puede usar:

# iptables-t nat-L-v-n

3. Bloquear una dirección IP específica en el firewall de IPtables

Si encuentra una actividad inusual o abusiva en una dirección IP, puede bloquear esa dirección IP con la siguiente regla:

# iptables-A INPUT-s xxx.xxx.xxx.xxx-j DROP

Donde necesita cambiar “xxx.xxx.xxx.xxx” con la dirección IP real. Tenga mucho cuidado al ejecutar este comando, ya que puede bloquear accidentalmente su propia dirección IP. La opción-A agrega la regla al final de la cadena seleccionada.

En caso de que solo desee bloquear el tráfico TCP. de esa dirección IP, puede usar la opción-p que especifica el protocolo. De esa manera, el comando se verá así:

# iptables-A INPUT-p tcp-s xxx.xxx.xxx.xxx-j DROP

4. Desbloquear la dirección IP en el firewall de IPtables

Si ha decidido que ya no desea bloquear las solicitudes de una dirección IP específica, puede eliminar la regla de bloqueo con el siguiente comando:

# iptables-D INPUT-s xxx.xxx.xxx.xxx-j DROP

La opción-D elimina una o más reglas de la cadena seleccionada. Si prefiere usar la opción más larga, puede usar–delete.

5. Bloquear un puerto específico en el firewall de IPtables

A veces es posible que desee bloquear las conexiones entrantes o salientes en un puerto específico. Es una buena medida de seguridad y realmente debería pensar en ese asunto cuando configure su firewall.

Para bloquear conexiones salientes en un puerto específico, use:

# iptables-A OUTPUT-p tcp-dport xxx-j DROP

Para permitir conexiones entrantes use:

# iptables-A INPUT-p tcp–dport xxx-j ACCEPT

En ambos ejemplos cambie “xxx” con el puerto real que desea permitir. Si desea bloquear el tráfico UDP. en lugar de TCP. simplemente cambie “tcp” por “udp” en la regla de iptables anterior.

6. Permitir múltiples puertos en tablas IP usando multipuerto

Puede permitir múltiples puertos a la vez, usando multipuerto. a continuación puede encontrar dicha regla para conexiones entrantes y salientes:

# iptables-A ENTRADA-p tcp-m multipuerto–dports 22,80,443-j ACEPTAR # iptables-A SALIDA-p tcp-m multipuerto–deportes 22,80,443-j ACEPTAR

7. Permitir un rango de red específico en un puerto particular en tablas IP

Es posible que desee limitar ciertas conexiones en un puerto específico a una red determinada. Supongamos que desea permitir conexiones salientes en el puerto 22 a la red 192.168.100.0/24.

Puede hacerlo con este comando:

# iptables-A OUTPUT-p tcp-d 192.168. 100.0/24–dport 22-j ACEPTAR

8. Bloquear Facebook en el firewall de IPtables

A algunos empleadores les gusta bloquear el acceso a Facebook. de sus empleados. A continuación se muestra un ejemplo de cómo bloquear el tráfico a Facebook.

Nota. si es administrador del sistema y necesita aplicar estas reglas, siga tenga en cuenta que sus colegas pueden dejar de hablar con usted 🙂

Primero busque las direcciones IP utilizadas por Facebook:

# host facebook.com facebook.com tiene la dirección 66.220.156.68 # whois 66.220.156.68 | grep CIDR CIDR: 66.220.144.0/20

Luego puede bloquear esa red de Facebook con:

# iptables-A OUTPUT-p tcp-d 66.220.144.0/20-j DROP

Tenga en cuenta que el rango de direcciones IP que utiliza Facebook puede variar en su país.

9. Configurar el reenvío de puertos en IPtables

A veces es posible que desee reenviar el tráfico de un servicio a otro puerto. Puede lograr esto con el siguiente comando:

# iptables-t nat-A PREROUTING-i eth0-p tcp–dport 25-j REDIRECT–to-port 2525

El comando anterior reenvía todo el tráfico entrante en la interfaz de red eth0, del puerto 25 al puerto 2525. Puede cambiar los puertos por los que necesite.

10. Bloquee la inundación de red en el puerto Apache con IPtables

A veces, las direcciones IP pueden solicitar demasiadas conexiones hacia los puertos web de su sitio web. Esto puede causar varios problemas y para evitarlos, puede usar la siguiente regla:

# iptables-A INPUT-p tcp–dport 80-m limit–limit 100/minute–limit-burst 200-j ACCEPT

El comando anterior limita las conexiones entrantes de por minuto a 100 y establece un límite de ráfaga a 200. Puede editar el límite y el límite de ráfaga según sus propios requisitos específicos.

11. Bloquear solicitudes de ping entrantes en tablas IP

A algunos administradores de sistemas les gusta bloquear las solicitudes de ping entrantes debido a problemas de seguridad. Si bien la amenaza no es tan grande, es bueno saber cómo bloquear dicha solicitud:

# iptables-A INPUT-p icmp-i eth0-j DROP

12. Permitir acceso de bucle invertido

El acceso de bucle invertido (acceso desde 127.0.0.1) es importante y siempre debe dejarlo activo:

# iptables-A INPUT-i lo-j ACCEPT # iptables-A OUTPUT-o lo-j ACEPTAR

13. Mantenga un registro de paquetes de red descartados en IPtables

Si desea registrar los paquetes descartados en la interfaz de red eth0, puede usar el siguiente comando:

# iptables-A INPUT-i eth0-j LOG–log-prefix “Paquetes descartados de IPtables:”

Puede cambiar el valor después de “–log-prefix” con algo que elija. Los mensajes se registran en/var/log/messages y puede buscarlos con:

# grep “Paquetes descartados de IPtables:”/var/log/messages

14. Bloquear el acceso a una dirección MAC específica en tablas IP

Puede bloquear el acceso a su sistema desde una dirección MAC específica usando:

# iptables-A INPUT-m mac–mac-source 00:00: 00: 00: 00: 00-j DROP

Por supuesto, deberá cambiar “00: 00: 00: 00: 00: 00” con la dirección MAC real que desea bloquear.

15. Limite el número de conexiones simultáneas por dirección IP

Si no desea que se establezcan demasiadas conexiones simultáneas desde una única dirección IP en un puerto determinado, puede utilizar el siguiente comando:

# iptables-A INPUT-p tcp–syn–dport 22-m connlimit–connlimit-above 3-j REJECT

El comando anterior no permite más de 3 conexiones por cliente. Por supuesto, puede cambiar el número de puerto para que coincida con un servicio diferente. Además, el–connlimit-above debe cambiarse para que coincida con sus requisitos.

16. Buscar dentro de la regla de IPtables

Una vez que haya definido sus reglas de iptables, querrá buscar de vez en cuando y es posible que deba modificarlas. Una forma fácil de buscar dentro de sus reglas es usar:

# iptables-L $ table-v-n | grep $ string

En el ejemplo anterior, necesitará cambiar $ table con la tabla real dentro de la cual desea buscar y $ string con la cadena real que está buscando.

Aquí es un ejemplo:

# iptables-L INPUT-v-n | grep 192.168.0.100

17. Definir una nueva cadena de IPTables

Con iptables, puede definir su propia cadena y almacenar reglas personalizadas en ella. Para definir una cadena, use:

# iptables-N custom-filter

Ahora puede verificar si su nuevo filtro está ahí:

# iptables-L Sample Output Chain INPUT (policy ACCEPT) target prot opt fuente destino Cadena FORWARD (política ACCEPT) destino prot opt ​​fuente destino Cadena SALIDA (política ACCEPT) objetivo prot opt ​​fuente destino Cadena filtro personalizado. (0 referencias) destino prot opt ​​origen destino

18. Limpiar las cadenas o reglas del cortafuegos de IPtables

Si desea limpiar las cadenas de su cortafuegos, puede usar:

# iptables-F

Puede limpiar las cadenas de una tabla específica con:

# iptables-t nat-F

Puede cambiar “nat” con la tabla actual qué cadenas desea vaciar.

19. Guardar reglas de IPtables en un archivo

Si desea guardar sus reglas de firewall, puede usar el comando iptables-save. Puede utilizar lo siguiente para guardar y almacenar sus reglas en un archivo:

# iptables-save> ~/iptables.rules

Depende de usted dónde guardará el archivo y cómo le asignará el nombre.

20. Restaurar reglas de IPtables desde un archivo

Si desea restaurar una lista de reglas de iptables, puede usar iptables-restore. El comando se ve así:

# iptables-restore <~/iptables.rules

Por supuesto, la ruta a su archivo de reglas puede ser diferente.

21. Configurar las reglas de IPtables para el cumplimiento de PCI

Es posible que algunos administradores de sistemas deban configurar sus servidores para que sean compatibles con PCI. Existen muchos requisitos por parte de diferentes proveedores de cumplimiento de PCI, pero hay algunos comunes.

En muchos de los casos, necesitará tener más de una dirección IP. Deberá aplicar las reglas a continuación para la dirección IP del sitio. Tenga mucho cuidado al usar las reglas a continuación y utilícelas solo si está seguro de lo que está haciendo:

# iptables-I INPUT-d SITE-p tcp-m multipuerto–dports 21,25,110,143,465,587,993,995-j DROP

Si usa cPanel o un panel de control similar, es posible que también deba bloquear sus puertos. Aquí hay un ejemplo:

# iptables-I in_sg-d DEDI_IP-p tcp-m multipuerto–dports 2082,2083,2095,2096,2525,2086,2087-j DROP

Nota:. para asegurarse de que cumple con los requisitos de su proveedor de PCI, verifique su informe cuidadosamente y aplique las reglas requeridas. En algunos casos, es posible que también deba bloquear el tráfico UDP en ciertos puertos.

22. Permitir conexiones establecidas y relacionadas

Como el tráfico de red está separado en el tráfico entrante y saliente, querrá permitir el tráfico entrante establecido y relacionado. Para conexiones entrantes, hágalo con:

# iptables-A INPUT-m conntrack–ctstate ESTABLECIDO, RELACIONADO-j ACCEPT

Para uso saliente:

# iptables-A OUTPUT-m conntrack–ctstate ESTABLECIDO-j ACEPTAR

23. Eliminar paquetes no válidos en IPtables

Es posible que algunos paquetes de red se marquen como no válidos. Algunas personas pueden preferir registrar esos paquetes, pero otras prefieren descartarlos. Para eliminar los paquetes inválidos, puede usar:

# iptables-A INPUT-m conntrack–ctstate INVALID-j DROP

24. Bloquear la conexión en la interfaz de red

Algunos sistemas pueden tener más de una interfaz de red. Puede limitar el acceso a esa interfaz de red o bloquear conexiones desde cierta dirección IP.

Por ejemplo:

# iptables-A INPUT-i eth0-s xxx.xxx.xxx.xxx-j DROP

Cambie “xxx.xxx.xxx.xxx”. con la dirección IP real ( o red) que desea bloquear.

25. Deshabilite los correos salientes a través de IPTables

Si su sistema no debería enviar ningún correo electrónico, puede bloquear los puertos salientes en los puertos SMTP. Por ejemplo, puede usar esto:

# iptables-A OUTPUT-p tcp–dports 25,465,587-j REJECT

Conclusión

Iptables. es un poderoso firewall que puede beneficiarse fácilmente. Es vital que todos los administradores de sistemas aprendan al menos los conceptos básicos de iptables. Si desea encontrar información más detallada sobre iptables y sus opciones, le recomendamos que lea su manual:

# man iptables

Si cree que deberíamos agregar más comandos a esta lista, por favor compártalos con nosotros, enviándolos en la sección de comentarios a continuación.