Installez autolog sur votre serveur Linux pour déconnecter les utilisateurs inactifs
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir comment gérer les connexions inactives sur Linux, à l'aide du paquet autolog.
Sous certains systèmes Linux en mode graphique comme Ubuntu, le verrouillage d’écran (ou de session) d’un utilisateur est automatiquement activé après une certaine période d’inactivité. C’est plutôt pratique, et surtout, cela permet d’éviter qu’un tiers dispose d’un accès à notre session de travail. Ce qui pourrait arriver, si, par exemple, nous devons quitter un poste de travail et que nous oublions de nous déconnecter (ou même de verrouiller la session).
Ce qui n’est pas le cas lorsqu’on administre, par exemple, un système Linux, sans interface graphique (en local ou à distance via un terminal SSH), qui lui garde la session intacte même en cas d’inactivité. On peut justement régler ce problème avec autolog.
Autolog est un programme de gestion des connexions (locales ou distantes) sous Linux. Il va dans un premier temps identifier tous les utilisateurs connectés au système en lisant une par une toutes les entrées du fichier utmp (ou wtmp, btmp, etc. en fonction de la distribution Linux) qu’on retrouve généralement dans « /var/run/ » ou « /var/log. Il fera ensuite le parallèle entre ces utilisateurs et les processus en cours sur le système, pour enfin décider d’interrompre ou non les connexions desdits utilisateurs, en fonction de la configuration qu’on lui indiquera (généralement des utilisateurs inactifs). Le système nous invite alors à nous connecter de nouveau.
Cet article explique comment l’utiliser pour automatiser la déconnexion d’un ou de plusieurs utilisateurs inactifs sur un système Debian 12, sans environnement de bureau. Pour appliquer cette configuration uniquement sur les accès SSH, vous pouvez configurer le serveur SSH directement (directives ClientAliveInterval et ClientAliveCountMax).
Remarque : les configurations sont effectuées à l’aide du compte root (ou avec les commandes préfixées par sudo).
II. Options de configuration d'autolog
Les différentes entrées du fichier de configuration d’autolog sont sous la forme « variable=valeur ».
Comme options de configuration, on peut avoir :
- name : expression régulière désignant le nom de l’utilisateur qu’on souhaite gérer avec Autolog.
- group : expression régulière désignant le groupe d’utilisateur qu’on souhaite gérer avec Autolog.
- line : expression régulière désignant la console du terminal local ou SSH.
- idle : entier désignant le temps d’inactivité en minutes d’un utilisateur ou d’un groupe, après lequel Autolog procèdera à la déconnexion du ou des concernés.
- grace : entier désignant le temps supplémentaire en secondes que Autolog accorde à un utilisateur ou un groupe sous la forme d’avertissement avant de procéder à sa déconnexion automatique
- ban : entier désignant le temps en minutes après lequel un utilisateur ou un groupe automatiquement déconnecté par Autolog est de nouveau autorisé à se connecter au système
- warn (ou nowarn) : booléen indiquant si un message doit être envoyé à la fin de la période de grâce ou non
- mail (ou nomail) : booléen indiquant si un mail doit être envoyé aux utilisateurs concernés ou non
Voici pour l’essentiel des options de cet outil.
III. Configuration d’autolog sur Debian
L’installation d’autolog se fait comme pour la plupart des paquets sous Linux. Procédez à l’installation de cette façon (ajoutez « sudo » si nécessaire) :
apt update -y && apt install autolog
Ensuite, on va aller éditer le fichier /etc/autolog.conf (ou même le supprimer et créer un nouveau fichier du même nom). Voici la configuration que nous allons définir :
- Si l’utilisateur root est inactif pendant plus de 2 minutes via le terminal SSH 0 (l’idéal étant de ne jamais se connecter en root via SSH !), bien vouloir le notifier et le déconnecter s’il n’appuie pas sur une touche après 60 secondes pour marquer sa présence, sans toutefois lui laisser de mail.
- Si l’utilisateur meister est inactif pendant plus de 3 minutes (adaptez la directive « idle », selon vos besoins) via un des terminaux locaux, bien vouloir le notifier et le déconnecter s’il n’appuie pas sur une touche après 60 secondes pour marquer sa présence, sans toutefois lui laisser de mail.
Ce qui donne la configuration ci-dessous :
name=root line=pts/0 idle=2 grace=60 warn nomail
name=meister line=tty[1-7] idle=3 grace=60 warn nomail
En image :
On sauvegarde le tout et on lance le programme avec les commandes « autolog » ou « autolog –o ».
IV. Les utilisateurs vont-ils être déconnectés ?
Une fois la configuration appliquée, si on laisse les différents terminaux (SSH et TTY) inactifs au moins pendant les durées indiquées dans le fichier de configuration, on devrait normalement recevoir un message en anglais. Il précise qu’on a été inactif pendant ladite période et qu’on dispose de 60 secondes pour appuyer une touche, faute de quoi on sera automatiquement déconnecté du système.
On se reconnecte ensuite et on peut aller voir dans les logs que nos deux utilisateurs inactifs ont bien été notifiés avant d’être automatiquement déconnectés du système comme indiqué dans la configuration.
tail -n 4 /var/log/autolog.log
V. Conclusion
Pour finir, il faut noter que l’édition du fichier de configuration est totalement libre en fonction des exigences de sécurité et des objectifs de tout un chacun, à condition de respecter les différentes entrées décrites par le programme.
Par ailleurs, il est parfois nécessaire de procéder au redémarrage du système pour que les configurations faites soient prises en compte par ce dernier, au cas où cela ne marche au premier essai.
De plus, il peut arriver dans certains cas qu’autolog dépasse légèrement le temps indiqué (le plus souvent d’une minute environ) pour avertir ou même déconnecter des utilisateurs, toujours est-il qu’il exécutera les actions qui lui ont été ordonnées.
Pour aller plus loin avec autolog, vous pouvez aller consulter les liens ci-dessous :