GNU/Linux >> Tutoriales Linux >  >> Linux

Una introducción a las reglas y escenarios de firewalld

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.


Linux
  1. Introducción a los comandos chgrp y newgrp de Linux

  2. Introducción e información de acceso a cPanel

  3. Cómo instalar y configurar Fail2ban en Alma Linux 8

  4. ¿Qué es FirewallD y cómo implementarlo en Linux?

  5. Administrar grupos y reglas de seguridad

Una introducción a las métricas y la supervisión del rendimiento de Prometheus

Una introducción al hashing y las sumas de verificación en Linux

50 reglas de IPtables útiles y simples para el administrador de Linux

Cómo:Introducción a la programación:variables, tipos y manipulación de datos

Tres reglas de administrador de sistemas que no puede (y no debe) romper

Introducción a la supervisión y el ajuste del rendimiento de Linux