Cómo configurar un firewall usando firewalld en CentOS

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Conceptos básicos de firewalld
    1. Zonas
    2. Permanencia de la regla
  • Instalación y habilitación de firewalld
  • Familiarizarse con las reglas actuales del firewall
    1. Explorando los valores predeterminados
    2. Explorando zonas alternativas
  • Selección de zonas para sus interfaces
    1. Cambiar la zona de una interfaz
    2. Ajuste de la zona predeterminada
  • Establecer reglas para sus aplicaciones
    1. Cómo agregar un servicio a sus zonas
    2. ¿Qué pasa si no hay ningún servicio adecuado disponible?
  • Creando tus propias zonas
  • Conclusión
  • firewalld es un software de gestión de firewall disponible para muchas distribuciones de Linux, que actúa como interfaz para los sistemas de filtrado de paquetes nftables o iptables dentro del kernel de Linux.

    En esta guía, le mostraremos cómo configurar un firewall firewalld para su servidor CentOS y cubriremos los conceptos básicos de la administración del firewall con la firewall-cmdherramienta administrativa.

    Prerrequisitos

    Para completar este tutorial, necesitará un servidor que ejecute CentOS. Supondremos que ha iniciado sesión en este servidor como un usuario habilitado que no es root .sudo Para configurarlo, consulte nuestra guía Configuración inicial del servidor para CentOS.

    Conceptos básicos de firewalld

    Antes de comenzar a hablar sobre cómo usar realmente la firewall-cmdutilidad para administrar la configuración del firewall, debemos familiarizarnos con algunos conceptos que presenta la herramienta.

    Zonas

    El firewallddemonio administra grupos de reglas mediante entidades llamadas zonas. Las zonas son conjuntos de reglas que dictan qué tráfico se debe permitir según el nivel de confianza que tenga en la red. Las interfaces de red se asignan a una zona para dictar el comportamiento que debe permitir el firewall.

    En el caso de los equipos que pueden moverse entre redes con frecuencia (como los portátiles), este tipo de flexibilidad proporciona un buen método para cambiar las reglas en función del entorno. Es posible que tenga reglas estrictas que prohíban la mayor parte del tráfico cuando se opera en una red WiFi pública, pero que permitan restricciones más laxas cuando se conecta a su red doméstica. En el caso de un servidor, estas zonas no suelen ser tan importantes porque el entorno de red rara vez cambia, o nunca.

    Independientemente de lo dinámico que pueda ser su entorno de red, sigue siendo útil familiarizarse con la idea general detrás de cada una de las zonas predefinidas para firewalld. Las zonas predefinidas dentro firewalldson, en orden de menos confiable a más confiable :

    • Drop : el nivel de confianza más bajo. Todas las conexiones entrantes se descartan sin respuesta y solo son posibles las conexiones salientes.
    • bloque : similar al anterior, pero en lugar de simplemente descartar las conexiones, las solicitudes entrantes se rechazan con un mensaje icmp-host-prohibitedo icmp6-adm-prohibited.
    • público : representa redes públicas que no son de confianza. No confía en otras computadoras, pero puede permitir conexiones entrantes seleccionadas según cada caso.
    • externa : redes externas en caso de que estés usando el firewall como puerta de enlace. Está configurada para enmascaramiento NAT, de modo que tu red interna permanezca privada pero accesible.
    • Interno : El otro lado de la zona externa, que se utiliza para la parte interna de una puerta de enlace. Las computadoras son bastante confiables y hay algunos servicios adicionales disponibles.
    • dmz : se utiliza para equipos ubicados en una DMZ (equipos aislados que no tendrán acceso al resto de la red). Solo se permiten determinadas conexiones entrantes.
    • work : Se utiliza para máquinas de trabajo. Confía en la mayoría de las computadoras de la red. Se pueden permitir algunos servicios más.
    • home : Un entorno doméstico. Generalmente implica que confías en la mayoría de las otras computadoras y que se aceptarán algunos servicios más.
    • Trusted : Confía en todas las máquinas de la red. Es la opción más abierta de las disponibles y se debe utilizar con moderación.

    Para utilizar el firewall, podemos crear reglas y alterar las propiedades de nuestras zonas y luego asignar nuestras interfaces de red a las zonas que sean más apropiadas.

    Permanencia de la regla

    En firewalld, las reglas se pueden aplicar al conjunto de reglas de tiempo de ejecución actual o se pueden hacer permanentes. Cuando se agrega o modifica una regla, de manera predeterminada, solo se modifica el firewall que se está ejecutando actualmente . Después del siguiente reinicio (o recarga del firewalldservicio), solo permanecerán las reglas permanentes.

    La mayoría de firewall-cmdlas operaciones pueden incluir una --permanentbandera para indicar que los cambios se deben aplicar a la configuración permanente. Además, el firewall que se está ejecutando actualmente se puede guardar en la configuración permanente con el firewall-cmd --runtime-to-permanentcomando.

    Esta separación entre el tiempo de ejecución y la configuración permanente significa que usted puede probar reglas de manera segura en su firewall activo y luego recargarlo para comenzar de nuevo si hay problemas.

    Instalación y habilitación de firewalld

    firewalldSe instala de forma predeterminada en algunas distribuciones de Linux, incluidas muchas imágenes de CentOS. Sin embargo, es posible que deba instalarlo firewalldusted mismo:

    sudo dnf install firewalld

    Después de instalarlo firewalld, puede habilitar el servicio y reiniciar el servidor. Tenga en cuenta que habilitar firewalld hará que el servicio se inicie durante el arranque. Se recomienda crear reglas de firewall y probarlas antes de configurar este comportamiento para evitar posibles problemas.

    sudo systemctl enable firewalldsudo systemctl start firewalld

    Cuando el servidor se reinicie, su firewall debería activarse, sus interfaces de red deberían colocarse en las zonas que configuró (o volver a la zona predeterminada configurada) y cualquier regla asociada con las zonas se aplicará a las interfaces asociadas.

    Podemos verificar que el servicio está funcionando y es accesible escribiendo:

    sudo firewall-cmd --state
    Outputrunning

    Esto indica que nuestro firewall está funcionando con la configuración predeterminada.

    Familiarizarse con las reglas actuales del firewall

    Antes de comenzar a realizar modificaciones, debemos familiarizarnos con el entorno predeterminado y las reglas proporcionadas por firewalld.

    Explorando los valores predeterminados

    Podemos ver qué zona está seleccionada actualmente como predeterminada escribiendo:

    firewall-cmd --get-default-zone
    Outputpublic

    Dado que no le hemos dado a firewalld ningún comando para desviarse de la zona predeterminada y ninguna de nuestras interfaces está configurada para vincularse a otra zona, esa zona también será la única zona activa (la zona que controla el tráfico de nuestras interfaces). Podemos verificarlo escribiendo:

    firewall-cmd --get-active-zones
    Outputpublic  interfaces: eth0 eth1

    Aquí podemos ver que nuestro servidor de ejemplo tiene dos interfaces de red controladas por el firewall ( eth0y eth1). Ambas se administran actualmente de acuerdo con las reglas definidas para la zona pública .

    ¿Pero cómo sabemos qué reglas están asociadas con la zona pública ? Podemos imprimir la configuración de la zona predeterminada escribiendo:

    sudo firewall-cmd --list-all
    Outputpublic (active)  target: default  icmp-block-inversion: no  interfaces: eth0 eth1  sources:  services: cockpit dhcpv6-client ssh  ports:  protocols:  masquerade: no  forward-ports:  source-ports:  icmp-blocks:  rich rules: 

    Podemos saber a partir de la salida que esta zona es la predeterminada y la activa, y que las interfaces eth0y eth1están asociadas con esta zona (todo esto ya lo sabíamos de nuestras consultas anteriores). Sin embargo, también podemos ver que esta zona permite el tráfico para un cliente DHCP (para la asignación de direcciones IP), SSH (para administración remota) y Cockpit (una consola basada en web).

    Explorando zonas alternativas

    Ahora tenemos una buena idea de la configuración de la zona predeterminada y activa. También podemos obtener información sobre otras zonas.

    Para obtener una lista de las zonas disponibles, escriba:

    firewall-cmd --get-zones
    Outputblock dmz drop external home internal public trusted work

    Podemos ver la configuración específica asociada a una zona incluyendo el --zone=parámetro en nuestro --list-allcomando:

    sudo firewall-cmd --zone=home --list-all
    Outputhome  target: default  icmp-block-inversion: no  interfaces:  sources:  services: cockpit dhcpv6-client mdns samba-client ssh  ports:  protocols:  masquerade: no  forward-ports:  source-ports:  icmp-blocks:  rich rules:

    Puede generar todas las definiciones de zona mediante la --list-all-zonesopción. Probablemente desee enviar la salida a un buscapersonas para que sea más fácil de ver:

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

    A continuación aprenderemos cómo asignar zonas a las interfaces de red.

    Selección de zonas para sus interfaces

    A menos que haya configurado sus interfaces de red de otra manera, cada interfaz se colocará en la zona predeterminada cuando se inicie el firewall.

    Cambiar la zona de una interfaz

    Puede mover una interfaz entre zonas durante una sesión utilizando el --zone=parámetro en combinación con el --change-interface=parámetro . Al igual que con todos los comandos que modifican el firewall, deberá utilizar sudo.

    Por ejemplo, podemos mover nuestra eth0interfaz a la zona de inicio escribiendo esto:

    sudo firewall-cmd --zone=home --change-interface=eth0
    Outputsuccess

    Nota: Siempre que mueva una interfaz a una nueva zona, tenga en cuenta que probablemente esté modificando los servicios que estarán operativos. Por ejemplo, aquí nos estamos moviendo a la zona de inicio , que tiene SSH disponible. Esto significa que nuestra conexión no debería interrumpirse. Algunas otras zonas no tienen SSH habilitado de manera predeterminada y cambiar a una de estas zonas podría provocar que su conexión se interrumpa, lo que le impediría volver a iniciar sesión en su servidor.

    Podemos verificar que esto fue exitoso preguntando nuevamente por las zonas activas:

    firewall-cmd --get-active-zones
    Outputhome  interfaces: eth0public  interfaces: eth1

    Ajuste de la zona predeterminada

    Si todas sus interfaces pueden manejarse bien mediante una sola zona, probablemente sea más fácil simplemente designar la mejor zona como predeterminada y luego usarla para su configuración.

    Puede cambiar la zona predeterminada con el --set-default-zone=parámetro. Esto cambiará inmediatamente cualquier interfaz que utilice la zona predeterminada:

    sudo firewall-cmd --set-default-zone=home
    Outputsuccess

    Establecer reglas para sus aplicaciones

    Repasemos la forma básica de definir excepciones de firewall para los servicios que desea que estén disponibles.

    Cómo agregar un servicio a sus zonas

    El método más sencillo es agregar los servicios o puertos que necesita a las zonas que está utilizando. Puede obtener una lista de las definiciones de servicios disponibles con la --get-servicesopción:

    firewall-cmd --get-services
    OutputRH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

    Nota: Puede obtener más detalles sobre cada uno de estos servicios consultando el .xmlarchivo asociado dentro del /usr/lib/firewalld/servicesdirectorio. Por ejemplo, el servicio SSH se define de la siguiente manera:

    /usr/lib/firewalld/services/ssh.xml

    ?xml version="1.0" encoding="utf-8"?service  shortSSH/short  descriptionSecure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful./description  port protocol="tcp" port="22"//service

    Puede habilitar un servicio para una zona mediante el --add-service=parámetro. La operación se dirigirá a la zona predeterminada o a cualquier zona especificada por el --zone=parámetro. De manera predeterminada, esto solo ajustará la sesión de firewall actual. Puede ajustar la configuración permanente del firewall incluyendo el --permanentindicador.

    Por ejemplo, si estamos ejecutando un servidor web que atiende tráfico HTTP convencional, podemos permitir temporalmente este tráfico para las interfaces en nuestra zona pública escribiendo:

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

    Puede omitir la --zone=bandera si desea modificar la zona predeterminada. Podemos verificar que la operación se realizó correctamente mediante las operaciones --list-allo :--list-services

    sudo firewall-cmd --zone=public --list-services
    Outputcockpit dhcpv6-client http ssh

    Una vez que hayas comprobado que todo funciona como debería, probablemente quieras modificar las reglas de firewall permanentes para que tu servicio siga estando disponible después de reiniciar. Podemos hacer que nuestro cambio anterior sea permanente si lo volvemos a escribir y añadimos la --permanentbandera:

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

    Alternativamente, puede utilizar la --runtime-to-permanentbandera para guardar la configuración del firewall que se está ejecutando actualmente en la configuración permanente:

    sudo firewall-cmd --runtime-to-permanent

    Tenga cuidado con esto, ya que todos los cambios realizados en el firewall en ejecución se confirmarán de forma permanente.

    Independientemente del método que haya elegido, puede comprobar que se ha realizado correctamente añadiendo la --permanentbandera a la --list-servicesoperación. Debe utilizar sudopara cualquier --permanentoperación:

    sudo firewall-cmd --zone=public --list-services --permanent
    Outputcockpit dhcpv6-client http ssh

    Su zona pública ahora permitirá el tráfico web HTTP en el puerto 80. Si su servidor web está configurado para usar SSL/TLS, también querrá agregar el httpsservicio. Podemos agregarlo a la sesión actual y al conjunto de reglas permanentes escribiendo:

    sudo firewall-cmd --zone=public --add-service=httpssudo firewall-cmd --zone=public --add-service=https --permanent 

    ¿Qué pasa si no hay ningún servicio adecuado disponible?

    Los servicios que se incluyen con la instalación de firewalld representan muchas de las aplicaciones más comunes a las que quizás desee permitir el acceso. Sin embargo, es probable que haya situaciones en las que estos servicios no se ajusten a sus requisitos.

    En esta situación, tienes dos opciones.

    Abrir un puerto para tus zonas

    La forma más sencilla de agregar compatibilidad para su aplicación específica es abrir los puertos que utiliza en las zonas correspondientes. Esto se hace especificando el puerto o el rango de puertos y el protocolo asociado (TCP o UDP) para los puertos.

    Por ejemplo, si nuestra aplicación se ejecuta en el puerto 5000 y utiliza TCP, podríamos agregarlo temporalmente a la zona pública--add-port= mediante el parámetro . Los protocolos se pueden designar como tcpo udp:

    sudo firewall-cmd --zone=public --add-port=5000/tcp
    Outputsuccess

    Podemos verificar que esto fue exitoso mediante la --list-portsoperación:

    sudo firewall-cmd --zone=public --list-ports
    Output5000/tcp

    También es posible especificar un rango secuencial de puertos separando el puerto inicial y final del rango con un guión. Por ejemplo, si nuestra aplicación utiliza los puertos UDP 4990 a 4999, podríamos abrirlos en público escribiendo:

    sudo firewall-cmd --zone=public --add-port=4990-4999/udp

    Después de realizar la prueba, es probable que queramos agregarlos al firewall permanente. sudo firewall-cmd --runtime-to-permanentPara ello, use o vuelva a ejecutar los comandos con la --permanentbandera:

    sudo firewall-cmd --zone=public --permanent --add-port=5000/tcpsudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udpsudo firewall-cmd --zone=public --permanent --list-ports
    Outputsuccesssuccess5000/tcp 4990-4999/udp

    Definición de un servicio

    Abrir puertos para las zonas es una solución sencilla, pero puede resultar difícil hacer un seguimiento de la función de cada uno de ellos. Si alguna vez desactiva un servicio en su servidor, es posible que le resulte difícil recordar qué puertos abiertos siguen siendo necesarios. Para evitar esta situación, es posible definir un nuevo servicio.

    Los servicios son conjuntos de puertos con un nombre y una descripción asociados. El uso de servicios es más fácil de administrar que el de puertos, pero requiere un poco de trabajo previo. La forma más sencilla de empezar es copiar un script existente (que se encuentra en /usr/lib/firewalld/services) al /etc/firewalld/servicesdirectorio donde el firewall busca definiciones no estándar.

    Por ejemplo, podríamos copiar la definición del servicio SSH para usarla en nuestro ejemplo de definición de servicio de la siguiente manera. El nombre del archivo menos el .xmlsufijo determinará el nombre del servicio dentro de la lista de servicios del firewall:

    sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

    Ahora, puedes ajustar la definición que se encuentra en el archivo que copiaste. Primero, ábrelo en tu editor de texto favorito. Usaremos viaquí:

    sudo vi /etc/firewalld/services/example.xml

    Para comenzar, el archivo contendrá la definición SSH que copiaste:

    /etc/firewalld/services/example.xml

    ?xml version="1.0" encoding="utf-8"?service  shortSSH/short  descriptionSecure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful./description  port protocol="tcp" port="22"//service

    La mayor parte de esta definición son metadatos. Deberá cambiar el nombre corto del servicio dentro de las shortetiquetas. Este es un nombre legible para el servicio. También debe agregar una descripción para tener más información si alguna vez necesita auditar el servicio. La única configuración que necesita realizar y que realmente afecta la funcionalidad del servicio probablemente será la definición del puerto donde identifica el número de puerto y el protocolo que desea abrir. port/Se pueden especificar varias etiquetas.

    Para nuestro servicio de ejemplo , imaginemos que necesitamos abrir el puerto 7777 para TCP y el 8888 para UDP. Podemos modificar la definición existente con algo como esto:

    /etc/firewalld/services/example.xml

    ?xml version="1.0" encoding="utf-8"?service  shortExample Service/short  descriptionThis is just an example service. It probably shouldn't be used on a real system./description  port protocol="tcp" port="7777"/  port protocol="udp" port="8888"//service

    Guarde y cierre el archivo.

    Recargue su firewall para obtener acceso a su nuevo servicio:

    sudo firewall-cmd --reload

    Puedes ver que ahora está entre la lista de servicios disponibles:

    firewall-cmd --get-services
    OutputRH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server example finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

    Ahora puedes utilizar este servicio en tus zonas como lo harías normalmente.

    Creando tus propias zonas

    Si bien las zonas predefinidas probablemente serán más que suficientes para la mayoría de los usuarios, puede ser útil definir sus propias zonas que sean más descriptivas de su función.

    Por ejemplo, es posible que desee crear una zona para su servidor web, denominada publicweb . Sin embargo, es posible que desee tener otra zona configurada para el servicio DNS que proporciona en su red privada. Es posible que desee una zona denominada "privateDNS" para ello.

    Al agregar una zona, debe agregarla a la configuración permanente del firewall. Luego, puede volver a cargarla para incorporar la configuración a su sesión en ejecución. Por ejemplo, podríamos crear las dos zonas que analizamos anteriormente escribiendo:

    sudo firewall-cmd --permanent --new-zone=publicwebsudo firewall-cmd --permanent --new-zone=privateDNS

    Puede verificar que estén presentes en su configuración permanente escribiendo:

    sudo firewall-cmd --permanent --get-zones
    Outputblock dmz drop external home internal privateDNS public publicweb trusted work

    Como se indicó anteriormente, estos aún no estarán disponibles en el firewall en tiempo de ejecución:

    firewall-cmd --get-zones
    Outputblock dmz drop external home internal public trusted work

    Recargue el firewall para incorporar estas nuevas zonas a la configuración de tiempo de ejecución activa:

    sudo firewall-cmd --reloadfirewall-cmd --get-zones
    Outputblock dmz drop external home internal privateDNS public publicweb trusted work

    Ahora, puede comenzar a asignar los servicios y puertos adecuados a sus zonas. Por lo general, es una buena idea ajustar el firewall en tiempo de ejecución y luego guardar esos cambios en la configuración permanente después de la prueba. Por ejemplo, para la zona web pública , es posible que desee agregar los servicios SSH, HTTP y HTTPS:

    sudo firewall-cmd --zone=publicweb --add-service=sshsudo firewall-cmd --zone=publicweb --add-service=httpsudo firewall-cmd --zone=publicweb --add-service=httpssudo firewall-cmd --zone=publicweb --list-all
    Outputpublicweb  target: default  icmp-block-inversion: no  interfaces:   sources:   services: http https ssh  ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules:

    Del mismo modo, podemos añadir el servicio DNS a nuestra zona DNS privada :

    sudo firewall-cmd --zone=privateDNS --add-service=dnssudo firewall-cmd --zone=privateDNS --list-all
    OutputprivateDNS  target: default  icmp-block-inversion: no  interfaces:  sources:  services: dns  ports:  protocols:  masquerade: no  forward-ports:  source-ports:  icmp-blocks:  rich rules:

    Luego podríamos cambiar nuestras interfaces a estas nuevas zonas para probarlas:

    sudo firewall-cmd --zone=publicweb --change-interface=eth0sudo firewall-cmd --zone=privateDNS --change-interface=eth1

    En este punto, tienes la oportunidad de probar tu configuración. Si estos valores funcionan para ti, querrás agregar estas reglas a la configuración permanente. Puedes hacerlo ejecutando todos los comandos nuevamente con la --permanentbandera adjunta, pero en este caso usaremos la --runtime-to-permanentbandera para guardar toda nuestra configuración de tiempo de ejecución de forma permanente:

    sudo firewall-cmd --runtime-to-permanent

    Después de aplicar permanentemente estas reglas, vuelva a cargar el firewall para comprobar que los cambios permanecen:

    sudo firewall-cmd --reload

    Validar que se hayan asignado las zonas correctas:

    firewall-cmd --get-active-zones
    OutputprivateDNS  interfaces: eth1publicweb  interfaces: eth0

    Y validar que los servicios adecuados estén disponibles para ambas zonas:

    sudo firewall-cmd --zone=publicweb --list-services
    Outputhttp https ssh
    sudo firewall-cmd --zone=privateDNS --list-services
    Outputdns

    ¡Ha configurado correctamente sus propias zonas! Si desea que una de estas zonas sea la predeterminada para otras interfaces, recuerde configurar ese comportamiento con el --set-default-zone=parámetro:

    sudo firewall-cmd --set-default-zone=publicweb

    Conclusión

    Ahora debería tener una comprensión bastante completa de cómo administrar el servicio firewalld en su sistema CentOS para el uso diario.

    El servicio firewalld le permite configurar reglas y conjuntos de reglas que se puedan mantener y que tengan en cuenta su entorno de red. Le permite realizar transiciones sin inconvenientes entre diferentes políticas de firewall mediante el uso de zonas y brinda a los administradores la capacidad de abstraer la administración de puertos en definiciones de servicios más amigables. Adquirir un conocimiento práctico de este sistema le permitirá aprovechar la flexibilidad y la potencia que brinda esta herramienta.

    Para obtener más información sobre firewalld, consulte la documentación oficial de firewalld.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion