Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Máquinas virtuales Linux
En este artículo se describe cómo usar firewall no replicado (UFW) para diagnosticar y resolver problemas de conectividad en una máquina virtual (VM) ubuntu de Azure.
UFW es una interfaz fácil de usar para administrar un firewall de Netfilter en distribuciones de Linux, especialmente en Ubuntu. Su objetivo principal es facilitar la administración de un firewall para los usuarios que puedan encontrar que la iptables
configuración directa es compleja y compleja. UFW es la herramienta de configuración de firewall predeterminada para Ubuntu.
Requisitos previos
- Privilegios raíz.
- Acceso a la consola serie.
- Paquetes instalados
net-tools
,iproute2
ynetcat-openbsd
.
Cómo comprobar si un puerto está cerrado en la máquina virtual Ubuntu con UFW
Nota:
De forma predeterminada, UFW no está habilitado en máquinas virtuales Ubuntu creadas mediante imágenes de Azure Marketplace. Al habilitar UFW en la máquina virtual, se cerrarán todos los puertos, incluido el puerto 22 para los servicios SSH.
Compruebe el estado de UFW:
sudo ufw status
En la salida:
Status: active
indica que UFW se está ejecutando.Status: inactive
indica que UFW no está activo y el puerto no lo bloqueará UFW.
Enumerar las reglas actuales de UFW:
sudo ufw status numbered
Este comando enumera todas las reglas. Muestra si se permiten o deniegan puertos específicos. Si un puerto no aparece en la lista, se deniega de forma predeterminada.
Compruebe las reglas de UFW para determinar si se deniega un puerto determinado. Por ejemplo, para comprobar si se deniega el puerto SSH 22, ejecute el siguiente comando:
sudo ufw status | grep '22'
- Si la salida muestra
22/tcp ALLOW
, el puerto se permite a través del firewall. - Si no aparece ninguna salida o la regla muestra
22/tcp DENY
, se deniega el puerto.
- Si la salida muestra
Use el
netstat
comando oss
para comprobar si un puerto está en uso.tcp6 0 0 :::22 :::* LISTEN
- La salida de ejemplo muestra que un servicio usa o escucha en el puerto 22. Sin embargo, esto no confirma que el firewall permite o desbloquea el puerto. Incluso si el firewall bloquea un puerto, es posible que siga apareciendo como LISTEN en la salida.
- Ninguna salida indica que ningún servicio escucha el puerto.
Pruebe la conectividad de puerto mediante
nc
:sudo nc -zv <server-ip> 22
- Si se produce un error en la conexión, pero el puerto se está escuchando, esto confirma que el firewall deniega el puerto.
- Una conexión correcta significa que se permite el puerto.
Si el puerto que está comprobando no aparece en las reglas de UFW o si está marcado como DENY
, UFW está bloqueando el puerto. Además, si no puede conectarse al puerto mediante herramientas externas, el puerto se bloquea.
Trabajar con UFW
Escenario 1: Permitir la conectividad SSH para todas las direcciones IP
Ejecute el siguiente comando:
sudo ufw allow ssh
Rule added
Compruebe la regla:
sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Escenario 2: Permitir SSH (puerto 22) para una dirección IP específica
Ejecute el siguiente comando:
sudo ufw allow from 10.0.10.10 to any port 22 proto tcp
Compruebe la regla:
sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 10.0.10.10
Escenario 3: Permitir que una subred se conecte al puerto 22
Ejecute el siguiente comando:
sudo ufw allow from 10.1.0.0/24 to any port 22 proto tcp
Compruebe la regla:
sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 10.0.10.10
22/tcp ALLOW 10.1.0.0/24
Escenario 4: Denegar SSH para todas las direcciones IP
Ejecute los comandos siguientes:
sudo ufw deny ssh
sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 10.0.10.10
22/tcp ALLOW 10.1.0.0/24
22/tcp DENY Anywhere
Importante
El orden de las reglas es importante porque UFW procesa las reglas en el orden en que se enumeran. Esto significa que después de que una regla coincida, UFW aplicará esa regla y dejará de procesar reglas adicionales para esa conexión.
Eliminar una regla
Si las reglas no están en el orden correcto, puede eliminar una regla y, a continuación, restaurarla para cambiar el orden.
Para eliminar una regla, puede usar su número de la ufw status numbered
salida. Por ejemplo, para eliminar el número de regla 3:
sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW 10.0.10.10
[ 2] 22 ALLOW 10.1.0.0/24
[ 3] 22/tcp DENY IN Anywhere
sudo ufw delete 3
Para obtener más información, consulte: Ubuntu - UFW community
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.