Firewalld es una herramienta de gestión de cortafuegos que se utiliza para permitir o denegar la conexión al sistema Linux. Proporciona un conjunto de reglas para controlar el tráfico entrante. Firewalld actúa como interfaz para el kernel de Linux Netfilter.
La configuración permanente se carga desde archivos XML en `/usr/lib/firewalld` o `/etc/firewalld`
En este artículo, vamos a instalar y usar firewalld. Además, le mostraré cómo usar reglas enriquecidas.
Instalar firewalld en CentOS / RHEL
Firewalld viene con la instalación básica de Redhat o Centos. Si no lo hay, puede instalarlo de las siguientes maneras.
En RHEL 7.X o centos 7.X, instale por,
$ sudo yum install firewalld -y
En RHEL 7.X o centos 8.X, instale por,
$ sudo dnf install firewalld -y
Para iniciar el servicio,
$ sudo systemctl start firewalld
Para habilitar el servicio firewalld,
$ sudo systemctl enable firewalld
Verifique el estado de firewalld,
$ systemctl status firewalld
Firewalld viene con diferentes zonas predefinidas también conocidas como nivel de confianza. Las zonas son básicamente grupos administrados que tienen un conjunto de reglas. Sin embargo, las reglas no están predefinidas. Por ejemplo, puede establecer una zona 'pública' que contenga puertos de alojamiento públicos, mientras que la zona 'principal' permite conexiones ssh. Para listar zonas en firewalld use el siguiente comando,
$ sudo firewall-cmd --get-zones
Para ver la zona activa entre las zonas use,
$ sudo firewall-cmd --get-active-zone
Ahora, agreguemos algunos puertos para permitir el tráfico en nuestro sistema. Para agregar un puerto tcp, debe escribir lo siguiente. Recuerde agregar la opción –permanente; de lo contrario, su regla no será persistente al recargar/reiniciar el firewalld.
$ sudo firewall-cmd --add-port=443/tcp --permanent
Del mismo modo, también puede permitir el puerto UDP,
$ sudo firewall-cmd --add-port=161/udp --permanent
También puede permitir servicios como DNS, HTTP. Permitirá el puerto por defecto del servicio. Por ejemplo,
$ sudo firewall-cmd --add-service=http --permanent
Después de agregar el puerto / Recargar el servicio de firewall para que surta efecto
$ sudo firewall-cmd --reload
Verificar usando,
$ sudo firewall-cmd --list-all
Recuerde:si no agrega ninguna zona, la regla se agregará a la zona "pública" de forma predeterminada.
Para eliminar el puerto de firewalld, puede usar,
$ sudo firewall-cmd --remove-port=443/tcp --permanent
Para eliminar el servicio de firewalld puede usar,
$ sudo firewall-cmd --remove-service=http --permanent
Recuerde volver a cargar el firewall después de agregar o quitar el puerto o los servicios.
Reglas enriquecidas
Las reglas enriquecidas brindan opciones más granulares a las reglas de firewall. Se utilizan para configurar el reenvío de puertos, la limitación de velocidad, el registro, etc.
Por ejemplo, para aceptar la conexión ssh desde una sola IP, por ejemplo, 192.168.10.25, debe agregar una regla enriquecida especificando la versión de IP, la dirección de origen, el puerto y el protocolo.
$ sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.25/32" port protocol="tcp" port="22" accept'
De manera similar, puede descartar toda la fuente IP de una red completa para no permitir 22 puertos como se muestra a continuación,
$ sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.15.0/24" port protocol="tcp" port="22" drop'
Para permitir nuevas conexiones IPv4 desde la dirección 192.168.0.0/24 para el servicio tftp y registrar 1 por minuto usando syslog que puede hacer,
sudo firewall-cmd --permanent --zone=public --add-rich-rule=’rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept’
Desinstalar firewalld
Si desea eliminar el demonio del cortafuegos de CentOS/RHEL, detenga el servicio en ejecución,
$ sudo systemctl stop firewalld
En RHEL 7.X o Centos 7.X
$ sudo yum remove firewalld -y
En RHEL 8.X o Centos 8.X
$ sudo dnf remove firewalld -y
Conclusión
Esperamos que este artículo le ayude a aumentar la seguridad de su sistema Linux. Tenga en cuenta que el firewall basado en host como firewalld es recomendado por cumplimientos como PCI DSS.
Gracias por leer.