Guide pas à pas

Installation de la borne web

Procédure synthétique pour installer Ubuntu, préparer les dépôts, créer l’utilisateur kiosque, configurer l’auto-login, lancer Chrome et mettre en place le filtrage.

Illustration d'installation Linux
1

Préparer Ubuntu, peut prendre 30 à 60 minutes

Installer Ubuntu Desktop 24.04 LTS puis activer SSH pour l’administration distante.

sudo apt update
sudo apt upgrade -y
sudo apt install openssh-server -y

Pensez aussi à protéger le BIOS avec un mot de passe.

Vidéo pour préparer Ubuntu

2

Mise a jour de ubuntu et ajouter les sources Google Chrome Enterprise

Ces commandes mettent à jour le système Ubuntu et ajoutent le dépôt officiel de Google Chrome. Elles téléchargent et installent la clé de signature pour vérifier les paquets Google. Enfin, elles actualisent la liste des paquets pour pouvoir installer Chrome proprement.

sudo pat upgrade -y
  sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt update

Vidéo

3

Installation d’un environnement léger avec proxy, filtrage web et Google Chrome

Ces commandes installent un environnement graphique minimal (Xorg + Openbox + LightDM) ainsi que des outils réseau comme Squid et e2guardian pour le proxy et le filtrage web. Elles configurent et démarrent le service Squid, suppriment gnome-keyring, puis installent Google Chrome. Enfin, elles téléchargent et extraient des listes de filtrage (blacklists) pour renforcer le contrôle d’accès Internet.

sudo apt install --no-install-recommends xorg openbox -y
sudo apt install lightdm -y
sudo apt install squid -y
sudo systemctl enable squid
sudo systemctl start squid
sudo apt install e2guardian -y
sudo apt remove gnome-keyring -y
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb -y
wget https://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
tar -xzf blacklists.tar.gz

Au choix du gestionnaire d’affichage, sélectionner LightDM.

Vidéo

4

Création d’un utilisateur kiosk avec connexion automatique

Ces commandes créent un utilisateur kiosk sans mot de passe et configurent un groupe d’autologin. Elles ajoutent cet utilisateur au groupe pour autoriser la connexion automatique. Enfin, elles configurent LightDM pour démarrer automatiquement la session Openbox avec cet utilisateur.

sudo adduser --disabled-password --gecos "" kiosk
sudo groupadd -f autologin
sudo usermod -a -G autologin kiosk
sudo tee /etc/lightdm/lightdm.conf > /dev/null <<EOF
[Seat:*]
autologin-user=kiosk
autologin-user-timeout=0
autologin-session=openbox
EOF 

Vidéo

5

Configuration du démarrage automatique de Chrome en mode kiosk sécurisé

Ces commandes configurent Openbox pour lancer automatiquement un script au démarrage de la session utilisateur kiosk. Le script nettoie les données Chrome, désactive certaines touches clavier et lance Chrome en mode incognito plein écran sur un site défini. Il surveille en boucle Chrome et le relance automatiquement s’il est fermé, garantissant un fonctionnement continu en mode kiosk.

sudo mkdir -p  /home/kiosk/.config/openbox
sudo tee /home/kiosk/.config/openbox/autostart > /dev/null <<EOF
#!/bin/bash
sleep 20
/home/kiosk/google-watch.sh &
EOF
sudo chmod +x /home/kiosk/.config/openbox/autostart
sudo chown kiosk:kiosk /home/kiosk/.config/openbox/autostart

sudo tee /home/kiosk/google-watch.sh > /dev/null <<EOF
#!/bin/bash
rm -rf ~/.config/google-chrome/Default/Cache/*
rm -rf ~/.config/google-chrome/Default/Cookies
export DISPLAY=:0
export XAUTHORITY=/home/kiosk/.Xauthority

# Appliquer le mapping clavier
xmodmap /home/kiosk/.Xmodmap
xbindkeys
# Désactiver Alt+F4, Ctrl+W, Ctrl+Shift+Q etc.
xmodmap -e "keycode 67 = NoSymbol"   # F1
xmodmap -e "keycode 68 = NoSymbol"   # F2
xmodmap -e "keycode 69 = NoSymbol"   # F3
xmodmap -e "keycode 70 = NoSymbol"   # F4
xmodmap -e "keycode 71 = NoSymbol"   # F5
xmodmap -e "keycode 72 = NoSymbol"   # F6
xmodmap -e "keycode 73 = NoSymbol"   # F7
xmodmap -e "keycode 74 = NoSymbol"   # F8
xmodmap -e "keycode 75 = NoSymbol"   # F9
xmodmap -e "keycode 76 = NoSymbol"   # F10
xmodmap -e "keycode 95 = NoSymbol"   # F11
xmodmap -e "keycode 96 = NoSymbol"   # F12
while true; do
    if ! pgrep -f "google-chrome" > /dev/null; then
    
# Désactiver Alt+F4, Ctrl+W, Ctrl+Shift+Q etc.
xmodmap -e "keycode 67 = NoSymbol"   # F1
xmodmap -e "keycode 68 = NoSymbol"   # F2
xmodmap -e "keycode 69 = NoSymbol"   # F3
xmodmap -e "keycode 70 = NoSymbol"   # F4
xmodmap -e "keycode 71 = NoSymbol"   # F5
xmodmap -e "keycode 72 = NoSymbol"   # F6
xmodmap -e "keycode 73 = NoSymbol"   # F7
xmodmap -e "keycode 74 = NoSymbol"   # F8
xmodmap -e "keycode 75 = NoSymbol"   # F9
xmodmap -e "keycode 76 = NoSymbol"   # F10
xmodmap -e "keycode 95 = NoSymbol"   # F11
xmodmap -e "keycode 96 = NoSymbol"   # F12
rm -rf ~/.config/google-chrome/Default/Cache/*
rm -rf ~/.config/google-chrome/Default/Cookies
google-chrome --incognito \
--no-first-run \
--disable-restore-session-state \
--disable-translate \
--disable-extensions \
--disable-infobars \
--start-maximized \
--overscroll-history-navigation=0 \
--noerrdialogs \
--disable-session-crashed-bubble \
--disable-component-update \
https://www.tbjws.be/ & 
fi
    sleep 2
done

EOF
sudo chmod +x /home/kiosk/google-watch.sh

Download du fichier google-watch.sh


Vidéo

6

Sécuriser Openbox

Modifier le fichier /home/kiosk/.config/openbox/rc.xml pour bloquer les raccourcis, empêcher le menu contextuel et forcer un environnement minimal.

sudo -u kiosk vi /home/kiosk/.config/openbox/rc.xml
  • Désactiver Alt+F4, Alt+Tab, Ctrl+Alt+Delete et F1 à F12
  • Bloquer les actions souris non autorisées
  • Empêcher le déplacement et le redimensionnement
  • Conserver un seul bureau
  • Utiliser un thème minimal

Download du fichier rc.xml


Vidéo

7

Configuration des listes de filtrage e2guardian et activation du service

Ces commandes copient les blacklists dans le dossier de l’utilisateur kiosk, puis ajoutent dans bannedsitelist les catégories de sites à bloquer selon les besoins. Elles activent et démarrent le service e2guardian pour appliquer le filtrage web au système. Attention : plus tu inclus de catégories, plus la consommation CPU et mémoire peut augmenter.

sudo cp -r blacklists/* /home/kiosk/
sudo ci /etc/e2guardian/lists/bannedsitelist > 

Ajouter les catégories nécessaires dans bannedsitelist selon les besoins.

sudo systemctl enable e2guardian
sudo systemctl start e2guardian
sudo systemctl status e2guardian

Download du fichier bannedsitelist


Vidéo

8

Configuration des politiques gérées de Google Chrome en mode kiosk

Ces commandes créent l’arborescence de configuration de Chrome puis définissent un fichier de politiques administrées (chromepolicy.json). Ce fichier désactive de nombreuses fonctions du navigateur comme les extensions, téléchargements, historique, impression, outils de développement et accès aux pages internes Chrome. Il force aussi l’ouverture sur un site précis et impose l’usage d’un proxy local pour renforcer le contrôle et la sécurité du poste kiosk.

cd /etc/opt
sudo mkdir chrome
cd chrome
sudo mkdir policies
cd policies
sudo mkdir managed
cd managed
sudo tee /etc/opt/chrome/policies/managed/chromepolicy.json > /dev/null <<EOF
{
  "CommandLineFlagSecurityWarningsEnabled": false,
  "BrowserAddPersonEnabled": false,
  "BrowserGuestModeEnabled": false,
  "BrowserSignin": 0,
  "ForceBrowserSignin": false,
  "SyncDisabled": true,
  "DeveloperToolsAvailability": 2,
  "TaskManagerEnabled": false,
  "PrintingEnabled": false,
  "DefaultBrowserSettingEnabled": false,
  "PasswordManagerEnabled": false,
  "AutofillEnabled": false,
  "AutofillAddressEnabled": false,
  "AutofillCreditCardEnabled": false,
  "AutofillCreditCardImportEnabled": false,
  "AutofillProfileEnabled": false,
  "ClearSiteDataOnExit": true,
  "Disable3DAPIs": true,
  "SafeBrowsingEnabled": false,
  "SafeBrowsingExtendedReportingEnabled": false,
  "NetworkServiceInProcess": true,
  "DnsOverHttpsMode": "off",
  "DefaultSearchProviderEncodings": [],
  "DefaultSearchProviderEnabled": true,
"DefaultSearchProviderName": "Google",
"DefaultSearchProviderKeyword": "google.com",
"DefaultSearchProviderSearchURL": "https://www.google.com/search?q={searchTerms}",
  "PrintingRestricted": true,
  "TranslateEnabled": false,
  "URLBlocklist": [
    "chrome://*",
    "chrome-extension://*",
    "https://chrome.google.com/webstore*",
    "file://*",
    "https://chromewebstore.google.com/*"
  ],
  "ExtensionInstallBlacklist": ["*"],
  "ExtensionSettings": {
    "*": {
      "installation_mode": "blocked",
      "update_url": "",
      "runtime_blocked_hosts": ["*"],
      "runtime_allowed_hosts": []
    }
  },
  "ShortcutManagerAllowed": false,
  "ShowHomeButton": false,
  "HomepageIsNewTabPage": false,
  "HomepageLocation": "https://www.tbjws.be/",
  "NewTabPageLocation": "https://www.tbjws.be/",
  "BrowserLabsEnabled": false,
  "BrowserSettingsPolicyEnabled": false,
  "BookmarkBarEnabled": false,
  "EditBookmarksEnabled": false,
  "ManagedBookmarks": [],
  "ImportBookmarks": false,
  "ImportHistory": false,
  "ImportSavedPasswords": false,
  "ImportSearchEngine": false,
  "RestoreOnStartup": 4,
  "RestoreOnStartupURLs": ["https://www.tbjws.be/"],
  "DownloadRestrictions": 3,
  "PromptForDownloadLocation": false,
  "DefaultDownloadDirectory": "/dev/null",
  "SavingBrowserHistoryDisabled": true,
  "HistoryRecordingEnabled": false,
  "MediaCacheSizeLimitMb": 0,
  "WebRTCIPHandlingPolicy": "disable_non_proxied_udp",
  "SSLVersionMin": "tls1.2",
  "TLS13HardeningForLocalAnchorsEnabled": true,
  "SafeBrowsingForTestingOverride": false,
  "ProxyMode": "fixed_servers",
  "ProxyServer": "http://127.0.0.1:8080",
  "InstallBlocklist": ["*"],
}
EOF


Download du fichier chromepolicy.json


Vidéo

9

Redémarrage du système pour appliquer la configuration

Cette commande redémarre la machine afin de prendre en compte toutes les configurations effectuées. Elle permet d’activer correctement les services, l’autologin et le mode kiosk configuré. Après redémarrage, le système démarre automatiquement dans l’environnement prévu.

sudo reboot