Administración básica de AlmaLinux - Firewalld#
En esta entrada compartiré una pequeña guía para administrar las reglas del firewall en un entorno AlmaLinux. Como se vio en entradas anteriores, esta serie cubre aspectos que tuve que aprender al ejecutar mi propio Laboratorio Casero en Proxmox.
Firewalld, el firewall predeterminado en distribuciones basadas en RHEL, fue diseñado como un reemplazo para iptables introducido en 2011.
En esencia, firewalld actúa como un guardián de seguridad, controlando el tráfico de red entrante y saliente.
Si bien viene prehabilitado con una configuración predeterminada segura, es posible que deba abrir puertos específicos para que los servicios esenciales funcionen correctamente.
Por ejemplo, al encontrar problemas con la exportación de métricas de nodos en mis máquinas virtuales, revisé mis configuraciones de Proxmox y de red, solo para descubrir que el tráfico estaba siendo bloqueado por la propia máquina virtual.
Si te encuentras en una situación similar, esta guía te ayudará con lo siguiente:
- Permitir puertos o servicios a través del firewall: Otorgar acceso a las conexiones entrantes para los servicios elegidos.
- Aplicar reglas de firewall: Activar los cambios realizados en las configuraciones del firewall.
- Verificar puertos y servicios abiertos: Mantenerse al tanto de los puertos y servicios actualmente accesibles.
- Administrar puertos abiertos: Revocar el acceso cuando ya no se requiera un servicio.
Puertos y zonas del Firewall#
Firewalld utiliza zonas para categorizar las interfaces de red y gestionar el flujo de tráfico en consecuencia. La interfaz de red de tu laboratorio casero probablemente pertenece a la zona “pública”, que maneja el tráfico proveniente de internet.
Puedes agregar reglas a esta zona para controlar el tráfico entrante desde internet. Existen dos métodos principales para abrir puertos:
- Por servicio: Este es el enfoque preferido, ya que abre automáticamente el número de puerto relevante asociado a un servicio. Por ejemplo, el siguiente comando permite el tráfico HTTP en el puerto 80.
bash firewall-cmd --zone=public --add-service=http --permanent
- Por número de puerto: Utiliza este método si no hay un servicio correspondiente para el puerto que deseas abrir. El siguiente comando abre el puerto 8080 para conexiones TCP:
bash firewall-cmd --zone=public --add-port=8080/tcp --permanent
Comandos esenciales de administración de Firewall#
- Listar servicios y puertos abiertos: Mostrar servicios activos con puertos
abiertos
bash firewall-cmd --zone=public --list-services
Mostrar puertos abiertos independientemente del servicio asociadobash firewall-cmd --zone=public --list-ports
- Recargar Firewall: Esto activará cualquier cambio permanente realizado
en las reglas del firewall
bash firewall-cmd --reload
- Ver todas las reglas del firewall: Proporciona una vista completa de la configuración de tu firewall:
bash firewall-cmd --list-all
- Cerrar un puerto: Elimina la regla HTTPS del firewall
bash firewall-cmd --zone=public --permanent --remove-service=HTTPS
Puertos comunes y comandos de Firewall para servicios de laboratorio casero#
Estos son algunos comandos útiles para abrir puertos para servicios esenciales que podrías usar en tu entorno de laboratorio casero:
# Permitir HTTP a través del firewall
firewall-cmd --zone=public --add-service=http --permanent
# Permitir HTTPS a través del firewall
firewall-cmd --zone=public --add-service=https --permanent
# Permitir MySQL a través del firewall
firewall-cmd --zone=public --add-service=mysql --permanent
# Permitir SSH a través del firewall (suponiendo que no esté ya abierto)
firewall-cmd --zone=public --add-service=ssh --permanent
# Permitir DNS a través del firewall
firewall-cmd --zone=public --add-service=dns --permanent
# Permitir PostgreSQL a través del firewall
firewall-cmd --zone=public --add-service=postgresql --permanent
# Permitir telnet a través del firewall
firewall-cmd --zone=public --add-service=telnet --permanent
Consideraciones de seguridad al abrir puertos#
Aquí hay algunas prácticas recomendadas de seguridad adicionales a tener en cuenta:
- Minimizar puertos expuestos: Abre solo los puertos específicos necesarios para que un servicio funcione. Evita abrir rangos completos de puertos.
- Contraseñas seguras: Utiliza contraseñas seguras para todos los servicios que requieren autenticación, especialmente para los servicios accesibles de forma remota.
- Mantén el software actualizado: Actualiza periódicamente tu sistema AlmaLinux y las aplicaciones para abordar las vulnerabilidades de seguridad.
- Monitoriza los registros del firewall: Revisa periódicamente los registros de tu firewall para detectar actividades sospechosas que puedan indicar intentos de acceso no autorizado.
Siguiendo estos pasos y comprendiendo las reglas del firewall, puedes administrar de manera efectiva el tráfico entrante en tu laboratorio casero de AlmaLinux.