{"id":6993,"date":"2019-04-30T01:40:44","date_gmt":"2019-04-30T05:40:44","guid":{"rendered":"https:\/\/extassisnetwork.com\/tutoriales\/?p=6993"},"modified":"2021-07-01T02:38:16","modified_gmt":"2021-07-01T06:38:16","slug":"configurar-un-firewall-usando-firewalld-centos7","status":"publish","type":"post","link":"https:\/\/extassisnetwork.com\/tutoriales\/configurar-un-firewall-usando-firewalld-centos7\/","title":{"rendered":"C\u00f3mo configurar un firewall usando FirewallD en CentOS 7"},"content":{"rendered":"\n<p>Firewalld es una soluci\u00f3n de administraci\u00f3n de firewall disponible para muchas distribuciones de Linux que act\u00faa como una interfaz para el sistema de filtrado de paquetes iptables proporcionado por el kernel de Linux.<\/p>\n\n\n\n<p>En esta gu\u00eda, veremos c\u00f3mo configurar un servidor de seguridad para su servidor y le mostraremos los aspectos b\u00e1sicos de la administraci\u00f3n del servidor de seguridad con la herramienta\u00a0<strong>firewall-cmd<\/strong>\u00a0administrativa (si prefiere usar\u00a0<strong>iptables <\/strong>CentOS, siga\u00a0<a href=\"https:\/\/extassisnetwork.com\/tutoriales\/como-instalar-iptables-en-centos7\/\">este tutorial<\/a>\u00a0)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"basic-concepts-in-firewalld\">Conceptos b\u00e1sicos en Firewalld<\/h2>\n\n\n\n<p>Antes de comenzar a hablar sobre c\u00f3mo utilizar realmente la utilidad <strong>firewall-cmd<\/strong>\u00a0para administrar la configuraci\u00f3n de su firewall, debemos familiarizarnos con algunos conceptos b\u00e1sicos que presenta la herramienta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"zones\">Zonas<\/h3>\n\n\n\n<p>El\u00a0<strong>firewalld\u00a0<\/strong>administra grupos de reglas usando entidades llamadas \u00abzonas\u00bb. Las zonas son b\u00e1sicamente conjuntos de reglas que dictan qu\u00e9 tr\u00e1fico se debe permitir, dependiendo del nivel de confianza que tenga en las redes a las que est\u00e1 conectada su computadora. A las interfaces de red se les asigna una zona para dictar el comportamiento que deber\u00eda permitir el firewall.<\/p>\n\n\n\n<p>Para las computadoras que pueden moverse entre redes con frecuencia (como las computadoras port\u00e1tiles), este tipo de flexibilidad proporciona un buen m\u00e9todo para cambiar sus reglas dependiendo de su entorno.&nbsp;Es posible que tenga reglas estrictas que proh\u00edban la mayor\u00eda del tr\u00e1fico cuando opera en una red WiFi p\u00fablica, mientras que permite restricciones m\u00e1s relajadas cuando est\u00e1 conectado a su red dom\u00e9stica.&nbsp;Para un servidor, estas zonas no son tan importantes porque el entorno de la red rara vez cambia.<\/p>\n\n\n\n<p>Independientemente de cu\u00e1n din\u00e1mico pueda ser su entorno de red, sigue siendo \u00fatil estar familiarizado con la idea general detr\u00e1s de cada una de las zonas predefinidas\u00a0<strong>firewalld<\/strong>.\u00a0En orden, desde las\u00a0<strong>menos confiables<\/strong>\u00a0a las\u00a0<strong>m\u00e1s confiables<\/strong>\u00a0, las zonas predefinidas dentro\u00a0<strong>firewalld <\/strong>son:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>drop<\/strong>: El nivel m\u00e1s bajo de confianza. Todas las conexiones entrantes se eliminan sin respuesta y solo son posibles las conexiones salientes.<\/li><li><strong>block<\/strong>: similar al anterior, pero en lugar de simplemente eliminar conexiones, las solicitudes entrantes se rechazan con un mensaje <strong>icmp-host-prohibited<\/strong> o\u00a0<strong>icmp6-adm-prohibited<\/strong>.<\/li><li><strong>public<\/strong>: Representa redes p\u00fablicas, no confiables. No conf\u00eda en otras computadoras, pero puede permitir las conexiones entrantes seleccionadas caso por caso.<\/li><li><strong>external<\/strong>: redes externas en caso de que est\u00e9 utilizando el firewall como su puerta de enlace. Est\u00e1 configurado para el enmascaramiento de NAT para que su red interna permanezca privada pero accesible.<\/li><li><strong>internal<\/strong>: el otro lado de la zona externa, utilizado para la parte interna de una puerta de enlace. Las computadoras son bastante confiables y algunos servicios adicionales est\u00e1n disponibles.<\/li><li><strong>dmz<\/strong>: se usa para computadoras ubicadas en una DMZ (computadoras aisladas que no tendr\u00e1n acceso al resto de su red). S\u00f3lo se permiten ciertas conexiones entrantes.<\/li><li><strong>work<\/strong>: Utilizado para maquinas de trabajo. Conf\u00ede en la mayor\u00eda de las computadoras en la red. Se podr\u00edan permitir algunos servicios m\u00e1s.<\/li><li><strong>home<\/strong>: En general, implica que conf\u00eda en la mayor\u00eda de las otras computadoras y que se aceptar\u00e1n algunos servicios m\u00e1s.<\/li><li><strong>trusted<\/strong>: conf\u00ede en todas las m\u00e1quinas de la red. La m\u00e1s abierta de las opciones disponibles y debe usarse con moderaci\u00f3n.<\/li><\/ul>\n\n\n\n<p>Para usar 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\u00e1s apropiadas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"rule-permanence\">Permanencia de la regla<\/h3>\n\n\n\n<p>En firewalld, las reglas pueden ser designadas como permanentes o inmediatas.&nbsp;Si se agrega o modifica una regla, de manera predeterminada, se modifica el comportamiento del firewall que se ejecuta actualmente.&nbsp;En el siguiente arranque, las reglas antiguas ser\u00e1n revertidas.<\/p>\n\n\n\n<p>La mayor\u00eda de las operaciones <strong>firewall-cmd<\/strong> pueden tomar el indicador <strong>&#8211;permanent<\/strong> para indicar que el firewall no ef\u00edmero debe ser el objetivo. Esto afectar\u00e1 el conjunto de reglas que se vuelve a cargar en el arranque. Esta separaci\u00f3n significa que puede probar reglas en su instancia de firewall activa y luego volver a cargar si hay problemas. Tambi\u00e9n puede usar el indicador \u00a0<strong>&#8211;permanent<\/strong> para crear un conjunto completo de reglas a lo largo del tiempo que se aplicar\u00e1n todas a la vez cuando se emita el comando de recarga.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"install-and-enable-your-firewall-to-start-at-boot\">Instale y habilite su firewall para que se inicie en el arranque<\/h2>\n\n\n\n<p><strong>firewalld\u00a0<\/strong>se instala de forma predeterminada en algunas distribuciones de Linux, incluidas muchas im\u00e1genes de CentOS  Sin embargo, puede ser necesario que instale firewalld usted mismo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo yum install firewalld<\/pre>\n\n\n\n<p>Despu\u00e9s de la instalaci\u00f3n\u00a0<strong>firewalld<\/strong>, puede habilitar el servicio y reiniciar su servidor.\u00a0Tenga en cuenta que habilitar firewalld har\u00e1 que el servicio se inicie en el arranque.\u00a0Se recomienda crear las reglas de firewall y aprovechar la oportunidad para probarlas antes de configurar este comportamiento para evitar posibles problemas.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo yum install firewalld<\/pre>\n\n\n\n<p>Despu\u00e9s de la instalaci\u00f3n firewalld, puede habilitar el servicio y reiniciar su servidor. Tenga en cuenta que habilitar firewalld har\u00e1 que el servicio se inicie en el arranque. Se recomienda crear las reglas de firewall y aprovechar la oportunidad para probarlas antes de configurar este comportamiento para evitar posibles problemas.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo systemctl enable firewalld\n$ sudo reboot<\/pre>\n\n\n\n<p>Cuando el servidor se reinicia, su firewall debe activarse, las interfaces de red deben ubicarse en las zonas que configur\u00f3 (o volver a la zona predeterminada configurada), y las reglas asociadas con las zonas se aplicar\u00e1n a las redes asociadas. interfaces<\/p>\n\n\n\n<p>Podemos verificar que el servicio se est\u00e9 ejecutando y sea accesible al escribir:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo firewall-cmd --state<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">running<\/pre>\n\n\n\n<p>Esto indica que nuestro firewall est\u00e1 funcionando con la configuraci\u00f3n predeterminada.<\/p>\n\n\n\n<p>Familiarizarse con las reglas actuales del cortafuegos<br>Antes de comenzar a realizar modificaciones, debemos familiarizarnos con el entorno predeterminado y las reglas proporcionadas por el daemon.<\/p>\n\n\n\n<p>Explorando los valores predeterminados<br>Podemos ver qu\u00e9 zona est\u00e1 actualmente seleccionada como predeterminada al escribir:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">firewall-cmd --get-default-zone<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">public<\/pre>\n\n\n\n<p>Dado que no hemos dado firewalld ning\u00fan comando para desviarnos de la zona predeterminada y ninguna de nuestras interfaces est\u00e1 configurada para enlazarse a otra zona, esa zona tambi\u00e9n ser\u00e1 la \u00fanica zona \u00abactiva\u00bb (la zona que controla el tr\u00e1fico para nuestras interfaces). ). Podemos verificar que al escribir:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">firewall-cmd --get-active-zones<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">public\ninterfaces: eth0 eth1<\/pre>\n\n\n\n<p>Aqu\u00ed, podemos ver que nuestro servidor de ejemplo tiene dos interfaces de red controladas por el firewall ( eth0y eth1). Ambos se est\u00e1n gestionando actualmente de acuerdo con las reglas definidas para la zona p\u00fablica.<\/p>\n\n\n\n<p>\u00bfC\u00f3mo sabemos qu\u00e9 reglas est\u00e1n asociadas con la zona p\u00fablica? Podemos imprimir la configuraci\u00f3n de la zona predeterminada escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --list-all<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>public (default, active)\n  target: default\n  icmp-block-inversion: no\n  interfaces: eth0 eth1\n  sources: \n  services: ssh dhcpv6-client\n  ports: \n  protocols: \n  masquerade: no\n  forward-ports: \n  source-ports: \n  icmp-blocks: \n  rich rules: \n<\/code><\/pre>\n\n\n\n<p>Podemos decir por la salida que esta zona es tanto la predeterminada como la activa y que las\u00a0interfaces\u00a0<strong>eth0 <\/strong>y\u00a0<strong>eth1 <\/strong>est\u00e1n asociadas con esta zona (ya sab\u00edamos todo esto de nuestras consultas anteriores).\u00a0Sin embargo, tambi\u00e9n podemos ver que esta zona permite las operaciones normales asociadas con un cliente DHCP (para asignaci\u00f3n de direcci\u00f3n IP) y SSH (para administraci\u00f3n remota).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"exploring-alternative-zones\">Explorando Zonas Alternativas<\/h3>\n\n\n\n<p>Ahora tenemos una buena idea sobre la configuraci\u00f3n de la zona predeterminada y activa.&nbsp;Podemos encontrar informaci\u00f3n sobre otras zonas tambi\u00e9n.<\/p>\n\n\n\n<p>Para obtener una lista de las zonas disponibles, escriba:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> firewall-cmd --get-zones<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>block dmz drop external home internal public trusted work\n<\/code><\/pre>\n\n\n\n<p>Podemos ver la configuraci\u00f3n espec\u00edfica asociada con una zona al incluir el par\u00e1metro <strong>&#8211;zone=<\/strong> en nuestro comando\u00a0<strong>&#8211;list-all<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=home --list-all<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>home\n  interfaces: \n  sources: \n  services: dhcpv6-client ipp-client mdns samba-client ssh\n  ports: \n  masquerade: no\n  forward-ports: \n  icmp-blocks: \n  rich rules:\n<\/code><\/pre>\n\n\n\n<p>Puede generar todas las definiciones de zona usando la opci\u00f3n <strong>&#8211;list-all-zones<\/strong>.\u00a0Probablemente querr\u00e1 canalizar la salida en un buscapersonas para facilitar la visualizaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo firewall-cmd --list-all-zones | less<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"selecting-zones-for-your-interfaces\">Seleccionando Zonas para sus Interfaces<\/h2>\n\n\n\n<p>A menos que haya configurado sus interfaces de red de lo contrario, cada interfaz se colocar\u00e1 en la zona predeterminada cuando se inicie el firewall.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"changing-the-zone-of-an-interface\">Cambiando la zona de una interfaz<\/h3>\n\n\n\n<p>Puede hacer una transici\u00f3n de una interfaz entre zonas durante una sesi\u00f3n utilizando el par\u00e1metro <strong>&#8211;zone=<\/strong> en combinaci\u00f3n con el par\u00e1metro\u00a0<strong>&#8211;change-interface=<\/strong>.\u00a0Al igual que con todos los comandos que modifican el firewall, deber\u00e1 usarlo\u00a0<strong>$ sudo<\/strong>.<\/p>\n\n\n\n<p>Por ejemplo, podemos hacer una transici\u00f3n de nuestra interfaz <strong>eth0\u00a0<\/strong>a la zona \u00abprincipal\u00bb al escribir esto:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=home --change-interface=eth0<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>success\n<\/code><\/pre>\n\n\n\n<p><strong>Nota<\/strong><\/p>\n\n\n\n<p>Cuando est\u00e9 realizando la transici\u00f3n de una interfaz a una nueva zona, tenga en cuenta que probablemente est\u00e9 modificando los servicios que estar\u00e1n operativos.\u00a0Por ejemplo, aqu\u00ed nos estamos moviendo a la zona de \u00abcasa\u00bb, que tiene SSH disponible.\u00a0Esto significa que nuestra conexi\u00f3n no debe caer.\u00a0Algunas otras zonas no tienen SSH habilitado de forma predeterminada y si su conexi\u00f3n se interrumpe mientras usa una de estas zonas, es posible que no pueda volver a iniciar sesi\u00f3n.<br><\/p>\n\n\n\n<p>Podemos verificar que esto fue exitoso solicitando nuevamente las zonas activas:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> firewall-cmd --get-active-zones<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>home\n  interfaces: eth0\npublic\n  interfaces: eth1\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"adjusting-the-default-zone\">Ajuste de la zona predeterminada<\/h3>\n\n\n\n<p>Si todas las interfaces pueden manejarse mejor en una sola zona, probablemente sea m\u00e1s f\u00e1cil seleccionar la mejor zona predeterminada y luego usarla para su configuraci\u00f3n.<\/p>\n\n\n\n<p>Puede cambiar la zona por defecto con el par\u00e1metro <strong>&#8211;set-default-zone=<\/strong>.\u00a0Esto cambiar\u00e1 de inmediato cualquier interfaz que haya ca\u00eddo en el valor predeterminado a la nueva zona:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --set-default-zone=home<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>success\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setting-rules-for-your-applications\">Establecer reglas para sus aplicaciones<\/h2>\n\n\n\n<p>La forma b\u00e1sica de definir excepciones de cortafuegos para los servicios que desea que est\u00e9n disponibles es f\u00e1cil.&nbsp;Repasaremos la idea b\u00e1sica aqu\u00ed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"adding-a-service-to-your-zones\">Agregando un servicio a sus zonas<\/h3>\n\n\n\n<p>El m\u00e9todo m\u00e1s sencillo es agregar los servicios o puertos que necesita a las zonas que est\u00e1 usando. Nuevamente, puede obtener una lista de los servicios disponibles con la opci\u00f3n\u00a0<strong>&#8211;get-services<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> firewall-cmd --get-services<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server\n<\/code><\/pre>\n\n\n\n<p><strong>Nota<\/strong><\/p>\n\n\n\n<p>Puede obtener m\u00e1s detalles sobre cada uno de estos servicios mirando su archivo\u00a0 <strong>.xml <\/strong>asociado dentro del directorio\u00a0<strong>\/usr\/lib\/firewalld\/services<\/strong>.\u00a0Por ejemplo, el servicio SSH se define as\u00ed: <strong>\/usr\/lib\/firewalld\/services\/ssh.xml<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;service&gt;  &lt;short&gt;SSH&lt;\/short&gt;  &lt;description&gt;Secure 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.&lt;\/description&gt;  &lt;port protocol=\"tcp\" port=\"22\"\/&gt;&lt;\/service&gt;<\/pre>\n\n\n\n<p>Puede habilitar un servicio para una zona usando el par\u00e1metro <strong>&#8211;add-service=<\/strong>. La operaci\u00f3n se dirigir\u00e1 a la zona predeterminada o cualquier zona especificada por el par\u00e1metro\u00a0&#8211;zone=. De forma predeterminada, esto solo ajustar\u00e1 la sesi\u00f3n de firewall actual. Puede ajustar la configuraci\u00f3n del firewall permanente incluyendo la bandera\u00a0<strong>&#8211;permanent<\/strong>.<\/p>\n\n\n\n<p>Por ejemplo, si estamos ejecutando un servidor web que sirve tr\u00e1fico HTTP convencional, podemos permitir este tr\u00e1fico para las interfaces en nuestra zona \u00abp\u00fablica\u00bb para esta sesi\u00f3n escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=public --add-service=http<\/pre>\n\n\n\n<p>Puede omitir\u00a0<strong>&#8211;zone=<\/strong> si desea modificar la zona predeterminada.\u00a0Podemos verificar que la operaci\u00f3n fue exitosa usando las\u00a0operaciones\u00a0<strong>&#8211;list-all<\/strong> o\u00a0<strong>&#8211;list-services<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=public --list-services<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>dhcpv6-client http ssh\n<\/code><\/pre>\n\n\n\n<p>Una vez que haya comprobado que todo funciona como deber\u00eda, es probable que desee modificar las reglas permanentes del firewall para que su servicio siga estando disponible despu\u00e9s de un reinicio.&nbsp;Podemos hacer que nuestro cambio de zona \u00abp\u00fablica\u00bb sea permanente escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> sudo firewall-cmd --zone=public --permanent --add-service=http<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>success\n<\/code><\/pre>\n\n\n\n<p>Puede verificar que esto fue exitoso agregando la bandera <strong>&#8211;permanent<\/strong> a la operaci\u00f3n <strong>&#8211;list-services<\/strong> .\u00a0Necesitas utilizar<strong>\u00a0$ sudo<\/strong> para cualquier\u00a0 operaci\u00f3n <strong>&#8211;permanent<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=public --permanent --list-services<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>dhcpv6-client http ssh\n<\/code><\/pre>\n\n\n\n<p>Su zona \u00abp\u00fablica\u00bb ahora permitir\u00e1 el tr\u00e1fico web HTTP en el puerto 80. Si su servidor web est\u00e1 configurado para usar SSL \/ TLS, tambi\u00e9n querr\u00e1 agregar el servicio <strong>https<\/strong>.\u00a0Podemos agregar eso a la sesi\u00f3n actual y al conjunto de reglas permanentes escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo firewall-cmd --zone=public --add-service=https<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">$ sudo firewall-cmd --zone=public --permanent --add-service=https<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-if-no-appropriate-service-is-available\">\u00bfQu\u00e9 pasa si no hay un servicio apropiado disponible?<\/h3>\n\n\n\n<p>Los servicios de firewall que se incluyen con la instalaci\u00f3n de firewalld representan muchos de los requisitos m\u00e1s comunes para las aplicaciones a las que desea permitir el acceso.&nbsp;Sin embargo, es probable que haya situaciones en las que estos servicios no se ajusten a sus requisitos.<\/p>\n\n\n\n<p>En esta situaci\u00f3n, tienes dos opciones.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"opening-a-port-for-your-zones\">Abriendo un puerto para tus zonas<\/h4>\n\n\n\n<p>La forma m\u00e1s f\u00e1cil de agregar soporte para su aplicaci\u00f3n espec\u00edfica es abrir los puertos que utiliza en la (s) zona (s) apropiada (s).&nbsp;Esto es tan f\u00e1cil como especificar el puerto o el rango de puertos, y el protocolo asociado para los puertos que necesita abrir.<\/p>\n\n\n\n<p>Por ejemplo, si nuestra aplicaci\u00f3n se ejecuta en el puerto 5000 y usa TCP, podr\u00edamos agregar esto a la zona \u00abp\u00fablica\u00bb para esta sesi\u00f3n usando el par\u00e1metro <strong>&#8211;add-port=<\/strong>.\u00a0Los protocolos pueden ser\u00a0<strong>tcp <\/strong>o\u00a0<strong>udp<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=public --add-port=5000\/tcp<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>success<\/code><\/pre>\n\n\n\n<p>Podemos verificar que esto fue exitoso usando la operaci\u00f3n\u00a0<strong>&#8211;list-ports<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=public --list-ports<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>5000\/tcp\n<\/code><\/pre>\n\n\n\n<p>Tambi\u00e9n es posible especificar un rango secuencial de puertos al separar el puerto de inicio y final en el rango con un guion.\u00a0Por ejemplo, si nuestra aplicaci\u00f3n utiliza los puertos UDP 4990 a 4999, podr\u00edamos abrirlos en \u00abp\u00fablico\u00bb escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> $ sudo firewall-cmd --zone=public --add-port=4990-4999\/udp<\/pre>\n\n\n\n<p>Despu\u00e9s de la prueba, es probable que queramos agregarlos al firewall permanente.&nbsp;Puedes hacerlo escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=public --permanent --add-port=5000\/tcp\n$ sudo firewall-cmd --zone=public --permanent --add-port=4990-4999\/udp\n$ sudo firewall-cmd --zone=public --permanent --list-ports<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>success\nsuccess \n5000\/tcp 4990-4999\/udp<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"defining-a-service\">Definiendo un servicio<\/h4>\n\n\n\n<p>Abrir puertos para sus zonas es f\u00e1cil, pero puede ser dif\u00edcil hacer un seguimiento de para qu\u00e9 sirve cada una.&nbsp;Si alguna vez retira un servicio en su servidor, puede tener dificultades para recordar qu\u00e9 puertos que se han abierto todav\u00eda son necesarios.&nbsp;Para evitar esta situaci\u00f3n, es posible definir un servicio.<\/p>\n\n\n\n<p>Los servicios son simplemente colecciones de puertos con un nombre y una descripci\u00f3n asociados.\u00a0Usar servicios es m\u00e1s f\u00e1cil de administrar que los puertos, pero requiere un poco de trabajo inicial.\u00a0La forma m\u00e1s f\u00e1cil de comenzar es copiar un script existente (que se encuentra en\u00a0<strong>\/usr\/lib\/firewalld\/services<\/strong>) en el directorio<strong> \/etc\/firewalld\/services<\/strong>\u00a0donde el firewall busca definiciones no est\u00e1ndar.<\/p>\n\n\n\n<p>Por ejemplo, podr\u00edamos copiar la definici\u00f3n de servicio SSH para usar en nuestra definici\u00f3n de servicio de \u00abejemplo\u00bb como esta. El nombre de archivo menos el sufijo\u00a0.<strong>xml<\/strong>\u00a0dictar\u00e1 el nombre del servicio dentro de la lista de servicios de firewall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo cp \/usr\/lib\/firewalld\/services\/ssh.xml \/etc\/firewalld\/services\/example.xml<\/code><\/pre>\n\n\n\n<p>Ahora, puede ajustar la definici\u00f3n que se encuentra en el archivo que copi\u00f3:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo vi \/etc\/firewalld\/services\/example.xml\n<\/code><\/pre>\n\n\n\n<p>Para comenzar, el archivo contendr\u00e1 la definici\u00f3n SSH que copi\u00f3: \/etc\/firewalld\/services\/example.xml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;service&gt;  &lt;short&gt;SSH&lt;\/short&gt;  &lt;description&gt;Secure 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.&lt;\/description&gt;  &lt;port protocol=\"tcp\" port=\"22\"\/&gt;&lt;\/service&gt;<\/pre>\n\n\n\n<p>La mayor\u00eda de esta definici\u00f3n es en realidad metadatos. Querr\u00e1 cambiar el nombre corto para el servicio dentro de las etiquetas\u00a0<strong>&lt;short><\/strong>.\u00a0Este es un nombre legible para su servicio.\u00a0Tambi\u00e9n debe agregar una descripci\u00f3n para tener m\u00e1s informaci\u00f3n si alguna vez necesita auditar el servicio.\u00a0La \u00fanica configuraci\u00f3n que necesita hacer que realmente afecte la funcionalidad del servicio ser\u00e1 probablemente la definici\u00f3n de puerto donde identifique el n\u00famero de puerto y el protocolo que desea abrir.\u00a0Esto se puede especificar varias veces.<\/p>\n\n\n\n<p>Para nuestro servicio de \u00abejemplo\u00bb, imagine que necesitamos abrir el puerto 7777 para TCP y 8888 para UDP.\u00a0Al ingresar al modo INSERT presionando\u00a0<code>i<\/code>, podemos modificar la definici\u00f3n existente con algo como esto: \/etc\/firewalld\/services\/example.xml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;service&gt;  &lt;short&gt;Example Service&lt;\/short&gt;  &lt;description&gt;This is just an example service.  It probably shouldn't be used on a real system.&lt;\/description&gt;  &lt;port protocol=\"tcp\" port=\"7777\"\/&gt;  &lt;port protocol=\"udp\" port=\"8888\"\/&gt;&lt;\/service&gt;<\/pre>\n\n\n\n<p>Presione\u00a0<code>ESC<\/code>, luego ingrese<strong><code>\u00a0:x<\/code><\/strong> para guardar y cerrar el archivo.<\/p>\n\n\n\n<p>Vuelva a cargar su firewall para obtener acceso a su nuevo servicio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>Puedes ver que ahora est\u00e1 entre la lista de servicios disponibles:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>firewall-cmd --get-services<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch example freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server\n<\/code><\/pre>\n\n\n\n<p>Ahora puede utilizar este servicio en sus zonas como lo har\u00eda normalmente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"creating-your-own-zones\">Creando tus propias zonas<\/h2>\n\n\n\n<p>Si bien las zonas predefinidas probablemente ser\u00e1n m\u00e1s que suficientes para la mayor\u00eda de los usuarios, puede ser \u00fatil definir sus propias zonas que sean m\u00e1s descriptivas de su funci\u00f3n.<\/p>\n\n\n\n<p>Por ejemplo, es posible que desee crear una zona para su servidor web, llamada \u00abpublicweb\u00bb.&nbsp;Sin embargo, es posible que desee configurar otra zona para el servicio DNS que proporciona en su red privada.&nbsp;Es posible que desee una zona llamada \u00abprivateDNS\u00bb para eso.<\/p>\n\n\n\n<p>Al agregar una zona, debe agregarla a la configuraci\u00f3n de firewall permanente.&nbsp;Luego puede volver a cargar para llevar la configuraci\u00f3n a su sesi\u00f3n en ejecuci\u00f3n.&nbsp;Por ejemplo, podr\u00edamos crear las dos zonas que analizamos anteriormente escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> $ sudo firewall-cmd --permanent --new-zone=publicweb<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --permanent --new-zone=privateDNS<\/code><\/pre>\n\n\n\n<p>Puede verificar que est\u00e1n presentes en su configuraci\u00f3n permanente escribiendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --permanent --get-zones<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>block dmz drop external home internal privateDNS public publicweb trusted work\n<\/code><\/pre>\n\n\n\n<p>Como se indic\u00f3 anteriormente, estos no estar\u00e1n disponibles a\u00fan en la instancia actual del firewall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>firewall-cmd --get-zones<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>block dmz drop external home internal public trusted work\n<\/code><\/pre>\n\n\n\n<p>Vuelva a cargar el firewall para traer estas nuevas zonas a la configuraci\u00f3n activa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> $ sudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">firewall-cmd --get<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>block dmz drop external home internal privateDNS public publicweb trusted work\n<\/code><\/pre>\n\n\n\n<p>Ahora, puede comenzar a asignar los servicios y puertos apropiados a sus zonas.&nbsp;Por lo general, es una buena idea ajustar la instancia activa y luego transferir esos cambios a la configuraci\u00f3n permanente despu\u00e9s de la prueba.&nbsp;Por ejemplo, para la zona \u00abpublicweb\u00bb, es posible que desee agregar los servicios SSH, HTTP y HTTPS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --add-service=ssh <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --add-service=http <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --add-service=https <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --list-all<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>publicweb\ntarget: default\nicmp-block-inversion: no\ninterfaces:\nsources:\nservices: ssh http https\nports:\nprotocols:\nmasquerade: no\nforward-ports:\nsource-ports:\nicmp-blocks:\nrich rules:\n<\/code><\/pre>\n\n\n\n<p>Del mismo modo, podemos agregar el servicio DNS a nuestra zona \u00abprivateDNS\u00bb:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=privateDNS --add-service=dns<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=privateDNS --list-all<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>privateDNS\n  interfaces: \n  sources: \n  services: dns\n  ports: \n  masquerade: no\n  forward-ports: \n  icmp-blocks: \n  rich rules:\n<\/code><\/pre>\n\n\n\n<p>Entonces podr\u00edamos cambiar nuestras interfaces a estas nuevas zonas para probarlas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> $ sudo firewall-cmd --zone=publicweb --change-interface=eth0<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=privateDNS --change-interface=eth1<\/code><\/pre>\n\n\n\n<p>En este punto, tiene la oportunidad de probar su configuraci\u00f3n.\u00a0Si estos valores funcionan para usted, desear\u00e1 agregar las mismas reglas a la configuraci\u00f3n permanente.\u00a0Puedes hacerlo volviendo a aplicar las reglas con la bandera\u00a0<strong>&#8211;permanent<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --permanent --add-service=http<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --permanent --add-service=https<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s de aplicar estas reglas de forma permanente, puede reiniciar su red y recargar su servicio de firewall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo systemctl restart network<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo systemctl reload firewalld<\/code><\/pre>\n\n\n\n<p>Valide que las zonas correctas hayan sido asignadas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>firewall-cmd --get-active-zones<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>privateDNS\n  interfaces: eth1\npublicweb\n  interfaces: eth0\n<\/code><\/pre>\n\n\n\n<p>Y valide que los servicios apropiados est\u00e9n disponibles para ambas zonas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=publicweb --list-services<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>http https ssh\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --zone=privateDNS --list-services<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>dns\n<\/code><\/pre>\n\n\n\n<p>\u00a1Has configurado exitosamente tus propias zonas! Si desea que una de estas zonas sea la predeterminada para otras interfaces, recuerde configurar ese comportamiento con el par\u00e1metro\u00a0<strong>&#8211;set-default-zone=<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo firewall-cmd --set-default-zone=publicweb\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Notas Finales<\/h3>\n\n\n\n<p>Ahora debe tener un buen conocimiento de c\u00f3mo administrar el servicio firewalld en su sistema CentOS para el uso diario.<\/p>\n\n\n\n<p>El servicio firewalld le permite configurar reglas de mantenimiento y conjuntos de reglas que tienen en cuenta su entorno de red. Le permite hacer una transici\u00f3n perfecta entre diferentes pol\u00edticas de firewall mediante el uso de zonas y brinda a los administradores la capacidad de abstraer la administraci\u00f3n de puertos en definiciones de servicio m\u00e1s amigables.<\/p>\n\n\n\n<p>Adquirir un conocimiento pr\u00e1ctico de este sistema le permitir\u00e1 aprovechar la flexibilidad y la potencia que proporciona esta herramienta<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Firewalld es una soluci\u00f3n de administraci\u00f3n de firewall disponible para muchas distribuciones de Linux que act\u00faa como una interfaz para el sistema de filtrado de paquetes iptables proporcionado por el kernel de Linux. En esta gu\u00eda, veremos c\u00f3mo configurar un servidor de seguridad para su servidor y le mostraremos los aspectos b\u00e1sicos de la administraci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7015,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[197,213],"class_list":{"0":"post-6993","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-linux","8":"tag-centos","9":"tag-firewalld"},"_links":{"self":[{"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/posts\/6993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/comments?post=6993"}],"version-history":[{"count":0,"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/posts\/6993\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/media\/7015"}],"wp:attachment":[{"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/media?parent=6993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/categories?post=6993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/extassisnetwork.com\/tutoriales\/wp-json\/wp\/v2\/tags?post=6993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}