Bonjour,

Une phénomène curieux aux conséquences peu drôles sur le serveur du
lycée ce matin. Le 19 janvier vers 17h50-17h53, le fichier passwd a été
réduit à néant (longueur 0). Résultats, plus aucun processus autorisés à
se lancer, les démons tournaient toujours mais évidemment pas de
ssh/telnet/ftp possible. Même un «Ctrl-Alt-Del» me répondait un
succulent:

"You don't exist, go away..." (textuel).

Donc reboot sauvage sur CD, fsck de la racine, constatation (et unique
satisfaction) que le diagnostic était bon, reprise d'un passwd d'un
backup du 14 Janvier (ai je dit que les backups sont vraiment
indispensables) et hop c'est reparti. Reste à comprendre pourquoi:

La machine hébrege des comptes courriers, un serveur Web avec forum, un
serveur Samba controleur de domaine, un serveur NFS et un serveur NIS.
Il n'y a pas de shadow, les outils susceptibles de toucher passwd sont
outre passwd sur le serveur (sur lequel personne ne va et n'est allé
sauf moi):

nis via yppasswd jamais utilisé,
un script cgi perl éditant un nouveau fichier passwd1 et se terminant
par
unlink ($RACINE.$PASS.".old");
rename $RACINE.$PASS , $RACINE.$PASS.".old";
rename $RACINE.$PASS_TMP , $RACINE.$PASS;
chown 0,0,$RACINE.$PASS;
# chmod 0600,$RACINE.$PASS;
chmod 0644,$RACINE.$PASS;

où $RACINE = "/etc", $PASS="passwd" et $PASS_TMP="passwd1".

Ce programme laisse un log dès le début du processus (succès ou non). Or
rien dans les logs et aucune trace du fichier passwd1 sur /etc.

Vers ces heures là, j'ai constaté:

-> la présence de nombreuses requêtes sur le forum (ligne du type):

172.207.33.240 - - [19/Jan/2005:17:52:03 +0100] "GET
/phpBB2/viewforum.php?f=9&amp;sid=http://www.google.fr/search%3f<balise
xss>%22%27 HTTP/1.1" 200 50599

et également des pages bigbrother indiquant l'état du réseau et des
machines (cf http://charlemagne.dyndns.org/bb/bb.html) mais ces requêtes
continuent largement après que le problème soit effectivement arrivé.

-> Une légère augmentation de la charge du serveur (en gros elle est
montée à 3)

mis à part ça, aucune interruption du service.

-> Le seul évènement marquant semble être décrit dans le syslog par

Jan 19 17:50:10 yoda ipop3d[31906]: Login user=boisson
host=alf94-3-82-66-248-156.fbx.proxad.net [82.66.248.156] nmsgs=7/7

Jan 19 17:50:28 yoda ipop3d[31906]: Logout user=boisson
host=alf94-3-82-66-248-156.fbx.proxad.net [82.66.248.156] nmsgs=7
ndele=0

(* ça c'est fetchmail (chez moi donc par Internet) qui récupère mon
courrier, passwd existe donc encore *)

Jan 19 17:53:27 yoda mountd[294]: NFS mount of /home attempted from
192.168.1.20 Jan 19 17:53:27 yoda mountd[294]: /home has been mounted by
192.168.1.20 

(* une machine est boutée sur linux et monte plusieurs répertoires par
NFS, il se trouve que cette machine a eu son écran changé et le nouvel
écran ne supporte pas la configuration XFree86, la machine va donc être
sauvagement éteinte 3 minutes plus tard... *)

Jan 19 17:53:29 yoda inetd[8776]: getpwnam: mail: No such user

(* passwd n'existe plus *)

Jan 19 17:53:29 yoda mountd[294]: NFS mount of /home attempted from
192.168.1.25 

(* le gars essaye d'une autre machine, puis d'une troisième plus tard *)

Jan 19 17:53:46 yoda inetd[8834]: getpwnam: root: No such user

(* root n'existe plus, passwd est réduit à néant *)

Les logs de samba montrent que plus personne n'utilisait de machines
sous windows à partir de 16h40.


Bref, je n'ai aucune idée sur la raison de la disparition du fichier
passwd. chkrootkit et mes programmes de surveillance n'indiquent rien
(pas de fichiers modifiés, pas de processus cachés). Personne d'autre
que moi ne s'est loggué sur le serveur ce jour là, bref je suis
perplexe. Si quelqu'un a une idée de ce qui pourrait s'être passé, je
suis preneur.


François Boisson

Répondre à