Fondo:Mi empresa aloja dos instancias de servidor para nuestro panel interno de sistemas basados en web: un servidor de desarrollo y un servidor de producción. Para mayor seguridad en el servidor de producción, normalmente desactivamos el puerto 80 y utilizamos un puerto diferente para acceder al servidor web. Sin embargo, nuestros certificados SSL caducan pronto, por lo que intenté volver a habilitar el puerto 80 (para realizar la verificación de desafío http-01). Pude habilitar y renovar el certificado en nuestra máquina de desarrollo, pero no puedo hacer lo mismo en la máquina de producción.
Problema:No puedo conectarme al servidor web Apache alojado en una máquina Ubuntu 20.04.1. He explorado numerosos recursos y preguntas similares sin éxito. Verifiqué que Apache ports.conf
y el 000-default.conf
están escuchando en el puerto 80. También configuré temporalmente las configuraciones ufw
/ iptables
para permitir todas las solicitudes entrantes en un intento de descartar el firewall. Actualmente, si ejecuto curl http://production.example.com
, devuelve "Conexión rechazada". En base a eso, parece que me estoy conectando a la máquina, pero algo la bloquea.Además de UFW o iptables, ¿hay algún servicio que pueda estar bloqueando las conexiones al puerto 80?¡Avíseme si necesitaría más información! ¡Gracias de antemano!
Configuraciones / Pruebas
Comando curl:
$ curl -v http://production.example.com
* Trying xxx.xxx.xx.xx:80...
* TCP_NODELAY set
* connect to xxx.xxx.xx.xx port 80 failed: Connection refused
* Failed to connect to production.example.com port 80: Connection refused
* Closing connection 0
curl: (7) Failed to connect to production.example.com port 80: Connection refused
Configuración de UFW:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: allow (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
443/tcp ALLOW IN Anywhere
443/tcp (v6) ALLOW IN Anywhere (v6)
apache ports.conf
y000-default.conf
Listen 80
<VirtualHost *:80>
ServerName production.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Comandos para verificar que el puerto 80 esté abierto:
$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 706 root 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 752 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 759 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 764 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 767 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
apache2 774 www-data 4u IPv6 20604 0t0 TCP *:http (LISTEN)
$ netstat -a | grep http | grep LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
Preguntas similares
- Conexión rechazada después de la actualización de Apache
- https://superuser.com/questions/1187495/apache-2-4-reachable-but-refusing-the-connection
--Actualizar--
Según los comentarios, ejecuté el comando descrito enesta pregunta, pero no estoy seguro de cómo interpretar los resultados:
sudo tcpdump -n host 138.197.97.12 and port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:31:56.921857 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362696691 ecr 0,sackOK,eol], length 0
17:31:57.936229 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362697692 ecr 0,sackOK,eol], length 0
17:32:08.748828 IP 35.190.73.167.80 > 138.197.97.12.4957: Flags [S.], seq 3923531534, ack 2621902277, win 65535, options [mss 1430,sackOK,TS val 2683344831 ecr 873100626,nop,wscale 8], length 0
17:32:16.798047 IP 47.33.203.205.59520 > 138.197.97.12.80: Flags [S], seq 1979773428, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 362715694 ecr 0,sackOK,eol], length 0