Riesgo de seguridad de usar hosts virtuales para sitios públicos e internos

0

Tengo un servidor Apache que aloja un sitio web público y un sitio web interno. Sin embargo, dado que Apache denota hosts virtuales basados en el encabezado HTTP Host , ¿podría alguien en Internet solicitar la IP de mi servidor con el encabezado Host establecido en su nombre interno / IP?

    
pregunta svbnet 04.01.2015 - 10:15
fuente

2 respuestas

3

Sí, eso es posible. De hecho, si el nombre interno está en el DNS (global), pueden solicitar el sitio interno por nombre.

Sin embargo, aún puede hacer lo que está tratando de hacer y estar (en su mayoría) seguro. No dices qué versión de Apache estás ejecutando, y las cosas cambiaron ligeramente para la versión 2.3. En Apache 2.3 o 2.4, puede usar mod_authz_host para restringir el servidor interno a direcciones IP específicas, es decir, las de su red interna. Entonces, podrías hacer algo como esto:

Require ip 10.1
Require ip 10.2 172.20 192.168.2

Dependiendo de la complejidad de la red local, un Require ip puede ser suficiente. La documentación completa está aquí: enlace

Para las versiones anteriores a Apache 2.3, usaría mod_access ( enlace ) que Funciona de forma ligeramente diferente, pero puede lograr lo mismo.

Todavía estás ejecutando los sitios externos e internos en la misma instancia de Apache, por lo que un error en Apache podría potencialmente exponer las páginas internas al exterior. Los errores en la configuración de los controles de acceso o los errores en la colocación de archivos también podrían serlo. El acceso a través de VPN presentará una dirección del concentrador de VPN, por lo que se verán como solicitudes 'internas', lo que probablemente sea bueno. Finalmente, las solicitudes de un servidor proxy presentarán la dirección del proxy. Eso probablemente no se aplica; Hay una nota en la documentación de Apache sobre esto.

Puede aumentar la seguridad de alguna manera utilizando un servidor con dos interfaces de red y asignando a cada host virtual su propia interfaz. Usaría una dirección IP interna ( RFC 1918 ) para el servidor virtual interno. Para mayor seguridad, necesita dos máquinas físicas, una en la red interna, con una dirección interna y una en la DMZ con una dirección registrada (o con puerto reenviado).

Finalmente, podría requerir autenticación (inicio de sesión) para el servidor interno. Si esto es práctico o necesario. depende de la cantidad de personas que usarán el servidor interno y de lo sensible que sea.

    
respondido por el Bob Brown 04.01.2015 - 11:14
fuente
0

Voy a suponer que la referencia interna significa la base de usuarios de las aplicaciones, no que el servidor se encuentra en la misma red en la que podría vincular el sitio web a la IP interna en ese caso.

Como se mencionó anteriormente, el nombre de host "interno" se puede descubrir a través de DNS (bastante común), pero también a través de la fuerza bruta (existen herramientas públicas) o la configuración incorrecta de apache donde el nombre de host interno también es el host predeterminado o se filtra en una página de error.

La autenticación es una forma sencilla de evitar el acceso no autorizado a un host virtual al que se debe acceder a través de una IP externa.

    
respondido por el wireghoul 05.01.2015 - 05:46
fuente

Lea otras preguntas en las etiquetas