Serveur Samba
Transcription
Serveur Samba
Table des matières 1 SERVICE SAMBA ..................................................................................................... 2 1.1 INTRODUCTION .............................................................................................. 2 1.2 COMPOSANTS DE SAMBA ............................................................................ 2 1.3 INSTALLATION DU CLIENT SAMBA .......................................................... 3 1.4 INSTALLATION DU SERVEUR SAMBA ...................................................... 3 1.5 CONFIGURATION DE SAMBA ...................................................................... 4 1.5.1 Partage du répertoire personnel ...................................................................... 5 1.5.2 Partager un répertoire quelconque .................................................................. 6 1.5.3 Partage d'un lecteur de CD-ROM ................................................................... 6 1.5.4 Test de la configuration .................................................................................. 7 1.6 ACCEDER A UNE RESSOURCE SAMBA SOUS LINUX ............................. 8 1.6.1 Envoyer un message ..................................................................................... 10 1.6.2 Monter une ressource Samba partagée (smbmount) ..................................... 12 1.6.3 Monter une ressource Samba partagée (cifs) ................................................ 13 1.6.4 Accéder à une ressource Samba à partir de Linux ........................................ 14 1.7 ACCEDER A UNE RESSOURCE SAMBA A PARTIR DE WINDOWS ..... 15 1.8 FICHIER DE MOT DE PASSE SAMBA ........................................................ 16 1.8.1 Méthode manuelle ......................................................................................... 16 1.8.2 SWAT ........................................................................................................... 20 _______________________________________________________________________ 2011 Hakim Benameurlaine 1 1 1.1 SERVICE SAMBA INTRODUCTION Développé à l’origine par l’Australien Andrew Tridgell, Samba est un outil qui met en place un partage de fichiers et d’imprimantes compatibles avec Windows. Samba utilise le protocole SMB (Server Message Block) pour partager les fichiers et les imprimantes sur une connexion réseau. Les systèmes d'exploitation qui prennent en charge ce protocole incluent Microsoft Windows (à travers son Voisinage Réseau), OS/2 et Linux. Au lieu d’apprendre à un poste Windows à dialoguer avec un serveur Unix, Samba apprend à Unix à agir comme un système Windows partageant ses ressources. Le résultat est un système rapide, performant, accessible pour un large public et gratuit. Quand vous faites une connexion au serveur Samba, vous lui passez un nom d'utilisateur. C'est le nom d'utilisateur Windows. Samba va alors chercher pour le même nom d'utilisateur dans la base de données des mots de passe Unix, donc habituellement le fichier /etc/passwd. S'il le trouve, le serveur Samba utilisera cette entrée pour avoir, au moins, un ID utilisateur Unix valide pour accéder les répertoires et les fichiers. Il peut aussi utiliser le fichier /etc/passwd pour valider le mot de passe reçu. Mais seulement s'il n'est pas configuré pour utiliser les mots de passe encryptés. Auquel cas il validera le mot de passe avec un autre fichier, par exemple /etc/samba/smbpasswd (paramètre smb passwd file) En résumé, pour chaque utilisateur Windows, vous avez besoin d'un compte Unix avec le même nom. Cependant il existe certaines méthodes pour se débarrasser de cette contrainte. 1.2 COMPOSANTS DE SAMBA Le service Samba est constitué d'un serveur et d'un client, ainsi que de quelques outils permettant de réaliser des services pratiques ou bien de tester la configuration. Le serveur est constitué de deux applications (appelées démons): o smbd, noyau du serveur, fournissant les services d'authentification et d'accès aux ressources o nmbd, permettant de montrer les services offerts par Samba (affichage des serveurs Samba dans le voisinage réseau, ...) _______________________________________________________________________ 2011 Hakim Benameurlaine 2 1.3 Le client: smbclient est un client pour linux fournissant une interface permettant de transférer des fichiers, accéder à des imprimantes Le client smbmount Le client smbumount La commande testparm vérifiant la syntaxe du fichier smb.conf INSTALLATION DU CLIENT SAMBA Il faut installer les paquetages : samba-client samba-common # yum install samba-common # yum install samba-client 1.4 INSTALLATION DU SERVEUR SAMBA Il faut installer les paquetages : samba-common samba # yum install samba-common # yum install samba Pour configurer SAMBA, on peut utiliser l’un des deux outils graphique SWAT ou bien system-config-samba. SWAT = Samba Web Admin Tool : Outil Web de configuration de Samba Pour cela il faut installer les paquetages suivants : system-config-samba samba-swat # yum install system-config-samba # yum install samba-swat Si vous voulez que le service smb démarre automatiquement, utilisez ntsysv, chkconfig ou serviceconf pour l'activer lors de l'exécution. # chkconfig smb on _______________________________________________________________________ 2011 Hakim Benameurlaine 3 1.5 CONFIGURATION DE SAMBA La configuration de Samba est effectuée par l'intermédiaire d'un fichier de configuration unique: smb.conf. Ce fichier est situé dans le répertoire /etc/samba. Ce fichier décrit les ressources que l'on désire partager, ainsi que les permissions/restrictions qui leur sont associée. Le fichier smb.conf se découpe selon des rubriques (chacune référencé par une ligne contenant le nom de la section entre crochets) comprenant chacune un ensemble de lignes de paramètres du type attribut = valeur. Une ligne commençant par un # est une ligne de commentaires. Il existe 3 sections principales: La section [global] définit les paramètres généraux sur le serveur La section [homes] définit le partage des répertoires personnels La section [printers] définit les imprimantes partagées par le serveur Section [global] Voici un exemple de section [global]: [global] # même nom de groupe que celui sous Windows (Voisinage réseau) workgroup = GROUPELINUX # commentaire dans voisinage réseau. server string = Serveur Samba # empêcher l'accès à certaines machines ;hosts allow = 192.168.100 EXCEPT 192.168.100.23 # emplacement du fichier printcap (imprimantes sur le serveur Linux) printcap name = /etc/printcap _______________________________________________________________________ 2011 Hakim Benameurlaine 4 # partage de toutes les imprimantes définies dans printcap load printers = yes # pcguest doit être créé. # si aucun compte invité alors nobody est utilisé. guest account = pcguest ; # fichier journal de Samba # un fichier journal par machine log file = /var/log/samba/%m.log # mode de sécurité : (user / share / server) security = user encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd 1.5.1 Partage du répertoire personnel La section [homes] permet de définir l'accès au répertoire personnel de chaque utilisateur. Voici un exemple de section: [HOMES] # commentaire visible depuis le voisinage réseau comment =Répertoire personnel # affichage de la ressource pour tous browseable = no # possibilité d'écrire sur la ressource writable = yes valid users = %S create mode = 0664 directory mode = 0775 _______________________________________________________________________ 2011 Hakim Benameurlaine 5 1.5.2 Partager un répertoire quelconque Il est possible de définir un accès personnalisé à n'importe quel répertoire de la machine en créant une section portant le nom de la ressource partagée. Voici un exemple de section personnalisée: [CCM] # commentaire visible depuis le voisinage réseau comment = Répertoire CCM # chemin d'accès a la ressource path = /home/ccm # affichage de la ressource pour tous browseable = no public = no # utilisateur autorise à accéder à la ressource user = jeff,meandus,tittom # possibilité d'écrire sur la ressource writable = yes create mask = 0750 1.5.3 Partage d'un lecteur de CD-ROM Il est ainsi possible de partager un lecteur de CD-ROM (celui-ci devant être préalablement monté), en créant par exemple une section [cd-rom] comme suit: [CD-ROM] # commentaire visible depuis le voisinage réseau comment = lecteur de CD-ROM # chemin d'accès au lecteur path = /media/cdrom # accessible à tous public = yes # impossibilité d'écrire sur la ressource writable = no _______________________________________________________________________ 2011 Hakim Benameurlaine 6 1.5.4 Test de la configuration Le programme testparm permet de vérifier la syntaxe du fichier de configuration (smb.conf). Il est conseillé d'exécuter cet utilitaire à chaque modification manuelle du fichier smb.conf. _______________________________________________________________________ 2011 Hakim Benameurlaine 7 1.6 ACCEDER A UNE RESSOURCE SAMBA SOUS LINUX Le client Samba (smbclient) permet de fournir une interface en ligne de commande pour accéder aux ressources Samba à partir d'une machine de type Unix. Dans ce qui suit, on suppose qu’on dispose d’un partage partage_xp sur une machine Windows XP : _______________________________________________________________________ 2011 Hakim Benameurlaine 8 smbclient permet en premier lieu de vérifier l'existence d'un serveur Samba sur le réseau et de lister les ressources qu'il partage grâce à la commande: Une fois les ressources identifiées, il est possible d'accéder à chacune d'entre elles en utilisant des commandes qui ressemblent à FTP(put, get..) afin d'envoyer/recevoir des fichiers ou bien de parcourir les répertoires de la ressource. _______________________________________________________________________ 2011 Hakim Benameurlaine 9 1.6.1 Envoyer un message Le client Samba permet aussi d'envoyer des messages sur un client LanManager (pour peu que la machine distante permette de gérer ce type de message, comme par exemple avec WinPopUp). La syntaxe d'envoi d'un message (de moins de 1600 octets) est la suivante: # smbclient -M nom_de_la_machine Lorsque vous avez fini d'écrire le message, il faut appuyer simultanément sur Ctrl+D. _______________________________________________________________________ 2011 Hakim Benameurlaine 10 Ne pas oublier d’activer le service ‘affichage des messages’. _______________________________________________________________________ 2011 Hakim Benameurlaine 11 1.6.2 Monter une ressource Samba partagée (smbmount) Les utilitaires smbmount et smbumount permettent de monter de démonter des ressources SMB en tant que système de fichiers distant. NOTE La commande smbmount n’est plus supportée par les versions récentes. Pour monter une ressource : Pour démonter la ressource : # smbumount /mnt _______________________________________________________________________ 2011 Hakim Benameurlaine 12 1.6.3 Monter une ressource Samba partagée (cifs) RedHat utilise un nouveau type de partage de fichier Windows appelé CIFS (Common Internet File System). Pour plus d’informations: man mount.cifs Notez que CIFS ne peut pas résoudre les noms d'ordinateurs Windows, utilisez leurs adresses IP à la place. _______________________________________________________________________ 2011 Hakim Benameurlaine 13 1.6.4 Accéder à une ressource Samba à partir de Linux A partir d’un fureteur, spécifier smb://localhost/fedora par exemple. _______________________________________________________________________ 2011 Hakim Benameurlaine 14 1.7 ACCEDER A UNE RESSOURCE SAMBA A PARTIR DE WINDOWS Pour accéder à une ressource Samba à partir de Windows, utiliser l’une des deux méthodes suivantes : Voisinage réseau Commande net Pour voir les partages : net view Pour créer un map : net use w: \\linux\partage_tmp _______________________________________________________________________ 2011 Hakim Benameurlaine 15 1.8 FICHIER DE MOT DE PASSE SAMBA 1.8.1 Méthode manuelle Dans RedHat les mots de passe cryptés sont activés par défaut. Le protocole SMB de Microsoft utilisait à l'origine des mots de passe en texte clair. Cependant, Windows 2000 et Windows NT 4.0 avec Service Pack 3 ou supérieur requièrent des mots de passe Samba cryptés. Pour utiliser Samba entre un système RedHat Linux et un système Windows 2000 ou Windows NT 4.0 Service Pack 3 ou supérieur, vous pouvez modifier le registre Windows afin qu'il utilise des mots de passe en texte clair ou configurer Samba sur votre système Linux pour l'utilisation de mots de passe cryptés. Si vous choisissez de modifier le registre, vous devez le faire sur toutes vos machines Windows NT ou 2000. 1) Dans /etc/samba/smb.conf mettre : encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd 2) Créer le fichier de mots de passe /etc/samba/smbpasswd # cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd 3) Ajouter un usager : # smbpasswd -a hakimb New SMB password: Retype new SMB password: Added user hakimb. [root@localhost samba]# La commande smbadduser n’est plus supportée par les versions récentes. _______________________________________________________________________ 2011 Hakim Benameurlaine 16 4) Modifier le mot de passe : # smbpasswd hakimb New SMB password: Retype new SMB password: Password changed for user hakimb. 5) Désactiver un usager : # smbpasswd -d v2000 Disabled user v2000. 6) Activer un usager : # smbpasswd -e v2000 Enabled user v2000. 7) Supprimer un usager : # smbpasswd -x v2000 Deleted user v2000. Procédure détaillée: Pour configurer Samba sur votre système RedHat pour l'utilisation de mots de passe cryptés, suivez la procédure ci-dessous : 1) Créez un fichier de mots de passe séparé pour Samba. Pour en créer un sur la base de votre fichier /etc/passwd existant, tapez la commande suivante à une invité de Shell : # cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd _______________________________________________________________________ 2011 Hakim Benameurlaine 17 2) Si le système utilise NIS, tapez la commande suivante : # ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd 3) Le script mksmbpasswd.sh est installé dans votre répertoire /usr/bin avec le paquetage samba. 4) Utilisez la commande chmod 600 /etc/samba/smbpasswd pour changer les permissions du fichier de mots de passe Samba afin que seul l'utilisateur root ait une permission de lecture et d'écriture. 5) Le script ne copie pas les mots de passe utilisateur dans le nouveau fichier. Pour définir le mot de passe de chaque utilisateur Samba, utilisez la commande smbpasswd nom d'utilisateur (remplacez nom d'utilisateur par le nom de chaque utilisateur). Un compte d'utilisateur Samba ne sera pas actif tant qu'un mot de passe Samba correspondant n'aura pas été défini. 6) Les mots de passe cryptés doivent être activés dans le fichier de configuration Samba. Dans le fichier smb.conf, vérifiez que les lignes suivantes ne sont pas désactivées : encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd 7) Relancez le service smb en tapant la commande : service smb restart _______________________________________________________________________ 2011 Hakim Benameurlaine 18 EXEMPLE # cat /etc/samba/smbpasswd # cat /etc/passwd|mksmbpasswd.sh > /etc/samba/smbpasswd # cat smbpasswd # # SMB password file. # Root :0:XXXXXXX:XXXXXX:[UD]:LCT-0000:root bin :1:XXXXXXX:XXXXXX:[UD]:LCT-0000:bin daemon :2:XXXXXXX:XXXXXX:[UD]:LCT-0000:daemon adm :3:XXXXXXX:XXXXXX:[UD]:LCT-0000:adm lp :4:XXXXXXX:XXXXXX:[UD]:LCT-0000:lp sync :5:XXXXXXX:XXXXXX:[UD]:LCT-0000:sync shutdown :6:XXXXXXX:XXXXXX:[UD]:LCT-0000:shutdown halt :7:XXXXXXX:XXXXXX:[UD]:LCT-0000:halt mail :8:XXXXXXX:XXXXXX:[UD]:LCT-0000:mail news :9:XXXXXXX:XXXXXX:[UD]:LCT-0000:news uucp :10:XXXXXX:XXXXXX:[UD]:LCT-0000:uucp operator :11:XXXXXX:XXXXXX:[UD]:LCT-0000:operator games :12:XXXXXX:XXXXXX:[UD]:LCT-0000:games gopher :13:XXXXXX:XXXXXX:[UD]:LCT-0000:gopher ftp :14:XXXXXX:XXXXXX:[UD]:LCT-0000:FTP User nobody :99:XXXXXX:XXXXXX:[UD]:LCT-0000:Nobody rpm :37:XXXXXX:XXXXXX:[UD]:LCT-0000: dbus :81:XXXXXX:XXXXXX:[UD]:LCT-0000:System message bus avahi :70:XXXXXX:XXXXXX:[UD]:LCT-0000:Avahi daemon rpc :32:XXXXXX:XXXXXX:[UD]:LCT-0000:Portmapper RPC user mailnull :47:XXXXXX:XXXXXX:[UD]:LCT-0000: smmsp :51:XXXXXX:XXXXXX:[UD]:LCT-0000: nscd :28:XXXXXX:XXXXXX:[UD]:LCT-0000:NSCD Daemon vcsa :69:XXXXXX:XXXXXX:[UD]:LCT-0000:virtual console memory owner haldaemon:68:XXXXXX:XXXXXX:[UD]:LCT-0000:HAL daemon rpcuser :29:XXXXXX:XXXXXX:[UD]:LCT-0000:RPC Service User nfsnobody:65534:XXX:XXXXXX:[UD]:LCT-0000:Anonymous NFS User sshd :74:XXXXXX:XXXXXX:[UD]:LCT-0000:Privilege-separated SSH netdump :34:XXXXXX:XXXXXX:[UD]:LCT-0000:Network Crash Dump user pcap :77:XXXXXX:XXXXXX:[UD]:LCT-00000000: xfs :43:XXXXXX:XXXXXX:[UD]:LCT-00000000:X Font Server beaglidx :58:XXXXXX:XXXXXX:[UD]:LCT-00000000:User for Beagle indexing ntp :38:XXXXXX:XXXXXX:[UD]:LCT-00000000: apache :48:XXXXXX:XXXXXX:[UD]:LCT-00000000:Apache gdm :42:XXXXXX:XXXXXX:[UD]:LCT-00000000: hakimb :500:XXXXX:XXXXXX:[UD]:LCT-00000000: _______________________________________________________________________ 2011 Hakim Benameurlaine 19 1.8.2 SWAT # cat smbpasswd | grep hakimb hakimb:500:F1C9B0B3E4E77C1BAAD3B435B51404EE:2F267EC200DC 38AD19BD57ED11838632:[U]:LCT-46F19D05: NOTE Pour pouvoir ajouter un usager dans Samba (/etc/samba/smbpasswd), il doit exister dans Linux (/etc/passwd) _______________________________________________________________________ 2011 Hakim Benameurlaine 20