Mod Evasive pour Apache, la fausse bonne idée

1/52/53/54/55/5 (2 votes, moyenne: 3,00 sur 5)
Loading...
M

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

 

 

Dans la continuité de mon article sur la protection anti-ddos pour Nginx, j’étais parti pour vous écrire un article sur l’installation du module evasive pour Apache qui est censé faire la même chose.

 

Le problème, c’est que je ne vous expliquerais pas comment installer ce module, car au moment des tests, j’ai eu une grosse déception.

 

Voici mes tests, je précise que je les ai fait sur la page par défaut d’Apache …

 

Avant l’installation du module Evasive :

 

Log de test :

 root@debian:~# ab -n 20000 -c 300 http://192.168.1.13/
 This is ApacheBench, Version 2.3 <$Revision: 655654 $>
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 Licensed to The Apache Software Foundation, http://www.apache.org/
    
 Benchmarking 192.168.1.13 (be patient)
 Completed 2000 requests
 Completed 4000 requests
 Completed 6000 requests
 Completed 8000 requests
 Completed 10000 requests
 Completed 12000 requests
 Completed 14000 requests
 Completed 16000 requests
 Completed 18000 requests
 Completed 20000 requests
 Finished 20000 requests
 Server Software: Apache/2.2.22
 Server Hostname: 192.168.1.13
 Server Port: 80
    
 Document Path: /
 Document Length: 177 bytes
    
 Concurrency Level: 300
 Time taken for tests: 11.703 seconds
 Complete requests: 20000
 Failed requests: 0
 Write errors: 0
 Total transferred: 9060000 bytes
 HTML transferred: 3540000 bytes
 Requests per second: 1708.97 [#/sec] (mean)
 Time per request: 175.544 [ms] (mean)
 Time per request: 0.585 [ms] (mean, across all concurrent requests)
 Transfer rate: 756.02 [Kbytes/sec] received
    
 Connection Times (ms)
 min mean[+/-sd] median max
 Connect: 0 74 89.7 78 3086
 Processing: 30 100 145.1 82 2026
 Waiting: 23 100 145.0 81 2025
 Total: 77 174 165.8 160 3166
    
 Percentage of the requests served within a certain time (ms)
 50% 160
 66% 162
 75% 164
 80% 165
 90% 168
 95% 173
 98% 346
 99% 804
 100% 3166 (longest request)

 

HTOP pris au moment du test :

 

apache-sans-evasive

 

 

Après l’installation du module Evasive :

 

Log de test :

root@debian:~# ab -n 20000 -c 300 http://192.168.1.13/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking 192.168.1.13 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: Apache/2.2.22
Server Hostname: 192.168.1.13
Server Port: 80
 
Document Path: /
Document Length: 280 bytes
 
Concurrency Level: 300
Time taken for tests: 9.744 seconds
Complete requests: 20000
Failed requests: 9
(Connect: 0, Receive: 0, Length: 9, Exceptions: 0)
Write errors: 0
Non-2xx responses: 19991
Total transferred: 9659730 bytes
HTML transferred: 5599073 bytes
Requests per second: 2052.54 [#/sec] (mean)
Time per request: 146.161 [ms] (mean)
Time per request: 0.487 [ms] (mean, across all concurrent requests)
Transfer rate: 968.11 [Kbytes/sec] received
 
Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 68 34.3 71 1053
Processing: 32 77 31.3 73 900
Waiting: 30 76 31.2 73 900
Total: 41 145 44.8 143 1131
 
Percentage of the requests served within a certain time (ms)
50% 143
66% 146
75% 148
80% 150
90% 157
95% 162
98% 171
99% 178
100% 1131 (longest request)
 

HTOP pris au moment du test :

apache-avec-evasive

 

Fichier de configuration du module evasive :

 DOSHashTableSize 3097
 DOSPageCount 2
 DOSPageInterval 1
 DOSSiteCount 100
 DOSSiteInterval 1
 DOSBlockingPeriod 300
 DOSLogDir "/var/lock/mod_evasive"

 

Conclusion :

 

Vous voyez la différence ? Moi non plus, et le problème est bien là. Le module evasive demande autant de puissance pour traiter les requêtes que lorsque le serveur subit simplement l’attaque DDOS sans essayer de se défendre …

 

En bref, utilisez un Reverse Proxy Nginx pour vous défendre contre ce type d’attaque, le module evasive pour Apache est inefficace …

 

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Inline Feedbacks
View all comments