Cómo abrir un puerto para una dirección IP específica en Firewalld
¿Cómo puedo permitir tráfico desde una dirección IP específica en mi red privada o permitir tráfico desde una red privada específica a través de firewalld, a un puerto o servicio específico en un servidor Red Hat Enterprise Linux (RHEL) o CentOS?
En este breve artículo, aprenderá a abrir un puerto para una dirección IP específica o un rango de red en su servidor RHEL o CentOS que ejecuta un firewall firewalld.
La forma más adecuada de resolver esto es usando una zona firewalld. Por lo tanto, debe crear una nueva zona que contenga las nuevas configuraciones (o puede usar cualquiera de las zonas predeterminadas seguras disponibles).
Abra el puerto para una dirección IP específica en Firewalld
Primero cree un nombre de zona apropiado (en nuestro caso, hemos utilizado mariadb-access
para permitir el acceso al servidor de base de datos MySQL).
# firewall-cmd --new-zone=mariadb_access --permanent
A continuación, vuelva a cargar la configuración de firewalld para aplicar el nuevo cambio. Si omite este paso, es posible que se produzca un error al intentar usar el nuevo nombre de la zona. Esta vez, la nueva zona debe aparecer en la lista de zonas como se resalta en la siguiente captura de pantalla.
# firewall-cmd --reload# firewall-cmd --get-zones
A continuación, agregue la dirección IP de origen (10.24.96.5/20) y el puerto (3306) que desea abrir en el servidor local, como se muestra. A continuación, vuelva a cargar la configuración de firewalld para aplicar los nuevos cambios.
# firewall-cmd --zone=mariadb-access --add-source=10.24.96.5/20 --permanent# firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent# firewall-cmd --reload
Alternativamente, puede permitir el tráfico de toda la red (10.24.96.0 / 20) a un servicio o puerto.
# firewall-cmd --zone=mariadb-access --add-source=10.24.96.0/20 --permanent# firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent# firewall-cmd --reload
Para confirmar que la nueva zona tiene la configuración requerida como se agregó anteriormente, verifique sus detalles con el siguiente comando.
# firewall-cmd --zone=mariadb-access --list-all
Eliminar puerto y zona de Firewalld
Puede eliminar la dirección IP o la red de origen como se muestra.
# firewall-cmd --zone=mariadb-access --remove-source=10.24.96.5/20 --permanent# firewall-cmd --reload
Para eliminar el puerto de la zona, ejecute el siguiente comando y vuelva a cargar la configuración de firewalld:
# firewall-cmd --zone=mariadb-access --remove-port=3306/tcp --permanent# firewall-cmd --reload
Para eliminar la zona, ejecute el siguiente comando y vuelva a cargar la configuración de firewalld:
# firewall-cmd --permanent --delete-zone=mariadb_access# firewall-cmd --reload
Última pero no lista, también puede usar reglas enriquecidas con firewalld. Este es un ejemplo:
# firewall-cmd --permanent –zone=mariadb-access --add-rich-rule='rule family="ipv4" source address="10.24.96.5/20" port protocol="tcp" port="3306" accept'