Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
25 mars 2010 4 25 /03 /mars /2010 08:08

Dans un environnement VMware, se connecter sur les serveurs ESX devient de moins en moins utile. C'est vrai que PowerCLI, qui s'appuie sur PowerShell, permet énormément de chose sans à avoir à se connecter sur les serveurs eux-même. Mais quelque fois, on ne peut faire autrement. C'est de plus en plus rare, mais ça peut arriver.

Les responsables de l'infrastructure, aime être au courant de beaucoup de chose, et surtout d'être informé quand quelqu'un se connecte directement sur l'ESX. Mais comment faire ?

Pour cela, 2 méthodes :
 1) Installer une application tiers qui permet d'envoyer des mails. Par exemple, l'utilisation du Telnet sur le serveur SMTP peut envoyer des mails.
 2) Scripter et envoyer le résultat via mail, trap SNMP ou l'écriture d'un fichier dans un répertoire.

Je ne détaillerai pas le Telnet. Très connu, le web trouvera facilement l'utilitaire et la procédure pour envoyer un mail.
En revanche, je vais m'attarder sur le script. Pas que j'adore ça ... quoi que ... mais que ça permet d'apprendre beaucoup de chose sur les logs du serveur.



Les fichiers de logs qui stockent les informations relatives aux connexions réussis ou non sont /var/log/messages et /var/log/secure.
Petit conseil : utiliser la commande Grep pour filtrer les connexion SSH (sshd) ou les connexion VI et Web Access (vmware-authd).

 => grep 'sshd' /var/log/messages* /var/log/secure*
 => grep 'vmware-authd' /var/log/messages* /var/log/secure* 

Pour connaitre les connexions en cours, la commande 'w' permet de lister les utilisateurs connectés et de voir les process en cours.
 => Exemple
13:38:57  up 88 days, 12:38,  3 users,  load average: 0.06, 0.12, 0.16

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT
root      pts/1    10.0.0.12        Mon 1pm 45:39m  0.17s  0.17s  -bash
username  pts/2    myname-laptop.do 12:12pm  0.00s  0.06s  0.01s  sshd: username [priv]

root      pts/3    hostname.domain. Sun 6pm  3days  0.05s  0.05s  -bash 

Maintenant, pour connaitre les utilisateurs qui se sont connectés / déconnectés, la commande 'last' est faite pour vous.  Elle permet de scruter le fichier /var/log/wtmp et de vous l'afficher ! Bien sure, cette commande ne vous affiche que les connexions depuis la création du fichier. Mais ne pensez pas que les traces soient perdues tout de même. Car même si un administrateur efface le fichier, sa déconnexion sera tracé. 
 => Exemple 

username  pts/2        myname-laptop.do Thu Apr  3 12:12   still logged in
root      pts/2        myname-laptop.do Thu Apr  3 11:25 - 11:40  (00:14)

Petite astuce également de la commande 'last', l'option 'reboot' permet d'afficher tous les reboot du serveur depuis la création du fichier /var/log/wtmp. 'last reboot' a retenir donc.

Si vous voulez juste avoir la liste des utilisateurs conenctés, 'who' est là. Mais quelle différence avec 'w' ? 'w' donne les connexion en cours avec les process. 'who' ne donne que les connexion en cours.
 => Exemple
root      pts/1        Mar 31 13:52 (10.0.0.12)
username  pts/2        Apr  3 12:12 (myname-laptop.domain.com)
root      pts/3        Mar 30 18:48 (hostname.domain.com) 

Aller, passons au choses plus sérieuses. Quelqu'un s'est connecté sur le serveur mais ne vous a pas prévenu et vous voulez le shooter. Rien d eplus facile, 'fuser' est à votre service. Cumuler les commandes 'w' et 'fuser' et vous avez la clef du shootage !
 => Exemple
Faite un 'w' pour connaitre les connexions en cours
# w 
13:50:54  up 88 days, 12:50,  3 users,  load average: 0.52, 0.40, 0.24
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT
root      pts/1    10.0.0.12        Mon 1pm 45:51m  0.17s  0.17s  -bash
username  pts/2    myname-laptop.do 12:12pm  0.00s  0.05s  0.01s  sshd: username [priv]
root      pts/3    hostname.domain. Sun 6pm  3days  0.05s  0.05s  -bash 

La, la connexion root du 10.0.0.12 ne vous plaît pas du tout. Repérer le TTY du login désiré, puis Shoot him !

# fuser -k /dev/pts/1
/dev/pts/1 1699


Ca, ça veut dire qu'il est mort... Vérifions tout de même avec 'w'

# w
username pts/2 myname-laptop.vm 12:12pm 0.00s 0.05s 0.01s sshd: username [priv] root pts/3 hostname.domain. Sun 6pm 3days 0.05s 0.05s -bash 

Faites gaffe car vous pouvez vous shooter tout seul ! 

Maintenant, 'fuser' peut être gentil aussi car il est capable de dire qui se connecte sur port réseau. Un exemple vaut mieux qu'un long discours...
 => Exemple
# fuser ssh/tcp
ssh/tcp:              1031  4622 12190 29655 29670
# ps -ef |grep 1031
root      1031     1  0 Jan06 ?        00:00:00 /usr/sbin/sshd
root      4622  1031  0 Mar30 ?        00:00:00 sshd: root@pts/3 
root     12190  1031  0 Mar31 ?        00:00:08 sshd: root@pts/1 
root     29655  1031  0 12:12 ?        00:00:00 sshd: username [priv]
root      1312 29778  0 14:04 pts/2    00:00:00 grep 1031

Et voila, vous savez presque tout sur les logins.

Donc, imaginez ces outils scriptés, puis envoyé par mail, SMS ou sur une console de supervision. 


Et bien, à vos claviers maintenant !

Partager cet article

Repost 0
Published by Lucky le Koala, le bien-heureux - dans Technique
commenter cet article

commentaires

windows xp support 18/06/2014 09:02

Do you also want to learn more about the server logs? Then reading this article will prove very helpful for you. This tells us about how the ESX server connection is useful to us in many ways.

wsas 18/06/2014 06:06

wow. nice article.

Présentation

  • : Le blog de Lucky le Koala
  • Le blog de Lucky le Koala
  • : Un peu de tout mais toujours en ralant !
  • Contact

Catégories