Mac OS X Server ignora las conexiones HTTP remotas, pero acepta las locales

5

No puedo hacer que el servidor web de Mac OS X Server acepte conexiones de otras máquinas en la misma LAN. Esto está en OS X 10.8.2, ejecutándose en una Mac mini que se envió originalmente con Lion Server.

puedo conectarme a él desde el propio servidor, por ejemplo, yendo a http://localhost o http://hostname.example.com en Safari.

Note que la conexión a través del nombre de dominio de la caja funciona. Esto se debe a que:

$ netstat -na | grep 80.*LISTEN
tcp46      0      0  *.80                   *.*                    LISTEN 

Es decir, Apache está escuchando en todas las interfaces, no solo en lo .

Si I telnet server 80 de una máquina cliente mientras realiza una captura de paquetes en ambos lados, solo veo paquetes TCP SYN repetidos. ( perspectiva del servidor , perspectiva del cliente )

La desactivación del firewall en el panel de configuración de Seguridad y Privacidad no cambia el síntoma.

La configuración del cortafuegos me parece inofensiva . (Dumping a través de pfctl -sa .)

Estoy seguro de que el problema no está en el lado del cliente. He intentado acceder desde:

  • un mes de iMac sobre GigE
  • un MacBook Pro de 2 años a través de WiFi
  • una netbook de 5 años que ejecuta Ubuntu 12.04 sobre GigE y WiFi

Este servidor no tiene cabezas, y hago todo mi trabajo desde las máquinas cliente en la LAN, a través de SSH y VNC. Esto significa que, si bien no puedo conectarme a este servidor en el puerto TCP 80, lo estoy usando con éxito en los puertos TCP 22 y 5900. Este comportamiento es lo que hizo que empecé a ver la configuración del firewall.

Así es como se ve la red:

Hay dos conmutadores de red porque esta red está distribuida en dos habitaciones, con un conmutador en cada habitación y un solo cable entre ellos. Descarté el interruptor administrado como la fuente del problema con la prueba de WiFi. Exoneré al conmutador tonto ejecutando temporalmente un cable largo desde el servidor al conmutador administrado.

El módem por cable y el enrutador WiFi (un AirPort Extreme) cada uno tiene conmutadores de 4 puertos incorporados, pero solo se usa un puerto en cada uno, por lo que no hay tráfico que no tenga que hacerlo. El DHCP y los servidores DNS de almacenamiento en caché están desactivados en ambos enrutadores, ya que el servidor en cuestión está realizando (¡con éxito!) Esas tareas. El AirPort está en modo de solo puente.

Y sí, he reiniciado el servidor. Y los clientes. Y los enrutadores. Y los interruptores. :)

Mi mejor suposición es que el problema se deriva de haber actualizado este cuadro de Lion Server. Si es así, una reinstalación completa solucionará esto, pero eso va en contra de toda mi capacitación en administración de servidores Unix. Quiero arreglar este servidor, si puedo.

    
pregunta Warren Young 06.02.2013 - 22:26

2 respuestas

4

OS X en realidad tiene (al menos) 3 cortafuegos. Dado que has desactivado el firewall de la aplicación (en Preferencias del sistema - > Seguridad y privacidad - > Firewall) y has revisado el filtro de paquetes de Berkeley ( pfctl -sa ), supongo que es el antiguo ipfw el que está bloqueando. Puede consultar con sudo ipfw show , que incluirá una lista de las reglas activas, junto con los recuentos de cuántos paquetes y bytes ha aplicado cada uno a:

$ sudo ipfw show
01000 19228642 23229993542 allow ip from any to any via lo0
01010        0           0 deny ip from any to 127.0.0.0/8
[etc...]
65534    23505     3467352 deny ip from any to any
65535        0           0 allow ip from any to any

Si su lista solo muestra la regla # 65535 (la regla de permiso al final), mi suposición es incorrecta y usted debe buscar en otra parte. Si muestra otras reglas, es probable que tenga un programa de configuración de firewall de terceros instalado en algún lugar (no creo que el software de configuración ipfw suministrado por Apple todavía esté allí en 10.8); Eche un vistazo en / Library / StartupItems y / Library / LaunchDaemons para ver las cosas que podrían ser relevantes.

    
respondido por el Gordon Davisson 20.09.2013 - 07:06
1

Abra Console.app y verifique /var/log/appfirewall.log. Verás si la solicitud de conexión llega incluso al firewall de la aplicación. Si llega allí, AND se permite a continuación, verifique / var / log / apache2 / access_log y / var / log / apache2 / error_log para ver si la solicitud está llegando a Apache. Si la solicitud llega a Apache, es probable que el problema esté en su (s) archivo (s) de configuración de Apache. Si ninguno de los registros anteriores muestra algo, consulte el archivo system.log para obtener pistas adicionales.

    
respondido por el HairOfTheDog 07.02.2013 - 03:42

Lea otras preguntas en las etiquetas