He estado devanándome los sesos durante semanas tratando de depurar un servidor web LEMP que alguna vez funcionó perfectamente. Estoy usando una configuración relativamente complicada. Comencemos con mi configuración desde el principio, cuando todo funcionaba perfectamente.
Paso 1 (Configuración de trabajo): servidor lemp/nginx > Raspberry Pi > Enrutador secundario con puertos reenviados > Enrutador principal con puertos reenviados > Internet público que sirve páginas web
Estoy ejecutando un servidor Lemp fuera del sistema operativo Raspian en una Raspberry Pi 4. Nginx está ejecutando un proxy inverso, a través de mi enrutador secundario que está conectado a mi enrutador/módem principal. El enrutador/módem principal reenvía los puertos https y http al enrutador secundario, que luego reenvía esos mismos puertos a la Raspberry Pi. La raspberry pi obtiene con éxito certificados de certbot y ejecuta un sitio web en pleno funcionamiento al que se puede acceder desde la Internet pública.
Paso 2a (Configuración de trabajo): servidor lemp/nginx > Raspberry Pi > Enrutador secundario > Túnel EC2 Openvpn-AS > Enrutador principal con puertos reenviados > Páginas web públicas de servicio de Internet de Amazon A continuación, creé una instancia AWS EC2 OpenVPN-AS y Lo ejecuto como servidor. A partir de ahí, instalo openvpn en mi servidor raspberry pi lemp, cambio el dns de mi dominio para que apunte a la dirección IP de mi instancia OpanVPN-AS en lugar de la IP de mi casa, y luego ejecuto openvpn como cliente en mi servidor lemp, tunelizando exitosamente mi servidor web a través de la instancia OpenVPN AWS, a la Internet pública. Esta configuración funciona.
Hasta....
Hago algo para detener por completo todas las conexiones al servidor a través de la VPN. El problema es que no tengo ni idea de qué hice para modificar esta configuración que alguna vez funcionó. Sé que actualicé el pi y creo que podría haber cambiado el nombre de host interno, pero eso es todo lo que puedo recordar antes de que mi pi se convirtiera en un servidor muerto.
En la red interna, el servidor web todavía funciona usando la IP local cuando usa el túnel EC2.
Lo extraño que he notado es que, aunque la configuración del túnel AWS detuvo el funcionamiento de mi servidor web, una vez que vuelvo a conectar mi servidor al enrutador de mi casa sin el sintonizador y vuelvo a apuntar mi DNS al enrutador de mi casa, el servidor comienza a funcionar públicamente. de nuevo. Simplemente no puedo precisar qué ha cambiado exactamente desde que mi servidor estaba funcionando después de haber sido tunelizado a través de AWS OVPN, y ahora no se resuelve, sin embargo, de alguna manera se resuelve en la IP de mi hogar con una configuración mínima modificada. Lo único que realmente cambio cuando cambio de AWS al enrutador doméstico es a qué IP apuntan los dominios DNS y si el túnel VPN debe estar activo o no.
En cuanto al túnel amazon ovpn, también se resuelve correctamente y el servidor obtiene correctamente la nueva dirección IP de amazon.
Sé cómo construir servidores, sin embargo, soy literalmente un novato de Superman cuando se trata de depurarlos y descubrir dónde falla la conexión. Entonces mi pregunta es...
¿Podría alguien intentar guiarme a través de algunos pasos para depurar esto y hacer que mi servidor web vuelva a funcionar a través de mi instancia openvpn usando una dirección IP de Amazon? No tengo la menor idea de por dónde empezar, aparte de mis pings exitosos a través del túnel del Amazonas, así como una ruta de seguimiento que parece saludable.
Mis puertos EC2 están abiertos en 443 y 80, e incluso lo intenté con todos los firewalls desactivados, sin éxito.
Se agradecería cualquier consejo, sugerencia, tutorial o trampolín para principiantes que me ayude a depurar esto y determinar dónde se cae la conexión.
Respuesta1
¿Los registros de VPN confirman que el túnel está realmente en funcionamiento?
Dice que puede rastrear la ruta exitosamente a las direcciones IP públicas. ¿Puedes hacer una conexión manual usando telnet? por ejemplo: si su IP de host es 123.456.789.123: telnet 123.456.789.123 80
Deberías obtener una respuesta como:
Intentando 123.456.789.123... Conectado awww.ejemplo.com. El carácter de escape es '^]'.
Si eso funciona, puede probar el servidor con: GET /index.htm HTTP/1.1 host: 123.456.789.123 <avance de línea - presione Intro dos veces>
El servidor debería responder con la página de índice html: HTTP/1.1 200 OK Fecha: ...etc.