Projet

Général

Profil

Actions

Anomalie #3532

fermé

Le filesystem de la VM Drupal partie Mysql se remplit dangereusement

Ajouté par Frédéric Couchet il y a presque 6 ans. Mis à jour il y a presque 6 ans.

Statut:
Fermé
Priorité:
Immédiate
Assigné à:
Christian P. Momon
Catégorie:
-
Version cible:
Début:
02/01/2019
Echéance:
% réalisé:

0%

Temps estimé:
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.


Demandes liées 1 (0 ouverte1 fermée)

Lié à Admins - Demande #6364: /var plein sur drupal6RésoluPierre-Louis Bonicoli27/02/2024

Actions

Mis à jour par Christian P. Momon il y a presque 6 ans

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.

Mis à jour par Christian P. Momon il y a presque 6 ans

  • Statut changé de Nouveau à En cours de traitement

Mis à jour par Quentin Gibeaux il y a presque 6 ans

À 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

Mis à jour par François Poulain il y a presque 6 ans

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

Mis à jour par Quentin Gibeaux il y a presque 6 ans

  • Assigné à mis à Christian P. Momon

Mis à jour par Quentin Gibeaux il y a presque 6 ans

  • Version cible changé de Décembre 2018 à Janvier 2019

Mis à jour par Quentin Gibeaux il y a presque 6 ans

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

Mis à jour par Christian P. Momon il y a presque 6 ans

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

Mis à jour par Christian P. Momon il y a presque 6 ans

  • Statut changé de En cours de traitement à Résolu

Mis à jour par Quentin Gibeaux il y a presque 6 ans

  • Statut changé de Résolu à Fermé

Mis à jour par Pierre-Louis Bonicoli il y a 9 mois

Actions

Formats disponibles : Atom PDF