2010-04-21 2 views
13

J'ai un sous-domaine que je veux seulement être accessible en interne; J'essaye de réaliser cela dans Apache en éditant le bloc VirtualHost pour ce domaine. Quelqu'un peut-il voir où je vais mal? Notez que mon adresse IP interne est 192.168.10.xxx. Mon code est le suivant:Apache - Restreindre à l'IP ne fonctionne pas

<VirtualHost *:80> 
    ServerName test.example.co.uk 
    DocumentRoot /var/www/test 
    ErrorLog /var/log/apache2/error_test_co_uk.log 
    LogLevel warn 
    CustomLog /var/log/apache2/access_test_co_uk.log combined 
    <Directory /var/www/test> 
    Order allow,deny 
    Allow from 192.168.10.0/24 
    Allow from 127 
    </Directory> 
</VirtualHost> 

Merci

Répondre

15

vous manque la ligne Deny from all? Oh, et en utilisant le mauvais order.

Citant le mod_access docs:

[...] tous les hôtes du domaine apache.org sont autorisés à accéder; tous les autres hôtes se voient refuser l'accès.

Order Deny,Allow 
Deny from all 
Allow from apache.org 
+0

Je lui ai donné un coup, mais pas de chance. Qu'est-ce qui se passe quand j'essaie de voir le site est de rendre un 403 interdit, peu importe d'où j'essaie. – Probocop

5

Le problème est votre ligne pour permettre au réseau local. Remplacez Allow from 192.168.10.0/24 par Allow from 192.168.10. (autorisera 192.168.10. *).

Pour être complet, ajoutez une ligne Deny from all pour indiquer que vous bloquez tout le monde.

+0

J'ai fait un essai mais toujours pas de chance, il est interdit, peu importe d'où j'essaie. Merci – Probocop

+0

Il semble que votre config est écrasé quelque part, comme j'ai testé la configuration et cela a fonctionné. Jetez un oeil à vos autres fichiers de configuration pour les règles d'accès. Par exemple, les distributions basées sur Debian vont mettre des restrictions supplémentaires dans /etc/apache2/conf.d/security. –

+1

Cette réponse m'a aidé, mais un échantillon de code aiderait encore plus. J'ai trouvé ceci dans les deux réponses ici: http://serverfault.com/a/323611/12448 –

1

Je suppose que le chemin à l'intérieur balise répertoire doit être simplement /

<VirtualHost *:80> 
    ServerName test.example.co.uk 
    DocumentRoot /var/www/test 
    ErrorLog /var/log/apache2/error_test_co_uk.log 
    LogLevel warn 
    CustomLog /var/log/apache2/access_test_co_uk.log combined 
    <Directory /> 
    Order allow,deny 
    Allow from 192.168.10.0/24 
    Allow from 127 
    </Directory> 
</VirtualHost> 

et s'il vous plaît ne pas oublié de redémarrer apache

Questions connexes