J'ai plusieurs hôtes virtuels nommés sur le même serveur Apache. Pour l'un des hôtes virtuels, je dois m'assurer que seul un ensemble spécifique d'adresses IP est autorisé à accéder.
S'il vous plaît suggérer le meilleur moyen de le faire. J'ai examiné le module mod_authz_hosts mais il ne semble pas que je puisse le faire à l'intérieur de l'hôte virtuel.
Le mod_authz_Host
Les directives doivent être à l'intérieur d'un <Location>
ou <Directory>
bloc mais j'ai utilisé l'ancien au sein de <VirtualHost>
comme ça pour Apache 2.2:
<VirtualHost *:8080>
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
...
</VirtualHost>
Référence: https://askubuntu.com/questions/262981/how-to-install-mod-authz-Host-in-Apache
Pour Apache 2.4, vous utiliseriez directive IP obligatoire . Donc, pour n'autoriser que les machines du réseau 192.168.0.0/24 (plage 192.168.0.0 - 192.168.0.255)
<VirtualHost *:80>
<Location />
Require ip 192.168.0.0/24
</Location>
...
</VirtualHost>
Et si vous souhaitez simplement que la machine localhost ait accès, il existe une instruction spéciale Require local .
Le fournisseur local autorise l'accès au serveur si l'une des conditions suivantes est remplie:
- l'adresse du client correspond à 127.0.0.0/8
- l'adresse du client est :: 1
- le client et l'adresse du serveur de la connexion sont les mêmes
Cela permet de faire correspondre les connexions provenant de l'hôte local:
<VirtualHost *:80>
<Location />
Require local
</Location>
...
</VirtualHost>
Si vous utilisez Apache 2.2 dans votre hôte virtuel, vous devez ajouter la directive suivante ( mod_authz_Host ):
Order deny,allow
Deny from all
Allow from 10.0.0.1
Vous pouvez même spécifier un sous-réseau
Allow from 10.0.0
Apache 2.4 semble un peu différent en tant que configuration. Mieux vaut peut-être préciser quelle version d'Apache utilisez-vous.
Dans Apache 2.4, la syntaxe de configuration des autorisations a été modifiée et les directives Order
, Deny
ou Allow
ne doivent plus être utilisées.
La nouvelle façon de faire serait:
<VirtualHost *:8080>
<Location />
Require ip 192.168.1.0
</Location>
...
</VirtualHost>
Vous trouverez d'autres exemples d'utilisation de la nouvelle syntaxe dans la documentation Apache: Mise à niveau de la version 2.2 à partir de la version 2.2