Outils pour utilisateurs

Outils du site


issue93:kiosque_ubuntu

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
issue93:kiosque_ubuntu [2015/02/28 14:24] – créée andre_domenechissue93:kiosque_ubuntu [2015/03/19 10:41] – [5] auntiee
Ligne 1: Ligne 1:
 +===== 1 =====
 +**
 If you work in a place open to the public, for example a library or a hospital, sometimes it could be useful to provide a computer to the visitors. Such a computer, even if equipped with a mouse and a keyboard, must be configured in a way that people should not be able to use all the system functions, but only a limited set of them. For instance, people could use the computer to access the Internet, or only an internal website providing information related to your company or your activity. And you must configure the system in order to prevent shell access, and inhibit the launch of all the other programs you don't wish to offer to the visitors. If you work in a place open to the public, for example a library or a hospital, sometimes it could be useful to provide a computer to the visitors. Such a computer, even if equipped with a mouse and a keyboard, must be configured in a way that people should not be able to use all the system functions, but only a limited set of them. For instance, people could use the computer to access the Internet, or only an internal website providing information related to your company or your activity. And you must configure the system in order to prevent shell access, and inhibit the launch of all the other programs you don't wish to offer to the visitors.
  
Ligne 4: Ligne 6:
  
 You can eventually configure a PC attached to a large TV, without keyboard and mouse, in order to show information slides or videos. To achieve this last goal, you can take a look to Xibo instead, which is a digital signage content management system (http://xibo.org.uk/). You can eventually configure a PC attached to a large TV, without keyboard and mouse, in order to show information slides or videos. To achieve this last goal, you can take a look to Xibo instead, which is a digital signage content management system (http://xibo.org.uk/).
 +**
  
 +Si vous travaillez dans un lieu ouvert au public, par exemple une bibliothèque ou un hôpital, il pourrait parfois être utile de fournir un ordinateur pour les visiteurs. Un tel ordinateur, même équipé d'une souris et d'un clavier, doit être configuré de sorte que les gens ne soient pas en mesure d'utiliser toutes les fonctions du système, mais seulement un nombre limité d'entre elles. Par exemple, les gens pourraient utiliser l'ordinateur pour accéder à Internet, ou un seul site Web fournissant des informations internes relatives à votre entreprise ou votre activité. Et il faut absolument configurer le système afin d'empêcher l'accès au shell et le lancement de tous les autres programmes que vous ne souhaitez pas offrir aux visiteurs.
 +
 +Un tel ordinateur est un kiosque (http://en.wikipedia.org/wiki/Interactive_kiosk).
 +
 +Vous pouvez éventuellement configurer un PC relié à une téléviseur grand écran, sans clavier ni souris, afin de montrer des diapositives d'information ou des vidéos. Pour atteindre ce dernier objectif, vous pouvez jeter un œil à Xibo, qui est un système de gestion de contenu d'affichage numérique (http://xibo.org.uk/).
 +
 +**
 Installing Installing
  
Ligne 30: Ligne 40:
  
 sudo mkdir /opt/kiosk sudo mkdir /opt/kiosk
 +**
  
 +Installation
 +
 +Commençons par l'installation du serveur Ubuntu 14.04 LTS. Pourquoi Ubuntu server ? Eh bien, parce que, dans votre kiosque, vous n'avez pas besoin d'un grand nombre de logiciels. Notez également l'utilisation de l'option –no-install-recommends dans la commande apt-get.
 +
 +Veuillez garder à l'esprit que, après la configuration de l'environnement en kiosque, on suppose que vous aurez accès à l'ordinateur par SSH, et non à partir du terminal.
 +
 +Nous allons donc installer Ubuntu, permettant des mises à jour de sécurité automatiques et l'installation d'un service OpenSSH.
 +
 +Après le premier redémarrage, connectez-vous avec l'utilisateur (administrateur) que vous avez créé lors de l'installation et ensuite mettez le système à niveau :
 +
 +sudo apt update
 +
 +sudo apt upgrade
 +
 +Et installez ces paquets :
 +
 +sudo apt install --no-install-recommends xorg openbox firefox xscreensaver plymouth-theme-sabily cups
 +
 +Installez CUPS si vous voulez permettre à vos visiteurs d'imprimer.
 +
 +Créez un utilisateur, l'utilisateur kiosk.
 +
 +sudo useradd -m kiosk
 +
 +sudo mkdir /opt/kiosk
 +
 +===== 2 =====
 +**
 Set up the environment Set up the environment
  
Ligne 57: Ligne 96:
  
 sudo dpkg-reconfigure x11-common sudo dpkg-reconfigure x11-common
 +**
  
 +Mise en place de l'environnement
 +
 +Dans cette configuration, vous n'allez pas lancer de gestionnaire de bureau, mais invoquer X11 et lancer seulement l'exécutable Firefox.
 +
 +Le script ci-dessus sera appelé par upstart au démarrage du système. Essentiellement, il remplace le répertoire personnel de l'utilisateur kiosque avant de lancer Firefox. Et l'exécutable Firefox est placé à l'intérieur d'une boucle, afin de se relancer chaque fois qu'il est fermé.
 +
 +sudo chmod +x /opt/kiosk/kiosk.sh
 +
 +Maintenant vous devez créer un script upstart :
 +
 +sudo vi /etc/init/kiosk.conf
 +
 +start on (filesystem and stopped udevtrigger)
 +
 +stop on runlevel [06]
 +
 +console output
 +emits starting-x
 +
 +respawn
 +
 +exec sudo -u kiosk startx /etc/X11/Xsession /opt/kiosk/kiosk.sh
 +
 +Comme X a besoin des privilèges root pour démarrer, vous devez taper cette commande et sélectionner « Anybody » (quiconque).
 +
 +sudo dpkg-reconfigure x11-common
 +
 +**
 At this point we are nearly finished. You need to reboot the machine. At this point we are nearly finished. You need to reboot the machine.
  
Ligne 73: Ligne 141:
  
 To continue the configuration, you have to remotely log in via SSH. To continue the configuration, you have to remotely log in via SSH.
 +**
  
 +À ce stade, nous avons presque fini. Vous devez redémarrer la machine.
 +
 +sudo reboot
 +
 +Et Firefox devrait démarrer automatiquement.
 +
 +Apportez les modifications souhaitées maintenant, comme l'ajout de certificats de CA, les dispositifs de sécurité, l'ajout de quelques types d'extensions, etc.
 +
 +Enfin, vous devez installer l'extension srkiosk https://addons.mozilla.org/en-US/firefox/addon/srkiosk/
 +
 +Merci de lire les documents attentivement (http://blogoless.blogspot.it/2012/07/firefox-srkiosk-add-on-full-screen.html), afin de comprendre cet objet artisanal et de mieux l'adapter à vos besoins, comme changer la page d'accueil, ou afficher la barre d'adresses.
 +
 +Fermez Firefox. À ce stade Firefox redémarrera dans un mode kiosque verrouillé.
 +
 +Pour continuer la configuration, vous devez vous connecter à distance via SSH.
 +
 +===== 3 =====
 +**
 Last steps. Last steps.
  
Ligne 79: Ligne 166:
  
 Place the xscreensaver configuration file in the kiosk user home directory. The timeout option is the one you need to change in order to suit your needs (in this example the kiosk will be reloaded every quarter of an hour). Place the xscreensaver configuration file in the kiosk user home directory. The timeout option is the one you need to change in order to suit your needs (in this example the kiosk will be reloaded every quarter of an hour).
 +**
 +
 +Dernières étapes.
 +
 +L'utilisation de l'économiseur d'écran peut être utile et pas seulement pour avoir de belles images sur l'écran après un laps de temps. Il est utile de réinitialiser la session après une période d'inactivité. Par exemple, il est agréable de retourner à la page d'accueil, au lieu de laisser le kiosque sur la dernière page consultée par le dernier utilisateur. Ainsi, vous ne devez configurer l'économiseur d'écran que si vous devez réinitialiser votre kiosque périodiquement.
 +
 +Placez le fichier de configuration de xscreensaver dans le répertoire personnel de l'utilisateur kiosk. L'option de délai d'attente est celle que vous devez changer pour répondre à vos besoins (dans cet exemple le kiosque sera rechargé tous les quarts d'heure)
  
 +**
 sudo vi /home/kiosk/.xscreensaver sudo vi /home/kiosk/.xscreensaver
  
Ligne 102: Ligne 197:
  
 kill $PID kill $PID
 +**
  
 +sudo vi /home/kiosk/.xscreensaver
 +
 +timeout:        0:15:00
 +lock:           False
 +verbose:        False
 +splash:         False
 +captureStderr:  True
 +dpmsEnabled:    False
 +dpmsQuickOff:   False
 +mode:           one
 +selected:       0
 +programs: resetkiosk.sh -root \n\
 +
 +Ensuite, vous devez lancer le script qui sera appelé par xscreensaver après la période d'inactivité (Listing 4). Comme indiqué, au lieu de lancer un véritable économiseur d'écran, c'est en fait xscreensaver qui fera exécuter ce script.
 +
 +sudo vi /usr/lib/xscreensaver/resetkiosk.sh
 +
 +#!/bin/bash
 +
 +PID=`ps -u $UID -f |grep firefox |grep -v grep | awk '{ print $3 }'`
 +
 +kill $PID
 +
 +==== 4 ====
 +**
 Snapshot Time Snapshot Time
  
Ligne 112: Ligne 233:
  
 tar cpvf /opt/kiosk/kiosk_home.tar /home/kiosk/ tar cpvf /opt/kiosk/kiosk_home.tar /home/kiosk/
 +**
  
 +L'heure de la sauvegarde
 +
 +Enfin, vous devez prendre une photo (snapshot) du répertoire personnel de l'utilisateur kiosk. Un tel cliché va écraser le répertoire d'accueil à chaque redémarrage ou lorsque la session de kiosk est remise à zéro, ou lorsque Firefox est fermé.
 +
 +Alors, n'oubliez pas que chaque fois que vous effectuez des modifications dans le répertoire personnel de l'utilisateur kiosk, vous devez faire un tar de ce répertoire et le placer à l'endroit approprié : jetez un œil au script kiosk.sh (page précédente, en haut à droite).
 +
 +rm -rf /home/kiosk/.cache/
 +
 +tar cpvf /opt/kiosk/kiosk_home.tar /home/kiosk/
 +
 +**
 Configuring GRUB and disabling ttys Configuring GRUB and disabling ttys
  
Ligne 139: Ligne 272:
  
 EOF EOF
 +**
  
 +Configuration de GRUB et désactivation des ttys
 +
 +Une autre tâche utile à accomplir est liée à un certain renforcement du système. Par exemple, vous pouvez empêcher des utilisateurs malins de démarrer le système en mode mono-utilisateur, ou de naviguer entre les consoles virtuelles (les terminaux que vous pouvez utiliser en appuyant sur les touches fonctions comme CTRL+ALT+F1).
 +
 +Commençons par GRUB. Tout d'abord, il doit être aussi silencieux (moins verbeux) que possible, juste à des fins esthétiques (listing 5).
 +
 +sudo vi /etc/default/grub
 +
 +...
 +GRUB_TIMEOUT=0
 +GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=current loglevel=0"
 +...
 +
 +Ensuite, vous pouvez définir un mot de passe afin d'interdire aux utilisateurs de démarrer Linux en mode mono-utilisateur. Utilisez la commande grub-mkpasswd-pbkdf2 pour créer un mot de passe crypté, puis modifier certains fichiers.
 +
 +Mettez les lignes suivantes à la fin de /etc/grub.d/00_header
 +
 +cat << EOF
 +
 +set superusers="root"
 +
 +password_pbkdf2 root
 + <la_chaine_obtenue_de_la_commande_grub-mkpasswd-pbkdf2>
 +
 +EOF
 +
 +===== 5 =====
 +**
 At this point, a user and a password will be requested for each GRUB menu entry, even for booting Linux in the normal way; that is what we don't want. So add the –unrestricted parameter (shown below in black) in each menuentry line of the configuration files. For instance in /etc/grub.d/10_linux At this point, a user and a password will be requested for each GRUB menu entry, even for booting Linux in the normal way; that is what we don't want. So add the –unrestricted parameter (shown below in black) in each menuentry line of the configuration files. For instance in /etc/grub.d/10_linux
  
Ligne 158: Ligne 320:
  
 sudo rm /etc/init/tty* sudo rm /etc/init/tty*
 +**
  
 +À ce stade, un utilisateur et un mot de passe seront demandés pour chaque entrée du menu GRUB, même pour le démarrage de Linux de façon normale ; c'est ce que nous ne voulons pas. Ajoutez donc le paramètre -unrestricted (montré ci-dessous en noir) à chaque ligne de menu dans les fichiers de configuration. Par exemple, dans /etc/grub.d/10_linux.
 +
 +...
 +   echo "menuentry '$(echo "$title" | grub_quote)' 
 +--unrestricted ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "   /^/$submenu_indentation/"
 +else
 +  
 +   echo "menuentry '$(echo "$os" | grub_quote)' 
 +--unrestricted ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu    _indentation/"
 +...
 +
 +De cette façon, un utilisateur et un mot de passe seront demandés seulement si l'utilisateur tente d'éditer les entrées de menu de GRUB, en utilisant la touche « e ».
 +
 +Maintenant, vous devez lancer la commande sudo update-grub pour faire les changements.
 +
 +À la fin, vous pouvez désactiver les consoles de terminal virtuel en supprimant les fichiers tty dans le répertoire /etc/init :
 +
 +sudo rm /etc/init/tty*
 +
 +===== 6 =====
 +**
 Further works and conclusion Further works and conclusion
 In order to harden the machine, you should set up a password in the BIOS, and prevent boot from CD/DVD or USB ports. And about USB, you should prevent the use of such ports at least by making the PC inaccessible from the users. In order to harden the machine, you should set up a password in the BIOS, and prevent boot from CD/DVD or USB ports. And about USB, you should prevent the use of such ports at least by making the PC inaccessible from the users.
Ligne 169: Ligne 353:
  
 Maybe a kiosk solution could be better achieved, but as far as I know, I have not found any better alternatives. This solution works for my needs: maybe it could be useful to you or it could be a starting point for a better implementation. Maybe a kiosk solution could be better achieved, but as far as I know, I have not found any better alternatives. This solution works for my needs: maybe it could be useful to you or it could be a starting point for a better implementation.
 +**
 +
 +Autres travaux et conclusion
 +
 +Pour renforcer la machine, vous devez mettre en place un mot de passe dans le BIOS, et empêcher le démarrage à partir des ports de CD/DVD ou USB. Et sur l'USB, vous devez éviter l'utilisation de ces ports au moins en rendant le PC inaccessible par les utilisateurs.
 +
 +D'autres choses à faire ? Configurer un thème personnalisé pour l'écran de démarrage et regarder le moyen de désactiver les raccourcis clavier possibles.
 +
 +Au lieu de lancer Firefox, vous voudrez peut-être lancer un lecteur vidéo ou un diaporama : vous pouvez faire un essai en mettant une autre commande dans la boucle while.
 +
 +Cet article est basé sur un message trouvé sur https://thepcspy.com/read/building-a-kiosk-computer-ubuntu-1404-chrome/.
 +
 +Peut-être une solution de kiosque pourrait être mieux réalisée, mais pour autant que je sache, je n'ai pas trouvé de meilleures alternatives. Cette solution fonctionne pour mes besoins : peut-être il pourrait être utile pour vous ou ce pourrait être un point de départ pour une meilleure mise en œuvre.
 +
 +
issue93/kiosque_ubuntu.txt · Dernière modification : 2015/03/19 10:44 de auntiee