Domanda

Fino a poco tempo fa, avevo creato un sacco di siti virtuali così:

<VirtualHost 127.0.0.1:1234>
    ...

Funziona bene per i test sul mio computer locale, dove utilizzo un desktop Linux. Per testare come MS ed Explorer visualizzano le mie pagine dal mio laptop Windows, l'ho modificato in

<VirtualHost *:1234>
    ...

Che funziona anche bene, richiamando il sito da http: // [mylinuxservername]: 1234 sul mio laptop IE. Tuttavia, voglio limitare quel carattere jolly alla LAN locale. Collegando qualsiasi IP, come 192.nnn.nnn.nnn o 192. *. *. * Dove il carattere jolly si trova sopra, si ottiene 403 Proibito sul computer Windows. Il server locale funziona ancora bene sul mio box 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
    ...

Comunque, non mi piace quel jolly nel secondo esempio di configurazione sopra. Consigli qualcuno?

È stato utile?

Soluzione

I parametri di VirtualHost sono gli indirizzi locali che ascolti, non quelli remoti.

In Apache 2.4 e versioni successive, utilizza Require direttiva:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

Se si utilizza Apache 2.2 o versioni precedenti, utilizzare authz_host configurazione:

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

Questo può funzionare anche su Apache 2.4, ma Order e Allow sono stati deprecati .

Altri suggerimenti

Solo una nota nel caso in cui qualcuno come me venga qui :)

  

Il server HTTP Apache viene configurato inserendo le direttive in testo semplice   file di configurazione. Il file di configurazione principale viene generalmente chiamato   httpd.conf.    File di configurazione principali

Per la versione 2.4

  

Le direttive Consenti, Nega e Ordina, fornite da mod_access_compat,   sono deprecati e andranno via in una versione futura. Dovresti evitare   usandoli ed evita tutorial obsoleti che raccomandano il loro uso.    Controllo degli accessi

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

o (non esattamente lo stesso)

Require ip 127.0
Require ip 192.168

Usa iptables per limitare l'accesso alla macchina stessa. Il primo comando consentirà il traffico HTTP da qualsiasi rete nell'intervallo 192 (nota che penso che tu abbia bisogno di 192.168 per essere veramente locale ma potrei sbagliarmi). Il secondo comando elimina semplicemente i pacchetti da altre fonti per la porta 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 

Quindi nel tuo host virtuale puoi fare < VirtualHost *: 80 >

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top