La seguridad en cualquier sistema operativo es un aparte clave que tanto administradores como desarrolladores se toman en serio ya que alguna vulnerabilidad puede poner en riesgo la integridad del sistema y la información del usuario, para ayudar a mitigar esto en Ubuntu disponemos de Firewalld el cual es una solución integral de seguridad.
Firewalld es un cortafuegos sencillo el cual está basado en zonas y a través de políticas cada una de las zonas puede ser configurada para que administre las reglas del cortafuegos, en este punto es importante recordar que la red se divide de manera lógica en zonas y todo el tráfico que fluye allí puede estar dirigido por políticas.
Las políticas están en capacidad de aplicar reglas de firewall a todos los tipos de tráfico actuales como tráfico de entrada, reenviado o de salida, Firewalld está ligado a los siguientes criterios de las zonas:
- El tráfico ingresa a una sola zona
- El tráfico sale de una zona
- Una zona puede determinar el nivel de confianza
- Cuenta con soporte para configuración de firewall IPv4, IPv6, puentes ethernet y conjuntos de IP
- Posee interfaz para servicios o aplicaciones
- API D-Bus completa
- Compatibilidad con NAT IPv4 e IPv6
- Zonas de cortafuegos (firewall) integrada
- Posee una herramienta de configuración gráfica a través de gtk3
- Gestión de subprogramas usando Qt5
- Registro simple de paquetes denegados
- Administración de reenvío de puertos, filtro icmp y más
- Lista predefinida de zonas, servicios y tipos de icmp
- Bloqueo y acceso a una lista blanca de aplicaciones las cuales puede modificar el firewall
- RHEL 7 y posteriores
- CentOS 7 y más reciente
- Fedora 18 y posteriores
- SUSE 15 y posteriores
- OpenSUSE 15 y posteriores
- Ubuntu 20 y superiores
- NetworkManager
- libvirt
- podman
- docker (iptables backend)
- fail2ban
Solvetic te enseñará cómo instalar y usar Firewalld en Ubuntu.
Cómo usar Firewalld en Ubuntu
Abrimos la terminal y en primer lugar actualizamos el sistema:
sudo apt update
Instalamos Firewalld con el comando:
sudo apt install firewalld
Confirma el proceso ingresando la letra S:
Habilitamos e iniciamos el servicio de Firewalld:
sudo systemctl enable firewalld sudo systemctl start firewalld
Validamos el estado de Firewalld:
sudo firewall-cmd –state
Vemos que está en ejecución. En caso de usar UFW en Ubuntu debes deshabilitarlo con el comando:
sudo ufw disable
Ahora es momento de configurar Firewalld, para ver la configuración de las reglas ejecutamos lo siguiente:
sudo firewall-cmd --list-all
Para ver los servicios protegidos ejecutamos:
sudo firewall-cmd --get-services
Para habilitar un protocolo de forma permanente ejecutamos:
sudo firewall-cmd --add-service="protocolo" –permanent
Para habilitar dos o más protocolos ejecutamos la sintaxis:
sudo firewall-cmd --permanent --add-service={protocolo, protocolo1} –permanent
Para habilitar un puerto TCP ejecutamos:
sudo firewall-cmd --add-port=#/tcp –permanent
Para habilitar un puerto UDP ejecutamos:
sudo firewall-cmd --add-port=#/udp –permanent
Para crear una nueva zona ejecutamos la sintaxis:
sudo firewall-cmd --new-zone="zona" –permanent
Si deseamos añadir un puerto y protocolo en esa zona ingresamos:
sudo firewall-cmd --zone="zona" --add-port=”puerto”/tcp –permanent
Para establecer una zona por defecto ejecutamos:
sudo firewall-cmd --set-default-zone="tipo_zona" --permanentO:
sudo firewall-cmd --set-default-zone="tipo_zona"
Listamos la zona a la que pertenece una interfaz de red:
sudo firewall-cmd --get-zone-of-interface=“interfaz” –permanent
Vemos que no se detecta zona, añadimos la interfaz de red a una zona:
sudo firewall-cmd --zone=<zona> --add-interface= “intefaz” –permanent
Listamos la zona a la que pertenece una interfaz de red nuevamente:
sudo firewall-cmd --get-zone-of-interface= “interfaz” –permanent
Listamos las reglas rich (si existen):
sudo firewall-cmd --list-rich-rules
Algunos parámetros extras de Firewalld son los siguientes:
- --get-default-zone: muestra la zona por defecto para conexiones e interfaces
- --get-log-denied: permite ver la configuración de registro denegado
- --set-default-zone=zona. establece la denier zona predeterminada para conexiones e interfaces en aquellos casos donde no se ha seleccionado ninguna zona
- --permanent --new-zone=zone: agrega una nueva zona permanente y vacía
- --permanent --get-policies: muestra las políticas predefinidas en formato de lista separada por espacios
- --permanent] --info-policy=política: despliega información sobre la política indicada
- --permanent --new-policy=política: añade una nueva política permanente
- -permanent --delete-policy=política: elimina una política permanente disponible
- --debug-gc: activa la información del recolector de datos basura
- --nofork: desactiva el uso de demonios y se ejecuta como un proceso en primer plano
Así es como firewalld permite administrar las reglas para mejorar la seguridad en Ubuntu.