Un firewall es similar a un guardián que evita que el tráfico no deseado de la red externa llegue a su sistema. Las reglas del cortafuegos deciden qué tráfico permitir la entrada o la salida. En los cortafuegos de Linux, existe un concepto llamado zonas . Los administradores de sistemas pueden configurar cada zona con sus propias reglas de firewall, que permiten o deniegan el tráfico entrante al sistema. Imagine un sistema de seguridad para el hogar que indique a qué persona se le debe permitir visitar qué habitaciones dentro de su casa.
[ También te puede interesar: una guía para principiantes sobre firewalld en Linux]

Diagrama a través de:Primeros pasos con firewalld (Portal de clientes de Red Hat)
firewalld
es un servicio de firewall que proporciona un firewall personalizable basado en host a través del D-bus interfaz. Como se mencionó anteriormente, los cortafuegos usan zonas con un conjunto predefinido de reglas y cada servicio usa puertos. . Podemos permitir/bloquear cualquier tráfico entrante a un servicio en particular según su puerto. Por ejemplo, si no desea que nadie acceda a su sistema mediante SSH, puede bloquear el puerto 22 y así asegurarse de que nadie pueda acceder a su sistema desde el exterior a través de SSH.
Zonas
El firewalld
El servicio utiliza un concepto de zonas. Podemos asignar interfaces de red a estas zonas y decidir qué tipo de tráfico puede ingresar a esa red. Podemos usar Administrador de red para asignar interfaces a zonas particulares usando el firewall-cmd
command, una herramienta de línea de comandos ampliamente conocida. Las zonas predeterminadas se almacenan en /usr/lib/firewalld/zones/
directorio. Ahora aprendamos sobre algunas de las zonas predefinidas disponibles en firewalld
.
- Bloquear:en esta zona, cualquier conexión entrante se rechaza con un icmp-host-prohibido y solo se permiten las conexiones iniciadas desde dentro del sistema.
- DMZ:para los sistemas que necesitan conexiones de red internas limitadas, solo acepta conexiones entrantes seleccionadas. También conocida como zona desmilitarizada.
- Drop:las conexiones se interrumpen sin ninguna notificación. Las conexiones salientes son posibles.
- Pública:esta zona se usa para dispositivos en la red pública que no es de confianza.
- De confianza:se aceptan todas las conexiones de red.
Una de estas zonas se puede configurar como predeterminada según las necesidades del usuario. Después de la instalación, el público La zona está configurada como predeterminada, que puede cambiar más tarde.
Reglas de cortafuegos en Red Hat Enterprise Linux
Ahora que conocemos los conceptos básicos de firewalld
, podemos explorar cómo usar los comandos para agregar o eliminar diferentes servicios.
Para ver si el cortafuegos se está ejecutando, use los siguientes comandos:
# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-11-13 18:19:05 CET; 4 months 4 days ago
También puede escribir:
# firewall-cmd --state
running
Para listar la información sobre la zona predeterminada:
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: baremetal cni-podman0 eno1 eno2 eno3 provisioning
sources:
services: cockpit dhcpv6-client http ssh
ports: 8080/tcp 80/tcp 80/udp 67/udp 68/udp protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Como puede ver arriba, el público la zona está configurada como predeterminada. El resultado muestra las interfaces asignadas a esta zona y qué servicios y puertos están habilitados/permitidos.
Seleccione una zona en particular:
# firewall-cmd --list-all --zone=home
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client mdns samba-client ssh
Habilitar/iniciar el firewalld
servicio al iniciar el sistema:
# systemctl enable firewalld
# systemctl start firewalld
Deshabilitar/detener el firewalld
servicio al iniciar el sistema:
# systemctl disable firewalld
# systemctl stop firewalld
Listar todas las zonas:
# firewall-cmd --list-all-zones
Agregue puertos y servicios a las zonas y hágalos permanentes
A continuación, veamos algunos de los comandos para agregar nuevos servicios y puertos a una zona en particular y hacerlos permanentes (que permanezcan incluso después de reiniciar el sistema).
Para abrir o bloquear puertos en firewalld
usar:
# firewall-cmd --list-ports
# firewall-cmd --add-port <port-number/port-type> --permanent
# firewall-cmd --reload
Los puertos son dispositivos lógicos que permiten que un sistema operativo reciba tráfico entrante y lo reenvíe a los servicios del sistema. Por lo general, esos servicios escuchan en puertos estándar. Por ejemplo, HTTP escucha en el puerto 80 y HTTPS escucha en el puerto 443.
Por lo general, tipo de puerto significa tcp
, udp
o sctp
.
El siguiente es un ejemplo que agrega el puerto 443 en la zona predeterminada de forma permanente:
# firewall-cmd --add-port 443/tcp --zone=public --permanent
# firewall-cmd --reload
También podemos eliminar el puerto usando --remove-port
opción.
Reglas enriquecidas en firewalld
También podemos usar reglas enriquecidas , que tienen algunas capacidades de filtrado avanzadas en firewalld
. La sintaxis para estos se encuentra a continuación. Estas reglas enriquecidas son útiles cuando queremos bloquear o permitir una dirección IP o rango de direcciones en particular.
Utilice el siguiente comando para mostrar la configuración actual de la regla enriquecida:
# firewall-cmd --list-rich-rules
Podemos controlar una IP particular del host y los puertos usando reglas enriquecidas.
La siguiente regla acepta conexiones SSH solo desde el host con IP 10.1.111.21 y descarta otras conexiones:
# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.1.111.21/24 service name=ssh log prefix="SSH Logs" level="notice" accept'
Este ejemplo rechaza ping
solicitudes de todos los hosts con un mensaje de error:
# firewall-cmd --add-rich-rule='rule protocol value=icmp reject'
La siguiente regla rechaza solicitudes provenientes de IP 172.92.10.90/32 puerto 21 y acepta cualquier otra conexión:
# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.92.10.90/32 port port=21 protocol=tcp reject'
[ ¿Está pensando en la seguridad? Consulte esta guía gratuita para impulsar la seguridad de la nube híbrida y proteger su negocio. ]
Resumir
Habilitando firewalld
permite al usuario permitir o restringir las conexiones entrantes y proteger selectivamente su sistema del tráfico de red no deseado. Recuerde que las reglas del cortafuegos deciden qué tráfico permitir la entrada o salida de un sistema. Puede configurar una zona con sus propias reglas de firewall, lo que permite o deniega el tráfico entrante en el sistema. Pero también recuerde que permitir el acceso de cualquier tráfico o puerto a su sistema lo hace vulnerable a violaciones de seguridad y posibles ataques.