Crée un réseau local depuis un ordinateur pour partager une connexion internet pour un atelier

Il s’agit de la re-publication d’un vieille documentation que j’ai écrite il y a un moment déjà et qui n’est plus disponible en ligne. Elle n’est prévue et testée que sur Debian Jessie, cependant, après relecture elle devrait être tout à fait valable sur un système plus récent.

Intro

Admettons le cas où il soit nécessaire d’organiser un atelier d’informatique avec des postes ne possédant qu’une interface réseau filaire dans un réseau local qui ne dispose pas de connexion filaire au routeur mais qui dispose par contre d’une connexion sans fil.

L’organisateur, s’il dispose :

  • D’un poste possédant deux interfaces réseau : une filaire et l’autre sans fil.
  • D’un switch Ethernet.
  • D’autant de câbles Ethernet que de postes à installer + 1 pour son propre poste.

… peut utiliser son poste qu’il connecte au routeur via son interface sans fil pour rendre la connexion au routeur disponible aux autres postes ne possédant pas de connexion sans fil en créant un réseau local secondaire dédié à l’atelier sur son interface Ethernet et en servant de passerelle vers le réseau du routeur. Pour faciliter la configuration des hôtes du sous-réseau derrière l’interface Ethernet, le poste de l’organisateur fera tourner le daemon dnsmasq pour fournir un service DHCP.

On pourra optionnellement agrémenter le poste de l’organisateur d’un serveur de fichiers samba pour que celui-ci puisse fournir facilement par le réseau divers ressources aux participants ainsi que d’un poxy cache APT pour faciliter l’installation et la mise à jour de paquets Debian (et RPM dans le cas de l’utilisation d’apt-cacher-ng).

Un proxy cache APT est un service qui fait l’intermédiaire entre les dépôts APT et les clients y récupérant les paquets. Il conserve une copie locale de tout ce qui a été demandé au serveur APT et s’il dispose déja du paquet demandé par le client il le fournira à la place du serveur APT.

Les exemples qui vont suivre sont conçus dans le cas où le poste de l’organisateur fonctionne sous Debian Jessie, des adaptations peuvent être nécessaires en cas d’utilisation d’une autre distribution.

Comment construire un réseau local avec le poste de l’organisateur comme passerelle

1. Fixer une adresse IP statique pour l’interface Ethernet

L’interface Ethernet du poste de l’organisateur doit disposer d’une adresse IP statique qui doit être configurée manuellement. En effet, cette interface réseau doit être identifiée de manière unique et définitive par tous les autres postes du réseau de l’atelier car c’est elle qui servira de porte de sortie ( passerelle et optionnellement de serveur DNS. De plus, en l’absence de serveur DHCP préexistant sur le réseau de l’atelier (vu que ce sera sur cette interface qu’écoutera le serveur DHCP) il n’y a pas d’autre choix.

Selon l’adresse IP fournie à cette interface on définira le réseau local de l’atelier que l’on veut créer. /!\ ATTENTION ! Le réseau choisi doit être différent de celui du routeur.

Ici nous allons créer un réseau de classe C avec les paramètres suivants :

Paramètres Valeur


Réseau 192.168.25.0
Masque sous-réseau 255.255.255.0
Adresse passerelle 192.168.25.1


Par convention la passerelle dispose souvent de la première ou de la dernière adresse du réseau, ici il s’agit de la première : 192.168.25.1.

Dans les exemples qui suiveront, l’interface filaire est désignée sous le nom de eth0 et l’interface sans fil sous le nom de wlan0. Ces noms sont à adapter en fonction de leur nomination effective sur le poste de l’organisateur.

Ici le plus simple pour configurer l’interface réseau est d’utiliser NetworkManager. Cependant, vu que NetworkManager possède plusieurs frontends graphiques, pour des raisons de simplicité, c’est le frontend en ligne de commande nmcli qui est utilisé ici (la commande nmcli est disponible sous Debian Jessie via le paquet network-manager).

La commande suivante exécutée avec les droits root crée la connexion nommée Réseau pour atelier avec les paramètres IP fixés ci-dessus :

sudo nmcli connection add type ethernet ifname eth0 autoconnect no con-name "Réseau pour atelier" ip4 192.168.25.1/24

Le suffixe /24 de l’adresse IP correspond au nombre de bits à 1 dans le masque sous-réseau 255.255.255.0 (réseau de classe C).

Pour l’activer par la suite, utilisez l’applet NetworkManager ou la commande suivante :

nmcli connection up "Réseau pour atelier"

L’avantage à utiliser NetworkManager est qu’il permet de switcher facilement d’une configuration de l’interface réseau à l’autre en fonction de l’usage que l’on souhaite en faire :

  • Choisir la connexion Réseau pour atelier quand il faut configurer l’interface pour servir de passerelle lors d’un atelier.
  • Choisir une autre connexion, par exemple Automatique via DHCP quand il faut juste utiliser l’interface pour se connecter comme simple hôte d’un réseau local.

2. Devenir une passerelle

La première chose à faire est de demander au noyau Linux d’autoriser le transfert de paquets IP d’une interface réseau à une autre. Cela se fait avec la commande suivante exécutée avec les droits root :

sysctl net.ipv4.ip_forward=1

Ensuite, il faut configurer la Traduction d’adresse réseau appelée NAT pour que les paquets IP en provenance de notre réseau ( 192.168.25.0/24 soit capables d’être transmis au réseau du routeur qui n’acceptera pas les paquets IP en provenance d’un autre réseau que le sien. Pour ce faire utiliser la commande suivante exécutée avec les droits root :

Ici l’interface sans fil se nomme wlan0, si votre interface sans fil porte un autre nom, remplacez wlan0 par la valeur qui convient.

iptables -t nat -A POSTROUTING -s 192.168.25.0/24 -o wlan0 -j MASQUERADE

Cette commande a pour effet de remplacer l’adresse IP de tous les paquets en provenance du réseau 192.168.25.0/24 sortant par l’interface sans fil par l’adresse IP de l’interface sans fil. De cette manière, ils peuvent circuler librement sur le réseau du routeur.

##3. Utiliser le serveur DHCP dnsmasq

Pour que le réseau IP de l’atelier soit opérationnel, il manque un dernier point : assurer la configuration réseau IP des postes des participants à l’atelier.

En utilisant un serveur DHCP dûment configuré celle-ci se fera automatiquement sans qu’il y ait besoin de la moindre intervention sur les postes des participants. Le plus simple pour cela est d’utiliser le serveur dnsmasq qui en plus de fournir un serveur DHCP fera aussi office de serveur DNS (avec certains paramètres qui fluidifiera le trafic du réseau de l’atelier et qui permettra, entre autres, de reconnaitre toutes les machines ayant obtenu leur adresse IP de la part de dnsmasq par leur nom d’hôte et qui pourra éventuellement faire office de serveur TFTP, indispensable s’il est nécessaire d’amorcer un système par le réseau.

Le serveur dnsmaq s’installe sous Debian à partir du paquet du même nom :

apt install dnsmasq

Par défaut, dnsmasq s’exécute automatiquement au démarrage en tant que daemon lancé par une unité systemd. Vu qu’il n’est pas nécessaire que le service soit automatiquement démarré à chaque fois, autant le désactiver pour ne le démarrer qu’au besoin. Pour cela exécuter avec les droits root la commande suivante :

systemctl stop dnsmasq.service
systemctl disable dnsmasq.service

Par la suite, pour démarrer le service dnsmasq au besoin, ouvrir un terminal et y saisir la ligne de commande suivante exécutée avec les droits root :

dnsmasq --user=nobody --group=nogroup --listen-address=192.168.25.1 --bind-interfaces --bogus-priv --filterwin2k --stop-dns-rebind --clear-on-reload --domain-needed --dhcp-range=192.168.25.10,192.168.25.50 --dhcp-authoritative --keep-in-foreground

L’erreur dnsmasq: impossible de créer un socket d'écoute pour 192.168.25.1 : Adresse déjà utilisée

Ce message s’affiche quand une autre instance de dnsmasq écoute sur l’interface possédant la même adresse IP. Cette seconde instance de dnsmasq peut provenir de l’utilisation de NetworkManager qui lance une instance de dnsmasq pour servir de cache DNS. Le configuration par défaut de dnsmasq fait que celui-ci va se “lier” à toutes les interfaces disponibles ce qui rendra l’utilisation d’une autres instance de dnsmasq en écoute sur une interface spécifique impossible. Pour changer ce comportement et par la même occasion corriger le problème, éditez le fichier de configuration principale de dnsmasq /etc/dnsmasq.conf et décommenter le paramètre bind-interfaces.

La configuration suivante permet de lancer le service en premier plan dans le terminal courant où il y inscrira directement son journal (paramètre --keep-in-foreground). Il y tourne avec des droits restreints (paramètre --user=nobody --group=nogroup) écoute sur l’interface possédant l’adresse IP 192.168.25.1 (paramètre --listen-address=192.168.25.1) et servira des adresses IP aux clients à partir de 192.168.25.10 jusqu’à 192.168.25.50 (paramètre --dhcp-range=192.168.25.10,192.168.25.50).

Les explications détaillées sur la signification des options utilisées peuvent être trouvées dans la page de man de la commande dnsmasq (man dnsmasq) qui est traduite en français.

3. Remise en ordre une fois l’atelier terminé

Une fois l’atelier terminé, il n’est pas nécessaire que le poste de l’organisateur reste en mode “passerelle DHCP”. Pour retrouver l’état initial, redémarrez la machine (aucune des modifications effectuées ne se ré-exécutera au prochain démarrage, même pas l’exécution du service dnsmasq vu qu’il a été désactivé) ou aller dans le terminal exécutant dnsmasq et faire [CTRL]+[c] avant d’exécuter l’ensemble des commandes suivantes :

 # Supprime le NAT créé pour l'atelier
iptables -t nat -D POSTROUTING -s 192.168.25.0/24 -o wlan0 -j MASQUERADE
 # Désactive le suivi de paquets IP du noyau Linux (sauf s'il est encore nécéssaire)
sysctl net.ipv4.ip_forward=0
 # Ferme la connexion nommée "Réseau pour atelier" dans NetworkManager
nmcli connection down "Réseau pour atelier"

FINAL. Automatiser les étapes 2,3,4 avec le dispatcher de NetworkManager

Plutôt que de refaire la procédure ci-dessus à chaque nouvel atelier, utiliser la fonction dispatcher de NetworkManager pour la rendre automatique.

Le manuel de NetworkManager indique que tout script placé dans /etc/NetworkManager/dispatcher.d/ sera exécuté dans l’ordre alphabétique de son nom de fichier à condition qu’il soit un fichier exécutable appartenant à root, inscriptible que par root et ne possédant pas le bit sgid, à chaque connexion d’un profile.

Avec l’éditeur de texte de votre choix, lancé avec les droits root, créez le fichier /etc/NetworkManager/dispatcher.d/95reseau_atelier et placez-y le script shell suivant :

#!/bin/sh

 # /!\ ATTENTION ! À adapter en fonction de sa configuration
NOM_CONNEXION="Réseau pour atelier"
RESEAU="192.168.25.0/24"
INTERFACE_SORTIE="wlan0"
ADRESSE_PASSERELLE="192.168.25.1"
PLAGE_DHCP="192.168.25.10,192.168.25.50"

 # Ne s'active que pour la connexion nommée "Réseau pour atelier"
test "$CONNECTION_ID" != "$NOM_CONNEXION" && exit 0

case $2 in
	# Transforme le poste en passerelle serveur DHCP à l'activation de la connexion
	up )
		# Activation du suivi de paquets IP du noyau Linux
		sysctl net.ipv4.ip_forward=1
		# NAT pour le sous réseau de l'atelier
		iptables -t nat -A POSTROUTING -s "$RESEAU" -o "$INTERFACE_SORTIE" -j MASQUERADE
		# Activation du serveur DHCP en tant que daemon
		dnsmasq --log-facility=/tmp/dnsmasq-atelier.log --pid-file=/tmp/dnsmasq-atelier.pid --user=nobody --group=nogroup --listen-address="$ADRESSE_PASSERELLE" --bind-interfaces --bogus-priv --filterwin2k --stop-dns-rebind --clear-on-reload --domain-needed --dhcp-range="$PLAGE_DHCP" --dhcp-authoritative
	;;
	# Désactive la passerelle serveur DHCP à l'arrêt de la connexion
	down )	
		# Supprimer ou commenter si le suivis de paquet IP est toujours nécessaire après l'utilisation de cette connexion
		sysctl net.ipv4.ip_forward=0
		# Suppression du NAT crée pour cette connexion
		iptables -t nat -D POSTROUTING -s "$RESEAU" -o "$INTERFACE_SORTIE" -j MASQUERADE
		# Extinction du serveur DHCP
		kill $(cat /tmp/dnsmasq-atelier.pid)
		rm /tmp/dnsmasq-atelier.pid
	;;
esac

A chaque activation de la connexion nommée “Réseau pour atelier” (voir le test à la ligne 11 du script), le NAT et le DCHP sera configurer sur l’interface réseau concernée et le poste de l’organisateur se transformera en routeur/passerelle DHCP. Dès que la connexion sera désactivée, le NAT sera supprimé et l’exécution du serveur DHCP interrompus et le poste de l’organisateur redeviendra un hôte classique.

Ajouter sur le poste de l’organisateur un poxy cache APT pour accélérer les installations et mises à jour de paquets APT

Utilité / Installation

Lors de l’atelier, il peut être long de faire installer un paquet logiciel ou dans le cas d’un atelier d’installation d’une distribution, de faire faire les mise à jours de post-installation aux participants. En effet, pour ce faire, les postes des participants devrons contacter les serveurs des dépôts de paquet de la distribution en question qui ne se trouve pas sur le réseau local et par conséquent, devrons se partager la bande passante de la connexion internet disponible qui sera alors diviser selon le nombre de postes utilisés par les participants. Pour éviter cela, il est possible d’utiliser un serveur mandataire spécialisé dans le traitement de paquet logiciel qui ira un fois chercher les paquets demandés sur les serveurs de paquet pour les redistribuer directement au client du réseau local en faisant la demande. Ainsi l’installation et la mise à jour des paquets logiciel ne saturera pas la bande passante disponible pour la connexion internet.

Ici, se sera apt-cacher-ng qui sera utilisé pour remplir cette fonction (en plus de servir de proxy cache pour les paquet APT il sait aussi gérer les format d’autres distribution). Sous Debian Jessie il s’installe avec le paquet du même nom :

apt install apt-cacher-ng

Configuration / Fonctionement

Le configuration par défaut le rend directement fonctionnel. /!\ Attention cepandant tout les paquet mis en chache serons stocker dans /var/cache/apt-cacgher-ng/ veiller donc à disposer de sufisament de place sur la partition contenant ce dossier. Cependant le script /etc/cron.daily/apt-cacher-ng supprimera régulièrement les paquets obsolète ne faisant plus partis le la liste des paquets disponible sur le dépôt et permet ainsi d’empêcher l’espace disque occupé par apt-cahcer-ng de croitre indéfiniment. Toutes la documentation relative ainsi que des fichier de configuration d’exemple peuvent être trouvé dans /usr/share/doc/apt-cacher-ng/.

Le service se configure via le dossier /etc/apt-cacher-ng/ ou l’on trouve 2 type de fichier :

  • Les fichier terminant pas .conf qui sont les fichiers de configurations du service qui sont lu en fonction de leur ordre alphabétique de nom de fichier, les paramètre effectif sont ceux lu en dernier.
  • Les autres fichier dont l’extension n’a pas d’importance, sont principalement des liste de serveur de paquet ou apt-cacher-ng ira chercher les paquet demandé par les client.

En créant le fichier /etc/apt-cacher-ng/local.conf on peut écraser les valeurs présentes dans le fichier de conf original /etc/apt-cacher-ng/acng.conf sans avoir à modifier ce dernier et ainsi permettre sa mise à jour directe à chaque nouvelle version comme recommandé dans /usr/share/doc/apt-cacher-ng/README.Debian.

Il y a deux choses que peut faire apt-cacher-ng en fonction de l’url du dépot de paquet qu’un client lui transmet :

  • Fusionner la destination avec d’autres.
  • Rediriger la destination vers d’autres.

La plus part du temps il fait les deux.

Par exemple si on regarde le paramètre Remap-debrep qui configure le comportement d’apt-cacher-ng pour les miroir Debian dans le fichier /etc/apt-cacher-ng/acng.conf :

grep -e "^Remap-debrep`
Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian # Debian Archives

On y trouve deux champ chacun séparé par un ; (ainsi qu’un troisième optionnel, consulter les manuel pour les détalles) :

  • Le premier indique la liste des destination à fusionner. Quant un client cherchera à obtenir un des paquet via une des url présentes dans le fichier fournis par le paramètre file: (ici il renvoie vers le fichier /usr/lib/apt-cacher-ng/deb_mirror.gz mais avec le jocker * ce pourrait aussi être tout autres fichier situé dans /urs/lib/apt-cacger-ng/ commençant par deb_mirror et terminant pas .gz), à la place d’utiliser dans le cache un emplacement différent pour chaque url, tout pointera dans un même emplacement dans le cache, ici le dossier debrep (le nom de l’emplacement est paramétré en fonction de la valeur fournis en suffixe au paramètre Remap-.
  • Le deuxième indique une liste de serveurs à consulter à la place de ceux qui sont demandés par les clients pour télécharger les paquets. En l’absence de valeur dans ce champ, ce seront ceux demandés par les client qui seront utilisés… Ici c’est le fichier /etc/apt-cacher-ng/backends_debian qui est consulté, il contient une liste miroir du dépôts Debian qui seront consultés dans leur ordre d’apparition.

En créant le ficher /etc/apt-cacher-ng/local.conf pour y modifier la valeur du paramètre Remap-debrep afin d’y ajouter l’url http://httpredir.debian.org/debian à la liste des miroir à fusionner on peut faire en sorte que toutes demande de clients ayant dans leur source.list le redirecteur de miroir automatique de Debian soit fusionner dans le sous dossier /var/cache/apt-cacher-ng/debrep/ avec les autres miroir Debian plutôt qu’être dupliqué dans un sous dossier redonnant comme /var/cache/apt-cacher-ng/httpredir.debian.org alors qu’il partagent les même ressources.

Avec l’éditeur de texte de son choix lancé avec les droits root crée le fichier /etc/apt-cacher-ng/local.conf et y ajouter les lignes suivantes :

# Ajout à la liste des mirroirs à fusioner dans le sous dossier debrep
# de l'url du redirecteur automaitique de mirroir Debian.
Remap-debrep: file:deb_mirror*.gz /debian http://httpredir.debian.org/debian ; file:backends_debian # Debian Archives

Ensuite, modifier le fichier /etc/apt-cahcer-ng/backends_debian pour y faire figurer une liste de miroir plus proche géographiquement que ceux d’origine et ainsi accélérer le téléchargement des nouveaux paquets. Par exemple :

http://httpredir.debian.org/debin/
http://ftp.fr.debian.org/debian/
http://ftp.debian.org/debian/

Ici on a placé en premier lieux le service de redirection automatique qui redirige vers un miroir Debian adapté en fonction de la localité du client, suivi par le miroir français par défaut ftp.fr.debian.org/debian/ et terminé par ftp.debain.org à éviter normalement.

Ajouter son poste comme client apt-cacher-ng et y imporer son cache APT

Il faut maintenant mètre à jour la liste des paquet du cache apt-cacher-ng pour la distribution qu’on utilise. Pour ce faire ajouter son propre poste comme client d’apt-cacher-ng et faire une mise à jours de la liste des paquet. Pour configurer le gestionnaire de paquet APT afin qu’il utilise le proxy cache APT nouvellement installé, créer le fichier /etc/apt/apt.conf.d/02proxy et y placer la ligne suivante :

Acquire::http::proxy "http://localhost:3142/";

apt-cacher-ng écoute par defaut sur le port 3142.

Puis, resynchroniser le fichier d’index des paquets :

apt update

Maintenant, sous Debian et dérivé, il est possible de commencer à peupler de cache d’apt-cacher-ng avec les paquets déjà présent dans le cache d’APT. Pour cela exécuter l’ensemble des commandes suivantes avec les droits root :

 # Créer le dossier /var/cache/apt-cacher-ng/_import
mkdir /var/cache/apt-cacher-ng/_import
 # Y monter le dossier des archives APT
mount -o bind /var/cache/apt/archives/ /var/cache/apt-cacher-ng/_import/

apt-cacher-ng possède une interface web qui permet d’effectuer plusieurs tache de maintenance, pour y accéder utiliser son navigateur web et se connecter à l’hôte local sur le port 3142 : http://localhost:3142. La fonction d’import des paquet est disponible sur cette interface.

Aller dans la partie Import et cliquer sur le bouton Start Import qui déclenchera l’opération d’import des paquet présent dans le dossier /var/cache/apt-cacher-ng/_import/.

Une fois fait, démonter de dossier du cache APT :

umount /var/cache/apt-cacher-ng/_import/

Les prochain client d’apt-cacher-ng pourrons désormais télécharger et mètre à jours les paquet que l’organisateur avait dans son cache APT directement depuis le contenus du cache “apt-cacher-ng” sans avoir à passer par un miroir des dépôt Debian.

Vu que ici APT est lui même client d’apt-cacher-ng il ne sera plus nécessaire de ré-effectuer cette opération à l’avenir, chaque fois qu’un nouveau paquet sera installé ou mis à jour sur le poste, il sera automatiquement ajouté au cache d’apt-cacher-ng.

Ajout des poste des participant à l’atelier

Pour que les poste des participants à l’atelier puissent utiliser de service apt-cacher-ng il faut que chacun d’eux créer avec les droit root le fichier /etc/apt/apt.conf.d/02proxy de la même manière que celui crée plus haut à la différence qu’il faudra remplacer localhost par l’adresse IP de l’interface sur la quel écoute le service. Pour reprendre la configuration réseau présenté plus haut le contenus du fichier devra ressembler à ceci :

Acquire::http::proxy "http://192.168.25.1:3142/";

De même que pour utiliser le proxy cache dans le cadre d’une installation Debian il faudra saisir l’url http://192.168.25.1:3142 quant l’installateur demandera s’il est nécessaire d’utiliser un proxy http.

/!\ Attention ! Bien veiller impérativement à suprimer sur chaques poste des participants le fichier /etc/apt/apt.conf.d/02proxy à la fin de l’atelier. Si ce n’est pas fait APT renvera toujours une erreur à chaque utilisation car il essaira toujour de continuer à joindre le serveur proxy indiqué dans son fichier de configuration. De même après une installation fraiche de Debian l’installateur ajoutera une ligne Acquite::http::proxy dans le fichier /etc/apt/apt.conf qui faudra aussi pensser à supprimer.

Ajouter un serveur de fichier samba pour échanger des ressources avec les postes des participants

Utilité et installation

Disposer d’un serveur de fichier samba sur le poste de l’organisateur peut être très pratique pour échanger facilement des ressources numérique durant l’atelier sans avoir à passer par l’usage pénible d’une clé USB qui peut vite devenir fastidieux quant le nombre de postes augmente. Samba implémente un protocole d’écangs de de fichier utilisable aussi bien sous GNU/Linux que sous Ms/Windows.

Sous Debian Jessie l’installation du serveur de fichier samba se fait en installant le paquet du même nom :

apt install samba

L’installateur pose plusieurs question :

  • Nom de domaine ou de groupe de travail : la valeur par défaut WORKGROUP peut être laissé tel quel.
  • Modifier smb.conf pour utiliser les paramètres WINS fourins par DHCP ? : répondre NON.

Mise en place et configuration

La configuration proposé ici est simple et implémente 2 partage réseau :

  • Un partage en lecture seul nomé atelier-ro ou l’organisateur place des ressource qu’il souhaite transmettre mais qu’il ne souhaite pas voir modifiées par les participants.
  • Un partage en lecture écriture nommé atelier-rw que les participants utilisent pour transmettre des ressources à l’organisateur ou pour se les échanger entres eux.

Chacun de ces deux partage donne accès à deux dossier distinct sur le poste de l’organisateur :

  • ro pour Read Only (lecture seul)
  • rw pour Read Write (lecture écriture)

Ils se trouvent tout deux dans /srv/fileshare/atelier/.

Un troisième partage spécial nommé atelier-admin accessible que depuis le poste de l’organisateur donne directement accès au dossier /srv/fileshare/atelier/ et permet de modifier facilement le contenus du dossier ro tout en donnant en même temps accès au dossier rw.

Pour commencer, créer les dossiers qui hébergerons les partages de fichier avec les droits root :

mkdir -p /srv/fileshare/atelier/
cd /srv/fileshare/atelier/
mkdir ro rw

Samba se configure via son fichier de configuration situé dans /etc/samba/smb.conf. Il s’agit d’un fichier au format ini ou les paramètres se trouvent dans des sections dont le nom est placé entre [] et ont un format du type paramètre = valeur. Dans tout fichier de configuration samba il y a obligatoirement une section [global] qui contient tout les paramètres de configuration généraux, toutes les autres sections définissent des partages réseau avec des paramètres qui leur son propre. Pour plus de détailles consulter la page de man dédié à smb.con : man smb.conf.

La configuration proposé se veut simple pour fonctionner dans la majorité des cas et perturber le moins possible une éventuelle configuration préexistante.

Ici, les partages destinés à l’atelier sont accessibles en mode “invité” ce qui signifie qu’ils ne nécessiterons aucune authentification pour y accéder. En contre partie ils ne serons accessible que depuis l’interface utilisé pour crée le réseau de l’atelier vu plus plus haut. Samba utilise un utilisateur spécial pour accéder au service quant aucun utilisateur n’est utilisé pour s’authentifier, il est fixé par le paramètre guest account dans la section [global] du fichier de configuration de samba et prend pour valeur par défaut nobody. Il faut que les deux dossier ro et rw soit accessible en lecture, écriture à cette utilisateur car tout fichier crée dans le partage le sera avec les droits de cette utilisateur.

L’accès en écriture au dossier ro est nécessaire pour qu’il puisse être modifié en y accédant via le partage atelier-admin.

Pourquoi utiliser un partage spécial pour modifier le dossier ro plutôt que de simplement passer par le système de fichier ?

Car cela permet de fixer directement les droits et propriétaire unix adéquat à tout fichier crée et copié dans le partage.

Fixer comme propriétaire des dossier ro et rw, l’utilisateur donné comme valeur au paramètre guest account, s’il n’y en a pas il s’agira de nobody :

chown nobody ro rw
cd -

Ne reste plus qu’a ajouter les quelque ligne suivantes à la fin du ficher /etc/samba/smb.conf à modifier avec les droits root :

	# Partage réseau utliser pour les atlelier informatique

[atelier-ro]
	comment = Ressource partagé pour les ateliers en lécture seul.
	path = /srv/fileshare/atelier/ro/
   	browseable = yes
	read only = yes
	guest ok = yes
	hosts  allow = 192.168.25.*

[atelier-rw]
	comment = Ressource partagé pour les ateliers en lécture écriture.
	path = /srv/fileshare/atelier/rw/
   	browseable = yes
	read only = no
	guest ok = yes
	hosts  allow = 192.168.25.*

[atelier-admin]
	comment = Accès réservé au poste de l'organisateur de l'attelier.
	path = /srv/fileshare/atelier/
   	browseable = no
	read only = no
	guest ok = yes
	hosts  allow = 127.0.0.1 

Aucune autres modification n’est nécessaire avec le fichier de configuration par défaut sous Debian Jessie.

Les 3 parage son définit comme il suit :

  • atelier-ro
    • path = /srv/fileshare/atelier/ro/ : dossier au quel le partage donnent accès.
    • browseable = yes : le partage sera publié sur le réseau (visible par les autres machines).
    • read only = yes: le partage est en lecture seul, impossible d’y écrire.
    • guest ok = yes : il est possible de d’y accéder sans authentification.
    • hosts allow = 192.168.25.* : seul les hôtes du réseau 192.168.25.0/24 y ont accès.
  • atelier-rw
    • path = /srv/fileshare/atelier/rw/ : dossier au quel le partage donne accès.
    • browseable = yes : le partage sera publié sur le réseau (visible par les autres machines).
    • read only = no: le partage est inscriptible, tout le monde peut y modifier les fichier, en ajouter et en supprimer.
    • guest ok = yes : il est possible de d’y accéder sans authentification.
    • hosts allow = 192.168.25.* : seul les hôtes du réseau 192.168.25.0/24 y ont accès.
  • atelier-admin
    • path = /srv/fileshare/atelier/ : le partage donne accès directement au deux dossier ro et rw contenus dans /srv/fileshare/atelier/.
    • browseable = no : le partage ne sera pas publier sur le réseau (personne le le verra).
    • read only = no : le partage est inscriptible, de cette façon, l’organisateur peut modifier le contenus du dossier rw.
    • guest ok = yes : aucune authentification nécessaire pour y accéder.
    • hosts allow = 127.0.0.1 : seulement accessible depuis le poste hébergeant le serveur.

Pour prendre en compte les modifications, redémarrer le service samba :

systemctl restart samba-ad-dc.service

Accès aux partages

Maintenant ouvrir l’emplacement ([CTRL]+[l]) smb://localhost/atelier-admin avec son gestionnaire de fichier (fonctionne avec thunar nautilus ainsi que le plus part des autres gestionnaire de fichier à condition d’avoir installé fusesmb) depuis le poste de l’organisateur pour y placer les ressources qui seront nécessaire lors de l’atelier.

Les postes des participants pourrons accéder aux partages atelier-ro et atelier-rw une fois connectés au réseau l’atelier définit plus haut et un utilisant la fonction “Parcourir le réseau” de leur gestionnaire de fichier, les partages en questions apparaitrons dans l’élément portant le même nom d’hôte que celui du poste de l’organisateur. Si les partages n’apparaissent pas il est possible d’y accéder directement en ouvrant les emplacements smb://192.168.25.1/atelier-ro et smb://192.168.25.1/atelier-rw.