Filtrer les accès par IP dans Apache
I. Présentation
Dans ce tutoriel nous allons voir commenter filtrer les accès à un vhost en particulier via la configuration d'Apache. Cela peut être particulièrement utile lorsque l'on souhaite interdire à une machine, une IP ou une plage d'IP l'accès à un vhost ou au contraire n'autoriser qu'un nombre restreint d'IP à se connecter à celui-ci.
II. Configuration
Pour mettre en place cette configuration, il faut déjà avoir un vhost valide et opérationnel. Il faut savoir que plusieurs syntaxes peuvent être utilisées :
- 10.1.1.1 pour décrire un hôte par exemple
- 10.1.1.0\24 ou 10.1.1. ou 10.1.1.* pour décrire une plage d'IP
- 10.1.1.1-24 pour décrire un groupe d'IP bien spécifique
Nous allons désormais voir un premier exemple dans lequel nous interdisons l'accès à toutes les IP sauf à celle sur la plage IP 10.1.1.0/24. Il est à noter que cette configuration est à mettre entre < directory "/chemin/vhost" > et < /directory > :
< directory "/chemin/vhost" > order deny,allow deny from all allow from 10.1.1.0/24 < /Directory >
Ici, on spécifie dans un premier temps dans quel ordre affecter nos règles de filtrage d'accès (ici on affecte d'abord nos deny puis nos allow), puis on saisis nos règles. Un autre exemple où l'on autorise toutes les IP à se connecter à notre Vhost mais on refuse la plage IP 192.168.50.0/24
< directory "/chemin/vhost" > order allow,deny allow from all deny from 192.168.50.0/24 < /directory >