Inicio
» LINUX
»
Cómo bloquear puertos específicos en Linux con UFW o firewalld
Cómo bloquear puertos específicos en Linux con UFW o firewalld
Para bloquear un puerto específico en Linux, añade una regla de firewall para el puerto y el protocolo que deseas bloquear. En un sistema Ubuntu que utiliza UFW, por ejemplo, sudo ufw deny 8080/tcpse bloquean las nuevas conexiones TCP entrantes al puerto 8080. En sistemas que utilizan firewalld, puedes eliminar una regla de puerto existente o añadir una regla de rechazo explícita. Lo importante es modificar el firewall que utiliza tu sistema, en lugar de mezclar reglas de UFW, firewalld y nftables de bajo nivel.
Antes de bloquear un puerto
Primero, confirme el número de puerto y si la aplicación utiliza TCP, UDP o ambos. Una regla TCP no bloquea automáticamente UDP en el mismo número. También puede verificar los sockets en escucha con:
sudo ss -lntup
Una regla de firewall controla el tráfico de red; no impide que la aplicación escuche localmente. Si no necesita el servicio en absoluto, detenerlo o deshabilitarlo suele ser mejor que depender únicamente de una regla de firewall.
Si se conecta a la máquina mediante SSH, proteja su regla de acceso remoto antes de habilitar o reforzar el cortafuegos. El manual actual de UFW advierte específicamente que habilitar UFW puede interrumpir las conexiones SSH existentes y recomienda agregar primero el permiso SSH necesario.
Si el resultado es Status: inactivey desea habilitar UFW, primero habilite el servicio de administración remota del que depende. Para un perfil OpenSSH estándar:
sudo ufw allow OpenSSH
sudo ufw enable
Compruebe si UFW está activo antes de cambiar sus reglas, especialmente en una máquina administrada de forma remota.
2. Agregue una regla de denegación para el puerto.
Sustituya 8080por el puerto que desea bloquear. Especifique el protocolo para que la regla sea inequívoca:
sudo ufw deny 8080/tcp
Para UDP, utilice:
sudo ufw deny 8080/udp
Si una aplicación utiliza ambos protocolos, agregue ambas reglas. UFW también admite reject; a diferencia de una denegación silenciosa, un rechazo le indica al remitente que la conexión fue rechazada.
Una regla de denegación de UFW bloquea el tráfico TCP entrante al puerto seleccionado.
3. Verificar o eliminar la regla UFW
sudo ufw status numbered
La salida debería mostrar una entrada DENY IN para el puerto bloqueado. La sintaxis oficial de UFW también admite la eliminación de la regla repitiéndola con delete:
sudo ufw delete deny 8080/tcp
Utilice la salida de estado numerada para confirmar que la regla UFW deseada está activa.
Bloquea un puerto con firewalld
Si su instalación de Linux utiliza firewalld, comience por encontrar la zona activa:
Sustituya publiclo siguiente si su interfaz pertenece a una zona diferente. Si el puerto 8080 se abrió explícitamente, elimine ese permiso y vuelva a cargar la configuración permanente:
Con firewalld, realice el cambio en la zona activa correcta y recargue las reglas permanentes.
Si el puerto aún está permitido indirectamente por una definición de servicio, o si desea específicamente un bloqueo explícito, agregue una regla de rechazo enriquecida:
Vuelva sudo ss -lntupa ejecutar la prueba si desea comprobar si una aplicación sigue activa. A continuación, realice la prueba desde otra máquina en la red correspondiente. Si Netcat está instalado, una comprobación TCP puede tener este aspecto nc -vz SERVER_IP 8080. Realice la prueba desde la misma ruta de red que utilizan sus clientes reales; una prueba en localhost no demuestra que el tráfico externo esté bloqueado.
Si el servicio no debe estar expuesto, desactívelo o reconfigúrelo. Un cortafuegos es una capa de control de acceso, no un sustituto para eliminar los oyentes innecesarios.