Académique Documents
Professionnel Documents
Culture Documents
Document crit par Stphane Gill Copyright 2004 Stphane Gill Ce document est soumis la licence GNU FDL. Permission vous est donne de distribuer et/ou, modifier des copies de ce document tant que cette note apparat clairement.
Samba
Introduction
La palette des systmes dexploitation de Microsoft est trs largement rpandue en tant que plates-formes de poste de travail. Nanmoins, le systme dexploitation Unix (Linux) est trs apprci, en particulier dans le domaine des serveurs, pour la gestion de serveurs de bases de donnes, de serveurs de fichiers et de serveurs de communication. Il est ncessaire de mettre en place des produits complmentaires pour transformer le PC en client NFS, pour avoir accder un ordinateur Unix partir dun PC fonctionnant sous un systme dexploitation Microsoft.
Outre ces produits commerciaux, le produit Samba, disponible librement sous forme de code source, sest rvl extrmement stable, et reprsente ainsi une alternative particulirement intressante. Il a t dvelopp par un australien portant le nom de Andrew Tridgell. Sa maintenance est ralise sur Internet par la Samba Team. Le nom Samba trouve son origine dans une variation du nom du protocole SMB (Server Message Block) utilis pour la communication entre les produit Microsoft. Entre-temps, Samba est utilis par les dpartements informatiques de certaines trs grandes entreprises. Vous trouverez les informations concernant Samba sur le page daccueil de ce produit : http://www.samba.org
Page 2
Samba
Protocole SMB/CIFS
NetBIOS est un protocole de niveau session utilis trs largement dans les rseaux de systmes Windows. Il est transport dans un protocole de transport, typiquement NetBT (NetBIOS sur TCP/IP) ou NetBEUI. Jusqu' Windows 2000, NetBIOS sur TCP/IP tait le protocole typiquement utilis pour le transport du protocole CIFS [1] (galement connu sous le nom de SMB, Server Message Block). Sachant que le protocole CIFS (Common Internet File System) est le protocole sur lequel repose les fonctionnalits de partage de ressources en environnement Windows (partage de fichiers et d'imprimantes), ainsi que les fonctionnalits d'administration distance, il apparait vident que NetBIOS sur TCP/IP est un protocole omniprsent, du moins jusqu' Windows 2000. A partir de Windows 2000, le protocole CIFS peut tre transport directement dans TCP/IP, via le port 445, en supprimant la couche NetBIOS. NetBIOS sur TCP/IP utilisent 3 ports : 137/UDP pour le rsolution de noms NetBIOS (en diffusion ou via un serveur WINS) 138/UDP pour NetBIOS sans session 139/TCP pour NetBIOS avec session
Ces 3 ports se retrouvent dans les sorties de la commande netstat vues prcdemment, puisque NetBIOS sur TCP/IP est activ par dfaut, aussi bien sur Windows 2000 que sur Windows XP. Au niveau systme [2], le protocole CIFS est mis en oeuvre avec une partie cliente et une partie serveur, fonctionnant chacun sous la forme d'un service :
Page 3
Samba
Les commandes net config workstation et net config server permettent d'afficher les transports que ces services peuvent utiliser :
C:\WINDOWS> net config workstation Computer name Full Computer name User name Workstation active on NetbiosSmb (000000000000) NetBT_Tcpip_{AB128BC0-4EA0-40B1-801A-D324891BD60F} (525405FDC5F9) Software version Workstation domain Workstation Domain DNS Name Logon domain COM Open Timeout (sec) COM Send Count (byte) COM Send Timeout (msec) The command completed successfully. Windows 2002 WORKGROUP (null) GILL 0 16 250 \\GILL gill.domus gills
Les transports possibles apparaissent sous la ligne Workstation active on : NetbiosSmb dsigne le transport de CIFS dans TCP directement (port TCP 445, sans couche NetBIOS) [3]. NetBT_Tcpip_... dsigne le transport de CIFS dans NetBIOS sur TCP/IP, sur l'un des adaptateurs rseau. CIFS est un protocole relativement complexe, ayant connu de nombreuses volutions qui ont abouti plusieurs versions du protocole, appeles dialectes. La complexit du protocole, la
Page 4
Samba
faiblesse des protocoles d'authentification utiliss ainsi que des erreurs d'implmentations ont t la cause d'un certain nombre de vulnrabilits dans les systmes Windows [4].
Installation de Samba
Avant d'installer Samba, il faut bien videmment rcuprer les fichiers RPM ou bien les sources, et ajouter les protocoles TCP/IP et NetBIOS sur les machines clientes afin de leur permettre d'accder aux services de Samba.
Installation du client
Pour install le client Samba il suffit de taper la commande suivante : rpm -ivh samba-2.0.6-x.i386.rpm
Installation du serveur
L'installation (contrairement la configuration) du serveur est trs simple mettre en oeuvre. Il suffit dans un premier temps de rcuprer les fichiers RPM, puis dans un second temps de les installer: rpm -ivh samba-common-2.0.6-x.i386.rpm rpm -ivh samba-client-2.0.6-x.i386.rpm
Activation de SWAT
SWAT est un outil de configuration du fichier /etc/smb.conf qui utilise un navigateur Web comme interface. SWAT regroupe l'ensemble de la documentation sur Samba, smbd, nmbd et tous les services associs ces applications, mais permet galement d'ajouter des fichiers ou imprimantes partags, de lancer les dmons smbd et nmbd, de vrifier les connexions aux ressources partages, et de grer les mots de passe.
Page 5
Samba
Avant dactiver SWAT, il faut diter le fichier /etc/xinetd.d/swat et de mettre: disable=no. Pour accder Swat, lancez un navigateur et entrez l'url suivante : http://localhost:901/ Vous devriez avoir les crans suivants :
Dmarrage de Samba
Aprs installation, le serveur de Samba devrait normalement tre apte dmarrer (sans aucun partage de fichiers ou d'imprimante) en lanant la commande suivante: /etc/rc.d/init.d/smb start Le serveur devrait alors renvoyer les lignes suivantes: Starting SMB services: Starting NMB services: La commande suivante permet de contrler que les deux dmons sont correctement lancs /etc/rc.d/init.d/smb status smbd (pid 1054) is running... nmbd (pid 1056) is running... Il existe une commande permettant de redmarrer Samba: /etc/rc.d/init.d/smb restart
Page 6
Samba
Page 7
Samba
Page 8
Samba
allez devoir saisir un mot de passe. Utilisez le mot de passe pour le compte d'invit ou pour votre compte personnel sur cette machine. Par exemple : smbclient -L zimmerman Ce qui devrait donner quelque chose comme cela : Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0 Password: Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51] Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[] Sharename --------ADMIN$ public C$ IPC$ OReilly print$ Type ---Disk Disk Disk IPC Printer Disk Comment ------Remote Admin Public Default share Remote IPC OReilly Printer Drivers
This machine has a browse list: Server --------HOPPER KERNIGAN LOVELACE RITCHIE ZIMMERMAN La browse list (liste des machines) montre quels sont les autres serveurs SMB partageant des ressources sur le rseau. Comment ------Samba 1.9.15p8 Samba 1.9.15p8 Samba 1.9.15p8 Samba 1.9.15p8
Page 9
Samba
Pour utiliser le client, lancez : /usr/sbin/smbclient service <mot de passe> ou service est une machine et un nom de partage. Par exemple, si vous essayez d'accder un rpertoire en accs public sur une machine appele zimmerman, le service sera nomm \\zimmerman\public. Nanmoins, cause des restrictions de l'interprteur de commandes (le shell), vous allez devoir redoubler les backslashs, pour obtenir la ligne suivante : /usr/sbin/smbclient \\\\zimmerman\\public mon_mot_de_passe o mon_mot_de_passe est votre mot de passe crit tel quel. Vous allez obtenir la ligne de commande suivante : Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0 Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51] smb: \> Tapez h pour obtenir de l'aide sur smbclient : smb: \> h ls get more md translate cancel newer setmode smb: \> Si vous savez utiliser ftp, vous ne devriez pas avoir besoin de lire la page de manuel de smbclient. dir mget mask rmdir lowercase stat archive help lcd put del rd print quit tar ~? cd mput rm prompt printmode q blocksize ~! pwd rename mkdir recurse queue exit tarmode
smbfs
Les utilitaires smbmount et smbumount permettent de monter de dmonter des ressources SMB en tant que systme de fichiers distant (pour peu que le noyau supporte le systme de fichiers SMB).
Page 10
Samba
Pour monter une ressource la syntaxe est la suivante: # mount -t smbfs //ordi1/partage1 /mnt/test -o username=login_Windows Pour dmonter une ressource la syntaxe est la suivante: # umount /mnt/test
Nautilus
Vous pouvez galement utiliser Nautilus pour afficher les partages Samba disponibles sur votre rseau. Slectionnez Bouton menu principal (sur le panneau) => Serveurs rseau pour afficher une liste des groupes de travail Samba sur votre rseau. Vous pouvez galement taper smb: dans la barre Emplacement: de Nautilus afin d'afficher les groupes de travail. Comme le montre la figure suivante, une icne apparat pour chaque groupe de travail SMB disponible sur le rseau.
Comme le montre la figure pecdente, il y a une icne pour chaque ordinateur appartenant au groupe de travail. Cliquez deux fois sur une icne pour afficher le partage Samba sur l'ordinateur donn. Si une combinaison nom d'utilisateur/mot de passe est ncessaire, le systme vous invitera la spcifier.
Page 11
Samba
Vous pouvez galement spcifier une combinaison nom d'utilisateur/mot de passe dans la barre Emplacement: en suivant la syntaxe suivante (remplacez utilisateur, mot-de-passe, nom-duserveur et nom-du-partagepar les valeurs appropries): smb://utilisateur:mot-de-passe@nom-du-serveur/nom-du-partage
Voici un exemple de fichier /etc/samba/smb.conf : [global] workgroup = METRAN encrypt passwords = yes wins support = yes log level = 1 max log size = 1000 read only = no [homes] browsable = no
Page 12
Samba
map archive = yes [printers] path = /var/tmp printable = yes min print space = 2000 [test] browsable = yes read only = yes path = /usr/local/samba/tmp
Dans le tableau suivant les options utiliss sont dcrites: Option netbios name workgroup server string Description Permet de donner un nom NetBIOS au serveur Samba. Dcrit le nom du workgroup auquel le serveur appartient. Le commentaire qui apparait cot du nom du serevur dans le voisinage rseau.
Page 13
Samba
Page 14
Samba
comment = lecteur de CD-ROM path = /mnt/cdrom public = yes writable = no create mask = 0750
Test de la configuration
Le programme testparm permet de vrifier la syntaxe du fichier de configuration (smb.conf). Il est conseill d'excuter cet utilitaire chaque modification manuelle du fichier smb.conf. La syntaxe de testparm est la suivante: testparm smb.conf Si celui-ci ne renvoie aucun message d'erreur, la syntaxe du fichier smb.conf est alors correcte (il ne vrifie que la syntaxe, non le fonctionnement). Afin de pouvoir visualiser correctement les rsultats, vous pouvez rediriger la sortie vers un fichier par la commande testparm smb.conf > /rpertoires/fichier
Page 15
Samba
Options rseaux
Samba offre la possibilit de modifier certains paramtres rseaux afin damliorer la scurit et de permettre un serveur doffrir des services sur 2 sous-rseau la fois. Dans lexemple suivant le serveur Samba accde simultanment le sous-rseau 192.168.220.0 et le sous-rseau 134.213.233.0. [global] hosts allow = 192.168.220. 134.213.233. hosts deny = 192.168.220.102 interfaces = 192.168.220.100/255.255.255.0 \ 134.213.233.110/255.255.255.0 bind interfaces only = yes
Description Adresse des clients autoris accder le serveur Samba. Adresse des clients non-autoris accder le serveur Samba. Liste des interfaces sur lequel le serveur Samba est autoris offrir des services. Force Samba utiliser seulement les interfaces dfinit dans loption interface.
Serveurs virtuels
Les serveurs virtuels sont utiliss pour donner lillusion quil existe plusieurs serveurs Samba. Cette technique est trs simple implanter comme le montre lexemple suivant : [global] netbios aliases = sales accounting admin includes = /etc/samba/smb.conf.%L Loption netbios aliases permet dans lexemple prcdent de crer 3 serveurs virtuels : sales, accounting et admin. Linstruction includes et lutilisation de la variables %L permettent de
Page 16
Samba
paramtrer chacun des serveurs virtuels. Par exemples, le fichier de paramtrage du serveur sales (/etc/samba/smb.conf.sales) pourrait ressembler ceci : [global] workgroup = SALES hosts allow = 192.168.10.255 [sales2004] path = /home/samba/saless2004/
Page 17
Samba
Page 18
Samba
Partage dimpression
Samba offre la possibilit de partager une imprimante. Avant de pouvoir partager une imprimante avec Samba il faut quune imprimante soit install sur le serveur avec lpd ou CUPS.
Rfrences
Jeffrey Dean, LPI Linux Certification in a Nutshell, A Desktop Quick Reference , OReilly, 2001. [1] SNIA CIFS document : http://www.snia.org/English/Collaterals/Work_Group_Docs/NAS/CIFS/CIFS_Technical_Referenc e.pdf [2] Named Pipes, Sockets and other IPC : http://www.public.asu.edu/~mujtaba/page4.html [3] Direct Hosting of SMB Over TCP/IP (Q204279) : http://support.microsoft.com/support/kb/articles/Q204/2/79.ASP [4] CIFS : Common Insecurities Fail Scrutiny : http://downloads.securityfocus.com/library/cifs.txt
Page 19