Cómo empezar con firewalld en Linux

Puntos clave

  • Firewalld es un firewall moderno y potente para Linux que es fácil de configurar mediante la línea de comandos o la interfaz GUI.
  • Los firewalls son importantes para limitar y controlar las conexiones de red a su computadora para mejorar la seguridad.
  • Firewalld utiliza zonas para organizar las reglas del firewall y permite realizar ajustes y personalización en función de las diferentes necesidades de seguridad.

Si está buscando un firewall para Linux moderno y potente que sea fácil de configurar desde la línea de comandos o con su propia interfaz GUI, entonces firewalld probablemente eso es lo que estás buscando.

Este artículo de la Semana de concientización sobre la ciberseguridad se presentó en asociación con Incogni.

→ Índice de contenidos
  • ¿Por qué necesitas un firewall?
  • Instalación de firewall
  • El concepto de zonas.
  • Agregar y eliminar servicios
  • Agregar y eliminar puertos y protocolos
  • Usando la GUI
  • La punta del iceberg
  • ¿Por qué necesitas un firewall?

    Las conexiones de red tienen un origen y un destino. El software en origen solicita la conexión y el software en destino la acepta o rechaza. Si se acepta, los paquetes de datos, genéricamente llamados tráfico de red, pueden pasar en cualquier dirección a través de la conexión. Esto es cierto ya sea que esté compartiendo desde el otro lado de la habitación de su casa, conectándose de forma remota para trabajar desde su oficina en casa o utilizando un recurso distante basado en la nube.

    Las buenas prácticas de seguridad dicen que debes limitar y controlar las conexiones a tu computadora. Esto es lo que hacen los cortafuegos. Filtran el tráfico de red por dirección IP, puerto o protocolo y rechazan conexiones que no cumplen con un conjunto predefinido de criterios (las reglas de firewall) que usted configura. Son como personal de seguridad en un evento exclusivo. Si tu nombre no está en la lista, no entrarás.

    Por supuesto, no desea que las reglas de su firewall sean tan restrictivas que limiten sus actividades normales. Cuanto más sencillo sea configurar su firewall, menos posibilidades tendrá de establecer inadvertidamente reglas conflictivas o draconianas. A menudo escuchamos a los usuarios decir que no usan un firewall porque es demasiado complicado de entender o porque la sintaxis del comando es demasiado opaca.

    EL firewalld El firewall es potente pero fácil de configurar, tanto desde la línea de comandos como a través de su aplicación GUI dedicada. En el fondo, los cortafuegos de Linux se basan netfilter, el marco de filtrado de red del lado del kernel. Aquí, en el territorio de los usuarios, tenemos una variedad de herramientas con las que interactuar. netfilter Por ejemplo iptables, ufw el simple cortafuegos e firewalld.

    En nuestra opinion, firewalld Ofrece el mejor equilibrio entre funcionalidad, granularidad y simplicidad.

    Instalación de firewall

    Hay dos partes firewalld . Hay firewalld el proceso demonio que proporciona la funcionalidad del firewall, y ahí está firewall-config. Esta es la GUI opcional para firewalld. Tenga en cuenta que no contiene ninguna "d". firewall-config.

    Instalación firewalld en Ubuntu, Fedora y Manjaro es sencillo en todos los casos, aunque cada uno tiene su propia opinión sobre lo que viene preinstalado y lo que viene empaquetado.

    Para instalar en Ubuntu, necesitamos instalar firewalld Y firewall-config.

    sudo apt install firewalld
    sudo apt install firewall-config

    Instalación de firewall-config en Ubuntu

    En Fedora, firewalld ya está instalado. Sólo tenemos que agregar firewall-config .

    sudo dnf install firewall-config

    Instalación de firewall-config en Fedora

    En Manjaro, ninguno de los componentes está preinstalado, pero están incluidos en un único paquete para que puedas instalar ambos con un solo comando.

    sudo pacman -Sy firewalld

    Instalación de firewalld y firewall-config con un comando en Manjaro

    Necesitamos habilitar el firewalld daemon para permitir que se ejecute cada vez que se inicia la computadora.

    sudo systemctl enable firewalld

    Habilitar firewalld para que se inicie automáticamente al iniciar

    Y necesitamos iniciar el demonio para que se esté ejecutando ahora.

    sudo systemctl start firewalld

    Iniciando el demonio firewalld

    Nosotros podemos usar systemctl para comprobarlo firewalld Se puso en marcha y funciona sin problemas:

    sudo systemctl status firewalld

    Comprobando el estado del firewalld con systemctl

    También podemos usar firewalld para comprobar si está funcionando. Esto utiliza el firewall-cmd comando con el --state opción. Tenga en cuenta que no contiene ninguna "d". firewall-cmd :

    sudo firewall-cmd --state

    Comprobando el estado de firewalld con el comando firewall-cmd

    Ahora que tenemos el firewall en funcionamiento, podemos pasar a configurarlo.

    El concepto de zonas.

    EL firewalld el firewall está basado en zonas. Las zonas son colecciones de reglas de firewall y una conexión de red asociada. Esto le permite personalizar diferentes zonas y un conjunto diferente de restricciones de seguridad bajo las cuales puede operar. Por ejemplo, es posible que tengas una zona definida para correr todos los días, otra zona para correr de forma más segura y una zona de bloqueo completa de "nada dentro, nada fuera".

    Para pasar de una zona a otra, y de hecho de un nivel de seguridad a otro, mueve su conexión de red de la zona en la que se encuentra a la zona en la que desea ejecutar.

    Esto hace que pasar de un conjunto definido de reglas de firewall a otro sea muy rápido. Otra forma de utilizar zonas sería hacer que tu portátil utilice una zona cuando estés en casa y otra cuando estés fuera y utilices una red Wi-Fi pública.

    firewalld Viene con nueve zonas preconfiguradas. Estos se pueden modificar y agregar o eliminar más zonas.

    • goteo: todos los paquetes entrantes se descartan. Se permite el tráfico saliente. Este es el escenario más paranoico.
    • bloquear: Todos los paquetes entrantes se descartan y se icmp-host-prohibited el mensaje se envía al remitente. Se permite el tráfico saliente.
    • confiable: Se aceptan todas las conexiones de red y se confía en otros sistemas. Esta es la configuración más confiable y debe limitarse a entornos muy seguros, como redes de prueba cautivas o su hogar.
    • público: Esta zona debe usarse en redes públicas o de otro tipo donde no se pueda confiar en ninguna de las otras computadoras. Se acepta una pequeña selección de solicitudes de conexión comunes y normalmente seguras.
    • externo: Esta zona debe usarse en redes externas con el enmascaramiento NAT (reenvío de puertos) habilitado. Su firewall actúa como un enrutador que reenvía el tráfico a su red privada, la cual permanece accesible, pero sigue siendo privada.
    • interno: Esta zona está diseñada para usarse en redes internas cuando el sistema actúa como puerta de enlace o enrutador. Generalmente se confía en otros sistemas de esta red.
    • dmz: Esta zona está reservada para equipos ubicados en la "zona desmilitarizada" fuera de las defensas perimetrales y con acceso limitado a la red.
    • Trabajar: Esta zona está reservada para máquinas de trabajo. Generalmente se confía en otras computadoras de esta red.
    • hogar: Esta zona es para máquinas domésticas. Generalmente se confía en otras computadoras de esta red.

    Las zonas de hogar, trabajo e interior tienen funciones muy similares, pero separarlas en diferentes zonas te permite personalizar una zona a tu gusto, encapsulando un conjunto de reglas para un escenario particular.

    Un buen punto de partida es averiguar cuál es la zona predeterminada. Esta es la zona donde se agregan sus interfaces de red cuando firewalld esta instalado.

    sudo firewall-cmd --get-default-zone

    Encuentre la zona firewalld predeterminada

    Nuestra zona predeterminada es la zona pública. Para ver los detalles de configuración de una zona, utilice el --list-all opción. Enumera todo lo que se ha agregado o habilitado para una zona.

    sudo firewall-cmd --zone=public --list-all

    Lista de detalles de la zona pública

    Podemos ver que esta zona está asociada a la conexión de red enp0s3 y permite tráfico relacionado con DHCP, mDNS y SSH. Dado que se ha agregado al menos una interfaz a esta zona, esta zona está activa.

    firewalld le permite agregar servicios desde los cuales desea aceptar tráfico a una zona. Por tanto, esa zona permite el paso de ese tipo de tráfico. Esto es más fácil que recordar que mDNS, por ejemplo, usa el puerto 5353 y el protocolo UDP y agregar manualmente esos detalles a la zona. Aunque tú también puedes hacerlo.

    Si ejecutamos el comando anterior en un portátil con conexión Ethernet y tarjeta Wi-Fi veremos algo similar, pero con dos interfaces.

    sudo firewall-cmd --zone=public --list-all

    Un área con dos interfaces en su interior.

    Nuestras dos interfaces de red se han agregado a la zona predeterminada. La zona tiene reglas para los mismos tres servicios que el primer ejemplo, pero se agregaron DHCP y SSH como servicios con nombre, mientras que se agregó mDNS como emparejamiento de puerto y protocolo.

    Para enumerar todas las zonas utilice el archivo --get-zones opción.

    sudo firewall-cmd --get-zones

    Lista de todas las zonas firewalld

    Para ver la configuración de todas las zonas a la vez, utilice el --list-all-zones opción. Te recomendamos que lo introduzcas. less.

    sudo firewall-cmd --list-all-zones | less

    Lista de detalles de todas las zonas.

    Esto es útil porque puede desplazarse por la lista o utilizar la función de búsqueda para buscar números de puerto, protocolos y servicios.

    Detalles de todas las zonas mostrados menos

    En nuestro portátil trasladaremos nuestra conexión Ethernet de la zona pública a la zona doméstica. podemos hacerlo con --zone Y --change-interface opciones.

    sudo firewall-cmd --zone=home --change-interface=enp3s0

    Agregar una interfaz de red a la zona local

    Echemos un vistazo al área de inicio y veamos si se ha realizado nuestro cambio.

    sudo firewall-cmd --zone=home --list-all

    La zona de inicio con una interfaz de red adicional

    Y así fue. Nuestra conexión Ethernet se agrega a la zona de inicio.

    Sin embargo, este no es un cambio permanente. Cambiamos la configuración en ejecución del firewall, no la configuración almacenada. Si reiniciamos o utilizamos el --reload opción, restauraremos nuestra configuración anterior.

    Para hacer que un cambio sea permanente, debemos usar el nombre apropiado --permanent opción.

    Esto significa que podemos modificar el firewall para requisitos únicos sin alterar la configuración del firewall almacenada. También podemos probar los cambios antes de enviarlos a la configuración. Para que nuestro cambio sea permanente, el formato que debemos utilizar es:

    sudo firewall-cmd --zone=home --change-interface=enp3s0 --permanent

    Si realiza algunos cambios pero olvida usarlos --permanent en algunos de ellos puede escribir la configuración de la sesión actual del firewall en la configuración usando el archivo --runtime-to-permanent opción.

    sudo firewall-cmd --runtime-to-permanent

    Recargar la configuración del firewall

    Agregar y eliminar servicios

    firewalld Conoce muchos servicios. Puedes enumerarlos usando el --get-services opción.

    sudo firewall-cmd --get-services

    Enumera los servicios a los que firewalld puede hacer referencia por nombre

    nuestra versión de firewalld 192 servicios listados. Para habilitar un servicio en una zona, utilice el --add-service opción.

    Lista de servicios reconocidos

    Podemos agregar un servicio a una zona usando el --add-service opción.

    sudo firewall-cmd --zone=public --add-service=http

    Agregar el servicio HTTP a una zona

    El nombre del servicio debe coincidir con su entrada en la lista de servicios. firewalld.

    Para eliminar un servicio, reemplácelo --add-service con --remove-service

    Agregar y eliminar puertos y protocolos

    Si prefiere elegir qué puertos y protocolos agregar, también puede hacerlo. Necesitará saber el número de puerto y el protocolo para el tipo de tráfico que está agregando.

    Agreguemos tráfico HTTPS a la zona pública. Utiliza el puerto 443 y es una forma de tráfico TCP.

    sudo firewall-cmd --zone=public --add-port=443/tcp

    Agregar un emparejamiento de puerto y protocolo a una zona

    Puede proporcionar una variedad de puertos proporcionando el primer y último puerto con un guión".-" entre ellos, como "400-450".

    Para quitar una puerta, reemplácela --add-port con --remove-port .

    Usando la GUI

    Presiona la tecla "Super" y comienza a escribir "firewall". Verás el ícono de la pared de ladrillos para firewall-config solicitud.

    El icono de configuración del firewall

    Haga clic en el icono para iniciar la aplicación.

    Para agregar un servicio a firewalld Usar la GUI es tan simple como seleccionar una zona de la lista de zonas y seleccionar el servicio de la lista de servicios.

    Puede optar por cambiar la sesión en ejecución o la configuración persistente seleccionando "Tiempo de ejecución" o "Permanente" en el menú desplegable "Configuración".

    El menú desplegable de configuración

    Para realizar cambios en la sesión en ejecución y confirmar los cambios solo después de probar su funcionamiento, configure el menú "Configuración" en "Tiempo de ejecución". Haz tus cambios. Una vez que esté satisfecho de que están haciendo lo que desea, use la opción de menú Opciones > Tiempo de ejecución a permanente.

    Para agregar un puerto y una entrada de protocolo a una zona, seleccione la zona de la lista de zonas y haga clic en "Puertos". Al hacer clic en el botón Agregar, puede proporcionar el número de puerto y seleccionar el protocolo en un menú.

    Agregar un emparejamiento de puerto y protocolo usando la GUI de configuración del firewall

    Para agregar un protocolo, haga clic en "Protocolos", haga clic en el botón "Agregar" y seleccione el protocolo en el menú emergente.

    Un protocolo en la zona pública, en la GUI de configuración del firewall.

    Para mover una interfaz de una zona a otra, haga doble clic en la interfaz en la lista "Conexiones", luego seleccione la zona en el menú emergente.

    Mover una interfaz de red de una zona a otra en la GUI de configuración del firewall

    La punta del iceberg

    Hay mucho más con lo que puedes hacer firewalld, pero eso es suficiente para ponerlo en funcionamiento. Con la información que le hemos proporcionado, podrá crear reglas significativas en sus áreas.

    Subir Change privacy settings