Serie RHCSA Firewall Essentials y control de tráfico de red utilizando Firewalld e Iptables - Parte 11

Serie RHCSA Firewall Essentials y control de tráfico de red utilizando Firewalld e Iptables - Parte 11

En palabras simples, un cortafuegos es un sistema de seguridad que controla el tráfico entrante y saliente en una red basado en un conjunto de reglas predefinidas (como el destino / fuente o tipo de tráfico del paquete, por ejemplo).

RHCSA: Control del tráfico de red con Firewalld e Iptables - Parte 11

En este artículo revisaremos los conceptos básicos de cortafuegos, el demonio de firewall dinámico predeterminado en Red Hat Enterprise Linux 7, y iptables Servicio, el servicio de firewall heredado para Linux, con el que la mayoría de los administradores de sistemas y redes están bien familiarizados, y que también está disponible en Rhel 7.

Una comparación entre Firewalld e iptables

Debajo del capó, ambos cortafuegos y el iptables Servicio hablar con el netfilter Marco en el núcleo a través de la misma interfaz, como era de esperar, el comando iptables. Sin embargo, a diferencia del servicio iptable, Firewalld puede cambiar la configuración durante la operación normal del sistema sin que se pierdan las conexiones existentes.

Cortafuegos debe instalarse de forma predeterminada en su sistema RHEL, aunque es posible que no se esté ejecutando. Puede verificar con los siguientes comandos (firewall-config es la herramienta de configuración de la interfaz de usuario):

# yum info firewalld firewall-config 
Consulte la información de Firewalld

y,

# systemCTL status -l firewalld.servicio 
Verifique el estado de firewalld

Por otro lado, el iptables El servicio no está incluido de forma predeterminada, pero se puede instalar a través de.

# Yum Update && Yum Install Iptables-Services 

Ambos demonios se pueden iniciar y habilitarse para comenzar con lo habitual system Comandos:

# SystemCTL iniciar firewalld.servicio | iptable-servicio.Servicio # SystemCTL Habilitar firewalld.servicio | iptable-servicio.servicio 

Leer también: Comandos útiles para administrar los servicios Systemd

En cuanto a los archivos de configuración, el servicio iptables usa /etc/sysconfig/iptables (que no existirá si el paquete no está instalado en su sistema). En un cuadro RHEL 7 utilizado como nodo de clúster, este archivo se ve lo siguiente:

Configuración de firewall de iptables

Mientras que Firewalld almacena su configuración en dos directorios, /usr/lib/firewalld y /etc/firewalld:

# ls/usr/lib/firewalld/etc/firewalld 
Configuración de firewalld

Examinaremos estos archivos de configuración más adelante en este artículo, después de agregar algunas reglas aquí y allá. Por ahora, será suficiente recordarle que siempre puede encontrar más información sobre ambas herramientas con.

# Man Firewalld.conf # hombre firewall-cmd # hombre iptable 

Aparte de eso, recuerde echar un vistazo a la revisión de los comandos esenciales y la documentación del sistema: parte 1 de la serie actual, donde describí varias fuentes donde puede obtener información sobre los paquetes instalados en su Rhel 7 sistema.

Uso de iptables para controlar el tráfico de red

Es posible que desee consultar Configurar el firewall iptable - Parte 8 de la Ingeniero certificado de la Fundación Linux (LFCE) Serie para actualizar su memoria sobre iptables Internales antes de continuar. Por lo tanto, podremos saltar directamente a los ejemplos.

Ejemplo 1: permitiendo el tráfico web entrante y saliente

Puertos TCP 80 y 443 son los puertos predeterminados utilizados por el servidor web Apache para manejar la normalidad (Http) y seguro (Https) tráfico web. Puede permitir el tráfico web entrante y saliente a través de ambos puertos en el ENP0S3 interfaz de la siguiente manera:

# iptables -a entrada -i enp0s3 -p tcp --dport 80 -m state - -state nuevo, establecido -j Aceptar # iptables -a output -o enp0s3 -p tcp --sport 80 -m state - -state establecido - - j Aceptar # iptable -a entrada -i enp0s3 -p tcp --dport 443 -m state - -state nuevo, establecido -j Aceptación # iptable -a salida -o enp0s3 -p tcp --esport 443 -m state - -state - -state Establecido -j aceptar 
Ejemplo 2: Bloquear todas (o algunas) conexiones entrantes desde una red específica

Puede haber momentos en los que necesite bloquear todo (o algún) tipo de tráfico que se origina en una red específica, digamos 192.168.1.24/04 Por ejemplo:

# iptables -i entrada -s 192.168.1.0/24 -J Drop 

dejará caer todos los paquetes provenientes del 192.168.1.24/04 red, mientras que,

# iptables -A entrada -s 192.168.1.0/24 --dport 22 -J aceptar 

solo permitirá el tráfico entrante a través del puerto 22.

Ejemplo 3: redirigir el tráfico entrante a otro destino

Si usas tu Rhel 7 Box no solo como un firewall de software, sino también como el real basado en hardware, para que se encuentre entre dos redes distintas, el reenvío de IP ya debe haber sido habilitado en su sistema. Si no, necesitas editar /etc/sysctl.confusión y establecer el valor de neto.IPv4.ip_forward a 1, como sigue:

neto.IPv4.ip_forward = 1 

Luego guarde el cambio, cierre su editor de texto y finalmente ejecute el siguiente comando para aplicar el cambio:

# sysctl -p /etc /sysctl.confusión 

Por ejemplo, puede tener una impresora instalada en una caja interna con IP 192.168.0.10, con el TAZAS Servicio que escucha en el puerto 631 (tanto en el servidor de impresión como en su firewall). Para reenviar las solicitudes de impresión de los clientes en el otro lado del firewall, debe agregar la siguiente regla de iptables:

# iptables -t nat -a prelamoring -i enp0s3 -p tcp --dport 631 -j dnat -a 192.168.0.10: 631 

Tenga en cuenta que iptables Lee sus reglas secuencialmente, así que asegúrese de que las políticas predeterminadas o las reglas posteriores no anulen las descritas en los ejemplos anteriores.

Comenzando con Firewalld

Uno de los cambios introducidos con cortafuegos son zonas. Este concepto permite separar las redes en diferentes zonas de confianza que el usuario ha decidido colocar en los dispositivos y el tráfico dentro de esa red.

Para enumerar las zonas activas:

# firewall-cmd --get-active-zones 

En el ejemplo a continuación, el zona pública está activo y el ENP0S3 La interfaz se ha asignado automáticamente. Para ver toda la información sobre una zona en particular:

# firewall-cmd --zone = public --list-all 
Enumere todas las zonas de firewalld

Ya que puedes leer más sobre zonas En la Guía de seguridad de RHEL 7, solo enumeraremos algunos ejemplos específicos aquí.

Ejemplo 4: Permitir servicios a través del firewall

Para obtener una lista de los servicios compatibles, use.

# Firewall-CMD-Servicios 
Enumere todos los servicios compatibles

Permitir http y https Tráfico web a través del firewall, con efecto inmediato y en botas posteriores:

# firewall-cmd --zone = myzone --add-service = http # firewall-cmd --zone = myzone --permanent --add-service = http # firewall-cmd --zone = myzone --add-service = https # firewall-cmd --zone = myzone --permanent --add-service = https # firewall-cmd--relead 

If código> -zone se omite, la zona predeterminada (puede verificar con firewall-cmd -get-default-zone) se usa.

Para eliminar la regla, reemplace la palabra agregar con eliminar en los comandos anteriores.

Ejemplo 5: reenvío de IP / puerto

En primer lugar, debe averiguar si la mascarada está habilitada para la zona deseada:

# firewall-cmd --zone = myzone --query-Masquerade 

En la imagen a continuación, podemos ver que disfrazado está habilitado para el zona externa, Pero no para público:

Verifique el estado de mascaramiento

Puede habilitar la mascaramiento para el público:

# firewall-cmd --zone = public --add-Masquerade 

o usar mascar en externo. Esto es lo que haríamos para replicar Ejemplo 3 con cortafuegos:

# firewall-cmd --zone = externo --add-forward-puert = port = 631: proto = tcp: toport = 631: toaddr = 192.168.0.10 

Y no olvides recargar el firewall.

Puede encontrar más ejemplos en la Parte 9 de la serie RHCSA, donde explicamos cómo permitir o deshabilitar los puertos que generalmente utilizan un servidor web y un servidor FTP, y cómo cambiar la regla correspondiente cuando el puerto predeterminado para esos servicios están cambiados. Además, es posible que desee consultar el wiki de firewalld para más ejemplos.

Leer también: Ejemplos de firewalld útiles para configurar el firewall en RHEL 7

Conclusión

En este artículo hemos explicado qué cortafuegos es, ¿cuáles son los servicios disponibles para implementar uno en Rhel 7, y proporcionó algunos ejemplos que pueden ayudarlo a comenzar con esta tarea. Si tiene algún comentario, sugerencia o pregunta, no dude en informarnos con el formulario a continuación. gracias de antemano!