Cortafuegos

Serie RHCSA Firewall Essentials y control de tráfico de red utilizando Firewalld e Iptables - parte Top 10

Serie RHCSA Firewall Essentials y control de tráfico de red utilizando Firewalld e Iptables - parte Top 10

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).

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 

y,

# systemCTL status -l firewalld.servicio 

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:

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

# ls/usr/lib/firewalld/etc/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 

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 

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 

Si se omite el código> -zone, 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:

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!

Página de SCP-manual
Nombre SCP-Copia segura (programa de copia de archivo remoto) Sinopsis SCP [-12346BCPQRV] [-c cifrado] [-f ssh_config] [-i identity_file] [-l límite] ...
Instalación de Sikuli en Ubuntu Lucid Lynx Linux
El software Sikuli ayuda a un usuario a automatizar muchas de las tareas de rutina de GUI. Core usa Java Runtime Environment 6 y OpenCV (Visión de la ...
No hay un módulo vboxnetflt adecuado para ejecutar el kernel encontrado fallado!
Hoy he decidido avanzar en la evolución del software y usar backports de Debian en mi computadora portátil X60S. La versión estable de Debian es genia...