GNU/Linux >> Tutoriales Linux >  >> Linux

apache no acepta conexiones entrantes desde fuera de localhost

En caso de que aún no esté resuelto. Tus iptables dicen:

RELACIONADO CON EL ESTADO, ESTABLECIDO

Lo que significa que deja pasar solo conexiones ya establecidas... eso lo estableces tú, no máquinas remotas. Luego puede ver excepciones a esto en las siguientes reglas:

state NEW tcp dpt:ssh

Lo que solo cuenta para ssh, por lo que debe agregar una regla/línea similar para http, que puede hacer así:

state NEW tcp dpt:80

Que puedes hacer así:

sudo iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

(En este caso, elijo agregar la nueva regla en la cuarta línea)

Recuerda que después de editar el archivo debes guardarlo así:

sudo /etc/init.d/iptables save

CentOS 7 usa firewalld por defecto ahora. Pero todas las respuestas se centran en iptables. Así que quería agregar una respuesta relacionada con firewalld.

Dado que firewalld es un "envoltorio" para iptables, el uso de la respuesta de antonio-fornie todavía parece funcionar, pero no pude "guardar" esa nueva regla. Así que no pude conectarme a mi servidor apache tan pronto como se reinició el firewall. Afortunadamente, en realidad es mucho más sencillo hacer un cambio equivalente con los comandos de firewalld. Primero verifique si firewalld se está ejecutando:

firewall-cmd --state

Si se está ejecutando, la respuesta será simplemente una línea que diga "en ejecución".

Para permitir conexiones http (puerto 80) temporalmente en la zona pública:

sudo firewall-cmd --zone=public --add-service=http

Lo anterior no se "guardará", la próxima vez que se reinicie el servicio firewalld volverá a las reglas predeterminadas. Debe usar esta regla temporal para probar y asegurarse de que resuelva su problema de conexión antes de continuar.

Para permitir permanentemente las conexiones http en la zona pública:

sudo firewall-cmd --zone=public --permanent --add-service=http

Si ejecuta el comando "permanente" sin ejecutar también el comando "temporal", deberá reiniciar firewalld para obtener sus nuevas reglas predeterminadas (esto podría ser diferente para los sistemas que no son CentOS):

 sudo systemctl restart firewalld.service

Si esto no ha resuelto sus problemas de conexión, puede deberse a que su interfaz no está en la "zona pública". El siguiente enlace es un gran recurso para aprender sobre firewalld. Repasa en detalle cómo verificar, asignar y configurar zonas:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7


SELinux evita que Apache (y, por lo tanto, todos los módulos de Apache) realicen conexiones remotas de forma predeterminada.

# setsebool -P httpd_can_network_connect=1

Linux
  1. [Solucionado] el nombre de usuario no está en el archivo sudoers

  2. Cómo abrir los puertos 80 y 443 en FirewallD

  3. ¿Convertirse en root desde dentro de Vim?

  4. Instalar Apache en Debian 10

  5. Instale Apache 2 desde la fuente en Linux

¿Por qué Find no acepta '-exec Cp {} Dir +'?

visudo:comando no encontrado

sudoedit:comando no encontrado

sudo:comando no encontrado

sudo:npm:comando no encontrado

sudo no funciona en ciertos comandos