web-dev-qa-db-fra.com

Serveur sous attaque DDOS - Comment trouver les IP?

Mon serveur subit des attaques DDOS et je souhaite bloquer l'adresse IP qui le fait, quels journaux dois-je rechercher pour déterminer l'adresse IP de l'attaquant?

23
Webnet
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more

Jetez un œil aux meilleures adresses IP. Si certains se démarquent des autres, ce sont ceux-là qui seront pare-feu.

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

Cela examinera les connexions actuellement actives pour voir s'il y a des IP se connectant au port 80. Vous devrez peut-être modifier la coupure -c 45- car l'adresse IP peut ne pas commencer à la colonne 45. Si quelqu'un faisait un déluge UDP à votre serveur Web, cela le reprendrait également.

Au cas où aucune d'entre elles ne montrerait d'IP qui soient excessivement hors de la norme, vous devrez supposer que vous avez un botnet qui vous attaque et devrez rechercher des modèles particuliers dans les journaux pour voir ce qu'ils font. Une attaque courante contre les sites wordpress est:

GET /index.php? HTTP/1.0

Si vous consultez les journaux d'accès de votre site Web, vous pourrez peut-être faire quelque chose comme:

cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more

qui vous montrera les URL les plus fréquemment consultées. Vous pourriez constater qu'ils frappent un script particulier plutôt que de charger l'intégralité du site.

cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more

vous permettrait de voir les UserAgents courants. Il est possible qu'ils utilisent un seul UserAgent dans leur attaque.

L'astuce consiste à trouver quelque chose en commun avec le trafic d'attaque qui n'existe pas dans votre trafic normal, puis à le filtrer via iptables, mod_rewrite ou en amont avec votre hébergeur. Si vous êtes touché par Slowloris, Apache 2.2.15 dispose désormais du module reqtimeout qui vous permet de configurer certains paramètres pour mieux vous protéger contre Slowloris.

45
user6738237482

FYI - Vous devriez essayer de travailler avec votre FAI pour voir s'il peut le bloquer en amont de vous.

7
mfinni

Quelques bons conseils ici. J'ajouterais également ceci:

netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''

Mettez cela sous un alias (nn, par exemple). Cela vous donnera une perspective "graphique" de l'ips avec des connexions plus établies.

J'espère que cela t'aides.

Pour ceux qui ne pouvaient pas faire fonctionner cela, j'ai corrigé la syntaxe afin qu'elle fonctionne pour moi sous Ubuntu:

netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
4
Marco Ramos

Mes fichiers journaux préférés pour vérifier les attaques DOS sont/var/log/secure (sous Redhat/Centos/Fedora ....) et /var/log/auth.log (sous ubuntu, debian ...). Vous verrez des tentatives de connexion infructueuses effectuées à partir de l'adresse IP source de l'attaquant, la plupart du temps des attaques basées sur un dictionnaire.

3
Daniel t.

Quelle distribution?

Je pense que le journal est sous /var/log/Apache2/access.log avec Ubuntu ... Peut-être aussi Debian.

Exécutez updatedb en tant que Sudo, puis recherchez access.log à partir de la ligne de commande.

EDIT: Je pense que cela ne se produira que s'ils vous frappent en demandant des pages ou directement via le port 80. S'ils frappent d'autres ports, vous ne verrez pas les informations dont vous avez besoin là-bas, vous devrez vérifier et voir quel processus est en cours d'exécution sur ce port et consultez les journaux de connexion de ce processus.

0
Mike Keller

Si vous êtes sous un DOS distribué, il y a certainement plus d'une adresse IP à bloquer et des adresses IP peuvent être falsifiées, il vaut mieux demander à votre FAI comme mfinni l'a dit. De plus, cela peut être plus qu'un DOS contre votre serveur mais un leurre pour cacher la détection de la véritable attaque, alors vérifiez que tous vos services exposés sont exécutés par un logiciel à jour. Vous pouvez également être intéressé par mod_dosevasive pour Apache.

0
Maxwell

vous pouvez utiliser tcpdump pour voir de quelle adresse il s'agit $ tcpdump -vv port X si vous suspectez un port particulier

0
Razique

Vous devez d'abord déterminer le type de DOS. Certaines attaques sont très furtives mais efficaces (slowloris), certaines sont si lourdes que cela pourrait faire tomber un FAI (inondation ICMP à partir d'une bande passante plus élevée que votre source FAI).

Après avoir déterminé le type de DOS, appelez votre FAI et demandez-lui s'il peut filtrer le trafic.

J'ai vu des inondations ICMP si importantes que nous avons dû demander au FAI en amont de filtrer l'IP de destination via une communauté BGP.

0
Mircea Vutcovici

afin de protéger mon serveur j'utilise Fail2Ban un script simple

analyse les fichiers journaux comme/var/log/pwdfail ou/var/log/Apache/error_log et interdit les adresses IP qui provoquent trop de pannes de mot de passe. Il met à jour les règles de pare-feu pour rejeter l'adresse IP.

http://www.fail2ban.org/wiki/index.php/Main_Page

0
Mirandapablog