Cómo instalar, configurar y usar Firewalld en Centos y Ubuntu

Cómo instalar, configurar y usar Firewalld en Centos y Ubuntu

Firewalld (Daemon de Firewall) es una alternativa al iptables Servicio, para administrar dinámicamente el firewall de un sistema con soporte para zonas de red (o firewall) y proporciona una interfaz D-Bus para administrar configuraciones. Es fácil de usar y configurar, y ahora es la herramienta de administración de firewall predeterminada en Rhel/centos, Fedora y varias otras distribuciones de Linux.

En este artículo, discutiremos cómo configurar el firewall del sistema con cortafuegos e implementar el filtrado básico de paquetes en CentOS/RHEL 7 y Ubuntu.

Lo básico sobre el firewalld

Cortafuegos se compone de tres capas, que son, el:

  • capa de núcleo: Responsable de manejar la configuración y los extremos posteriores (enumerados a continuación).
  • Interfaz d-bus: El medio principal para cambiar y crear la configuración del firewall.
  • backends: para interactuar con NetFilter (el módulo nativo del núcleo utilizado para firewalling). Incluyen iptables, IP6Tables, EBTables, IPSet, NFT, Linnftables; gerente de Redes; y módulos.

Gestiona las reglas de firewall mediante la implementación de zonas de red/firewall que definen el nivel de confianza de las conexiones o interfaces de red. Otras características compatibles con el firewall incluyen servicios, configuración directa (utilizada para pasar directamente sintaxis de iptables sin procesar), iPsets y tipos de ICMP.

Dos tipos de entornos de configuración son compatibles con Firewalld:

  • Configuración de tiempo de ejecución que solo es efectiva hasta que la máquina se haya reiniciado o se ha reiniciado el servicio Firewalld
  • Configuración permanente que se guarda y funciona de manera persistente.

La herramienta de línea de comandos Firewall-CMD se utiliza para administrar tiempo de ejecución y configuración permanente. Alternativamente, puede usar la herramienta de configuración de interfaz gráfica de usuario de firewall-config (GUI) para interactuar con el demonio.

Además, cortafuegos Ofrece una interfaz bien definida para otros servicios o aplicaciones locales para solicitar cambios directamente en las reglas del firewall, si se ejecutan con privilegios raíz.

El archivo de configuración global para firewalld se encuentra en /etc/firewalld/firewalld.confusión y las características de firewall están configuradas en formato XML.

Comprender las características importantes de Firewalld

La característica central de Firewalld son las zonas de red/firewall. Cualquier otra característica está limitada a una zona. Una zona de firewall describe el nivel de confianza para una conexión, interfaz o vinculación de la dirección de origen.

La configuración predeterminada viene con una serie de zonas predefinidas ordenadas de acuerdo con el nivel de confianza predeterminado de las zonas de no confiable a confianza: Drop, Bloque, público, externo, DMZ, trabajo, hogar, interno y confiable. Se definen en archivos almacenados bajo el /usr/lib/firewalld/zons directorio.

Puede configurar o agregar sus zonas personalizadas usando el cliente CLI o simplemente crear o copiar un archivo de zona en /etc/firewalld/zonas desde archivos existentes y edítelo.

Otro concepto importante en Firewalld son los servicios. Un servicio se define utilizando puertos y protocolos; Estas definiciones representan un servicio de red dado, como un servidor web o un servicio de acceso remoto. Los servicios se definen en archivos almacenados bajo el /usr/lib/firewalld/Services/ o /etc/firewalld/Services/ directorio.

Si conoce conceptos básicos de iptables/ip6tables/ebtables, también puede usar la interfaz directa (o configuración) para obtener acceso directo al firewall. Pero, para aquellos sin conocimiento de Iptables, puede emplear el lenguaje rico para crear reglas de firewall más complejas para IPv4 e IPv6.

Cómo instalar el paquete Firewalld en Linux

En Centos 7, el cortafuegos El paquete viene preinstalado y puede verificar usando el siguiente comando.

$ rpm -qa firewalld 

En Ubuntu 16.04 y 18.04, Puede instalarlo utilizando el Administrador de paquetes predeterminado como se muestra.

$ sudo apt install firewalld 

Cómo administrar el servicio de firewalld en Linux

Cortafuegos es un servicio systemd regular que se puede administrar a través del comando SystemCTL.

 $ sudo SystemCTL Inicio Firewalld #Star el servicio para el tiempo medio $ sudo systemctl Habilitar firewalld #enable El servicio para iniciar automáticamente en tiempo de arranque $ sudo systemctl status firewalld status 

Después de comenzar cortafuegos servicio, también puede verificar si el demonio está funcionando o no, utilizando el firewall-cmd herramienta (en caso de que no esté activo, este comando saldrá "no ejecutándose").

$ sudo firewall-cmd--State 
Verifique el estado de firewalld

Si ahorra algún cambio de forma permanente, puede recargar Firewalld. Esto recargará las reglas del firewall y mantendrá la información estatal. La configuración permanente actual se convertirá en una nueva configuración de tiempo de ejecución.

$ sudo firewall-cmd--Reload 

Cómo trabajar con zonas de firewall en Firewalld

Para obtener una lista de todas las zonas y servicios de firewall disponibles, ejecute estos comandos.

$ sudo firewall-cmd --get-zones $ sudo firewall-cmd --get-services 

La zona predeterminada es la zona que se usa para cada característica de firewall que no está explícitamente limitada a otra zona. Puede obtener la zona predeterminada establecida para conexiones e interfaces de red ejecutando.

$ sudo firewall-cmd --get-default-zone 
Lista de la zona de firewalld de lista predeterminada

Para establecer la zona predeterminada, por ejemplo en externo, use el siguiente comando. Tenga en cuenta que agregar la opción --permanente Establece la configuración de forma permanente (o habilita la consulta de información del entorno de configuración permanente).

$ sudo firewall-cmd --set-default-zone = externo o $ sudo firewall-cmd --set-default-zone = externo --permanent $ sudo firewall-cmd--relead 

A continuación, veamos cómo agregar una interfaz a una zona. Este ejemplo muestra cómo agregar su adaptador de red inalámbrica (WLP1S0) a Zone Home, que se usa en áreas de hogar.

$ sudo firewall-cmd --zone = home --add-interface = wlp1s0 
Agregue una interfaz a la zona de firewalld

Una interfaz solo se puede agregar a una sola zona. Para moverlo a otra zona, use el --interfaz de cambio cambiar como se muestra, o retírelo de la zona anterior utilizando el -interfaz eliminar Cambie, luego agrégalo a la nueva zona.

Suponiendo que desea conectarse a una red de Wi-Fi pública, debe mover su interfaz inalámbrica a la zona pública, así:

$ sudo firewall-cmd --zone = public --add-interface = wlp1s0 $ sudo firewall-cmd --zone = public --change-interface = wlp1s0 
Cambiar la interfaz de zona en Firewalld

Puedes usar muchas zonas al mismo tiempo. Para obtener una lista de todas las zonas activas con las características habilitadas, como interfaces, servicios, puertos, protocolos, ejecución:

$ sudo firewall-cmd --get-active-zones 
Lista de zonas activas en Firewalld

En relación con el punto anterior, si desea encontrar más información sobre una zona en particular, yo.E Todo agregado o habilitado en él, use uno de estos comandos:

$ sudo firewall-cmd --zone = home --list-all o $ sudo firewall-cmd --info-zone público 
Encuentre información de la zona de firewall

Otra opción útil es --objetivo, que te muestra el objetivo de una zona permanente. Un objetivo es uno de: predeterminado, aceptar, soltar, rechazar. Puede verificar el objetivo de varias zonas:

$ sudo firewall-cmd --Permanent --zone = public --get-Target $ sudo firewall-cmd --permanent --zone = block --get-target $ sudo firewall-cmd --permanent --zone = dmz- -get-Target $ sudo firewall-cmd --Permanent --zone = externo --get-target $ sudo firewall-cmd --permanent --zone = drop --get-Target 

Cómo abrir y bloquear los puertos en Firewalld

Para abrir un puerto (o combinación de puerto/protocolo) en el firewall, simplemente agréguelo en una zona con el --puerto opción. Si no especifica explícitamente la zona, se habilitará en la zona predeterminada.

El siguiente ejemplo muestra cómo agregar puerto 80 y 443 para permitir el tráfico web interno a través del Http y Https Protocolos, respectivamente:

$ sudo firewall-cmd --zone = public --permanent --add-port = 80/tcp --add-puer = 443/tcp 

A continuación, vuelva a cargar firewalld y verifique las funciones habilitadas en la zona pública una vez más, debería poder ver los puertos acaba de agregar.

$ sudo firewall-cmd--Reload $ sudo firewall-cmd-Info-Zone Public 

Bloquear o cerrar un puerto en el firewall es igualmente fácil, simplemente retírelo de una zona con el --eliminar el puerto opción. Por ejemplo, para cerrar puertos 80 y 443 en la zona pública.

$ sudo firewall-cmd --zone = public --Permanent--Remove-Port = 80/TCP--Remove-Port = 443/TCP 

En lugar de usar la combinación de puerto o puerto/protocolo, puede usar el nombre del servicio al que se asigna un puerto como se explica en la siguiente sección.

Cómo abrir y bloquear los servicios en Firewalld

Para abrir un servicio en el firewall, habilitarlo utilizando el --adición opción. Si se omite la zona, se utilizará la zona predeterminada.

El siguiente comando habilitará permanentemente el servicio HTTP en la zona pública.

$ sudo firewall-cmd --zone = public --permanent --add-service = http $ sudo firewall-cmd--Reload 

El --eliminación del servicio La opción se puede usar para deshabilitar un servicio.

$ sudo firewall-cmd --zone = public --Permanent--Remove-service = http $ sudo firewall-cmd--Reload 

Cómo habilitar y deshabilitar la IP disfrazar usando Firewalld

IP disfrazar (también conocido como Ipmasq o Mazas) es un Nat (Traducción de Direcciones de Red) Mecanismo en las redes de Linux que permite a sus hosts en una red, con direcciones IP privadas para comunicarse con Internet utilizando la dirección IP pública de su servidor de Linux (IPMASQ Gateway) asignada.

Es un mapeo de uno a muchos. El tráfico de sus hosts invisibles aparecerá a otras computadoras en Internet como si viniera de su servidor de Linux.

Puede habilitar IP estaquistando en la zona deseada, por ejemplo, la zona pública. Pero antes de hacer eso, primero verifique si la mascaramiento está activo o no (un "No" significa que está discapacitado y un "Sí" significa de lo contrario).

$ sudo firewall-cmd --zone = public --query-Masquerade $ sudo firewall-cmd --zone = public --add-Masquerade 

Un caso de uso típico para disfrazar es realizar el reenvío de puertos. Suponiendo que desea SSH de una máquina remota a un host en su red interna con la IP 10.20.1.3, en el que el demonio SSHD está escuchando en el puerto 5000.

Puede reenviar todas las conexiones al puerto 22 en su servidor Linux al puerto previsto en su host de destino emitiendo:

$ sudo firewall-cmd --zone = public --add-forward-puert = port = 22 = proto = tcp: toport = 5000: toaddr = 10.20.1.3 

Para deshabilitar disfrazado en una zona, use el --eliminar la masa cambiar.

$ sudo firewall-cmd --zone = public--Remove-Masquerade 

Cómo habilitar y deshabilitar el mensaje IMCP en Firewalld

ICMP (Protocolo de mensajes de control de Internet) Los mensajes son solicitudes de información o respuestas a solicitudes de información o en condiciones de error.

Puede habilitar o deshabilitar los mensajes ICMP en el firewall, pero antes de esa primera lista todos los tipos de ICMP compatibles.

$ sudo firewall-cmd --get-iCmptypes 
Lista de tipos de ICMP compatibles en Firewalld

Para agregar o eliminar un tipo de bloque que desee.

$ sudo firewall-cmd --zone = home --Add-ICMP-BLOCK = ECHO-REPLY o $ SUDO Firewall-CMD --zone = home--Remove-ICMP-BLOCK = ECHO-REPLY 

Puede ver todos los tipos de ICMP agregados en una zona utilizando el --Bloques de List-ICMP cambiar.

$ sudo firewall-cmd --zone = home --list-ICMP-Blocks 

Cómo usar la interfaz directa para pasar los comandos de iptables sin procesar

El firewall-cmd también proporciona opciones directas (--directo) para que obtenga un acceso más directo al firewall. Esto es útil para aquellos con conocimientos básicos de iptables.

Importante: Solo debe usar las opciones directas como último recurso cuando no es posible usar el regular firewall-cmd Opciones explicadas anteriormente.

Aquí hay un ejemplo de cómo pasar la regla de iptables sin procesar, usando la --Añadir reglas cambiar. Puede eliminar fácilmente estas reglas reemplazando --regular con --eliminar la regla:

$ sudo firewall -cmd --direct --add -rule ipv4 filtre in_public_allow 0 -m tcp -p tcp --dport 80 -j aceptar 

Para más información sobre iptables, Vea esta guía: Cómo configurar un firewall iptable para habilitar el acceso remoto a los servicios en Linux.

Si no está familiarizado con la sintaxis iptable, puede optar por el firewalld "lenguaje rico"Para crear reglas de firewall más complejas de una manera fácil de entender como se explica a continuación.

Cómo usar un lenguaje rico en firewalld

El lenguaje rico (también conocido como reglas ricas) se usa para agregar reglas de firewall más complejas para IPv4 y IPv6 Sin el conocimiento de la sintaxis iptable.

Extiende las características de la zona (servicio, puerto, bloque ICMP, mascarada y puerto hacia adelante) que hemos cubierto. Admite direcciones de origen y destino, registro, acciones y límites para registros y acciones.

El --regla rica se usa para agregar reglas ricas. Este ejemplo muestra cómo permitir nuevos IPv4 y IPv6 Conexiones para el servicio http y registro 1 por minuto usando auditoría:

$ sudo firewall-cmd --Add-rich-Rich-rule = 'Regla Service Name = "Http" Audit Limit Value = "1/M" Aceptar' 

Para eliminar la regla adicional, reemplace el --regla rica opción con --eliminar la regla rica.

$ sudo firewall-cmd ---remove-rich-riche = 'regla service name = "http" valor límite de auditoría = "1/m" aceptar' 

Esta característica también permite bloquear o permitir el tráfico desde una dirección IP específica. El siguiente ejemplo muestra cómo rechazar las conexiones de la IP 10.20.1.20.

$ sudo firewall-cmd --zone = public --add-rich-rrice = 'Rule Family = "IPv4" Dirección de origen = "192.168.0.254 "rechazar ' 

Cómo habilitar y deshabilitar el modo de pánico en Firewalld

Modo de pánico es un modo especial en Firewalld donde se caen todos los paquetes internos y límite, y las conexiones activas caducarán una vez activadas.
Puede habilitar este modo en situaciones de emergencia donde sale una amenaza para su entorno de red.

Para consultar el modo de pánico, use el --consulta-pan opción.

$ sudo firewall-cmd --quey-panic 

Para habilitar el modo de pánico, use el --pánico opción. Puede probar si funciona usando el comando ping como se muestra. Porque el paquete se deja caer, el nombre www.Google.comunicarse no se puede resolver, por lo tanto, se muestra el error.

$ sudo firewall-cmd-Panic-on $ ping -c 2 www.Google.comunicarse 
Habilitar el modo de pánico en Firewalld

Para deshabilitar el modo de pánico, use el --pánico opción.

$ sudo firewall-cmd-Panic-Off 

Cómo bloquear el firewalld

Recuerde, mencionamos bajo lo básico sobre el firewalld que las aplicaciones o servicios locales pueden alterar la configuración del firewall si se ejecutan con privilegios raíz. Puede controlar qué aplicaciones pueden solicitar cambios de firewall, especificando y luego en una lista blanca de bloqueo.

Esta función está apagada de forma predeterminada, puede habilitarla o deshabilitarla con el --encerrado o --aislamiento cambiar receptivamente.

$ sudo firewall-cmd --lockdown-on o $ sudo firewall-cmd --lockdown-off 

Tenga en cuenta que se recomienda habilitar o deshabilitar esta función editando el archivo de configuración principal, porque el firewall-CMD puede no existir en la lista blanca de bloqueo cuando habilita el bloqueo.

$ sudo vim/etc/firewalld/firewalld.confusión 

Encontrar el parámetro Aislamiento y cambiar su valor de No (significa apagado) (Medios encendido).

Bloqueo = sí 

Para hacer esta configuración de recarga permanente Firewalld.

$ sudo firewall-cmd--Reload 
Resumen

Cortafuegos es un reemplazo fácil de usar para el servicio iptables, que utiliza iptables como backend. En este artículo, hemos demostrado cómo instalar el paquete Firewalld, explicó las características importantes de Firewalld y discutimos cómo configurarlas en el tiempo de ejecución y los entornos de configuración permanente.

Si tiene alguna pregunta o comentario, no dude en comunicarse con nosotros a través del formulario de comentarios a continuación. Puede consultar la página del Manual de Firewalld (Man Firewalld) o la documentación de Firewalld en el sitio web del proyecto, para obtener más información.