Comment suivre au mieux les aventures d'un administrateur novice

8

J'ai cet utilisateur qui a des privilèges sudo limités, mais il parvient à foirer de temps en temps. Je voudrais garder un œil sur ses aventures, afin de pouvoir inverser les dégâts en creusant moins. Idéalement, je voudrais un service avec les fonctionnalités suivantes bien intégrées et présentables

  • Pistes d' entrée et de sortie comme shell ttyrec(ou scriptou sudosi l' enregistrement est mis en place) et peut rejouer la session comme ttyplay (ou scriptreplayou sudoreplay) Compatibilité avec les programmes ncurses serait bien, mais pas nécessaire, ttyrecpeut le faire en apparence.
  • Suit l'accès aux fichiers, leur création et leur modification. Idéalement, il pourrait également sauvegarder un fichier chaque fois qu'il est modifié ou supprimé.

Jusqu'à présent, j'ai trouvé plusieurs outils que je devrais configurer pour obtenir la plupart des fonctionnalités demandées, mais je n'ai pas trouvé de produit OSS qui les intégrerait bien (l'édition communautaire Lynis n'est pas vraiment claire sur la fonctionnalité) .

  • Je pourrais mettre ttyrec $(mktemp), script $(mktemp)ou sudo -u $USER -i(avec sudo logging set up) dans le sien .bashrcpour journaliser le shell IO.
  • Mise en place d' audit pour l' accès aux fichiers dans certains répertoires, comme /usr, /etc, /var.
  • Créez un instantané LVM lorsqu'il se connecte, mais cela est un peu exagéré et peut dégrader les performances du système.

EDIT: ttyrec semble être une meilleure alternative à script, il satisferait toutes mes exigences de journalisation IO. Maintenant, je dois trouver un bon moyen de consigner la manipulation des fichiers.

Je serai reconnaissant pour toutes suggestions ou recommandations de meilleures pratiques.

Ondřej Grover
la source
3
Astuce: Dans certains pays, cela peut ne pas être légal sans l'autorisation de l'utilisateur.
Cyrus
2
@Cyrus merci pour le rappel, il le saurait. Il s'agit plus de trouver un moyen moins intrusif et plus automatique que de lui demander de se rappeler de toujours tout exécuter dans une scriptsession. Il ne s'agit pas de l'espionner, mais de lui donner l'assurance que ses erreurs peuvent être retracées.
Ondřej Grover du
3
Je pense que cet utilisateur ne devrait pas avoir de privilèges sudo.
dr_
1
@ dr01 idéalement oui, je ferais l'administration pour lui. Mais ce n'est pas toujours possible. Il ne fout pas toujours, j'ai juste besoin de mettre en place un filet de sécurité.
Ondřej Grover
2
Conservez également la configuration dans VCS .
muru

Réponses:

2

Vous pourriez peut-être encourager votre administrateur à utiliser de bonnes pratiques de journalisation. Gnu Screen le fait très bien. Il ajoute un peu plus de fonctionnalités que ce que vous recherchez et a également la possibilité de basculer la journalisation, afin qu'il puisse le désactiver lui-même, s'il le souhaite. Il ne dispose pas de la fonctionnalité de relecture, mais il pourrait faire partie d'une solution, car il suit la plupart des entrées et sorties lorsque la connexion est activée.

Dans votre cas d'utilisation, vous voudriez ajouter deflog onau fichier screenrc pour avoir de nouvelles fenêtres par défaut avec la connexion.

Cela présente cependant l'inconvénient d'être basculable par votre utilisateur.

Vous pouvez effectuer la surveillance des fichiers à l'aide de Monit , qui surveille les sommes de contrôle des fichiers pour les modifications, et peut également vérifier les conditions de divers services. Combinez cela avec quelque chose comme une rsync sur un cronjob (puisque vous devriez avoir quelque chose comme ça de toute façon) et vous avez une idée assez solide de ce qui se passe exactement sur le serveur, surtout si vous activez des horodatages très serrés à l'écran et faites confiance à votre utilisateur de ne pas jouer avec les paramètres de journalisation.

En combinant ces outils, vous devriez avoir un système assez robuste et léger qui vous permet de garder un œil décent sur votre utilisateur tout en assurant un niveau de base de récupération.

James Biederbeck
la source