4 votes

/etc/passwd continuellement consulté

Je fais tourner un serveur sur EC2 (Cent OS, 2.6.35.14, x86_64), et j'ai récemment dépassé mon quota de 1 million d'E/S par mois, ce qui est absurde, car mon utilisation du disque ne devrait pas être proche de cela. (Je n'exécute aucun service qui devrait nécessiter beaucoup d'accès au disque.... ou même aucun accès au disque)

Ma première idée a été de lancer iotop, et de voir s'il y avait des processus qui écrivaient continuellement sur le disque. iotop m'a montré qu'un processus nommé jbd2 écrivait sur le disque plus d'une fois par minute.

Après un peu de en faisant des recherches il est apparu que le problème était soit un bug du noyau, soit un daemon touchant régulièrement le disque.

J'ai installé inotify-tools et lancé un inotifywait sur l'ensemble du système de fichiers ;

sudo /usr/local/bin/inotifywait -m -r /!(dev|proc)

Et ce que cela a montré, c'est que /etc/passwd est ouvert, accédé, puis fermé, plusieurs fois par minute. Sans que je fasse quoi que ce soit d'autre sur le système ! inotify ne vous dit rien. ce que fait le toucher, mais j'ai installé audit ( http://people.redhat.com/sgrubb/audit/ ), j'ai mis en place un système de journalisation sur /etc/passwd et je l'ai laissé fonctionner pendant un petit moment, puis j'ai jeté un coup d'oeil aux journaux, mais tout ce qu'ils me disent, c'est qu'il est accédé par sudo : (nom d'utilisateur censuré)

type=SYSCALL msg=audit(10/03/2011 17:48:30.493:260) : arch=x86_64 syscall=open success=yes exit=4 a0=7f809205669a a1=80000 a2=1b6 a3=0 items=1 ppid=6466 pid=6467 auid=**** uid=root gid=**** euid=root suid=root fsuid=root egid=**** sgid=**** fsgid=**** tty=pts0 ses=79 comm=sudo exe=/usr/bin/sudo key=(null) 
type=SYSCALL msg=audit(10/03/2011 17:48:30.493:261) : arch=x86_64 syscall=open success=yes exit=4 a0=7f809205669a a1=80000 a2=1b6 a3=0 items=1 ppid=6466 pid=6467 auid=**** uid=root gid=**** euid=root suid=root fsuid=root egid=**** sgid=**** fsgid=**** tty=pts0 ses=79 comm=sudo exe=/usr/bin/sudo key=(null) 
type=SYSCALL msg=audit(10/03/2011 17:48:30.488:256) : arch=x86_64 syscall=open success=yes exit=3 a0=7f809205669a a1=80000 a2=1b6 a3=0 items=1 ppid=6441 pid=6466 auid=**** uid=**** gid=**** euid=root suid=root fsuid=root egid=**** sgid=**** fsgid=**** tty=pts0 ses=79 comm=sudo exe=/usr/bin/sudo key=(null)
...

Y a-t-il un moyen d'affiner la recherche ? Je n'ai rien dans mes fichiers cron, et aucun autre service auquel je pense qui pourrait causer ce problème :

chkconfig | grep on
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
cgconfig        0:off   1:off   2:off   3:off   4:off   5:off   6:off
cloud-init      0:off   1:off   2:on    3:on    4:on    5:on    6:off
cloud-init-user-scripts 0:off   1:off   2:on    3:on    4:on    5:on    6:off
conman          0:off   1:off   2:off   3:off   4:off   5:off   6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
restorecond     0:off   1:off   2:off   3:off   4:off   5:off   6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
yum-updatesd    0:off   1:off   2:on    3:on    4:on    5:on    6:off

0 votes

Que vous dit le sudolog ? Vous pouvez l'activer et ensuite mettre à jour le message avec le résultat.

0 votes

Je ne connais pas la réponse, mais puis-je m'arrêter pour faire l'éloge de la question ? Je n'ai pas vu récemment un exemple plus clair des vertus de "How to ask questions the smart way" d'esr ; j'aimerais que toutes les questions sur la SF soient aussi bien rédigées.

5voto

user9517 Points 113163

Comme vous utilisez CentOS, vous devriez être en mesure de savoir ce que fait sudo en consultant le fichier /var/log/secure par exemple

sudo tail /var/log/secure

Oct 4 03:45:44 ec2-centos-instance sudo : iain : TTY=pts/0 ; PWD=/home/iain ; USER=root ; COMMAND=/usr/bin/tail /var/log/secure

Edit : Mise à jour avec la réponse des commentaires

Activation du dumping de bloc avec : echo 1 > /proc/sys/vm/block_dump et y jeter un coup d'oeil avec dmesg a permis de déterminer quels processus accédaient au disque. Beaucoup plus fiable que iotop. Il s'avère que sar tournait continuellement, écrivant dans /var/log/sa/saXX. J'ai donc désactivé ce processus dans cron.d, et tout est rentré dans l'ordre.

0 votes

J'ai peut-être fait fausse route, car ce fichier journal ne contient rien d'intéressant. Je pense qu'il pourrait simplement s'agir de tentatives de connexion ssh aléatoires, et que la source de toutes les E/S (bien plus importantes que les tentatives de connexion ssh) pourrait plutôt être le résultat d'un bogue du noyau. Je vais essayer de mettre à jour mon noyau et voir ce que ça donne !

0 votes

La sortie que j'ai postée dans ma réponse provient d'une instance EC2 CentOS. Essayez grep sudo /var/log/secure pour voir quelles commandes sudo sont enregistrées.

0 votes

Désolé, par "rien d'intéressant", je voulais dire qu'il ne contient que des commandes auxquelles je m'attendrais, rien d'extrêmement inhabituel. En effet, la chose la plus intéressante était les connexions ssh bruteforce qui arrivent, ce qui, je pense, peut expliquer les accès à /etc/passwd.

3voto

polynomial Points 3908

Il semble que vous ayez un script ou un programme qui utilise sudo pour essayer de faire des choses en tant que root. Vous pouvez activer la journalisation dans sudo pour comprendre ce qu'ils essaient de faire et trouver une meilleure solution (peut-être qu'un binaire setuid est en ordre). Voici plus d'informations sur sudo (comme comment activer la journalisation) :

http://aplawrence.com/Basics/sudo.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X