Cómo comenzar con firewalld en Linux

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

La necesidad de cortafuegos

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

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

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

los firewalld El cortafuegos es potente pero fácil de configurar, tanto en la línea de comandos como a través de su aplicación GUI dedicada. Bajo el capó, los cortafuegos de Linux se basan en netfilter , el marco de filtrado de red del lado del kernel. Aquí en la tierra de los usuarios, tenemos una selección de herramientas para interactuar con netfilter como iptables , ufw el cortafuegos sin complicaciones, y firewalld .

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

Instalando cortafuegos

Hay dos partes para firewalld . hay firewalld el proceso daemon que proporciona la funcionalidad del cortafuegos, y hay firewall-config . Esta es la GUI opcional para firewalld . Tenga en cuenta que no hay “d” en firewall-config .

Instalando firewalld en Ubuntu , Fedoray Manjaro es sencillo en todos los casos, aunque cada uno tiene su propia opinión sobre lo que está preinstalado y lo que se incluye.

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. Solo tenemos que agregar firewall-config .

sudo dnf install firewall-config

Instalando firewall-config en Fedora

En Manjaro, ninguno de los componentes está preinstalado, pero están incluidos en un solo paquete para que podamos instalarlos 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
                    

Habilitación de firewalld para que se inicie automáticamente en el arranque

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

                      sudo systemctl start firewalld
                    

Iniciando el demonio firewalld

Nosotros podemos usar systemctl para comprobar eso firewalld ha comenzado y se está ejecutando sin problemas:

                      sudo systemctl status firewalld
                    

Comprobando el estado de firewalld con systemctl

También podemos usar firewalld para comprobar si se está ejecutando. Esto usa el firewall-cmd comando con el --state opción. Tenga en cuenta que no hay “d” en firewall-cmd :

                      sudo firewall-cmd --state
                    

Comprobación del estado de firewalld con el comando firewall-cmd

Ahora que tenemos el firewall instalado y funcionando, podemos pasar a configurarlo.

El concepto de zonas

los firewalld El cortafuegos se basa en zonas. Las zonas son colecciones de reglas de firewall y una conexión de red asociada. Esto le permite adaptar diferentes zonas, y un conjunto diferente de limitaciones de seguridad, bajo las cuales puede operar. Para examplees posible que tenga una zona definida para correr todos los días, otra zona para correr de manera más segura y una zona de bloqueo completo “nada adentro, nada afuera”.

Para pasar de una zona a otra, y efectivamente 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 sea muy rápido mover uno de un conjunto definido de reglas de firewall a otro. Otra forma de usar zonas sería hacer que su computadora portátil use una zona cuando está en casa y otra cuando está fuera y usa Wi-Fi público.

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

  • soltar : 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 se envía el mensaje al autor. Se permite el tráfico saliente.
  • de confianza : Se aceptan todas las conexiones de red y se confía en otros sistemas. Esta es la configuración más confiable y debe restringirse a entornos muy seguros, como redes de prueba cautivas o su hogar.
  • público : esta zona es para uso en redes públicas o de otro tipo donde no se puede confiar en ninguna de las otras computadoras. Se acepta una pequeña selección de solicitudes de conexión comunes y generalmente seguras.
  • externo : esta zona es para uso en redes externas con enmascaramiento NAT (reenvío de puertos) habilitado. Su firewall actúa como un enrutador que reenvía el tráfico a su red privada, que permanece accesible, pero aún es privada.
  • interno : esta zona está diseñada para usarse en redes internas cuando su sistema actúa como puerta de enlace o enrutador. En general, se confía en otros sistemas de esta red.
  • dmz : Esta zona es para computadoras ubicadas en la “zona desmilitarizada” fuera de las defensas de su perímetro y con acceso limitado a su red.
  • trabajar : Esta zona es para máquinas de trabajo. Por lo general, se confía en otras computadoras en esta red.
  • hogar : Esta zona es para máquinas domésticas. Por lo general, se confía en otras computadoras en esta red.

Las zonas de hogar, trabajo e interna tienen una función muy similar, pero separarlas en diferentes zonas le permite ajustar una zona a su 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 a la que se agregan sus interfaces de red cuando firewalld esta instalado.

                      sudo firewall-cmd --get-default-zone
                    

Encontrar la zona cortafuegos 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. Esto enumera todo lo que se ha agregado o habilitado para una zona.

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

Listado de los detalles de la zona pública

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

firewalld le permite agregar servicios de los que le gustaría aceptar tráfico a una zona. Esa zona luego permite ese tipo de tráfico. Esto es más fácil que recordar que mDNS, por example, usa el puerto 5353 y el protocolo UDP, y agrega manualmente esos detalles a la zona. Aunque también puedes hacerlo.

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

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

Una zona con dos interfaces en ella

Nuestras dos interfaces de red se han agregado a la zona predeterminada. La zona tiene reglas para los mismos tres servicios que la primera examplepero DHCP y SSH se han agregado como servicios con nombre, mientras que mDNS se ha agregado como un emparejamiento de puerto y protocolo.

Para listar todas las zonas use el --get-zones opción.

                      sudo firewall-cmd --get-zones
                    

Listado de todas las zonas cortafuegos

Para ver la configuración de todas las zonas a la vez, utilice el --list-all-zones opción. Querrá canalizar esto en less .

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

Listado de los 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.

Los detalles de todas las zonas se muestran en menos

En nuestra computadora portátil, vamos a mover nuestra conexión Ethernet de la zona pública a la zona de casa. Podemos hacer eso con el --zone y --change-interface opciones

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

Adición de una interfaz de red a la zona de inicio

Echemos un vistazo a la zona de inicio y veamos si nuestro cambio se ha realizado.

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

La zona de inicio con una interfaz de red agregada

Y tiene. Nuestra conexión Ethernet se agrega a la zona de inicio.

Sin embargo, esto no es un cambio permanente. Hemos cambiado la configuración en ejecución del cortafuegos, no su configuración almacenada. Si reiniciamos o usamos el --reload opción, volveremos a nuestra configuración anterior.

Para hacer que un cambio sea permanente, necesitamos usar el bien llamado --permanent opción.

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

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

Si hace algunos cambios pero se olvida de usar --permanent en algunos de ellos, puede escribir la configuración de la sesión en ejecución actual del firewall en la configuración usando el --runtime-to-permanent opción.

                      sudo firewall-cmd --runtime-to-permanent
                    

Recargar la configuración del cortafuegos

¿Qué es DHCP (Protocolo de configuración dinámica de host)?

Adición y eliminación de servicios

firewalld conoce muchos servicios. Puede enumerarlos usando el --get-services opción.

                      sudo firewall-cmd --get-services
                    

Listado de los servicios a los que firewalld puede hacer referencia por nombre

Nuestra versión de firewalld enumeró 192 servicios. 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 de firewalld .

Para eliminar un reemplazo de servicio --add-service con --remove-service

Adición y eliminación de puertos y protocolos

Si prefiere elegir qué puertos y protocolos se agregan, también puede hacerlo. Deberá conocer 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. Eso usa el puerto 443 y es una forma de tráfico TCP.

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

Adición de un emparejamiento de puerto y protocolo a una zona

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

Para eliminar un reemplazo de puerto --add-port con --remove-port .

¿Cuál es la diferencia entre TCP y UDP?

Uso de la interfaz gráfica de usuario

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

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

Para agregar un servicio a firewalld usar la GUI es tan fácil como seleccionar una zona de la lista de zonas y seleccionar el servicio de la lista de servicios.

Puede optar por modificar la sesión en ejecución o la configuración permanente 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 solo confirmar los cambios una vez que haya probado que funcionan, 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 una entrada de puerto y 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 elegir el protocolo de un menú.

Adición de un emparejamiento de puerto y protocolo mediante la GUI de configuración del cortafuegos

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 que puedes hacer con firewalld , pero esto es suficiente para ponerlo en marcha. Con la información que le proporcionamos, podrá crear reglas significativas en sus zonas.

Related Posts