web-dev-qa-db-fra.com

Comment configurer une liste de blocage IP unique pour plusieurs sites hébergés sur le même compte

Lors de l'exécution de plusieurs sites sur le même compte d'hébergement, il est possible qu'un attaquant ait tenté de pénétrer dans un site. Un webmaster peut vouloir bloquer l'adresse IP de tous les sites hébergés dans le même compte.

Existe-t-il un moyen de conserver la liste des adresses IP/plages interdites dans un emplacement unique pouvant être référencé par tous les sites Web du même compte?

(Exemple: un fichier contenant une liste d'adresses IP/plages situées à la racine du système de fichiers et référencé simplement dans le fichier .htaccess de chaque site Web.)

1
authentictech

Le moyen le plus efficace de mettre les adresses IP en liste noire consiste à utiliser le pare-feu de votre système d'exploitation ou à l'aide d'un module spécialement conçu à cet effet, tel que ModSecurity .

Si vous n'avez pas accès à votre système d'exploitation et ne pouvez pas ajouter de modules, vous pouvez éditer votre fichier de configuration Apache avec les éléments suivants (pour bloquer l'adresse IP exemple 111.222.33.444):

<Location />
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 111.222.33.444
</Limit>
</Location>

Puis redémarrez Apache. Comme couvert ici , cela devrait fonctionner pour tous vos hôtes virtuels.

Alternativement, vous pouvez essayer d'utiliser la directive include pour chaque config d'hôte virtuel telle que couverte ici (utilisez deny from pour chaque IP à bloquer au lieu de allow from).

Enfin, si vous n'avez pas accès au pare-feu, aux modules de serveur ou aux fichiers de configuration du serveur de votre système d'exploitation (comme cela pourrait être le cas avec un compte d'hébergement Web partagé), vous pouvez utiliser un script côté serveur tel que Perl pour copier l'adresse IP de un fichier central dans chaque fichier . htaccess , et planifiez-le en tant que tâche cron afin que chaque hôte virtuel partage la même liste d'adresses IP dans la liste noire/le blocage .

1
dan

Existe-t-il un moyen de conserver la liste des adresses IP/plages interdites dans un emplacement unique pouvant être référencé par tous les sites Web du même compte?

Cela dépend de la configuration de "tous les sites Web" sur le "même compte". D'après des commentaires ailleurs sur cette question et sur la réponse de @ dan, il semble que vous n'ayez pas accès à la configuration du serveur principal et que vous utilisiez éventuellement un compte d'hébergement partagé.

Dans ce cas, si vos "sites Web" distincts sont implémentés sous la forme de sous-répertoires distincts sur le compte principal (par exemple, en utilisant des domaines cPanel Addon) ou de sous-domaines pointant vers des sous-répertoires du compte principal, vous pouvez implémenter ces directives de blocage dans le .htaccess fichier dans la racine du document du compte principal - un répertoire au-dessus de la racine du document des sous-sites Web. Les fichiers .htaccess sont hérités le long du chemin du système de fichiers. Par conséquent, les directives de blocage contenues dans le parent .htaccess seront traitées (sauf substitution dans le fichier .htaccess du site Web du sous-répertoire).

Par exemple, sur Apache 2.2:

<Limit GET POST PUT>
Order allow,deny
Allow from all
Deny from 111.222.33.444
</Limit>

(La directive <Location> n'est pas valide dans .htaccess.)

0
MrWhite