GNU/Linux >> Tutoriales Linux >  >> Linux

Use firewalld en distribuciones basadas en RedHat

Firewalld ha reemplazado a iptables como firewall para las distribuciones basadas en RHEL. La sintaxis que usa firewalld es más fácil de usar. Esta publicación le muestra cómo asegurarse de que firewalld se esté ejecutando y se inicie cuando se inicia el servidor. También le muestra cómo crear reglas de cortafuegos persistentes y flexibles.

Nota :Red Hat®, CentOS®, Alma Linux®, Rocky Linux® también usan firewalld, por lo que todos los comandos de este artículo también funcionan en las imágenes basadas en RHEL que Rackspace tiene disponibles.

Conceptos básicos de firewalld

Firewalld utiliza zonas para administrar grupos de reglas. Las zonas se adjuntan a las interfaces de red y determinan qué tráfico se permite en una red específica y qué tráfico se deniega.

Esta funcionalidad puede ser útil si desea establecer un firewall muy estricto en su interfaz pública y un firewall más relajado en su interfaz de CloudNetwork. Es útil familiarizarse con las zonas predefinidas con cortafuegos. Firewalld tiene las siguientes zonas predefinidas, en orden de menos confianza a más confianza:

  • drop :Esta zona solo permite conexiones salientes. Elimina las conexiones entrantes sin una respuesta.
  • block :Si bien es similar a drop , esta zona rechaza las solicitudes entrantes con un icmp-host-prohibited o icmp6-adm-prohibited mensaje.
  • public :use esta zona para redes públicas o cuando no confíe en ninguna de las otras computadoras en la red. Esta zona acepta conexiones entrantes caso por caso.
  • external :utilice esta zona en redes externas donde el cortafuegos actúa como puerta de enlace. Esta zona está configurada para enmascarar la traducción de direcciones de red (NAT), de modo que su red interna sea privada pero accesible.
  • internal :use esta zona para la parte interna de una puerta de enlace, donde las otras computadoras son razonablemente confiables.
  • dmz :utilice esta zona para equipos aislados que se encuentran en una zona desmilitarizada (DMZ). Esta zona solo permite Secure Shell (SSH) y el Protocolo de mensajes de control de Internet (ICMP).
  • work :use esta zona para las computadoras del trabajo.
  • home :utilice esta zona para entornos domésticos.
  • trusted :utilice esta zona cuando confíe en todos los equipos de la red.

Para usar el firewall, crea reglas y modifica las propiedades de sus zonas, y luego asigna sus interfaces de red a las zonas que son más apropiadas para su red.

Inicie el firewall y habilítelo en el arranque

De forma predeterminada, firewalld debe estar habilitado, reinicie el servidor y luego comience atboot.

Puede verificar fácilmente si el firewall se está ejecutando utilizando el --state bandera, como se muestra en el siguiente ejemplo:

    [user@server ~]$ sudo firewall-cmd --state
    Finding out about your zones

Si firewalld no se está ejecutando, puede habilitarlo e iniciarlo ejecutando los siguientes comandos:

    [user@server ~]$ sudo systemctl enable firewalld
    [user@server ~]$ sudo systemctl start firewalld

Puede ver qué zona es actualmente la zona predeterminada ejecutando el siguiente comando:

    [user@server ~]$ sudo firewall-cmd --get-default-zone

Puede ver qué interfaces de red están asignadas a qué zonas ejecutando el siguiente comando:

    [user@server ~]$ sudo firewall-cmd --get-active-zones

Nota :El valor predeterminado asigna todas las interfaces de red a la zona pública.

También puede encontrar las reglas asociadas con la zona pública ejecutando el siguiente comando:

    [user@server ~]$ sudo firewall-cmd --list-all --zone=public

La salida debería parecerse al siguiente ejemplo:

    public (default, active)

    interfaces: eth0 eth1

    sources:

    services: dhcpv6-client http https ssh

    ports: 1025/tcp

    masquerade: no

    forward-ports:

    icmp-blocks:

    rich rules:

El resultado muestra que la zona pública es la predeterminada y tiene interfaces de red eth0 y eth1. Protocolo de configuración dinámica de host (DHCP) (dhcpv6-client ), SSH, se permite el tráfico del Protocolo de transferencia de hipertexto (HTTP) y HTTP seguro (HTTPS), así como el tráfico del Protocolo de control de transmisión (TCP) en el puerto 1025 .

Para obtener una lista de las zonas disponibles, ejecute el siguiente comando:

    [user@server ~]$ sudo firewall-cmd --get-zones

Configura tus zonas

Puede mover interfaces entre zonas durante su sesión usando --change-interface= argumento y el --zone argumento. Si el cortafuegos se reinicia, la interfaz vuelve a la zona predeterminada.

    [user@server ~]$ sudo firewall-cmd --zone=internal --change-interface=eth1

Para definir una zona permanente para una interfaz, abra el archivo de configuración de la interfaz y agregue las siguientes líneas:

    ...
    ONBOOT=yes
    ZOME=internal

Guarde y cierre el archivo, luego ejecute los siguientes comandos para reiniciar la red y el firewall y hacer que los cambios surtan efecto:

    [user@server ~]$ sudo systemctl restart network
    [user@server ~]$ sudo systemctl restart firewalld

Configurar las reglas

Firewalld viene con servicios predefinidos que le permiten agregar solo el servicio, en lugar del número de puerto y el tipo de protocolo. Por ejemplo, le permiten permitir http en lugar de tcp port 80 .

Puede obtener una lista de estos servicios utilizando el siguiente comando:

    [user@server ~]$ sudo firewall-cmd --get-services

Luego, use el siguiente comando de ejemplo para agregar un servicio:

    [user@server ~]$ sudo firewall-cmd --add-service=http

La configuración tiene efecto inmediato, pero no sobrevive a los reinicios. Para permitir que estos tipos de configuraciones de servicio se reinicien cuando el servidor se reinicia, debe agregar el --permanent argumento. Recomendamos que ejecute estos dos comandos en secuencia para que la configuración tenga efecto inmediato y los servicios también se reinicien, como se muestra en el siguiente ejemplo:

    [user@server ~]$ sudo firewall-cmd --add-service=http
    firewall-cmd --permanent --add-service=http

Puede obtener detalles adicionales sobre las reglas predefinidas de firewalld navegando a /usr/lib/firewalld/services/ directorio y leyendo los archivos.

Configurar reglas enriquecidas

Reglas enriquecidas son cómo se definen los condicionales en firewalld. El caso de uso más común para las reglas enriquecidas es permitir el acceso desde una dirección IP o rango de direcciones IP en particular. Los siguientes comandos permiten el acceso al puerto TCP 80 desde cualquier IP en la red 192.168.0.0 y hacen que la regla sea permanente:

    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept'
    [user@server ~]$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

Para ver ejemplos de reglas enriquecidas, consulte Fedora®Wiki.

Definir servicios

Puede crear su propio servicio y consultarlo cuando cree reglas colocando un archivo en /usr/lib/firewalld/services/ directorio. La forma más sencilla de realizar esta tarea copiando un .xml existente archivo en este directorio, luego cambiando los detalles.

El siguiente comando de ejemplo copia un archivo existente en un archivo nuevo:

    [user@server ~]$ sudo cp /usr/lib/firewalld/services/http.xml /usr/lib/firewalld/services/myservice.xml

El siguiente comando abre el nuevo archivo para editarlo:

    [user@server ~]$ sudo vim /usr/lib/firewalld/services/myserver.xml

El archivo debería parecerse al siguiente ejemplo:

    <!--?xml version="1.0" encoding="utf-8"?-->
    <service>
      <short>My Custom Service</short>
      <description>A brief description of the service. This rule allows port 1134 on TCP for my application.</description>
      <port protocol="tcp" port="1134"></port>
    </service>

Para aplicar sus cambios, use los siguientes comandos con el nombre del archivo, menos el .xml extensión de archivo:

    [user@server ~]$ sudo firewall-cmd --add-service=myservice
    [user@server ~]$ sudo firewall-cmd --permanent --add-service=myservice

Use la pestaña Comentarios para hacer cualquier comentario o hacer preguntas. También puede iniciar una conversación con nosotros.


Linux
  1. Cómo habilitar y usar firewalld en CentOS 7

  2. Una guía para principiantes de firewalld en Linux

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

  4. Gestión básica de cortafuegos y cortafuegos

  5. Instale una pila LAMP en distribuciones basadas en RHEL 7

6 distribuciones de Linux para uso educativo

Cómo usar IPTables en lugar de firewalld para Fedora 30-31-32

Cómo instalar y usar PHP Composer en distribuciones de Linux

Cómo instalar y usar GNU Emacs en distribuciones de Linux

Cómo instalar y usar Ruby en distribuciones de Linux

KVM - ¿Qué administración basada en web usar?