Configuration d'un serveur SSH : limiter la durée d'un connexion ?
12 réponses
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...
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
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...
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...
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...
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.
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.
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.
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
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
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
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
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
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
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.
Xavier Teyssier wrote in message
<cnlsb8$9al$1@apollon.grec.isp.9tel.net>:
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.
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.
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
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...
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
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
Dans le message <news:cnlt7u$2gj2$2@biggoron.nerim.net>,
*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.
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
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
Salut
Oui par xinetd. Va sur funix http://www.funix.org et trouve la documentation
sur xinetd.
Mickaël
"TiChou" <gro.uohcit@uohcit> a écrit dans le message de
news:polom.20041120003649@florizarre.tichou.org...
Dans le message <news:cnlt7u$2gj2$2@biggoron.nerim.net>,
*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.
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.