Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Configuration d'un serveur SSH : limiter la durée d'un connexion ?

12 réponses
Avatar
Xavier Teyssier
Bonjour !

Existe t'il un moyen de limiter la durée maximale d'un connexion SSH ?

Par exemple, pour indiquer que la durée maximale de la connexion SSH
lancée par toto sera de N minutes, et si cette durée est atteinte, que
la connexion soit fermée.

J'ai bien trouvé quelque chose dans ce goût ( ClientAliveInterval ),
mais là, c'est en cas d'inactivité de la connexion. Je cherche quelque
chose de plus général...


Pouvez vous m'indiquer des pistes à suivre ?

Cordialement,
--
Xavier Teyssier

10 réponses

1 2
Avatar
Nicolas George
Xavier Teyssier wrote in message
<cn044k$ddk$:
Existe t'il un moyen de limiter la durée maximale d'un connexion SSH ?


Je n'ai pas la réponse, mais... pourquoi vouloir faire ça ?

Avatar
Francis Chartier
Xavier Teyssier écrivait ...

Pouvez vous m'indiquer des pistes à suivre ?


Dans mon /etc/sshd_config, j'ai la variable KeepAlive qui correspond à
ça (global côté serveur).

Ca peut être personnalisé pour les clients par le fichier ssh_config, ou
par un paramétrage en ligne de commande.

--
Francis Chartier

Avatar
no_spam
On Fri, 12 Nov 2004 09:09:48 +0100, Francis Chartier wrote:

Xavier Teyssier écrivait ...

Pouvez vous m'indiquer des pistes à suivre ?


Dans mon /etc/sshd_config, j'ai la variable KeepAlive qui correspond à
ça (global côté serveur).


Le keep-alive sert à déconnecter uniquement s'il n'y a pas d'activité
mais ne donne aucune limite de durée de session.
Ca n'est donc pas ça.
Je pense que c'est plus du coté de pam/login qu'il faut regarder...


Avatar
mna

Xavier Teyssier écrivait ...

Pouvez vous m'indiquer des pistes à suivre ?


Dans mon /etc/sshd_config, j'ai la variable KeepAlive qui correspond à
ça (global côté serveur).

Ca peut être personnalisé pour les clients par le fichier ssh_config, ou
par un paramétrage en ligne de commande.


Bonsoir,

Je pense qu'il y a confusion avec les options suivantes :
ClientKeepAlive
ClientAliveCountMax
et KeepAlive.

ces 3 options servent au contraire à faire passer des paquets ip
entre le serveur et le client de manière à 'tromper' les routeurs,
firewall et NAT intermédiaires qui peuvent dans certains cas avoir
un timeout sur inactivité qui coupe la communication entre les
2 extrémités.
les 2 premières vont de pair et les paquets transitent dans le tunnel
ssh, la troisième quant à elle est l'option classique de tcp et
les paquets transitent en 'clair' ( -> on peut les spoofer aisemment).
donc rien à voir avec la demande initiale.

Je n'ai pas de solution pour ta question, mais j'espère avoir éclairé
un peu.

A+
mna.


Avatar
Raphaël 'SurcouF' Bordet
Xavier Teyssier wrote:
Bonjour !

Existe t'il un moyen de limiter la durée maximale d'un connexion SSH ?

Par exemple, pour indiquer que la durée maximale de la connexion SSH
lancée par toto sera de N minutes, et si cette durée est atteinte, que
la connexion soit fermée.

J'ai bien trouvé quelque chose dans ce goût ( ClientAliveInterval ),
mais là, c'est en cas d'inactivité de la connexion. Je cherche quelque
chose de plus général...


Du côté de PAM, on trouve pam_time mais évidemment, il faudra utiliser
une connexion via PAM...

--
Raphaël 'SurcouF' Bordet
http://debianfr.net/ | surcouf at debianfr dot net

Avatar
Xavier Teyssier
Bonjour !

Existe t'il un moyen de limiter la durée maximale d'un connexion SSH ?


Je m'auto-répond.

Lorsqu'une connexion ssh est initialisée, avant de lancer le shell de
l'utilisateur, sshd éxécute les commandes se trouvant dans /etc/ssh/sshrc.
On peut donc y mettre un script à lancer en tache de fond qui, en gros,
fera :
sleep le_temps_qu'on_accorde_à_la_connexion ;
kill -15 la_connexion_qui_va_bien


Cordialement,
--
Xavier Teyssier

Avatar
Nicolas George
Xavier Teyssier wrote in message
<cnlsb8$9al$:
On peut donc y mettre un script à lancer en tache de fond qui, en gros,
fera :
sleep le_temps_qu'on_accorde_à_la_connexion ;
kill -15 la_connexion_qui_va_bien


La tâche de fond en question serait lancée avec les droits de l'utilisateur
logué, celui-ci pourra alors la tuer sans problème. Si tu en es à faire des
trucs comme ça, il vaut probablement mieux avoir un démon superviseur avec
les droits de root qui lit les logs de sshd et tue le moment venu. Ce n'est
pas très difficile à programmer.

Avatar
Xavier Teyssier
Xavier Teyssier wrote in message
On peut donc y mettre un script à lancer en tache de fond qui, en gros,
fera :
sleep le_temps_qu'on_accorde_à_la_connexion ;
kill -15 la_connexion_qui_va_bien



La tâche de fond en question serait lancée avec les droits de l'utilisateur
logué, celui-ci pourra alors la tuer sans problème.


Oui mais non ! Je m'explique.
En fait, le shell lancé n'est pas un vrai shell, mais authpf (un truc
sous OpenBSD qui permet, lors de la connexion SSH, de modifier les
règles du firewall en fonction de l'IP du connecté).
L'utilisateur n'a donc en fait pas accès à une ligne de commande, et ne
peut donc pas tuer le script...

Cordialement,
--
Xavier Teyssier


Avatar
TiChou
Dans le message <news:cnlt7u$2gj2$,
*Nicolas George* tapota sur f.c.o.l.configuration :

Xavier Teyssier wrote:
On peut donc y mettre un script à lancer en tache de fond qui, en gros,
fera :
sleep le_temps_qu'on_accorde_à_la_connexion ;
kill -15 la_connexion_qui_va_bien


La tâche de fond en question serait lancée avec les droits de
l'utilisateur logué, celui-ci pourra alors la tuer sans problème. Si tu en
es à faire des trucs comme ça, il vaut probablement mieux avoir un démon
superviseur avec les droits de root qui lit les logs de sshd et tue le
moment venu. Ce n'est pas très difficile à programmer.


De plus rien de plus simple pour l'utilisateur d'inhiber le script
/etc/ssh/sshrc. En effet, s'il crée le fichier .ssh/rc dans son répertoire
home, le fichier /etc/ssh/sshrc sera alors ignoré par sshd.

--
TiChou


Avatar
Mickaël
Salut

Oui par xinetd. Va sur funix http://www.funix.org et trouve la documentation
sur xinetd.

Mickaël

"TiChou" a écrit dans le message de
news:
Dans le message <news:cnlt7u$2gj2$,
*Nicolas George* tapota sur f.c.o.l.configuration :

Xavier Teyssier wrote:
On peut donc y mettre un script à lancer en tache de fond qui, en gros,
fera :
sleep le_temps_qu'on_accorde_à_la_connexion ;
kill -15 la_connexion_qui_va_bien


La tâche de fond en question serait lancée avec les droits de
l'utilisateur logué, celui-ci pourra alors la tuer sans problème. Si tu
en


es à faire des trucs comme ça, il vaut probablement mieux avoir un démon
superviseur avec les droits de root qui lit les logs de sshd et tue le
moment venu. Ce n'est pas très difficile à programmer.


De plus rien de plus simple pour l'utilisateur d'inhiber le script
/etc/ssh/sshrc. En effet, s'il crée le fichier .ssh/rc dans son répertoire
home, le fichier /etc/ssh/sshrc sera alors ignoré par sshd.

--
TiChou





1 2