J'ai un serveur avec apache et j'ai récemment installé mod_security2 parce que je suis souvent attaqué par cela :
Ma version d'apache est apache v2.2.3 et j'utilise mod_security2.c
Voici les entrées du journal des erreurs :
[Wed Mar 24 02:35:41 2010] [error]
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:47:31 2010] [error]
[client 202.75.211.90] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:47:49 2010] [error]
[client 95.228.153.177] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Wed Mar 24 02:48:03 2010] [error]
[client 88.191.109.38] client sent HTTP/1.1 request without hostname
(see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
Voici les erreurs du journal d'accès :
202.75.211.90 - -
[29/Mar/2010:10:43:15 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - -
[29/Mar/2010:11:40:41 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
211.155.228.169 - -
[29/Mar/2010:12:37:19 +0200]
"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 392 "-" "-"
J'ai essayé de configurer le mod_security2 comme ceci :
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecFilterSelective REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecFilterSelective REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"
Le problème dans le mod_security2 est que SecFilterSelective ne peut pas être utilisé, cela me donne des erreurs. À la place, j'utilise une règle comme celle-ci :
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind"
SecRule REQUEST_URI "\w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:"
SecRule REQUEST_URI "w00tw00t\.at\.ISC\.SANS\.DFind:\)"
Même cela ne fonctionne pas. Je ne sais plus quoi faire. Quelqu'un a un conseil à me donner ?
Mise à jour 1
Je vois que personne ne peut résoudre ce problème en utilisant mod_security. Jusqu'à présent, l'utilisation de ip-tables semble être la meilleure solution, mais je pense que le fichier deviendra extrêmement volumineux, car l'adresse IP change plusieurs fois par jour.
J'ai trouvé deux autres solutions. Quelqu'un peut-il me dire si elles sont bonnes ou non ?
-
La première solution qui me vient à l'esprit est d'exclure ces attaques de mes journaux d'erreurs apache. Cela me permettra de repérer plus facilement d'autres erreurs urgentes au fur et à mesure qu'elles se produisent et de ne pas avoir à cracher dans un long journal.
-
La deuxième option est meilleure, je pense, et consiste à bloquer les hôtes qui ne sont pas envoyés de la bonne manière. Dans cet exemple, l'attaque w00tw00t est envoyée sans nom d'hôte, donc je pense que je peux bloquer les hôtes qui ne sont pas dans la forme correcte.
Mise à jour 2
Après avoir parcouru les réponses, je suis arrivé aux conclusions suivantes.
-
Avoir une journalisation personnalisée pour apache consommera des ressources inutiles, et s'il y a vraiment un problème, vous voudrez probablement regarder le journal complet sans rien manquer.
-
Il est préférable d'ignorer les résultats et de se concentrer sur une meilleure façon d'analyser vos journaux d'erreurs. L'utilisation de filtres pour vos journaux est une bonne approche pour cela.
Dernières réflexions sur le sujet
L'attaque mentionnée ci-dessus n'atteindra pas votre machine si vous disposez au moins d'un système à jour, vous n'avez donc aucun souci à vous faire.
Au bout d'un certain temps, il peut être difficile de distinguer les fausses attaques des vraies, car les journaux d'erreurs et d'accès deviennent extrêmement volumineux.
Empêcher cela de quelque manière que ce soit vous coûtera des ressources et c'est une bonne pratique de ne pas gaspiller vos ressources pour des choses sans importance.
La solution que j'utilise maintenant est Linux logwatch . Il m'envoie des résumés des journaux, qui sont filtrés et regroupés. De cette façon, vous pouvez facilement séparer l'important de l'insignifiant.
Merci à tous pour votre aide, et j'espère que cet article pourra être utile à quelqu'un d'autre.