Configuración de iptables en CentOS 7

Todos los sistemas operativos basados en el kernel de Linux tienen un cortafuegos integrado que controla y filtra el tráfico entrante y saliente según las reglas definidas por el usuario o la plataforma. En la distribución CentOS 7, por defecto, esta función la realiza el iptablesEl administrador del sistema o el gestor de la red a veces necesita ajustar el funcionamiento de este componente. A veces, el administrador del sistema o el gestor de la red tiene que configurar este componente escribiendo las reglas adecuadas. En el artículo de hoy nos gustaría hablar de los fundamentos de la configuración de iptables En el mencionado sistema operativo.

Configuración de iptables en CentOS 7

La herramienta en sí está disponible inmediatamente después de completar la instalación de CentOS 7, pero adicionalmente habrá que instalar algunos servicios, que es de lo que hablaremos a continuación. La plataforma en cuestión tiene otra herramienta incorporada que actúa como cortafuegos llamada FirewallD. Recomendamos desactivar este componente para evitar conflictos en futuros trabajos. Puede encontrar instrucciones detalladas sobre este tema en nuestro otro artículo en el siguiente enlace.

Leer más: Desactivación de firewallD en CentOS 7

Como sabes, en el sistema se pueden utilizar tanto los protocolos IPv4 como IPv6. Hoy nos centraremos en el ejemplo de IPv4, pero si quieres configurarlo para otro protocolo, tienes que utilizar la opción iptables en la consola para utilizar ip6tables.

Instalación de los servicios iptables

Lo primero que hay que hacer es añadir a su sistema los componentes adicionales de la utilidad de la que hablamos hoy. Ayudarán a configurar las reglas y otros parámetros. La descarga es desde el repositorio oficial, por lo que no te llevará mucho tiempo.

  1. Todas las acciones posteriores se llevarán a cabo en la consola clásica, así que ejecútelo por cualquier método conveniente.
  2. El comando para instalar los servicios es sudo yum install iptables-services. Introdúzcalo y pulse la tecla Entre en.
  3. Confirme la cuenta de superusuario especificando la contraseña de la misma. Tenga en cuenta que cuando se le pida sudo Los caracteres introducidos en la cadena nunca se muestran.
  4. Se le pedirá que añada un paquete al sistema, confirme esta acción seleccionando el botón y.
  5. Una vez finalizada la instalación, compruebe la versión actual de la herramienta: sudo iptables --version.
  6. El resultado aparecerá en una nueva línea.

El sistema operativo está ahora completamente listo para una mayor configuración del cortafuegos a través de la utilidad iptables. Sugerimos recorrer la configuración punto por punto, comenzando por la gestión del servicio.

Detención e inicio de los servicios iptables

Control del modo iptables se requiere cuando es necesario comprobar la acción de ciertas reglas o simplemente reiniciar un componente. Para ello se utilizan los comandos incorporados.

  1. Entre en sudo service iptables stop y pulse la tecla Entre enpara detener los servicios.
  2. Especifique la contraseña de superusuario para confirmar este procedimiento.
  3. Si el proceso tiene éxito, se mostrará una nueva línea indicando que se han realizado cambios en el archivo de configuración.
  4. Los servicios se inician de manera muy similar, sólo que la cadena tiene el aspecto siguiente sudo service iptables start.

Una utilidad similar de reinicio, arranque o parada está disponible en cualquier momento, sólo recuerde devolver el valor inverso cuando se solicite.

Visualización y supresión de reglas

Como se ha mencionado anteriormente, el cortafuegos se gestiona añadiendo reglas de forma manual o automática. Por ejemplo, algunas aplicaciones adicionales pueden acceder a la herramienta modificando ciertas políticas. Sin embargo, la mayoría de estas acciones se siguen realizando manualmente. Se puede ver una lista de todas las reglas actuales a través del comando sudo iptables -L.

El resultado mostrado tendrá información sobre las tres cadenas: “ENTRADA”, “SALIDA” и “ADELANTE” – tráfico entrante, saliente y reenviado, respectivamente.

Puede determinar el estado de todas las cadenas introduciendo sudo iptables -S.

Si las normas que ves no te convienen, simplemente se borran. La lista completa se borra de la siguiente manera: sudo iptables -F. Después de la activación, las reglas se borrarán para absolutamente las tres cadenas.

Cuando sólo hay que afectar a las pólizas de una cadena, se añade un argumento adicional a la cadena:

sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD

La ausencia de todas las reglas significa que ahora no se aplica ninguna configuración de filtrado de tráfico a ninguno de los dos lados. Entonces, el administrador del sistema ya establece la nueva configuración por sí mismo, utilizando toda la misma consola, el comando y varios argumentos.

Recepción y caída del tráfico en los circuitos

Cada circuito se configura por separado para aceptar o bloquear el tráfico. Estableciendo un valor determinado, es posible garantizar que, por ejemplo, se bloquee todo el tráfico entrante. Para ello, el comando debe ser sudo iptables --policy INPUT DROPdonde ENTRADA – el nombre del circuito, y DROP – valor de restablecimiento.

Se establecen exactamente los mismos parámetros para otros circuitos, por ejemplo sudo iptables --policy OUTPUT DROP. Si desea establecer un valor para la recepción de tráfico, entonces DROP cambios en ACEPTAR y se obtiene sudo iptables --policy INPUT ACCEPT.

Permiso y bloqueo de puertos

Como sabes, todas las aplicaciones y procesos de red se ejecutan en un puerto específico. Al bloquear o permitir ciertas direcciones, puede controlar el acceso de todos los objetivos de la red. Tomemos como ejemplo el reenvío de puertos 80. В “Terminal”. todo lo que tienes que hacer es introducir un comando sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTdonde – Añadir una nueva regla, ENTRADA – indicación del circuito, -P – definición del protocolo, en este caso TCP, y –puerto – puerto de destino.

El mismo comando se aplica al puerto 22que es utilizado por el servicio SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT.

Para bloquear el puerto especificado, se aplica una cadena exactamente del mismo tipo, sólo que al final ACEPTAR cambia a. DROP. El resultado es, por ejemplo, sudo iptables -A INPUT -p tcp --dport 2450 -j DROP.

Todas estas reglas se registran en el archivo de configuración y puedes verlas en cualquier momento. Como recordatorio, esto se hace a través de sudo iptables -L. Si desea resolver la dirección IP de la red junto con el puerto, la cadena se modifica ligeramente – después de TPC añadido por -s y la propia dirección. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPTdonde 12.12.12.12/32 – dirección IP requerida.

El bloqueo sigue el mismo principio, cambiando el valor al final ACEPTAR en DROP. Entonces tienes, por ejemplo, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP.

Bloqueo de ICMP

El ICMP (Internet Control Message Protocol) es un protocolo que forma parte de TCP/IP y que interviene en la transmisión de mensajes de error y emergencia cuando se gestiona el tráfico. Por ejemplo, cuando el servidor solicitado no está disponible, es la herramienta la que realiza las funciones del servicio. La utilidad iptables te permite bloquearlo a través del firewall, y puedes hacerlo con un comando sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP. Esto bloqueará las peticiones desde y hacia su servidor.

Las solicitudes entrantes se bloquean de forma un poco diferente. Entonces tienes que introducir sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP. Después de activar estas reglas, el servidor no responderá a las solicitudes de ping.

Evitar acciones no autorizadas en el servidor

A veces los servidores son objeto de ataques DDoS u otras acciones no autorizadas por parte de los atacantes. Una configuración adecuada del cortafuegos le permitirá protegerse de este tipo de piratería. Para empezar, le recomendamos que establezca estas reglas:

  1. Escribir en la consola iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPTdonde –limite 20/minuto – Limitar la frecuencia de los resultados positivos. Usted mismo puede especificar la unidad de medida, por ejemplo, /second, /minute, /hour, /day. –número de ráfagas límite – Limita el número de paquetes que se pueden reenviar. Todos los valores se establecen individualmente según las preferencias del administrador.
  2. A continuación, puede desactivar el escaneo de puertos abiertos para eliminar una de las posibles causas de la piratería. Introduzca el primer comando sudo iptables -N block-scan.
  3. A continuación, especifique sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN.
  4. El último tercer comando tiene la forma: sudo iptables -A block-scan -j DROP. La expresión escaneo en bloque en estos casos es el nombre del circuito utilizado.

La configuración que se muestra hoy es sólo la operación básica en la herramienta de gestión del cortafuegos. En la documentación oficial de la utilidad encontrará una descripción de todos los argumentos y opciones disponibles y podrá configurar el cortafuegos específicamente según sus necesidades. Más arriba hemos hablado de las normas de seguridad estándar que se aplican con más frecuencia y que, en la mayoría de los casos, son obligatorias.

Nos alegramos de haber podido ayudarle con su problema.

Describa lo que no le ha funcionado.
Nuestros especialistas tratarán de responder con la mayor rapidez posible.

¿Le ha ayudado este artículo?