Update...

This commit is contained in:
Yorick Barbanneau 2021-08-26 13:53:56 +02:00
parent daf0fac3ef
commit 4cb6f69e6d
8 changed files with 2659 additions and 74 deletions

View file

@ -1,15 +1,20 @@
\chapter*{Avant-Propos}
\paragraph{}
20 ans après avoir fini ma formation initiale en obtenant un BTS informatique de
gestion, j'ai choisi de retourner sur les bancs de l'école en licence
professionnelle. Cette formation consacre plus de 10 ans d'implication dans les
communautés open-sources bordelaises et orientera ma carrière.
\paragraph{} 20 ans après avoir fini ma formation initiale en obtenant un BTS
informatique de gestion, j'ai choisi de retourner sur les bancs de l'école en
licence professionnelle. Cette formation consacre plus de 10 ans d'implication
dans les communautés open-sources bordelaises et orientera ma carrière. Je viens
d'ailleurs de changer d'emploi et devrait intégrer le \textit{Master Ingénieurie
de l'Informatique} à la rentrée.
\paragraph{}
Étant salarié, mon employeur m'a imposé d'étaler la formation sur 3 ans afin de
pouvoir rester disponible pour l'association.\footnote{je travaille actuellement
pour les centres d'animation de Bordeaux, association loi 1901 gérant des
centres sociaux sur bordeaux}
Je suis donc à la moitié de ma formation et peut dresser un bilan des
apports de celle-ci.
\paragraph{} Ce mémoire d'alternance traite bien entendu de mes trois ans passés
en licence\footnote{J'ai bénéficié d'un aménagement afin de rester disponible
pour assurer mes missions auprès des Centres d'Animation de Bordeaux}. Mais je
fus salarié de cette association pendant 21 ans, et j'ai participé à la création
de son service informatique. Il contient donc aussi des passages évoquant cet
historique.
\paragraph{} Ce mémoire contient des liens, il sont symbolisés par la petite
sous cette forme~: \ul{{\color{ElectricGreen}\faLink} lien}. Dans sa version
numérique, les liens sont actifs et utilisables, la version papier utilise des
notes de bas de page pour vous indiquer les URL.

View file

@ -7,13 +7,18 @@ un modem RTC. Aujourd'hui tous les centres sont équipés et interconnectés
et les besoins grandissent chaque année.
\normalsize
\section{Le S.I en quelques chiffres}
\section{Le S.I. en quelques chiffres}
Au moment de l'écriture de ce rapport, les centres d'animation de Bordeaux
disposent d'un parc \textbf{371 postes clients} fonctionnant majoritairement
sous \textit{Microsoft Windows}, de \textbf{20 imprimantes}, \textbf{10 serveurs
de fichiers} dans les structures, \textbf{7 serveurs} au siège.
\section{L'organisation du service informatique}
\paragraph{} Le service fait parti des fonction support de l'association, notre
bureau est situé aux siège de l'association au 40 cours d'Albret à Bordeaux. Il
est composé de quatres personnes~:
bureau est situé aux siège situé au 40 cours d'Albret à Bordeaux. Il est composé
de quatres personnes~:
\begin{itemize}
\item Cécil Bensimon --- directeur général adjoint, responsable des systèmes
@ -46,13 +51,13 @@ présent dans toutes les structures de l'association}
\paragraph{} Le réseau administratif des \textit{Centres d'animation de
Bordeaux} est assuré par \textit{Orange} via une offre \textit{BVPN}. Cette
offre englobe un VPN géré directement par le fournisseurs d'acces à Internet.
offre englobe un VPN géré directement par le fournisseurs d'accès à Internet.
Chacune des structures est réliée aux autres via un plan d'adressage privé
définis lors de la mise en service de l'offre.
\paragraph{} L'offre comprend aussi la téléphonie fixe sur IP. Ainsi l'ensemble
des postes téléphoniques fixe (postes fixes ou sans-fils) son reliés à un
standard virtuels et est accessible via un numéro interne (et parfois un numéro
standard virtuel et est accessible via un numéro interne (et parfois un numéro
géographique).
\paragraph{} Le réseau est divisé en deux VLAN: un pour la voix et un pour les
@ -79,21 +84,23 @@ VLAN dans les structures ou il y a un réseau administratif et un réseau public
\subsubsection{La Comptabilité}
Le service comptabilité utilise la suite \textit{Sage Comptabilité} en version
SQL Server. Les comptables dans les structures se connectent en Bureau à
Distance au serveur applicatif.
SQL Server. Les comptables dans les structures se connectent en bureau à
distance au serveur applicatif.
\subsubsection{TrueNAS}
\paragraph{} C'est un système d'exploitation utilisé pour créer des serveur de
stockage. Basé sur FreeBSD et open-source (licence \textit{BSD}). Il "motorise"
le serveur de sauvegarde du siège de l'association et les serveur de stockages
stockage. Basé sur FreeBSD et open-source (licence \textit{BSD}). Il "motorise"
le serveur de sauvegarde du siège de l'association et les serveur de fichiers
disponibles dans les centres.
\subsubsection{OpenWRT}
\paragraph{} \link{https://openwrt.org}{OpenWRT} est une distribution GNU/Linux
destinée aux routeurs et points d'accès Wifi. Nous l'utilisons sur l'ensemble
des points d'accès Wifi utilisés sur l'association.
des points d'accès Wifi utilisés dans l'association. Cette distribution nous
permet d'assurer une durée de vie plus étendue et un meilleur suivi des mises à
jour.
\subsection{Les outils du service informatique}
@ -109,11 +116,6 @@ gestion de service informatique écrit en PHP. Il permet de gerer les
inventaires, les tickets, les bases de connaissances, les tiers (client /
fournisseurs)
\begin{figure}[H]
\includegraphics[width=\linewidth]{screenshoots/sc_glpi}
\caption{capture d'écran du déroullé d'un ticket ouvert sur GLPI}
\end{figure}
\paragraph{} Nous utilisons les outils d'inventaires pour les ordinateurs et
télephones portables (avec leurs cartes SIM et les lignes associées). Nous
utilisons aussi l'outils de gestion des tickets afin de gérer les différents
@ -121,33 +123,22 @@ incidents et demandes remontés par les utilisateurs.
\paragraph{} Nous utilisons aussi
\link{https://fusioninventory.org}{Fusioninventory}. Le plugin installé sur
GLPI et l'agent sur l'ensemble des ordinateurs utilisateurs du parc afin de
GLPI et l'agent sur l'ensemble des ordinateurs utilisateurs du parc afin de
remonter automatiquement les configuration dans la base de données.
\subsubsection{Nextcloud}
\paragraph{} \link{https://nextcloud.org}{Nextcloud} est un logiciel écrit en
PHP de stockage de données en ligne via un accès Web. Il permet l'hébergement
et le partage de fichiers, calendriers, carnet d'adresses \textellipsis
\begin{figure}[H]
\includegraphics[width=\linewidth]{screenshoots/sc_nextcloud}
\caption{capture d'écran de l'agenda semainier de NextCloud.}
\end{figure}
\paragraph{} \link{https://nextcloud.org}{Nextcloud} est un logiciel de stockage
de données en ligne via un accès Web. Il permet l'hébergement et le partage de
fichiers, calendriers, carnet d'adresses \textellipsis
\subsubsection{Gitea}
\paragraph{} \link{https://gitea.io}{Gitea} est un logiciel de forge logicielle
écrit en \textit{go} et accessible avec un simple navigateur web. Simple à
\paragraph{} \link{https://gitea.io}{Gitea} est une forge logicielle
écrite en \textit{go} et accessible avec un simple navigateur web. Simple à
installer, son interface s'inspire grandement de celle de Github. Il permet
d'héberger des dépôts git et contient une gestion des tickets et un wiki.
\begin{figure}[H]
\includegraphics[width=\linewidth]{screenshoots/sc_gitea}
\caption{capture d'écran d'un dépôt Gitea, ici un script d'installation de
l'agent fusioninventory sous MacOSX}
\end{figure}
\paragraph{}Nous l'utilisons pour héberger un ensemble de codes sources écrits
au sein du services, principalement des scripts bash ou powershell, mais aussi
des \textit{Dockerfiles}, des exemples de configuration de points accès
@ -159,15 +150,10 @@ des \textit{Dockerfiles}, des exemples de configuration de points accès
contenu web de type wiki écrit en PHP. Il est destiné à la création de page
collaborative.
\begin{figure}[H]
\includegraphics[width=\linewidth]{screenshoots/sc_doku}
\caption{capture d'écran de la documentation interne du service}
\end{figure}
\paragraph{} Mous l'utilisons afin de consigner l'ensemble de la documentation
interne du service et des notes relatives aux differentes expérimentation. On y
trouve aussi des rapports detaillés de certains incidents majeurs et de
réunions.
interne du service et des notes relatives aux differentes expérimentations. On y
trouve aussi des rapports detaillés de certains incidents majeurs et des
comptes-rendus de réunions.
\subsubsection{Les outils en cours de déploiement}
@ -175,10 +161,10 @@ réunions.
sont en cours de test afin d'être intégré au fonctionnement du service.
\paragraph{} Leurs intégrations est prévue dans le cadre de la migration de
l'hébergement de nos outils de Jails FreeBSD vers Docker. Cette migration fait
l'objet d'un chapitre complet de ce rapport.
l'hébergement de nos outils de \textbf{Jails FreeBSD} vers \textbf{Docker}.
Cette migration fait l'objet d'un chapitre complet de ce rapport.
\paragraph{} Je peux citer le gestionnaire de mots de passe en ligne Vaultwarden
et l'outils de prise de contôle à distance Meshcentral qui seront intégrés avant
la fin de mon stage. Nous avons aussi en test Saltstack afin de déployer
logiciels et configurations sur l'ensemble des machines clients du parc.
et l'outils de prise de contôle à distance Meshcentral. Nous avons aussi en test
Saltstack afin de déployer logiciels et configurations sur l'ensemble des
machines clients du parc.

View file

@ -1,16 +1,203 @@
\chapter{Action: borne d'accès au numerique}
\chapter{Action~: borne d'accès au numérique}
\paragraph{}\large Pour répondre à un appel à projet de la CAF de la Gironde,
le service informatique et le service communication de l'association ont mis en
place des bornes d'accès aux droits via le numérique. Celles-ci ont pouu but de
faciliter l'accès au sites institutionnels (CAF, Pôle-Emploi, les impôts
\textellipsis) avec l'aide d'un facilitateur numérique.
\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 culture informatique. C'est parti de ce
constat que la Caisse d'Allocation Familliale de la Gironde a lancé le projet
\textit{Point Numérique C@F}.
\section{La demande}
\normalsize
\paragraph{} Il est question d'installer dans les structures sociales des
équipements informatique (ordinateurs, imprimantes, scanner) en libre service
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{Les choix techniques}
\section{La réponse de l'association}
\section{La mise en place}
\paragraph{} L'association c'est positionnée sur le projet fin 2019 et a choisie
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.
\section{}
\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 ce 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éfinis 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
apparuts, 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 su système de base simple}
\paragraph{} J'ai donc 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{}{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étruite 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é. Il se affiche une simple image 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 accessible en libre service, il est donc
nécessaire de s'assurer qu'elles ne peuvent pas servir à aure chose.
\subsubsection{Le choix déterminant d'un système GNU/Linux}
\paragraph{} Installer Debian m'a d'abord permis d'adapter la partrie logicielle
au plus près des besoin. Mais il 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ée. 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 faire au niveau du
service réseau et rendue inaccessibles 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.
\item \textbf{Une configuration fine du navigateur} via un fichier de
configuration au niveau du système. J'ai pu ainsi désactiver
l'installation d'extentions.
\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 d'installation. Celui-ci nécessite un base \textit{Debian} minimale
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 installes les logiciels
nécéssaires, les scripts, les utilisateurs et les fichiers de
configuration.
\end{enumerate}
\section{Retour des usagers}
\paragraph{} La situation sanitaire exeptionnelle 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 ininteressant, bien au contraire. J'ai pu toucher à beaucoup d'aspects
autour de l'environnement GNU/Linux de type \textit{"Bureau"}.
\paragraph{} Cependant 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{Un diffusion sous licence open-source
du script d'installation} et des éléments associés afin que d'autre stuctures
puissent en béneficier.

117
chapitres/chapitre_4.tex Normal file
View file

@ -0,0 +1,117 @@
\chapter{Action~: modernisation des réseaux Wifi dans les structures}
\large
\paragraph{} Comme je le disais dans le premier chapitre, toutes les structures
possèdent au moins un réseau Wifi utilisable par les salariés de l'association.
Ces réseux vieillissants ne permettaient plus de travailler convenablement. De
plus il ne permettent pas au intervenants exterieur ou au public de se
connecter.
\normalsize
\section{Définition des besoins}
\paragraph{} Beaucoup de nos collègues nous remontaient les problématique liées
aux réseaux Wifi. La casi-majorité des connexions réseaux se font par ce biais,
il est donc primordial de pouvoir y remédier. D'après les retours nous avons
identifiés les points les plus importants à prendre en compte, ces points sont
détaillés tableau \ref{Table:wifidiag} (page \pageref{Table:wifidiag}).
\begin{table}
\begin{tabularx}{\textwidth}
% https://tex.stackexchange.com/questions/84400/table-layout-with-tabularx-column-widths-502525
{|m{.3333\textwidth-2\tabcolsep-1.3333\arrayrulewidth}
|>{\raggedright\arraybackslash}m{.3333\textwidth-2\tabcolsep-1.3333\arrayrulewidth}
|>{\raggedright\arraybackslash}m{.3333\textwidth-2\tabcolsep-1.3333\arrayrulewidth}
|}
\hline
\textbf{Problème} & \textbf{Origines possibles} & \textbf{Solutions} \\
\hline
Déconnexion intempestive &
- norme Wifi trop ancienne\newline
- couverture insuffisante &
- changement des points d'accés par des plus récents\newline
- ajout de points d'accès afin d'améliorer la couverture \\
\hline
Réseaux wifi absent &
- couverture insuffisante &
- ajout de points d'accès afin d'améliorer la couverture \\
\hline
Lenteur (wifi seulement) &
- réseau saturé (nombre de postes connectés importants) \newline
- mauvaise connexion \newline
- norme Wifi utilisée trop ancienne &
- changement des points d'accès par des plus récents \newline
- prendre en compte les nouvelles normes (802.11n, 802.11ac, réseaux
5ghz)\newline
- mieux prendre en compte les canaux dans les zones denses \\
\hline
\end{tabularx}
\caption{Tableau récapitulatif des problèmes rencontrés par les personnels de
l'association avec les réseaux Wifi.}
\label{Table:wifidiag}
\end{table}
\subsection{Connexions pour les personnes extérieures}
\paragraph{} De plus en plus de structures expriment le besoin d'un réseaux
accessibles aux personnes extérieures. Que se soit pour les partenaires
(permanences MDS\footnote{Maison Des Solidarité}, assitante sociale, permanence
de la CAF \textellipsis) ou pour les adhérents.
\section{Conception et test d'une solution}
\paragraph{} Une fois les besoins analysés, je suis passé à la conception de la
solution. Celle-ci sera proposée à l'ensemble des structures lorqu'elles
demanderont une évolution de leur réseau. En concertation avec mes collègues,
j'ai définis les contraites suivantes~:
\begin{itemize}
\item les structures demandant un \textbf{accès pour les peronnes
extérieures} doivent avoir un second accès à Internet
\item le matériel \textbf{sera imposé} par le service informatique
\item les points d'accès Wifi doivent \textbf{être compatible avec OpenWRT},
802.11ac, VLAN et PoE\footnote{Power over Ethernet}
\item ils seront \textbf{répartis sur l'ensemble de la structures} en nombre
suffisant afin d'assurer une couverture optimale.
\item ils diffuseront \textbf{les deux réseaux}~: public et privés
\item nous utiliserons les VLAN\footnote{Réseau Locaux Virtuels --- Virtual
Local Area Networks} afin de séparer les deux réseaux
\end{itemize}
\subsection{Choix du matériel}
\paragraph{} Nous avons ensuite choisi le matériel en fonction de ces
spécifications afin de monter une "structure test". Notre choix s'est porté sur
le \textit{Linksys LGS318} pour le commutateur manageable et sur le
\textit{DLink DAP2610} pour les points d'accès Wifi.
\subsection{Conception}
\paragraph{} La meilleure structure candidate pour mettre en place le test était
Bacalan. Elle disposait déjà d'une seconde connexion avec un serveur de filtrage
\textit{OPNSense} et la accueillait beaucoup d'intervenants extérieurs dont un
les médiateur du quartier qui y ont un bureau permanent.
\paragraph{} L'idée schématisée figure \ref{Fig:vlanwifi}
(\pageref{Fig:vlanwifi}) est d'utiliser les VLAN pour séparer les flux. Les
points d'accés reçoivent les deux réseaux et les diffusent~: le VLAN 100 pour le
réseau privé et le 101 pour le réseau public.
\begin{figure}
\includegraphics[width=\linewidth]{generated/plan_vlan_wifi}
\caption{Schéma d'installation des points d'accès Wifi avec les VLAN}
\label{Fig:vlanwifi}
\end{figure}
\paragraph{} Le réseau Wifi sera diffusé en 2,4Ghz et 5Ghz tandis que le réseau
public seulement en 2Ghz
\paragraph{} La structure étant étendue, nous avons placés 3 points d'accès,
ceux-ci on été configurés en SSH.