SAMBA POUR UN RÉSEAU SIMPLE

Lectures recommandées (en anglais) :

Samba à la maison

- À la maison, il est possible de monter un petit réseau hétérogène (Windows, Linux et même Mac), surtout lorsqu'un membre de la famille préfère conserver son ordinateur Windows.

- Supposons un réseau simple, comme celui que j'avais monté chez moi à l'époque. Comme vous pouvez le constater dans le diagramme, le routeur était un vieux 486 et le serveur un vieux Pentium 90, encore fonctionnel, mais dont je ne me sers plus aujourd'hui. Sur ce petit réseau il y avait donc un ordi Windows (avec un utilistateur appelé nat), un ordi Linux (avec un utilistateur appelé jmv) et un serveur Samba tournant sous Linux, ainsi qu'une imprimante connectée à l'ordi Linux. Nous utiliserons cet exemple pour la configuration de Samba, sauf que, contrairement à ce que nous montre l'image, nous supposerons que l'imprimante est connectée sur le serveur Samba plutôt que sur l'ordi Linux.

 

Toporaphie réseau

Samba à la maison -- Prérequis

 

- Un réseau fonctionnel. Vos ordis doivent être capables de communiquer ensemble

- Samba installé

- CUPS installé et fonctionnel sur le serveur, pour le partage d'imprimante(s)

- Le ou les ordis Windows doivent être configurés pour fonctionner en réseau (avec mot de passe utilisateur)

- Autant que possible, le serveur Linux doit avoir dans sa liste un utilisateur portant le même nom que celui de l'ordi Windows

- Le ou les ordis Windows doivent avoir le même nom de "workgroup" que l'ordi Linux. Voir l'onglet "Identification" dans les paramètres réseau du panneau de contrôle

Samba à la maison -- Configuration

 

- Il y a un fichier de configuration important : smb.conf, dont le chemin est habituellement /etc/samba/smb.conf. Pour le modifier, il suffit de l'ouvrir avec son éditeur favori, sous root.

- Il comporte deux grandes sections : [global] et [homes], la première étant la configuration globale du serveur et la deuxième permettant de configurer l'accès aux partages (fichiers et imprimantes) de façon plus pointue. Il est à noter que les paramètres de la section [homes] ont préséance sur ceux de la section [global]. Il est aussi important de se rappeler que les ordis Windows doivent  faire partie du même "workgroup"

- Voici donc comment nous allons configuer notre serveur Samba, en commençant par la section [global] :

[global]
	workgroup = BIERE
	netbios name = HOUBLON
	server string = Serveur Samba %v sur %L
	password server = None
	username map = /etc/samba/smbusers
	log file = /var/log/samba/%m.log
	max log size = 50
	socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
	dns proxy = No
	valid users = nat, jmv
	guest ok = No
	hosts allow = 192.168.1., 127.
	hide dot files = yes
	printcap name = cups
	printing = cups
	security = share (ou user)
	encrypt passwords = yes*

* Si l'on donne le paramètre encrypt passwords = yes, il faut aussi faire la commande suivante sur le serveur Samba :

smbpasswd -a nom_de-l'utilisateur

Depuis Windows 98 SE, le paramètre encrypt passwords = yes doit être utilisé

- On passe ensuite à la section [homes], où l'on définit les partages de fichiers et d'imprimantes. Encore une fois, un exemple simple :

[homes]
	comment = Répertoires partagés
	read only = No
	browseable = No

[printers]
	comment = Toutes les imprimantes
	path = /var/spool/samba
	printable = Yes
	browseable = No

[jmv]
	comment = Répertoire perso
	path = /home/jmv
	valid users = jmv
	read only = No
[nat]
	comment = Répertoire perso
	path = /home/nat
	valid users = nat
	read only = No

[flash]
	comment = Barette de mémoire
	path = /mnt/flash
	valid users = jmv, nat
	read only = No

[cdrom]
	comment = lecteur CD
	path = /mnt/cdrom
	valid users = @buveurs 
	volume = cd-rom commun

[Canon]
	comment = Imprimante réseau
	path = /var/spool/samba
	read only = No
	printable = Yes
	printer name = Canon
	share modes = No

[Epson]
	comment = Imprimante réseau2
	path = /var/spool/samba
	read only = No
	printable = Yes
	printer name = Epson
	share modes = No

En réalité, les imprimantes ne sont pas de vraies imprimantes réseau. Elles sont connectées au serveur Samba sur les ports LPT et sont disponibles pour les autres ordi sur le réseau.

- Il faut maintenant (re)démarrer Samba. Sous Fedora (et en tant que root) :
/sbin/service smb restart

Pour bien d'autres distributions,
/etc/init.d/smb restart

- On peut vérifier notre configuration à l'aide de la commande testparm

 

Le fichier des paramètres avec commentaires

Le fichier original de Samba

Samba à la maison -- smbmount

 

- Un serveur Samba n'est pas destiné seulement aux machines Windows. L'utilisateur d'un ordi Linux peut également s'en servir et partager ses fichiers avec un utilisateur de Windows.

- smbmount permet de monter un lecteur réseau dans un répertoire du disque local d'un ordinateur Linux.

- Dans sa plus simple expression, la commande est la suivante

  smbmount //nom_NetBios_de_la_machine_distante/nom_du_répertoire_partagé chemin_du_répertoire_local

- Mais on préférera y ajouter des options utiles comme le nom de l'utilisateur, son mot de passe, les droits de lecture et d'écriture, etc., ce qui donnera la commande suivante :

  smbmount //nom_NetBios_de_la_machine_distante/nom_du_répertoire_partagé chemin_du_répertoire_local -o uid=nom_d'utilisateur,password=mot_de_passe,rw  sans espace après les virgules

- Si on n'utilise pas l'option password, la machine distante demandera un mot de passe pour Samba. Les options uid et rw sont importantes pour avoir le droit d'écriture dans le dossier partagé

- Cette commande sert également à monter des dossiers partagés se trouvant sur des ordis Windows :-). Par exemple, elle m'a été utile pour monter un lecteur de carte de mémoire flash (pour un appareil photo numérique) qui ne fonctionnait que sous Windows.

CUPS, Samba et le partage d'imprimante

 

Les instructions pour partager une imprimante avec CUPS se trouvent à l'adresse suivante : http://www.tldp.org/HOWTO/Debian-and-Windows-Shared-Printing/sharing_with_windows.html#share_cups_config. En fait, ces instructions devraient s'appliquer à n'importe quelle distribution, puisqu'elles nous viennent de Debian et qu'elles fonctionnent avec Fedora et Gentoo.

Les points à retenir

Samba à la maison -- SWAT

 

- Si la ligne de commande vous rebutte, il existe quelques interfaces graphiques vous permettant de configurer votre serveur Samba, dont les plus connues sont SWAT (Samba Web Administration Tool) et Webmin. Ici nous verrons comment faire fonctionner SWAT.

- SWAT a tout d'abord besoin de inetd (vieux) ou xinetd qui est un « super démon » permettant de contrôler d'autres démons et de leur assurer plus de sécurité. Les services gérés par xinetd se configurent habituellement à l'aide d'un fichier se trouvant dans le répertoire /etc/xinet.d/. Dans le cas qui nous occupe, ce fichier s'appelle bien évidemment swat. Voici un exemple de fichier de configuration de SWAT sous xinetd :

# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.

service swat {
port = 901
socket_type = stream
wait = no
only_from = localhost 192.168.1.0
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
} Notes :

Ce fichier doit être édité sous root
Il y a deux paramètres importants à modifier, et c'est only from et disable (voir plus bas)

service swat (le nom du service)
{
port = 901 (le port, évidemment, qui est déjà paramétré à 901 si le fichier existe déjà)
socket_type = stream
wait = no
only_from = localhost 192.168.1.0 (l'IP du réseau doit être écrite au complet [i.e. le « 0 » à la fin])
user = root (ne pas en inscrire d'autres, sinon ça ne marche pas! Je l'ai essayé)
server = /usr/sbin/swat (le programme)
log_on_failure += USERID
disable = no (mettre à "no" pour activer le service. IMPORTANT!!)

}


Il ne reste plus maintenant qu'à redémarrer xinetd :
Sous Fedora, /sbin/service xinetd restart
Sous plusieurs autres distributions, /etc/init.d/xinetd restart

... et à pointer votre navigateur préféré sur http://localhost:901 pour administrer facilement votre serveur Samba à l'aide d'une interface graphique.

 

 

Guy Lessard et Jean-Marc Vaillancourt
Club Linux-Gatineau
Dernière mise à jour : le 28 novembre 2010