Tengo alojado mi sitio web en una instancia de Amazon Elastic Compute Cloud (Amazon EC2). Quiero que los usuarios se conecten a mi sitio web mediante HTTP (puerto 80) o HTTPS (puerto 443).
Resolución
Para permitir el tráfico en los puertos 80 y 443, debes configurar el grupo de seguridad asociado y la lista de control de acceso de la red (ACL de la red).
Configuración de las reglas del grupo de seguridad
En el caso del tráfico HTTP, agrega una regla de entrada en el puerto 80 desde la dirección de origen 0.0.0.0/0.
En el caso del tráfico HTTPS, agrega una regla de entrada en el puerto 443 desde la dirección de origen 0.0.0.0/0.
Las reglas de entrada anteriores permiten el tráfico desde direcciones IPv4. Para permitir el tráfico IPv6, agrega reglas de entrada en los mismos puertos desde la dirección de origen ::/0.
No es necesario modificar las reglas de salida del grupo de seguridad. Los grupos de seguridad tienen estado, por lo que permiten automáticamente el tráfico de retorno desde la instancia.
El siguiente ejemplo de configuración contiene reglas que permiten el tráfico IPv4 e IPv6 en los puertos TCP 80 y 443.
Reglas de entrada
| Tipo | Protocolo | Intervalo de puertos | Origen |
|---|
| HTTP (80) | TCP (6) | 80 | 0.0.0.0/0 |
| HTTP (80 | TCP (6) | 80 | ::/0 |
| HTTPS (443) | TCP (6) | 443 | 0.0.0.0/0 |
| HTTPS (443) | TCP (6) | 443 | ::/0 |
Nota: Comprueba si debes permitir que otros orígenes de tráfico, como SSH o el Protocolo de escritorio remoto (RDP), inicien sesión en la instancia. Luego, asegúrate de que tu grupo de seguridad tenga las reglas de entrada para permitir el tráfico requerido.
Configuración de la ACL de la red
La ACL de la red predeterminada permite todo el tráfico IPv4 de entrada y salida. Si tu instancia de Amazon Virtual Private Cloud (Amazon VPC) tiene un bloque CIDR de IPv6 asociado, la ACL de la red predeterminada agrega reglas automáticamente para permitir el tráfico IPv6 entrante y saliente. Sin embargo, si usas una ACL de la red personalizada con reglas más restrictivas, deberás permitir el tráfico en los puertos 80 y 443 explícitamente.
Las ACL de la red no tienen estados, por lo que deberás agregar reglas de entrada y salida para permitir la conexión a tu sitio web.
La siguiente configuración es un ejemplo de una ACL de la red personalizada que permite el tráfico en los puertos TCP 80 y 443. Las ACL de la red se utilizan para todos los recursos de una subred, no solo para una única instancia de Amazon EC2. La siguiente configuración bloquea todo el tráfico hacia y desde los recursos de la subred, excepto en los puertos de destino 80 y 443.
Reglas de entrada
| N.º de regla | Tipo | Protocolo | Intervalo de puertos | Origen | Permitir/denegar |
|---|
| 100 | HTTP (80) | TCP (6) | 80 | 0.0.0.0/0 | ALLOW |
| 101 | HTTPS (443) | TCP (6) | 443 | 0.0.0.0/0 | ALLOW |
| 102 | HTTP (80) | TCP (6) | 80 | ::/0 | ALLOW |
| 103 | HTTPS (443) | TCP (6) | 443 | ::/0 | ALLOW |
| * | ALL Traffic | ALL | ALL | ::/0 | DENY |
| * | ALL Traffic | ALL | ALL | 0.0.0.0/0 | DENY |
Reglas de salida
| N.º de regla | Tipo | Protocolo | Intervalo de puertos | Destino | Permitir/denegar |
|---|
| 100 | Regla TCP personalizada | TCP (6) | 1024-65535 | 0.0.0.0/0 | ALLOW |
| 101 | Regla TCP personalizada | TCP (6) | 1024-65535 | ::/0 | ALLOW |
| * | ALL Traffic | ALL | ALL | ::/0 | DENY |
| * | ALL Traffic | ALL | ALL | 0.0.0.0/0 | DENY |
Nota: Comprueba si debes permitir que otros orígenes de tráfico, como SSH o RDP, inicien sesión en la instancia. A continuación, asegúrate de que la ACL de la red tenga las reglas de entrada para permitir el tráfico requerido.
Solución del error «connection refused»
Se produce un error «connection refused» cuando la conexión se enruta en un puerto que no especificaste en las reglas de ACL de la red o grupo de seguridad. Por ejemplo, el host A inicia una conexión TCP con el host B. En primer lugar, el host A envía un paquete TCP SYN al host B. A continuación, el host B envía un paquete TCP RST en respuesta al host A. Si estas solicitudes de conexión no se producen en el puerto especificado, el host A recibe el error «connection refused».
Para solucionar este problema, comprueba si el servicio de servidor web está en estado de ejecución en la instancia del puerto 80 o 443.
Solución de un error «connection timeout»
Si recibes el error «connection timeout» después de permitir explícitamente los puertos TCP 80 y 443, comprueba el firewall del sistema operativo (OS). Asegúrate de que el firewall no bloquee el tráfico TCP entrante en los puertos requeridos.