Project

General

Profile

Actions

Anomalie #3532

closed

Le filesystem de la VM Drupal partie Mysql se remplit dangereusement

Added by Frédéric Couchet over 5 years ago. Updated over 5 years ago.

Status:
Fermé
Priority:
Immédiate
Assignee:
Christian P. Momon
Category:
-
Target version:
Start date:
01/02/2019
Due date:
% Done:

0%

Estimated time:
Difficulté:
2 Facile

Description

Salut,

ce mercredi 2 janvier 2019 matin le site www.april.org était down :

Erreur 50x - Le service demandé n'est pas accessible pour le moment

/var/lib/mysql était à 100%

Il y avait dans /var/lib/mysql/drupal6 deux fichiers watchdog-170409101709.BAK watchdog-181030225617.BAK qui prenaient 1,6 Go,
je les ai déplacé dans ~root. Mais je pense qu'on peut les supprimer, je
vous laisse juges.

/var/lib/mysql est ensuite à 58%.

Le site est de retour.

Mais vers 15h00 j'ai noté que /var/lib/mysql était à 89% avec notamment un fichier drupal6/watchdog.MYD de 1,2 Go.

Il faudrait voir si une config a été modifiée au niveau du Drupal qui générerait ce problème.

Ou alors c'est en lien avec https://agir.april.org/issues/1919.


Related issues 1 (0 open1 closed)

Related to Admins - Demande #6364: /var plein sur drupal6RésoluPierre-Louis Bonicoli02/27/2024

Actions
Actions #1

Updated by Christian P. Momon over 5 years ago

A priori, un fichier watchdog de Mysql qui grandit est un signe d'activité du site web l'utilisant.

Dans les logs Apache, détection d'une IP qui floode un peu (1 000 000 de requêtes depuis hier) :

(April) root@drupal6:/var/log/apache2# zgrep -n 42.49.180.xx www.april.org.access.log |wc -l
227493
(April) root@drupal6:/var/log/apache2# zgrep -n 42.49.180.xx www.april.org.access.log.1 |wc -l
798642
(April) root@drupal6:/var/log/apache2# head -1 www.april.org.access.log www.april.org.access.log.1 
==> www.april.org.access.log <==
109.234.x.x - - [02/Jan/2019:06:25:24 +0100] "GET /lav.xml HTTP/1.0" 200 664657 "-" "-" 

==> www.april.org.access.log.1 <==
109.234.x.x - - [01/Jan/2019:06:25:28 +0100] "GET /lav.xml HTTP/1.0" 200 664657 "-" "-" 

Les requêtes ne sont pas gentilles :

"GET /en/category/ HTTP/1.0" 404 22282 "https://www.april.org:443/" "uB8ZDnn6';select pg_sleep(3); --" 
"GET /en/category/ HTTP/1.0" 404 22282 "https://www.april.org:443/" "CKZULjdk');select pg_sleep(6); --" 
"GET /en/print/node HTTP/1.0" 200 6888 "https://www.april.org:443/" "Xz2SwCKV'));select pg_sleep(9); --" 
"GET /en/category/ HTTP/1.0" 404 22282 "https://www.april.org:443/" "9QghF5Ig'));select pg_sleep(6); --" 
"GET /en/print/node HTTP/1.0" 200 6888 "https://www.april.org:443/" "(select convert(int,CHAR(65)))" 
"GET /en/category/themes/ HTTP/1.0" 404 18649 "https://www.april.org:443/" "(select(0)from(select(sleep(6)))v)/*'+(select(0)from(select(sleep(6)))v)+'\"+(select(0)from(select(sleep(6)))v)

L'IP semble être utilisée en Chine :

whois 42.49.180.xx
[…]
inetnum:        42.48.0.0 - 42.49.255.255
netname:        UNICOM-HN
descr:          China Unicom HuNan province network
descr:          China Unicom
descr:          No.21,Jin-Rong Street,
descr:          Beijing 100033
country:        CN

Ban de l'IP sur la VM bastion dans /etc/nginx/sites-available/sites-enabled/www.april.org :

location / {
    # Ban IP from cracker generating huge Mysql watchdog file (#3532).
    deny 42.49.180.18;

    proxy_pass http://172.16.0.7;
}

Constatation : le fichier watchdog de Mysql grandit 5 fois moins vite : passe de ~30Mo/h à ~5Mo/h.

À étudier :
  • débannir l'ip ;
  • consolider l'espace disque Mysql pour résister à de « plus » fortes sollicitations.
Actions #2

Updated by Christian P. Momon over 5 years ago

  • Status changed from Nouveau to En cours de traitement
Actions #3

Updated by Quentin Gibeaux over 5 years ago

À noter qu'on a eu un cas un peu similaire de spam (mais juste un crawl) le mois dernier : https://agir.april.org/issues/3524
J'avais bloqué directement via iptables sur bastion

Actions #4

Updated by François Poulain over 5 years ago

J'ai aussi réduit au minimum (100) le crappy log de drupal dans https://www.april.org/admin/settings/logging/dblog qui pourri la table watchdog. J'ai forcé le cron via https://www.april.org/admin/reports/status

Actions #5

Updated by Quentin Gibeaux over 5 years ago

  • Assignee set to Christian P. Momon
Actions #6

Updated by Quentin Gibeaux over 5 years ago

  • Target version changed from Décembre 2018 to Janvier 2019
Actions #7

Updated by Quentin Gibeaux over 5 years ago

Débannir l'IP et vérifier si l'attaque continue

Actions #8

Updated by Christian P. Momon over 5 years ago

IP débannie et constat de l'absence de requête depuis cette IP.

Actions #9

Updated by Christian P. Momon over 5 years ago

  • Status changed from En cours de traitement to Résolu
Actions #10

Updated by Quentin Gibeaux over 5 years ago

  • Status changed from Résolu to Fermé
Actions #11

Updated by Pierre-Louis Bonicoli 5 months ago

Actions

Also available in: Atom PDF