Pregunta

Hasta hace poco, tenía un montón de sitios virtuales configurados así:

<VirtualHost 127.0.0.1:1234>
    ...

Esto funciona bien para probar en mi máquina local, donde uso un escritorio Linux. Para probar cómo MS y el explorador muestran mis páginas desde mi computadora portátil con Windows, cambié esto a

<VirtualHost *:1234>
    ...

Lo cual también funciona bien, llamando al sitio desde http: // [mylinuxservername]: 1234 en mi computadora portátil ES DECIR. Sin embargo, quiero restringir ese comodín al lan local. Conectar cualquier ip, como 192.nnn.nnn.nnn o 192. *. *. * Donde el comodín está arriba da como resultado 403 Prohibido en la máquina de Windows. El servidor local todavía funciona bien en mi caja de Linux:

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...

o

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...

De todos modos, no me gusta ese comodín en el segundo ejemplo de configuración anterior. ¿Alguna pista?

¿Fue útil?

Solución

Los parámetros de VirtualHost son las direcciones locales que escuchas, no las remotas.

En Apache 2.4 y más reciente, use Requerir directiva:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

Si está utilizando Apache 2.2 o una versión anterior, use authz_host configuración:

Order Allow,Deny
Allow from 127.0.0.0/8
Allow from 192.168.0.0/16

Esto también puede funcionar en Apache 2.4, pero Order y Permitir han sido desaprobados .

Otros consejos

Solo una nota en caso de que algunos noobs como yo vengan aquí :)

  

El servidor HTTP Apache se configura colocando directivas en texto plano   Archivos de configuración. El archivo de configuración principal suele llamarse.   httpd.conf.    Archivos de configuración principales

Para la versión 2.4

  

Las directivas Permitir, Denegar y Ordenar, proporcionadas por mod_access_compat,   están en desuso y desaparecerán en una versión futura. Tú deberías evitar   usándolos, y evite los tutoriales obsoletos que recomiendan su uso.    Control de acceso

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

o (no es exactamente lo mismo)

Require ip 127.0
Require ip 192.168

Utilice iptables para restringir el acceso a la máquina. El primer comando permitirá el tráfico HTTP desde cualquier red en el rango 192 (tenga en cuenta que creo que necesita 192.168 para ser realmente local, pero podría equivocarme). El segundo comando simplemente elimina los paquetes de otras fuentes para el puerto 80

iptables -I 1 INPUT -s 192.0.0.0/8 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


iptables -I 2 INPUT -p tcp --dport 80 -m state --state NEW -j DROP 

Luego, en su host virtual puede hacer < VirtualHost *: 80 >

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top