214 lines
10 KiB
TeX
214 lines
10 KiB
TeX
\chapter{Action~: borne d'accès au numérique}
|
|
\label{chap:wifi_centres}
|
|
|
|
\large
|
|
\paragraph{} De plus en plus de démarches administratives se font en
|
|
lignes. Y avoir accès suppose non seulement d'avoir le materiel adapté, mais
|
|
surtout avoir un minimum de connaissance informatique. C'est parti de ce
|
|
constat que la Caisse d'Allocations Familliales de la Gironde a lancé le projet
|
|
\textit{Point Numérique C@F}.
|
|
|
|
\normalsize \paragraph{} Il est question d'installer dans les structures
|
|
sociales des équipements informatiques afin de permettre aux usagers de se
|
|
connecter à leurs espaces en ligne. Pour accompagner les populations les plus en
|
|
difficultés, un \textit{facilitateur numérique} assure une permanence.
|
|
|
|
\section{La réponse de l'association}
|
|
|
|
\paragraph{} L'association s'est positionnée sur le projet fin 2019 et a choisi
|
|
8 structures pour accueillir le dispositif\footnote{Argonne, Benauge, Bordeaux
|
|
Sud, Monséjour, Saint-Michel, Saint-Pierre, Bordeaux-Sud et Bordeaux-Lac}. Un
|
|
facilitateur numérique a été recruté début 2020 afin d'assurer une demi-journée
|
|
de permanence dans chacune d'elles.
|
|
|
|
\paragraph{} Nous sommes partis sur une idée de borne numérique intégrée en
|
|
métal contenant les éléments nécessaires (unité centrale, écran tactile,
|
|
clavier, touchpad, imprimante et scanner); le tout sécurisé et durci.
|
|
|
|
\paragraph{} Le service communication a eu en charge l'habillage graphique de la
|
|
borne et le service informatique la mise en place de l'ensemble logiciel.
|
|
|
|
\section{Concevoir un système sécurisé et simple}
|
|
|
|
\paragraph{} D'après les objectifs et le public cible, j'ai défini trois points
|
|
importants~:
|
|
|
|
\begin{itemize}
|
|
|
|
\item \ul{garantir la confidentialité des données}~: cette borne va être
|
|
utilisée pour accéder à des données sensibles. De plus le public cible
|
|
n'est potentiellement pas à l'aise avec la manipulation d'un ordinateur
|
|
et les enjeux de la vie privée sur Internet.
|
|
|
|
\item \ul{être le plus simple possible}~: la borne doit pouvoir être
|
|
utilisée par des personnes néophytes.
|
|
|
|
\item \ul{empêcher d'en détourner l'usage}~: elle ne doit pas être utilisée
|
|
pour aller sur Facebook, Youtube, \textellipsis
|
|
|
|
\end{itemize}
|
|
|
|
\paragraph{} Je suis donc parti sur l'installation d'un système basé sur
|
|
GNU/Linux. L'idée de base est de le rendre le plus minimal possible, de filtrer
|
|
l'accès à Internet via le DNS et de rendre le profil utilisateur temporaire.
|
|
|
|
\section{La conception du système}
|
|
|
|
\subsection{Les premiers essais}
|
|
|
|
\paragraph{} J'ai d'abord essayer d'utiliser \textit{Ubuntu}, cette distribution
|
|
offre de base un \textbf{compte invité}, très pratique pour assurer la non
|
|
persitance des données d'un utilisateur à l'autre. Mais deux problèmes sont
|
|
apparus, mettant sur la touche cette solution~:
|
|
|
|
\begin{itemize}
|
|
|
|
\item il y a \textbf{beaucoup de travail pour personnaliser la distibution}
|
|
et l'adapter à nos besoins. Et celle-ci entrainera beaucoup de tests, il
|
|
est aisé de \textit{casser} le système en essayant d'enlever des
|
|
paquets.
|
|
|
|
\item La mise en place d'une connexion et déconnexion automatique pour le
|
|
compte invité s'est révélée difficile, et n'a jamais fonctionné
|
|
correctement.
|
|
|
|
\end{itemize}
|
|
|
|
\subsection{La mise en place du système de base}
|
|
|
|
\paragraph{} J'ai choisi de partir sur une base \textit{Debian} largement
|
|
personnalisée. L'idée retenue est donc un système contenant un bureau minimal
|
|
basé sur des éléments de \link{https://xfce.org}{XFCE}, un navigateur Internet
|
|
(\link{https://www.mozilla.org/fr/firefox/new/}{Mozilla Firefox}), un logiciel
|
|
de numérisation (\link{https://gitlab.gnome.org/GNOME/simple-scan}{Simple Scan})
|
|
et d'une suite bureautique (\link{https://libreoffice.org}{LibreOffice}).
|
|
|
|
\subsection{Assurer la volatilité des données}
|
|
|
|
\paragraph{} Le second objectif est d'assurer la confidentialité des données des
|
|
personnes utilisant la borne. J'ai utilisé les fonctionnalité offertes par
|
|
\link{https://github.com/canonical/lightdm}{Lightdm} d'exécuter de scripts
|
|
personnalisés à l'ouverture et fermeture d'une session utilisateur. Ces scripts
|
|
me permettent de mettre en place la volatilité des données.
|
|
|
|
\subsubsection{Le gestionnaire de session}
|
|
|
|
\paragraph{} Ainsi un utilisateur \textit{pointcaf} dispose d'une session
|
|
automatiquement connectée. Un script se lance au démarrage de la session et
|
|
créer son répertoire personnel en RAM, utilisant un système de fichier de type
|
|
\textit{overlay}.
|
|
|
|
\paragraph{} Lorsque l'utilisateur a fini d'utiliser la borne, il dispose d'une
|
|
icône pour se déconnecter. Le gestionnaire de session lance alors un script qui
|
|
va se charger de détruire son dossier\footnote{Il se charge aussi de démonter
|
|
proprement les périphériques de stockages montés le cas échéant}.
|
|
|
|
\subsubsection{La mise en veille}
|
|
|
|
\paragraph{} Au bout de 10 minutes d'inactivité, un économieur d'écran est
|
|
lancé. Une simple image s'affiche avec un message demandant d'appuyer sur la
|
|
touche \textit{Entrée}. Lorsque l'usager le fait, un script se lance afin de
|
|
détruire la session en cours et d'en lancer une nouvelle.
|
|
|
|
\subsection{Empêcher d'en détourner l'usage}
|
|
|
|
\paragraph{} Ces bornes doivent être accessibles en libre service, il est donc
|
|
nécessaire de s'assurer qu'elles ne puissent pas servir à autre chose.
|
|
|
|
\subsubsection{Le choix déterminant d'un système GNU/Linux}
|
|
|
|
\paragraph{} Installer Debian a d'abord permis d'adapter la partie logicielle
|
|
au plus près des besoins Mais ce système permet aussi de limiter l'installation
|
|
de logiciels par les tiers.
|
|
|
|
\subsubsection{Limiter les sites accessibles}
|
|
|
|
\paragraph{} Le risque est aussi de voir une borne utilisée pour naviguer sur
|
|
d'autres sites que ceux servant son objectif. Il ne serait pas surprenant par
|
|
exemple de voir un groupe d'adolescents "squatter" la bornes pour y visionner
|
|
des vidéos Youtube.
|
|
|
|
\paragraph{} Trois éléments ont été mis en places afin de limiter la
|
|
navigation sur le Web :
|
|
|
|
\begin{enumerate}
|
|
|
|
\item \textbf{Limiter les domaines disponibles} par la mise en place d'un
|
|
résolveur DNS\footnote{Domain Name System} local avec une liste
|
|
explicite de domaines autorisés. Cette liste est mise à jour
|
|
quotidiennement par un script. Le logiciel retenu est
|
|
\link{https://nlnetlabs.nl/projects/unbound/about/}{Unbound}. La
|
|
configuration des serveurs DNS à uttiliser s'est faite au niveau du
|
|
service réseau et rendue inaccessible par les utilisateurs.
|
|
|
|
\item \textbf{La mise en place d'un pare-feu local} permettant de limiter
|
|
les flux réseaux au strict nécessaire. J'ai utilisé
|
|
\link{https://www.nftables.org}{nftables} pour mettre en place ces
|
|
règles. Seul les flux en HTTP, HTTPS sont autorisés en TCP et
|
|
l'intérogation DNS en UDP\footnote{L'ouverture du port 53 est
|
|
obligatoire pour le fonctionnement d'Unbound, mais la modification des
|
|
serveurs utilisés par l'utilisateur est verrouillée.}. Le fichier de
|
|
configuration est disponible annexe \ref{chap:nftables} (page
|
|
\pageref{chap:nftables}).
|
|
|
|
\item \textbf{Un réglage fin du navigateur} via un fichier de configuration
|
|
au niveau du système. J'ai pu ainsi désactiver l'installation
|
|
d'extentions ou le DNS over HTTPS\footnote{le navigateur contacte des
|
|
serveurs de noms via HTTPS, passant outre les restrictions mises avec
|
|
\textit{Unbound}}.
|
|
|
|
\end{enumerate}
|
|
|
|
\section{Installation des Bornes}
|
|
|
|
\paragraph{} Les bornes étant imposantes, elles ont été livrées sur chacune des
|
|
sturctures concernées. Pour l'installation de la partie logicielle, j'ai écrit
|
|
un script. Celui-ci nécessite une base \textit{Debian} minimale et \textit{git}
|
|
pour fonctionner.
|
|
|
|
\paragraph{} L'installation se fait en deux étapes~:
|
|
|
|
\begin{enumerate}
|
|
|
|
\item \textbf{L'installation d'un système minimal} à l'aide d'une clé USB
|
|
créée par un \link{https://git.epha.se/ephase/debian-usbcreator}{script
|
|
maison}. Cette installation se fait de façon automatique par l'emploi de
|
|
fichier \textit{preseed}\footnote{Un fichier preseed donne des
|
|
instructions à \textit{Debian Installer} voir
|
|
\link{https://wiki.debian.org/fr/DebianInstaller/Preseed}{sur la
|
|
documentation} du projet Debian}
|
|
|
|
\item \textbf{L'exécution du script d'installation} afin de paramétrer la
|
|
machine. Lancé en \textit{super-utilisateur}, il installe les logiciels
|
|
nécéssaires, les scripts, les utilisateurs et les fichiers de
|
|
configuration.
|
|
|
|
\end{enumerate}
|
|
|
|
\section{Retour des usagers}
|
|
|
|
\paragraph{} La situation sanitaire exceptionnelle début 2020 a largement
|
|
impactée l'installation des bornes~: les structures étaient alors fermées au
|
|
public. Une fois le premier confinement levé, nous avons pu obtenir les
|
|
premiers retours par l'intermédiaire du facilitateur numérique. J'ai corrigé
|
|
certains défauts comme le temps d'inactivité trop long avant le verrouillage ou
|
|
l'ajout de sites supplémentaires dans la liste de ceux autorisés.
|
|
|
|
\section{Conclusion}
|
|
|
|
\paragraph{} Les 3 objectifs définis initialement pour la mise en place de
|
|
l'ensemble logiciels de ces bornes \textbf{ont tous été atteints}. Cependant le
|
|
travail de recherche a été long et parfois fastidieux. Ce n'en était pas pour
|
|
autant inintéressant, bien au contraire. J'ai pu toucher à beaucoup d'aspects
|
|
autour de l'environnement GNU/Linux de type \textit{"Bureau"}.
|
|
|
|
\paragraph{} Il m'a fallut batailler avec le bureau XFCE qui ne
|
|
voulait pas se lancer avec la session utilisateur en mémoire. J'ai donc écrit un
|
|
script spécifique pour lancer la session graphique, il est disponible en annexe
|
|
\ref{chap:startx_bornes} (page \pageref{chap:startx_bornes}).
|
|
|
|
\paragraph{} Toutefois beaucoup de points seraient à améliorer~: une
|
|
installation simplifiée, la mise en place d'une session non limitée pour le
|
|
facilitateur numérique et surtout \textbf{une diffusion sous licence open-source
|
|
du script d'installation} et des éléments associés afin que d'autre stuctures
|
|
puissent en béneficier.
|