18 votes

Raisons pour lesquelles les informations IP sont manquantes dans la sortie `last` des connexions pts?

J'ai cinq systèmes Linux CentOS 6 au travail et j'ai rencontré un problème plutôt étrange qui semble se produire uniquement avec mon identifiant d'utilisateur sur tous les systèmes Linux que je possède... Voici un exemple du problème à partir des entrées que j'ai extraites de la commande last...

mpenning pts/19                        Ven 16 Nov 10:32 - 10:35  (00:03)
mpenning pts/17                        Ven 16 Nov 10:21 - 10:42  (00:21)
bill     pts/15       sol-bill.local   Ven 16 Nov 10:19 - 10:36  (00:16)
mpenning pts/1        192.0.2.91       Ven 16 Nov 10:17 - 10:49 (12+00:31)
kkim14   pts/14       192.0.2.225      Jeu 15 Nov 18:02 - 15:17 (4+21:15)
gduarte  pts/10       192.0.2.135      Jeu 15 Nov 12:33 - 08:10 (11+19:36)
gduarte  pts/9        192.0.2.135      Jeu 15 Nov 12:31 - 08:10 (11+19:38)
kkim14   pts/0        :0.0             Jeu 15 Nov 12:27 - 15:17 (5+02:49)
gduarte  pts/6        192.0.2.135      Jeu 15 Nov 11:44 - 08:10 (11+20:25)
kkim14   pts/13       192.0.2.225      Jeu 15 Nov 09:56 - 15:17 (5+05:20)
kkim14   pts/12       192.0.2.225      Jeu 15 Nov 08:28 - 15:17 (5+06:49)
kkim14   pts/11       192.0.2.225      Jeu 15 Nov 08:26 - 15:17 (5+06:50)
dspencer pts/8        192.0.2.130      Mer 14 Nov 18:24   toujours connecté
mpenning pts/18       alpha-console-1. Lun 12 Nov 14:41 - 14:46  (00:04)

Vous pouvez voir ci-dessus deux de mes entrées de connexion pts qui n'ont pas d'adresse IP source associée. Mes machines CentOS ont jusqu'à six autres utilisateurs qui partagent les systèmes. Environ 10 % de mes connexions voient ce problème, mais aucun autre nom d'utilisateur n'affiche ce comportement. Il n'y a pas d'entrée dans /var/log/secure pour les entrées sans adresse IP source.

Questions

Étant donné le type de scripts que je garde sur ces systèmes (qui contrôlent une grande partie de notre infrastructure réseau), je suis un peu inquiet à ce sujet et j'aimerais comprendre ce qui pourrait causer occasionnellement l'absence d'adresses sources dans mes connexions.

  • Pourquoi last -i montre 0.0.0.0 pour les entrées de ligne pts (voir aussi cette réponse)
  • Y a-t-il quelque chose (autre qu'une activité malveillante) qui pourrait expliquer raisonnablement ce comportement?
  • Outre l'horodatage de l'historique bash, y a-t-il d'autres choses que je peux faire pour résoudre ce problème?

Informatif

Depuis que cela a commencé à se produire, j'ai activé l'horodatage de l'historique de bash (c'est-à-dire HISTTIMEFORMAT="%y-%m-%d %T " dans .bash_profile) et j'ai également ajouté quelques autres astuces d'historique de bash; cependant, cela ne donne pas d'indices sur ce qui s'est passé lors des occurrences précédentes.

Tous les systèmes exécutent CentOS 6.3...

[mpenning@typo ~]$ uname -a
Linux typo.local 2.6.32-279.9.1.el6.x86_64 #1 SMP Mar Sep 25 21:43:11 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
[mpenning@typo ~]$

ÉDITER

Si j'utilise last -i mpenning, je vois des entrées comme celles-ci...

mpenning pts/19       0.0.0.0          Ven 16 Nov 10:32 - 10:35  (00:03)
mpenning pts/17       0.0.0.0          Ven 16 Nov 10:21 - 10:42  (00:21)

Note pour ceux qui essaient de répondre: Je ne me suis pas connecté avec la commande screen ou l'interface graphique. Toutes mes connexions sont via SSH; pour recevoir la récompense de la prime, vous devez citer des références autorisées pour expliquer les entrées 0.0.0.0 de last -i provenant uniquement via SSH.

ÉDITER 2 (pour les questions de ewwhite)

/etc/resolv.conf (notez que j'ai utilisé des adresses .local dans la sortie de last ci-dessus pour cacher les informations de mon entreprise)

[mpenning@sasmars network]$ cat /etc/resolv.conf
nameserver 192.0.2.40
nameserver 192.0.2.60
domain mycompany.com
search mycompany.com
[mpenning@sasmars network]$

Infos de /etc/hosts (notez que ce fichier hosts personnalisé n'existe que sur l'une des machines qui a ces problèmes)

[mpenning@sasmars network]$ cat /etc/hosts
127.0.0.1       localhost.localdomain localhost
192.0.2.44      sasmars.mycompany.com sasmars
::1             localhost6.localdomain6 localhost6

## Pare-feux temporaires jusqu'à ce que j'ajoute les mappages de noms d'hôtes inverses...
## Pare-feux
192.0.2.254     a2-inet-fw1
192.0.2.253     a2-inet-fw2
192.0.2.254     a2-wan-fw1
192.0.2.253     a2-wan-fw2
192.0.2.201     a2-fab-fw1
192.0.2.202     a2-fab-fw2
192.0.2.203     t1-eds-fw1
192.0.2.42      sasvpn
192.0.2.246     sasasa1
192.0.2.10      sasoutfw1
## Sans fil
192.0.2.6       saswcs1
192.0.2.2       l2wlc3
192.0.2.4       l2wlc4
192.0.2.12      f2wlc5
192.0.2.16      f2wlc6
192.0.2.14      f2wlc1
192.0.2.8       f2wlc2
[mpenning@sasmars network]$

Sortie sftp de /var/log/secure*

Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: appelé (pam_tacplus v1.3.7)
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: utilisateur [mpenning] obtenu
Dec 26 10:36:37 sasmars sshd[26016]: tacacs_get_password: appelé
Dec 26 10:36:37 sasmars sshd[26016]: tacacs_get_password: mot de passe obtenu
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: mot de passe obtenu
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: tty [ssh] obtenu
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: rhost [192.0.2.91] obtenu
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: essaye srv 0
Dec 26 10:36:38 sasmars sshd[26016]: Mot de passe accepté pour mpenning depuis 192.0.2.91 port 55118 ssh2
Dec 26 10:36:38 sasmars sshd[26016]: pam_sm_setcred: appelé (pam_tacplus v1.3.7)
Dec 26 10:36:38 sasmars sshd[26016]: pam_unix(sshd:session): session ouverte pour l'utilisateur mpenning par (uid=0)
Dec 26 10:36:38 sasmars sshd[26018]: pam_sm_setcred: appelé (pam_tacplus v1.3.7)
Dec 26 10:36:38 sasmars sshd[26018]: demande de sous-système pour sftp
Dec 26 10:37:20 sasmars sshd[26016]: pam_unix(sshd:session): session fermée pour l'utilisateur mpenning
Dec 26 10:37:20 sasmars sshd[26016]: pam_sm_setcred: appelé (pam_tacplus v1.3.7)

RÉSOLUTION FINALE

Voir ma réponse ci-dessous

3voto

ewwhite Points 193555

J'ai vérifié sur 12 serveurs d'applications CentOS et RHEL 6.3 multi-utilisateurs. Aucun n'a présenté ce comportement. Il n'y avait aucune entrée manquante dans la sortie de last remontant à 4-5 semaines.

Je pense qu'il serait important de voir l'entrée de votre fichier /etc/hosts pour s'assurer qu'elle corresponde à ce format.

Aussi, que faites-vous pour la résolution DNS ? Pouvez-vous poster votre fichier /etc/resolv.conf ?

Les autres réponses indiquant que 0.0.0.0 représente les connexions locales sont correctes. Les exemples typiques sont les événements de redémarrage et de connexion en console :

 reboot   system boot  0.0.0.0          Sat Dec  8 06:12 - 05:57 (12+23:45)  
 reboot   system boot  0.0.0.0          Sat Dec  8 05:25 - 06:09  (00:44)    
 reboot   system boot  0.0.0.0          Fri Nov 30 14:28 - 05:22 (7+14:54)   
 root     tty1         0.0.0.0          Fri Nov 30 13:52 - 13:55  (00:03)    
 reboot   system boot  0.0.0.0          Fri Nov 30 13:51 - 14:25  (00:34)    

Comme cela semble se produire uniquement avec des utilisateurs nommés, y a-t-il un changement dans les scripts de connexion qui pourrait causer cela ? Avez-vous modifié ~/.bashrc ou ~/.bash_profile par rapport à la configuration par défaut ? Y a-t-il d'autres scripts de connexion spéciaux dans cet environnement ?

--Édition--

Je suis toujours incapable de reproduire cela de quelque manière que ce soit. J'ai examiné deux composants critiques, cependant. La commande last est stable et n'a pas été modifiée depuis longtemps. En regardant le journal des modifications de sysvinit-tools, il n'y a pas de bugs pertinents. De même pour initscripts (wtmp).

Si vous pouvez forcer cela à se produire, essayez-le avec un compte utilisateur différent à partir des mêmes machines sources. Mais je ne vois aucune indication que c'est un problème lié au système d'exploitation.

3voto

user9517 Points 113163

Je ne pense pas que nous allons aller loin avec cela sans déboguer last.c, mais cela ne devrait pas être trop difficile car il compile facilement ...

Une possibilité cependant est de vider le fichier /var/log/wtmp en utilisant la commande utmpdump et jeter un œil aux enregistrements bruts, cela pourrait éclairer votre lanterne. Sinon, veuillez poster une sortie pertinente de

utmpdump /var/log/wtmp 

afin que nous puissions recréer des copies locales de votre wtmp pour déboguer

utmpdump -r wtmp

3voto

Mike Pennington Points 8236

RÉSOLUTION FINALE

J'ai déjà attribué le bonus, alors ceci est purement pour les futurs utilisateurs avec la même question.

La raison pour laquelle cela n'apparait que dans environ ~10% de mes connexions est que lorsque je fais des changements importants sur nos routeurs ou commutateurs, j'utilise script foo.log pour avoir un journal complet de la session. Pour des raisons que je ne comprends toujours pas, CentOS crée une entrée pts lorsque vous utilisez la commande script... Je vais vous montrer la sortie de la commande last -i avant et après l'exécution de la commande script...

[mpenning@sasmars net]$ last -i | head
kkim14   pts/13       192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/12       192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/10       192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/9        192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/5        192.0.2.225   mercredi Jan  2 09:43   toujours connecté
mpenning pts/17       192.0.2.29    lundi Déc 31 16:45 - 16:49  (00:03)
gduarte  pts/16       192.0.2.135   jeudi Déc 27 10:54   toujours connecté
gduarte  pts/14       192.0.2.135   jeudi Déc 27 10:44   toujours connecté
dspencer pts/14       192.0.2.4     jeudi Déc 27 09:56 - 09:57  (00:01)
mpenning pts/14       192.0.2.91    jeudi Déc 27 08:31 - 08:32  (00:00)
[mpenning@sasmars net]$ script ~/quelque_chose_au_hasard.log
Script démarré, le fichier est /home/mpenning/quelque_chose_au_hasard.log
[mpenning@sasmars net]$ date
jeudi Jan  3 16:14:19 CST 2013 # <--------------------------------------------------
[mpenning@sasmars net]$ exit
exit
Script terminé, le fichier est /home/mpenning/quelque_chose_au_hasard.log
[mpenning@sasmars net]$ last -i | head
mpenning pts/15       0.0.0.0          jeudi Jan  3 16:14 - 16:14  (00:00) # <------
kkim14   pts/13       192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/12       192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/10       192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/9        192.0.2.225   mercredi Jan  2 09:43   toujours connecté
kkim14   pts/5        192.0.2.225   mercredi Jan  2 09:43   toujours connecté
mpenning pts/17       192.0.2.29    lundi Déc 31 16:45 - 16:49  (00:03)
gduarte  pts/16       192.0.2.135   jeudi Déc 27 10:54   toujours connecté
gduarte  pts/14       192.0.2.135   jeudi Déc 27 10:44   toujours connecté
dspencer pts/14       192.0.2.4     jeudi Déc 27 09:56 - 09:57  (00:01)
[mpenning@sasmars net]$ cat /etc/redhat-release
CentOS version 6.3 (Finale)
[mpenning@sasmars net]$

Ce comportement semble être unique à CentOS 6... nous avons des machines CentOS 4.7 dans le laboratoire qui ne mettent pas une entrée vide dans wtmp... Les machines Debian / Gentoo n'ont pas non plus ce comportement. Nos administrateurs Linux se grattent la tête pour savoir pourquoi CentOS ajouterait délibérément une autre entrée pts lorsque vous exécutez script... Je soupçonne qu'il s'agit d'un bug RHEL.

ÉDIT : J'ai signalé ce problème comme étant le Bug RHEL numéro 892134

REMARQUE

Certains pensent à tort que j'ai mis script dans mon ~/.bashrc ou ~/.bash_profile. C'est un argument erroné... si cela était vrai, mon wtmp devrait avoir une entrée 0.0.0.0 après chacune de mes connexions ssh...

[mpenning@sasmars net]$ last -i | head
kkim14   pts/13       192.0.2.225   mercredi Jan 2 09:43   toujours connecté
kkim14   pts/12       192.0.2.225   mercredi Jan 2 09:43   toujours connecté
kkim14   pts/10       192.0.2.225   mercredi Jan 2 09:43   toujours connecté
kkim14   pts/9        192.0.2.225   mercredi Jan 2 09:43   toujours connecté
kkim14   pts/5        192.0.2.225   mercredi Jan 2 09:43   toujours connecté
mpenning pts/18       0.0.0.0       lundi Dec 31 16:45 - 16:49  (00:03)  # <-----
mpenning pts/17       192.0.2.29    lundi Dec 31 16:45 - 16:49  (00:03)  # <-----
gduarte  pts/16       192.0.2.135   jeudi Dec 27 10:54   toujours connecté
gduarte  pts/14       192.0.2.135   jeudi Dec 27 10:44   toujours connecté
dspencer pts/14       192.0.2.4     jeudi Dec 27 09:56 - 09:57  (00:01)
mpenning pts/15       0.0.0.0       jeudi Dec 27 08:31 - 08:32  (00:00)  # <-----
mpenning pts/14       192.0.2.91    jeudi Dec 27 08:31 - 08:32  (00:00)  # <-----

Évidemment, ce n'était pas le cas...

2voto

Cloudmeteor Points 449

Les connexions Pseudo Terminal Slave (pts) sont des connexions SSH ou telnet, ce qui signifie des connexions indirectes au système. Toutes ces connexions peuvent se connecter à un shell qui vous permettra d'émettre des commandes à l'ordinateur. Ainsi, lorsque vous ouvrez un terminal sur votre système à partir de l'interface graphique, cela ouvre un pts avec l'adresse IP source 0.0.0.0. D'après les informations fournies par vous, il semble que cela se produise à cause d'un script s'exécutant sur ce serveur ou planifié, qui utilise le service ssh ou telnet ou un pts local pour envoyer la sortie dans le terminal.

2voto

Serge Points 46

Quel client ssh utilisez-vous? Certains clients ssh peuvent multiplexer plusieurs terminaux sur une seule connexion et je remarque que toutes vos sessions sans IP tombent dans des sessions plus longues qui ont une IP enregistrée.

Je ne peux pas reproduire ce comportement avec ssh ici.

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