Cómo instalar, configurar y usar Firewalld en Centos y Ubuntu
- 4118
- 787
- Eduardo Tapia
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--StateVerifique 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-zoneLista 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 = wlp1s0Agregue 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 = wlp1s0Cambiar 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-zonesLista 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úblicoEncuentre 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-iCmptypesLista 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.comunicarseHabilitar 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) Sí
(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.
- « NIX el administrador de paquetes puramente funcional para Linux
- Hegemon una herramienta de monitoreo de sistema modular para Linux »