web-dev-qa-db-fra.com

Comment bloquer les requêtes malveillantes avant qu'elles n'atteignent Apache?

J'ai un service Web RESTful qui est touché par un grand nombre de demandes provenant de différentes adresses IP avec des connexions factices et des entrées aléatoires. J'ai déjà refusé ces demandes au niveau HTTP (à l'aide du fichier de configuration Apache) afin qu'elles obtiennent une réponse 403.

Cependant, il reste désagréable de les voir apparaître dans le fichier journal Apache et de consommer certaines ressources.

Est-il possible de supprimer complètement les paquets? Dois-je le faire avec iptables? Quels sont les autres moyens d’atténuer ce problème?

1
user881480

Si vous voulez les refuser, vous devez voir sous quelle signature vous pouvez les identifier. Si vous pouvez identifier quelque chose de simple que vous pouvez refuser au niveau du routeur, vous devriez idéalement les déposer au niveau du routeur externe, ou du routeur d'étranglement, avant qu'ils n'aillent plus loin dans votre infrastructure - le meilleur rapport qualité-prix.

Cependant, ils semblent tous très différents, vous aurez donc besoin de quelque chose d'un peu plus intelligent pour les identifier.

Quel type de pare-feu avez-vous intégré au routeur starter? Si cela peut faire une inspection approfondie et que vous pouvez traduire vos règles Apache en quelque chose que vous pouvez configurer dans votre pare-feu, vous réduisez encore la charge sur l'infrastructure plus loin vers le centre de votre réseau.

malheureusement, iptables n’est pas très intelligent - c’est plus le long de votre routeur de starter, donc si vous voulez lâcher des paquets avec iptables, je vous suggère de les déposer sur ce routeur.

Dernière option - si vous ne pouvez que supprimer ces demandes dans Apache, vous pouvez toujours le configurer pour ne pas enregistrer ces actions spécifiques ... Je ne le recommanderais cependant pas. Il est généralement préférable d’avoir les données à cet endroit afin que vous puissiez analyser un changement.

2
Rory Alsop

Dois-je le faire avec iptables?

L'utilisation de iptables est le meilleur moyen de bloquer le trafic avant qu'il n'atteigne Apache si vous êtes certain qu'une adresse particulière est malveillante. Si vous utilisez Ubuntu, certaines personnes trouvent que pare-feu simple (UFW) simplifie la configuration du pare-feu.

Pour bloquer un <IP address> connu en utilisant iptables:

Sudo iptables -A INPUT -s <IP address> -j DROP

Pour le bloquer en utilisant UFW:

Sudo ufw deny from <IP address>

Linode a un utile guide pour la configuration de iptables , et Ubuntu a un introduction à UFW qui peut s'avérer utile.

Quels sont les autres moyens d’atténuer ce problème?

Vous pouvez configurer un pare-feu matériel sur une machine distincte, qui agirait comme un agent de la circulation, filtrant le trafic que vous jugeriez non sécurisé et envoyant uniquement les demandes autorisées au serveur exécutant Apache.

1
Nick