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?
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?
Réponses:
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 a maintenant le module reqtimeout qui vous permet de configurer certains paramètres pour mieux vous protéger contre Slowloris.
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" des 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 ""}'
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 les tentatives de connexion infructueuses effectuées à partir de l'adresse IP source de l'attaquant, la plupart du temps les attaques basées sur le dictionnaire.
afin de protéger mon serveur j'utilise Fail2Ban un simple script
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.
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, 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.
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 l' a dit mfinni . 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.
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.