Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:restrictions_horaires [Le 19/07/2009, 16:01]
el cameleon
tutoriel:restrictions_horaires [Le 11/09/2022, 12:20] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>tutoriel ​sécurité}}+{{tag>​sécurité ​tutoriel pam}}
 ---- ----
  
-====== Les Restrictions Horaires ​sous Linux ======+====== Les restrictions horaires ​sous Linux ======
  
-===== Introduction ===== 
  
-Avec Ubuntu Linux, il est possible d'​affecter à votre ordinateur des **Restrictions Horaires**, afin d'​empêcher la connexion d'un ou plusieurs utilisateurs à votre système. +Avec Ubuntu Linux, il est possible d'​affecter à votre ordinateur des **restrictions horaires**, afin d'​empêcher la connexion d'un ou plusieurs utilisateurs à votre système. 
-Grâce aux Restrictions Horaires, vous pourrez, par exemple, limiter l'​accès à l'​ordinateur pour vos enfants (une sorte de [[comment_mettre_en_place_un_controle_parental|Contrôle Parental]], en somme), ou bien encore protéger la connexion à votre serveur durant certaines heures.+Grâce aux restrictions horaires, vous pourrez, par exemple, limiter l'​accès à l'​ordinateur pour vos enfants (une sorte de [[:tutoriel:comment_mettre_en_place_un_controle_parental|Contrôle Parental]], en somme), ou bien encore protéger la connexion à votre serveur durant certaines heures.
  
 2 grandes orientations s'​offrent à vous: 2 grandes orientations s'​offrent à vous:
Ligne 13: Ligne 12:
   * configurer manuellement des fichiers textes (utilisateur avancé)   * configurer manuellement des fichiers textes (utilisateur avancé)
  
-===== Utilisation ​du logiciel timekpr ​===== +===== Utilisation ​d'une interface graphique ​=====
-Ce logiciel se télécharge depuis ces pages: https://​launchpad.net/​timekpr +
-Bien que le site soit en anglais, le logiciel est traduit en français, ce qui en rend l'​utilisation très simple. +
-Un fichier deb est fourni pour Ubuntu. Une fois installé, le logiciel est logiquement placé dans le menu "​Système",​ "​Administration"​.+
  
-L'interface ​est excessivement simple et se compose de 2 onglets+Pour utiliser une interface ​graphique, consulter la page sur le logiciel [[:timekpr]]. 
-  ​* ​Le tableau de bord qui récapitule les réglages (ici pour l'utilisateur Nathalie):​ + 
-{{:tutoriel:capture-timekpr.png?​600|}} +===== Configuration semi-automatique par script ===== 
-  L'​écran ​de configuration des règles (ici pour l'​utilisateur Nathalie)+ 
-{{:tutoriel:capture-timekpr-1.png?600|}}+ 
 +Le script **CTparental** que l'on retrouve dans la page de documentation [[:tutoriel:comment_mettre_en_place_un_controle_parental#​dnsmasq_et_blackliste_de_l_universite_de_toulouse|comment mettre en place un contrôle parental]] 
 +se base sur les principes décrits dans la partie ​**Configuration manuelle**, mais automatise toutes les étapes. 
 + 
 +Une fois le script installé il vous suffira ​de lancer ​
 +  sudo CTparental -off  # si vous ne voulez pas du filtrage sur Internet. 
 + 
 +puis : 
 + 
 +  sudo CTparental ​-tlo  # pour paramétrer les plages horaires de connexion de chaque usagerAttention à bien se laisser un compte en accès H24 7/7
  
-Il est possible de définir une durée maximale d'​utilisation par jour et/ou des heures limites d'​utilisation. 
  
 ===== Configuration manuelle ===== ===== Configuration manuelle =====
 +
 ==== Comprendre ce que vous allez faire ==== ==== Comprendre ce que vous allez faire ====
-Tout au long de ce tutoriel, nous allons nous servir du **Module PAM** (Pluggable Authentication Modules, en anglais //modules d'​authentification enfichables//​). Il permet de contrôler l'​authentification des utilisateurs lorsqu'​ils se connectent. Puis, nous utiliserons les fichiers de configuration de sécurité afin de définir les heures de connexion autorisées.\\ +Tout au long de ce tutoriel, nous allons nous servir du **Module PAM** (Pluggable Authentication Modules, en anglais //modules d'​authentification enfichables//​). Il permet de contrôler l'​authentification des utilisateurs lorsqu'​ils se connectent. Puis, nous utiliserons les fichiers de configuration de sécurité afin de définir les heures de connexion autorisées.
 Ces manipulations peuvent être exécutées sur **n'​importe quelle version d'​Ubuntu**,​ et ne nécessitent qu'un simple éditeur de texte ([[:vim]], [[:emacs]], [[:nano]], [[:gedit]], [[:kate]], pour ne citer qu'​eux).\\ ​ Ces manipulations peuvent être exécutées sur **n'​importe quelle version d'​Ubuntu**,​ et ne nécessitent qu'un simple éditeur de texte ([[:vim]], [[:emacs]], [[:nano]], [[:gedit]], [[:kate]], pour ne citer qu'​eux).\\ ​
  
Ligne 39: Ligne 44:
 chsh  common-password ​ cupsys ​         gnome-screensaver ​ passwd ​ su chsh  common-password ​ cupsys ​         gnome-screensaver ​ passwd ​ su
 </​code>​ </​code>​
-Si nous souhaitons bloquer la connexion à l'​ordinateur,​ nous allons devoir modifier le service [[:gdm]]. [[:​tutoriel:​comment_editer_un_fichier|Editez donc le fichier]] ''​gdm''​ et ajoutez-y cette ligne de code (à la fin du fichier) : +Si nous souhaitons bloquer la connexion à l'​ordinateur,​ nous allons devoir modifier le service [[:lightdm]]. [[:​tutoriel:​comment_editer_un_fichier|Editez donc le fichier]] ​ ''​lightdm''​ et ajoutez-y cette ligne de code (à la fin du fichier) : 
-<code>+<file>
 account required pam_time.so account required pam_time.so
-</code+</file
-GDM est l'​écran de connexion des distributions Ubuntu, Edubuntu et Xubuntu. Pour Kubuntu, qui utilise KDE, le service se nomme **kdm**, ce sera donc ce fichier qu'il faudra ouvrir.\\+Si vous utilisez ​**kdm**, ce sera donc ce fichier qu'il faudra ouvrir.\\
 Et voilà, c'est terminé pour la configuration du module PAM ! Cela aura pour effet d'​activer le contrôle des heures sur ce service . Et voilà, c'est terminé pour la configuration du module PAM ! Cela aura pour effet d'​activer le contrôle des heures sur ce service .
-<note important>​Si vous possédez un serveur, vous ne disposez sûrement pas d'​interface graphique. Auquel cas, GDM/​KDM ​n'est pas installé et la connexion ne sera pas bloquée. Pour empêcher la connexion aux [[:TTY]], il faut modifier le fichier ''​login''​ du même dossier, et y ajouter la même ligne de code que celle précedemment ​citée.+<note important>​Si vous possédez un serveur, vous ne disposez sûrement pas d'​interface graphique. Auquel cas, Lightdm ​n'est pas installé et la connexion ne sera pas bloquée. Pour empêcher la connexion aux [[:TTY]], il faut modifier le fichier ''​login''​ du même dossier, et y ajouter la même ligne de code que celle précédemment ​citée.
 Cette manipulation est également valable pour les personnes qui ont installé une interface graphique et qui souhaitent bloquer l'​accès à l'​écran de connexion ainsi qu'aux terminaux.</​note>​ Cette manipulation est également valable pour les personnes qui ont installé une interface graphique et qui souhaitent bloquer l'​accès à l'​écran de connexion ainsi qu'aux terminaux.</​note>​
  
Ligne 55: Ligne 60:
 ==== Configurer les Horaires d'​Accès ==== ==== Configurer les Horaires d'​Accès ====
  
- ===== 
 Maintenant que le service PAM a été activé, nous n'​avons plus qu'à configurer les heures d'​accès. Ouvrez le répertoire ''/​etc/​security''​. Plusieurs fichiers de configuration s'​offrent à vous : Maintenant que le service PAM a été activé, nous n'​avons plus qu'à configurer les heures d'​accès. Ouvrez le répertoire ''/​etc/​security''​. Plusieurs fichiers de configuration s'​offrent à vous :
 <​code>​ <​code>​
Ligne 104: Ligne 108:
 ''​mathilde''​ est autorisée à se connecter tous les jours de 13H20 à 15H20, puis de 16H00 à 20H30 : ''​mathilde''​ est autorisée à se connecter tous les jours de 13H20 à 15H20, puis de 16H00 à 20H30 :
 <​code>​ <​code>​
-*;​*;​mathilde;​Al1320-1520|Al1600-2030;+*;​*;​mathilde;​Al1320-1520|Al1600-2030
 </​code>​ </​code>​
 ''​pierre'',​ ''​franck''​ et ''​florian''​ sont autorisés à se connecter de 14H00 à 18H45 pendant les jours de semaine, et de 14H00 à 22H15 pendant le week-end : ''​pierre'',​ ''​franck''​ et ''​florian''​ sont autorisés à se connecter de 14H00 à 18H45 pendant les jours de semaine, et de 14H00 à 22H15 pendant le week-end :
Ligne 119: Ligne 123:
  
 ==== Expiration d'une Session ==== ==== Expiration d'une Session ====
-Lorsqu'​une Session arrive à expiration (qu'​elle dépasse la limite horaire alors que l'​utilisateur est déjà connecté), le module PAM ne peut atteindre l'​utilisateur concerné. En effet, si ''​mathilde''​ se connecte pendant les horaires de temps autorisées,​ elle est tout à fait libre de dépasser ces plages horaires ! Pour cela, nous allons utiliser un nouveau programme : [[:cron]]. Cette application exécute des commandes à des intervalles de temps données. Dans notre cas, nous allons faire usage de la commande ''​skill -KILL -u''​ pour déconnecter l'​utilisateur lorsque la Session expire. \\ +Lorsqu'​une Session arrive à expiration (qu'​elle dépasse la limite horaire alors que l'​utilisateur est déjà connecté), le module PAM ne peut atteindre l'​utilisateur concerné. En effet, si ''​mathilde''​ se connecte pendant les horaires de temps autorisées,​ elle est tout à fait libre de dépasser ces plages horaires ! Pour cela, nous allons utiliser un nouveau programme : [[:cron]]. Cette application exécute des commandes à des intervalles de temps données. Dans notre cas, nous allons faire usage de la commande ''​skill -KILL -u'' ​FIXME (man skill sous [[:​xenial]]:​ "These tools are obsolete and unportable"​ => kill) pour déconnecter l'​utilisateur lorsque la Session expire. \\ 
 La Manipulation est très simple. [[:​tutoriel:​comment_editer_un_fichier|Editez simplement le fichier]] ''/​etc/​crontab''​. Ajoutez-y alors la ligne de code suivante : La Manipulation est très simple. [[:​tutoriel:​comment_editer_un_fichier|Editez simplement le fichier]] ''/​etc/​crontab''​. Ajoutez-y alors la ligne de code suivante :
 <​code>​ <​code>​
Ligne 147: Ligne 151:
 </​code>​ </​code>​
 ''​pierre'',​ ''​franck''​ et ''​florian''​ sont autorisés à se connecter de 14H00 à 18H45 pendant les jours de semaine, et de 14H00 à 22H15 pendant le week-end\\ ​ ''​pierre'',​ ''​franck''​ et ''​florian''​ sont autorisés à se connecter de 14H00 à 18H45 pendant les jours de semaine, et de 14H00 à 22H15 pendant le week-end\\ ​
-//--> Déconnexion (1) : Lundi, Mardi, Mercredi, Jeudi et Vendredi, à 18H45.\\ +//--> Déconnexion (1) : Lundi, Mardi, Mercredi, Jeudi et Vendredi, à 18H45.
 --> Déconnexion (2) : Samedi et Dimanche, à 22H15.// --> Déconnexion (2) : Samedi et Dimanche, à 22H15.//
 <​code>​ <​code>​
Ligne 153: Ligne 157:
 15 22    * * sat,​sun ​              ​root ​   skill -KILL -u pierre && skill -KILL -u franck && skill -KILL -u florian 15 22    * * sat,​sun ​              ​root ​   skill -KILL -u pierre && skill -KILL -u franck && skill -KILL -u florian
 </​code>​ </​code>​
-<​note>​La commande ''​skill -KILL -u''​ déconnecte l'​utilisateur de l'​interface graphique, mais aussi des TTY. Elle est donc parfaitement utilisable pour les administrateurs de serveur.\\ Cependant, cette commande est immédiate et la déconnection ​sera faite sans avertissement. Il serait donc préférable de prévenir de l'​installation de ce dispositif les utilisateurs de l'​ordinateur ou du réseau en question !</​note>​+<​note>​La commande ''​skill -KILL -u''​ déconnecte l'​utilisateur de l'​interface graphique, mais aussi des TTY. Elle est donc parfaitement utilisable pour les administrateurs de serveur.\\ Cependant, cette commande est immédiate et la déconnexion ​sera faite sans avertissement. Il serait donc préférable de prévenir de l'​installation de ce dispositif les utilisateurs de l'​ordinateur ou du réseau en question !</​note>​
  
-il est possible de prévenir les utilisateurs avec une commande wall lancée par cron quelques minutes avant la fin de la plage horaire+Il est possible de prévenir les utilisateurs avec une commande wall lancée par cron quelques minutes avant la fin de la plage horaire, qui sera affichée dans les terminaux de tous les utilisateurs.
 <​code>​ <​code>​
-40 18    * * mon,​tue,​wed,​thu,​fri ​  ​root ​wall "fin de session dans 5 minutes"​+40 18    * * mon,​tue,​wed,​thu,​fri ​  ​root ​echo "fin de session dans 5 minutes" ​| wall
 </​code>​ </​code>​
 +
 +Pour prévenir les utilisateurs d'​interface graphique, on peut utiliser à la place de wall la commande notify-send qui est dans le paquet [[apt>​libnotify-bin|libnotify-bin]].
 +<​code>​
 +40 18    * * mon,​tue,​wed,​thu,​fri ​  ​pierre DISPLAY=:0 notify-send "fin de session dans 5 minutes"​
 +</​code>​
 +
 +===== Voir aussi =====
 +
 +FIXME
 +
 +
 +----
 +
 +
 +//​Contributeurs principaux : //
  • tutoriel/restrictions_horaires.1248012097.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)