Mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) que está en una subred pública tiene una dirección IP pública o una puerta de enlace de Internet, pero no puede acceder a Internet.
Resolución
Requisitos previos:
- Asocia una tabla de enrutamiento a la subred de la instancia que tiene una ruta predeterminada a una puerta de enlace de Internet (0.0.0.0/0).
- Comprueba que no hayas eliminado la puerta de enlace de Internet asociada a la ruta.
- Configura el grupo de seguridad adjunto a la interfaz de red elástica de tu instancia con reglas que permitan el tráfico de Internet saliente (0.0.0.0/0) para tus puertos y protocolos.
- Confirma que la lista de control de acceso de la red (ACL) asociada a la subred de la instancia tenga reglas que permitan el tráfico entrante y saliente a Internet.
Si la instancia que está en una subred pública no tiene una dirección IP pública, no se puede acceder a la instancia fuera de su nube virtual privada (VPC). Esto es así incluso si la instancia tiene una puerta de enlace de Internet.
Para permitir que la instancia se conecte a Internet, asigna una dirección IP elástica y, a continuación, asocia esta dirección IP elástica a la instancia.
En las instancias que tienen una dirección IP pública, comprueba si hay una regla de firewall que bloquee el acceso a Internet y, a continuación, elimínala. O bien, desactiva el firewall.
Eliminación de la regla de firewall que bloquea el acceso
Un firewall local que se ejecuta en el sistema operativo (SO) puede bloquear el acceso saliente a puertos o direcciones IP específicos. Para resolver este problema, haz una lista de las reglas del firewall y, a continuación, elimina las que bloquean el acceso.
Nota: Antes de eliminar cualquier regla, haz una copia de seguridad de las reglas en el archivo.
Distribuciones de Linux
Para enumerar las reglas del firewall, ejecuta uno de los siguientes comandos en función del firewall que has configurado en tu instancia:
Firewall sencillo
sudo ufw status numbered
firewalld
sudo firewall-cmd --list-all-zones
iptables
sudo iptables -L --line-numbers
Para eliminar una regla del firewall, ejecuta uno de los siguientes comandos en función del firewall que has configurado en tu instancia.
Firewall sencillo
sudo ufw delete rule_number
Nota: Sustituye rule_number por la regla del firewall que deseas eliminar.
firewalld
sudo firewall-cmd --zone=zone --remove-rich-rule=rule --permanent
sudo firewall-cmd --reload
Nota: Tras eliminar las reglas --permanent, debes volver a cargar el firewall para que los cambios surtan efecto inmediatamente en la configuración de la versión ejecutable.
iptables
sudo iptables-save > iptables_backup.txt
sudo iptables -D chain rule_number
Windows Server
Para enumerar las reglas del firewall de un firewall predeterminado de Windows Server, ejecuta el siguiente comando:
netsh advfirewall firewall show rule name=all
Si alguna de las reglas del resultado del comando anterior muestra tráfico bloqueado, ejecuta el siguiente comando para eliminar la regla del firewall:
netsh advfirewall firewall delete rule name=rule_name
Nota: Sustituye rule_name por el nombre de la regla del firewall que bloquea el tráfico.
Para obtener más información, consulta Herramientas de firewall de Windows en el sitio web de Microsoft Learn.
Desactivación del firewall
Distribuciones de Linux
También puedes desactivar el firewall local y usar grupos de seguridad en su lugar.
Nota: La desactivación del firewall puede afectar a la carga de trabajo.
Para desactivar el firewall, ejecuta uno de los siguientes comandos:
Firewall sencillo
sudo ufw disable
firewalld
sudo systemctl disable firewalld --now
iptables
sudo systemctl disable iptables
Si debes usar un firewall, ejecuta uno de los siguientes comandos para permitir el tráfico saliente:
Firewall sencillo
sudo ufw default allow outgoing
iptables
sudo iptables P OUTPUT ACCEPT
sudo iptables I OUTPUT j ACCEPT
Nota: De forma predeterminada, firewalld permite todo el tráfico saliente del sistema para cualquier zona, a menos que no haya una regla enriquecida.
Windows Server
Para desactivar el firewall de Windows para el firewall predeterminado de Windows Server, ejecuta el siguiente comando:
netsh advfirewall set allprofiles state off
Para obtener más información, consulta Herramientas de firewall de Windows en el sitio web de Microsoft Learn.
Información relacionada
Activación del acceso a Internet para una VPC mediante una puerta de enlace de Internet
¿Por qué no puedo usar NAT para conectar mi instancia de EC2 en una subred privada a Internet?