Project

General

Profile

Demande #28576

Pouvoir logger les commandes utilisateurs

Added by Emmanuel GARETTE 9 months ago. Updated 9 months ago.

Status:
Nouveau
Priority:
Normal
Assigned To:
-
Category:
-
Target version:
-
Start date:
06/11/2019
Due date:
% Done:

0%


Description

Besoins

- avec une information de "contexte" donnée par l'utilisateur (l'utilisateur doit pouvoir expliquer pourquoi il se connecte) ;
- savoir qui a exécuté les commandes (dans le cadre de Zéphir tout le monde se connecte en root), il faut trouver quelle clef SSH est utilisée ;
- savoir qui a exécuté la commande via sudo ;
- avoir un fichier unique des logs d'historiques de tous les utilisateurs connectés sur une machine ;
- que soit logger les commandes même si l'utilisateur faire : ssh xxxx@yyyyy nom_de_la_commande ;
- avoir le répertoire courant de l'exécution de la commande ;
- avoir un historique complet de la session (les commandes exécutées ainsi que les retours).

Exemple d'utilisation

Connexion utilisateur et exécution d'une commande via sudo

$ ssh xxx@yyyyy
Raison de la connection sur ce serveur : Intervention sur le serveur suite à problème de place

xxx@yyyyy $ sudo du -h -d1 /
[sudo] Mot de passe de xxx : 
[..]
xxx@yyyyy $ 

Contenu des logs :

2019-06-11T14:37:57.455302+02:00 yyyyy history: "xxx" "xxx" "10.10.10.3 48752 22" "/home/xxx/.screen_history/session_24850_1560256625" "/dev/pts/3" "24908" "/home/xxx" "echo "*** Intervention sur le serveur suite à problème de place ***"" 
2019-06-11T14:38:08.410720+02:00 yyyyy history: "xxx" "xxx" "10.10.10.3 48752 22" "/home/xxx/.screen_history/session_24850_1560256625" "/dev/pts/3" "24908" "/home/xxx" "sudo du -h -d1 /" 

Explication des lignes :

Heure/date de la commande : 2019-06-11T14:37:57.455302+02:00
Nom de la machine : yyyyy
Nom du log : history:
Utilisateur qui a lancé la commande : xxx
Utilisateur déduit : xxx
Source (adresse ip source + port source + port de destination) : "10.10.10.3 48752 22"
Fichier d'enregistrement de la session : /home/xxx/.screen_history/session_24850_1560256625
TTY : /dev/pts/3
PPID : 24908
Répertoire d'exécution : /home/xxx
Commande : sudo du -h -d1 /

Contenu de /home/xxx/.screen_history/session_24850_1560256625 :

Raison de la connection sur ce serveur : Intervention sur le serveur suite à problème de place

xxx@yyyyy $ sudo du -h -d1 /
[sudo] Mot de passe de xxx : 
[..]
xxx@yyyyy $ 

sudo -i + exécution d'une commande

2019-06-11T14:47:47.934138+02:00 yyyyy history: "xxx" "xxx" "10.10.10.3 48752 22" "/home/xxx/.screen_history/session_24850_1560256625" "/dev/pts/3" "24908" "/home/xxx" "sudo -i" 
2019-06-11T14:47:51.894436+02:00 yyyyy history: "root" "xxx" "" "" "/dev/pts/3" "25179" "/root" "du -h -d1 /" 

Connexion direct en root avec clef SSH (cas Zéphir) sans log de session

$ ssh root@yyyyy
root@yyyyy $ du -h -d1 /
[..]

Contenu du log :

2019-06-11T14:51:32.444218+02:00 yyyyy history: "xxx" "xxx@yyy.com" "10.10.10.3 48922 22" "" "/dev/pts/0" "25333" "/root" "du -h -d1 /" 

exécuter de commande directement depuis la commande ssh

$ ssh xxx@yyyyy "du -h -d1 /" 
[..]

Contenu du log :

2019-06-11T14:54:23.299933+02:00 yyyyy history: "xxx" "xxx" "10.10.10.3 48966 22" "" "pas un tty" "25539" "/home/xxx" "du -h -d1 /" 

log.sh View - /etc/profile.d/log.sh (1.72 KB) Emmanuel GARETTE, 06/11/2019 03:02 PM

screenrc (3.64 KB) Emmanuel GARETTE, 06/11/2019 03:03 PM

bash.bashrc (2.34 KB) Emmanuel GARETTE, 06/11/2019 03:03 PM

00_loghistory.xml View (160 Bytes) Emmanuel GARETTE, 06/11/2019 03:04 PM

bashrc - .bashrc de l'utilisateur (430 Bytes) Emmanuel GARETTE, 06/11/2019 03:05 PM

History

#1 Updated by Emmanuel GARETTE 9 months ago

#2 Updated by Emmanuel GARETTE 9 months ago

#3 Updated by Emmanuel GARETTE 9 months ago

  • File deleted (log.sh)

#4 Updated by Emmanuel GARETTE 9 months ago

#5 Updated by Emmanuel GARETTE 9 months ago

Le fonctionnement :

- pour les utilisateurs concernés pas l'enregistrement de la session doivent avoir le fichier .bashrc dans leur HOME ;
- un screen est exécuté a la connexion est enregistre les sessions ;
- les utilisateurs sans le .bashrc ont leur commande qui remonte dans les logs mais n'ont pas de session enregistrée.

Also available in: Atom PDF