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,
Aujourd’hui, on va voir comment installer le script DDOS Deflate sur un serveur Debian 7 « Wheezy ».
Avant tout, Deflate est un « vieux » programme qui ne semble plus être mis à jour et qui ne fonctionne pas sur Debian Wheezy sans quelques modifications.
Toutefois, après résolutions de quelques petites erreur (nom du service cron, et shell d’exécution du script) j’ai réussi à le rendre fonctionnel et il est quand même très efficace donc je vous partage mes configurations.
Installation de DDOS Deflate :
J’ai créer mon propre fork de DDOS Deflate, spécialement pour Debian Wheezy, tout est disponible sur mon github.
On installe Deflate avec ce script :
wget -O- https://raw.githubusercontent.com/stylersnico/DDOS-Deflate-for-Debian-7/master/install.sh | sh
Lancement de DDOS Deflate :
Le script est automatiquement lancé et configuré lors de l’installation et si tout fonctionne bien vous devriez avoir quelque chose comme cela qui est passé dans votre shell :
[....] Restarting periodic command scheduler: cron[....] Stopping periodic co[ ok scheduler: cron. [ ok ] Starting periodic command scheduler: cron. [....] Restarting periodic command scheduler: cron[....] Stopping periodic co[ ok scheduler: cron. [ ok ] Starting periodic command scheduler: cron.
Maintenant, lancez la commande suivante :
/usr/local/ddos/ddos.sh
Cette commande devrait vous sortir le même résultat :
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0
Par exemple pour moi :
root@debian:/usr/local/ddos# /usr/local/ddos/ddos.sh 1 192.168.1.24 1 serveurs) 1 locale root@debian:/usr/local/ddos# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0 1 192.168.1.24 1 serveurs) 1 locale
Si tout est bon, votre DDOS Deflate devrait marcher.
Test de fonctionnement :
Je vais me servir d’Apache Bench sur un serveur distant pour voir le comportement du serveur de test avec la commande suivante :
ab -n 200000 -c 100 http://192.168.1.13/
Voici le résultat :
root@debian:~# ab -n 200000 -c 100 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 20000 requests Completed 40000 requests apr_poll: The timeout specified has expired (70007) Total of 45522 requests completed root@debian:~#
La bestiole est un peu longue à la détente vu que le script s’exécute 1 fois par minute, mais ça marche.
Maintenant on rentre cette commande (192.168.1.231 était l’ip de mon serveur qui lançait l’attaque) :
iptables -L INPUT -v -n | grep "192.168.1.231"
Et voici le résultat :
1425 93716 DROP all -- * * 192.168.1.231 0.0.0.0/0
Et lorsque j’essaye de relancer une attaque :
root@debian:~# ab -n 200000 -c 100 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) apr_poll: The timeout specified has expired (70007)
Et le top c’est que le processeur n’est pas du tout utilisé ! Voyez par vous même :
Pas mal non ?
Mais le problème c’est qu’il faudra au maximum 1 minute au système pour se déclencher en cas d’attaque. C’est court, mais sur certains serveurs peu puissant c’est suffisant pour crashé le système alors si vous souhaitez protéger un serveur web par exemple, je vous conseille de suivre cet article en supplément, comme ça Nginx pourra mitiger l’attaque avant qu’elle soit définitivement bloquée par iptables.
Salut.
J’essaye de comprendre la différence entre ta version et l’original.
D’après ce que j’ai pu en lire, tu as simplement abandonné le /etc/cron.d/ddos.cron au profit de /etc/crontab ?
cron ne lit tout simplement pas le fichier d’origine, mais /etc/cron.d/ddos fonctionne parfaitement….
L’article n’est plus à jour.
Je suis passé outre l’utilisation de Netstat et j’ai désactivé les supports IPV6 et AFP pour des raisons de compatibilité.
Salut, merci pour cet article, la j’installe une wheezy 7.5 quand je lance la commande ./ddos.sh -c j’ai 2 petits messages :
crond: unrecognized service
crond: unrecognized service
Je l’ai alors lancé sans l’option -c, ça change quoi ?
Merci
Bonjour,
DDOS Deflate n’est plus maintenu.
J’ai créé un fork de ce projet qui se nomme No More DDOS : https://www.abyssproject.net/2014/08/installer-configurer-no-more-ddos/
Impossible de le DL a partir de debian « connexion en cours » et ça reste bloquer pareille pour no more DDOS…
Tous les fichiers sont bien accessibles pourtant mais je sais que les CDN de github ont des petits problèmes de peering avec les hébergeurs style OVH ou Online de temps en temps 😉