25 reglas útiles de firewall iptable que todo administrador de Linux debe saber

25 reglas útiles de firewall iptable que todo administrador de Linux debe saber

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

25 reglas de firewall iptables para Linux

Aquí es donde iptables Ser util. 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 Utiliza un conjunto de tablas que tienen cadenas que contienen un conjunto de reglas incorporadas o definidas por el usuario. Gracias a ellos, un administrador del sistema puede filtrar correctamente el tráfico de red de su sistema.

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

    1. FILTRAR - Esta es la tabla predeterminada, que contiene las cadenas incorporadas para:
      1. APORTE  - Paquetes destinados a enchufes locales
      2. ADELANTE - paquetes enrutados a través del sistema
      3. PRODUCCIÓN - paquetes generados localmente
    2. Nat - Una tabla que se consulta cuando un paquete intenta crear una nueva conexión. Tiene el siguiente incorporado:
      1. Preliminar - utilizado para alterar un paquete tan pronto como se recibe
      2. PRODUCCIÓN - Se utiliza para alterar paquetes generados localmente
      3. Postratería - utilizado para alterar paquetes cuando están a punto de salir
    3. MUTILAR - Esta tabla se usa para alterar los paquetes. Hasta la versión del núcleo 2.4 Esta mesa solo tenía dos cadenas, pero ahora tienen 5:
      1. Preliminar - Para alterar las conexiones entrantes
      2. PRODUCCIÓN - para alterar paquetes generados localmente
      3. APORTE - para paquetes entrantes
      4. Postratería - para alterar paquetes cuando están a punto de salir
      5. ADELANTE - Para paquetes enrutados a través de la caja

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

1. Iniciar/detener/reiniciar el firewall de iptables

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

En distribuciones de Linux basadas en Systemd

------------ En Cent/Rhel 7 y Fedora 22+ ------------ # SystemCTL Start iptables # SystemCtl Stop IPtables # SystemCTL reiniciar iptables 

En distribuciones de Linux con sede en Sysvinit

------------ En Cent/Rhel 6/5 y Fedora ------------ # /etc /init.d/iptables comienza #/etc/init.d/iptables stop #/etc/init.d/iptables reiniciar 

2. Verifique todas las reglas de firewall iptables

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

# iptables -l -n -v 

Esto debería devolver la salida de manera similar a la siguiente:

Entrada de la cadena (Política Aceptar paquetes 1129K, 415m bytes) PKTS bytes Target ProPT opt in Out Fuente Destino 0 0 Aceptar TCP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 53 0 0 Aceptar 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
Cadena delantera (Política Aceptar 0 paquetes, 0 bytes) PKTS Bytes Target ProPt Opt In Out Fuente Destino 0 0 Aceptar todo - * LXCBR0 0.0.0.0/0 0.0.0.0/0 0 0 Acepta todo - LXCBR0 * 0.0.0.0/0 0.0.0.0/0
Salida de la cadena (Política Aceptar paquetes 354K, 185 m bytes) PKTS Bytes Target ProPT opt en el destino de origen

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

# iptables -t nat -l -v -n 

3. Bloquear dirección IP específica en firewall iptable

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

# iptables -a entrada -s xxx.xxx.xxx.XXX -J Drop 

Donde necesitas 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. El -A La opción agrega la regla al final de la cadena seleccionada.

En caso de que solo quiera bloquear TCP tráfico de esa dirección IP, puede usar el -pag opción 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. Desbloqueo de la dirección IP en firewall iptable

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

# iptables -d entrada -s xxx.xxx.xxx.XXX -J Drop 

El -D La opción elimina una o más reglas de la cadena seleccionada. Si prefiere usar la opción más larga que puede usar --borrar.

5. Bloquear puerto específico en firewall iptable

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 debe pensar en ese asunto al configurar su firewall.

Para bloquear las conexiones salientes en un uso específico del puerto:

# iptables -a output -p tcp --dport xxx -j drop 

Para permitir el uso de conexiones entrantes:

# iptables -a input -p tcp --dport xxx -j aceptar 

En ambos ejemplos cambia "xxx" con el puerto real que desea permitir. Si quieres bloquear UDP tráfico en lugar de TCP, Simplemente cambiar "TCP" con "UDP" En la regla de iptables anterior.

6. Permitir múltiples puertos en iptables usando Multiport

Puede permitir varios puertos a la vez, utilizando múltiples, A continuación puede encontrar dicha regla para las conexiones entrantes y salientes:

# iptables -a input -p tcp -m multiport --dports 22,80,443 -j Aceptar # iptables -a output -p tcp -m multiport --esports 22,80,443 -s aceptan 

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

Es posible que desee limitar ciertas conexiones en puerto específico a una red determinada. Digamos que desea permitir conexiones salientes en el puerto 22 a la red 192.168.100.24/04.

Puedes hacerlo con este comando:

# iptables -a salida -p tcp -d 192.168.100.0/24 --dport 22 -J aceptar 

8. Bloquear Facebook en el firewall iptable

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

Nota: Si usted es un administrador del sistema y necesita aplicar estas reglas, tenga en cuenta que sus colegas pueden dejar de hablar con usted :)

Primero encuentre 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 salida -p tcp -d 66.220.144.0/20 -J Drop 

Tenga en cuenta que la gama de direcciones IP utilizada por Facebook puede variar en su país.

9. Configuración del reenvío del puerto 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 predimente -i eth0 -p tcp --dport 25 -j redirección -a puerto 2525 

El comando anterior reenvía todo el tráfico entrante en la interfaz de red eth0, desde el puerto 25 hacia el puerto 2525. Puede cambiar los puertos con los que necesita.

10. Bloquear la inundación de la red en el puerto Apache con iptables

A veces, las direcciones IP pueden solicitar demasiadas conexiones hacia puertos web en su sitio web. Esto puede causar un número de problemas y para evitar tales problemas, puede usar la siguiente regla:

# iptables -a entrada -p tcp --dport 80 -m límite --limit 100/minuto --limit -burst 200 -j aceptar 

El comando anterior limita las conexiones entrantes de por minuto a 100 y establece una ráfaga de límite para 200. Puede editar el límite y la bola de límite a sus propios requisitos específicos.

11. Bloquear solicitudes de ping entrantes en iptables

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

# iptables -a entrada -p icmp -i eth0 -j drop 

12. Permitir acceso a loopback

Acceso a loopback (acceso desde 127.0.0.1) es importante y siempre debe dejarlo activo:

# iptables -a entrada -i lO -j Aceptar # iptables -A Output -o lo -j Aceptar 

13. Mantenga un registro de paquetes de red caídos en iptables

Si desea registrar los paquetes caídos en la interfaz de red eth0, Puede usar el siguiente comando:

# iptables -A Entrada -i Eth0 -j log --log -prefix "IPTables Dropped Packets:" 

Puedes cambiar el valor después "--log-prefix" con algo por tu elección. Los mensajes están registrados /var/log/mensajes Y puedes buscarlos con:

# GREP "IPTABLES DE PACKETS DESPARADOS:"/var/log/mensajes 

14. Bloquear acceso a una dirección MAC específica en iptables

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

# iptables -a entrada -m Mac - -Mac -Source 00: 00: 00: 00: 00: 00 -J Drop 

Por supuesto, necesitarás cambiar "00: 00: 00: 00: 00: 00" con la dirección MAC real que desea bloquear.

15. Limite el número de conexiones concurrentes por dirección IP

Si no desea tener demasiada conexión concurrente establecida desde la dirección IP única en el puerto dado, puede usar el comando a continuación:

# iptables -a entrada -p tcp --syn --dport 22 -m connlimit - -connlimit -love 3 -j rechazar 

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

dieciséis. 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 necesite alterarlas. Una manera fácil de buscar dentro de sus reglas es usar:

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

En el ejemplo anterior, deberá cambiar $ mesa con la tabla real dentro de la cual desea buscar y $ Cadena con la cadena real para la que buscas.

Aquí hay un ejemplo:

# iptables -l entrada -v -n | Grep 192.168.0.100 

17. Definir nueva cadena iptable

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

# iptables -n personalizado 

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

# iptables -l 
Salida de muestra
Entrada de cadena (Aceptación de política) Destino de origen de protección de protección 
Cadena de avance (aceptación de la política) Destino de origen de protección de protección
Salida de cadena (Aceptación de política) Destino de origen de protección de protección
Cadena filtro personalizado (0 referencias) Destino de origen de protección de protección

18. FLUSH iptables Cadenas o reglas de firewall

Si desea descargar las cadenas de firewall, puede usar:

# iptables -f 

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

# iptables -t nat -f 

Tu puedes cambiar "Nat" con la mesa real que desea enjuagar.

19. Guardar reglas iptables en un archivo

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

# iptables-save> ~/iptables.normas 

Depende de usted, ¿dónde almacenará el archivo y cómo lo nombrará?.

20. Restaurar las reglas de iptables desde un archivo

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

# iptables-restaure < ~/iptables.rules 

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

21. Configuración de reglas iptables para el cumplimiento de PCI

Es posible que algunos administradores de sistemas se requeriran para configurar sus servidores para que sean compilantes de PCI. Hay muchos requisitos de diferentes proveedores de cumplimiento de PCI, pero hay pocos comunes.

En muchos de los casos, deberá 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 úselas solo si está seguro de lo que está haciendo:

# iptables -i Entrada -d Sitio -P TCP -M Multiport --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 multiport --dports 2082,2083,2095,2096,2525,2086,2087 -J caída 

Nota: Para asegurarse de cumplir con los requisitos de su proveedor de PCI, consulte su informe con cuidado 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 la red está separado en el entrado y saliente, querrá permitir el tráfico entrante establecido y relacionado. Para conexiones entrantes, hágalo con:

# iptables -a entrada -m conntrack -ctstate establecido, relacionado -j aceptar 

Para uso saliente:

# iptables -a salida -m conntrack -ctstate establecido -j aceptar 

23. Dejar caer paquetes no válidos en iptables

Es posible tener algunos paquetes de red marcados como inválidos. Algunas personas pueden preferir registrar esos paquetes, pero otras prefieren solucionarlos. Para dejar caer los paquetes, puede usar:

# iptables -a input -m conntrack - -ctstate inválido -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 conexiones de bloque desde cierta dirección IP.

Por ejemplo:

# iptables -A Entrada -i ETH0 -S XXX.xxx.xxx.XXX -J Drop 

Cambiar "Xxx.xxx.xxx.xxx " con la dirección IP (o red) real que desea bloquear.

25. Deshabilitar correos salientes a través de iptables

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

# iptables -a salida -p tcp --dports 25,465,587 -j rechazar 

Conclusión

Iptables es un firewall poderoso del que puede beneficiarse fácilmente. Es vital que cada administrador del sistema aprenda al menos los conceptos básicos de los iptables. Si desea encontrar información más detallada sobre iptables y sus opciones, se recomienda leer su manual:

# hombre iptable 

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