SAMBA Protocole SaMBa
aptitude install samba Installation de Samba
Le fichier "SMB.CONF" La configuration de samba se fait par un unique fichier : smb.conf dans /etc/samba. C est un fichier de type texte divisé en sections avec des clés et des valeurs (comme un fichier.ini) section [global] WORKGROUP = FORMATION valeur clé
Les sections du fichier SMB.CONF SECTIONS [global] [homes] [printers] [nom_partage] DESCRIPTION Contient les définitions des paramètres généraux du serveur SAMBA Contient les définitions du partage propre à chaque utilisateur du serveur (répertoire de base sous Windows). En fait le système se base sur la liste des utilisateurs Linux qui ont été définis dans le fichier /etc/passwd. Puis il rattache automatiquement le nom de l utilisateur à son répertoire personnel. Contient les définitions des imprimantes partagées par le serveur SAMBA Contient la définition d'un partage qui ici s appellera nom_partage.
Les principales variables prédéfinies Clients VARIABLES %a Utilisateurs DEFINITION Architecture client (Samba, Wfw pour windows 3.11, WinNT pour Windows Nt ou 2000, Win95 pour Windows 95 ou 98...) %I Adresse IP du client %m Nom NetBios du client %M Nom DNS du client %u Nom d'utilisateur Windows %U Nom d'utilisateur Linux %g Groupe Primaire de %u %G Groupe Primaire de %U
Les principales variables prédéfinies VARIABLES DEFINITION Partages %p Répertoire principal %P Répertoire principal du partage courant %S Nom du partage en cours Serveurs %d ID du processus %h Nom DNS du Serveur %H Contenu de la variable HOME %L Nom NetBios du serveur %N Répertoire %v Version de Samba Divers %R Niveau de protocole négocié %T Date et heure courantes
Samba : serveur de fichiers sans sécurité Introduction Le paramètre "security" de smb.conf dispose de 4 modes : share / user / server/ domain Dans un mode non sécurisé, l installation va se faire en mode SHARE. Configuration Nouveau fichier texte smb.conf dans le répertoire /etc/samba : [global] netbios name = Srv_Samba workgroup = formation security = share [partage] path = /partage writeable = yes browseable=yes public=yes
Samba : serveur de fichiers sans sécurité Explications La section [global] C'est la section qui définit les paramètres généraux du serveur Samba netbios name = Srv_Samba workgroup = formation security = share Nom NetBIOS du serveur Samba Nom du groupe de travail Lorsque le client passe à travers Samba, il permet son authentification et il devient l'utilisateur "nobody" d'unix. La section [partage] Le nom entre crochet sera le nom de partage Windows vu dans les "Favoris Réseaux". path = /partage writeable = yes browseable=yes public=yes Indique le chemin dans l'environnement Unix. Indique si on peut écrire dans ce partage. Ceci est un alias de read only = no Indique que le partage se voit dans l'environnement Microsoft (équivalent du dollar $). Indique que les droits de partage seront pour tout le monde. Aucune sécurité.
Samba : serveur de fichiers sans sécurité Autres paramètres supplémentaires hosts allow = 192.168.1.101 192.168.1.201 La section [global] On autorise seulement 2 machines à se connecter au serveur, on spécifie donc ici leurs adresses IP. Il est possible d indiquer tout un réseau, à l aide des masques de sous réseau, sous la forme : 192.168.1. On peut aussi spécifier une plage d adresses : 192.168.1.32/255.255.255.224 La section [partage] locking = yes create mode = 0660 directory mode = 0770 Verrouillage des fichiers, lorsqu un utilisateur utilise un des fichiers, personne d autre n a le droit d y écrire. Par contre tous les utilisateurs ont le droit de le lire. Masque de création des nouveaux fichiers (équivalent à chmod 660). Masque de création des répertoires.
Samba : serveur de fichiers avec sécurité Introduction L'authentification de Microsoft restera et deviendra celle d'unix. Pour cela, il faut créer les comptes sous Microsoft, sous Unix et enfin sous SAMBA. Il faut aussi modifier le smb.conf. Configuration Modification de smb.conf dans la section global et partage : [global] netbios name = Srv_Samba workgroup = formation security = user smb passwd file = /etc/samba/smbpasswd encrypt passwords = yes [partage] path = /partage writeable = yes browseable=yes valid users = stage1 stage2
Samba : serveur de fichiers avec sécurité Explications security = user encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd La section [global] Autentification grâce à la combinaison "nom d utilisateur" et "mot de passe". Utilisation de mots de passes cryptés. Obligatoire. Si vous l omettez, vous n aurez aucun accès possible au serveur. On indique où se trouve le fichier contenant les mots de passe SAMBA des utilisateurs. valid users = stage1 stage2 La section [partage] Ce paramètre indique la liste des utilisateurs autorisés à se connecter au partage.
Samba : serveur de fichiers avec sécurité Création des utilisateurs dans Unix et Samba Création dans Unix : Vérification dans/etc/passwd et /etc/shadow. adduser u 111 g 100 s /bin/bash jean passwd jean Création dans SAMBA : Pour affecter un mot de passe SAMBA à l'utilisateur jean, on utilise la commande: smbpasswd -a jdupond New SMB password: ***** Retype new SMB password:***** Password changed for user jean. Partage par défaut : Vous pouvez utiliser le partage par défaut des répertoires privés d'unix. Pour cela il suffit de faire un partage qui s'appelle homes [homes] read only = no
Samba : serveur de fichiers avec sécurité Partage d'une imprimante Utiliser de préférence des imprimantes PostScript "universelles". (pas besoin de drivers spécifiques). Il suffit de rajouter les lignes suivantes au fichier smb.conf : [Laser PS] printable = yes printer driver = Apple LaserWriter Pro 630 print command = /usr/bin/lpr -r %s printer = lp read only = yes guest ok = yes
Samba : serveur de fichiers avec sécurité Explications [Laser PS] printable = yes printer driver = HP LaserJet 4800N print command = /usr/bin/lpr -r %s printer = lp La section [printers] Nom de l'imprimante dans les Favoris Réseaux. Indique si il s agit d un partage de type imprimante. Désignation du driver qui est nécessaire sur le Client, lors de l installation de l'imprimante. (Attention : lors de l installation de l imprimante, il se peut que le poste vous demande le CD Windows). Commande qui sera exécutée par le serveur (commande Linux/Unix) lors du lancement d'une impression. On utilise la commande lpr r. L option r supprime les fichiers lorsqu ils ont été imprimés. Nom de l imprimante qui est rattachée au serveur Linux. En général, il s agit de lp.
Samba : serveur de fichiers avec sécurité include = chemin_d accès_du_fichier server string = Serveur Samba %v log file = /var/log/samba/log.%u lm announce = yes lm interval = 5 socket options = TCP_NODELAY client code page = 850 Paramètres supplémentaires Par exemple include=/etc/samba/u%.conf permet d'aller chercher un fichier de configuration en fonction de l'imprimante. Précise le commentaire lié au serveur qui sera affiché dans le voisinage réseau. %v est une variable de samba, indiquant sa version. Permet de créer des fichiers qui sont la trace écrite de toutes les commandes qui ont pu être exécutées entre le serveur et le poste client. Permet d'autoriser la diffusion des informations sur le réseau. Par définition cette option est à auto. Définit un intervalle qui fixe le temps d'attente avant la prochaine diffusion (par défaut 60 secondes). Améliore la transmission des paquets entre le serveur et les clients. Pour indiquer les tables de caractères utilisés.
Samba : contrôleur de domaine Ajout des machines Lorsque qu une machine de type Windows doit rejoindre un domaine Microsoft, l'objet "Computer" dans l'active Directory doit exister. Pour SAMBA, cette machine est définie dans le fichier /etc/passwd (Linux) et /etc/samba/smbpasswd (Samba) et on lui ajoutera le symbole $. Création d'un groupe machine : groupadd g 1000 machines Ajouter la machine dans le fichier /etc/passwd adduser nom_du_poste$ -u 1001 -g machines s /sbin/nologin d /dev/null ("shell=nologin" empêche l'utilisation de ce compte et ne crée de répertoire privé). Ajouter la machine dans le fichier /etc/samba/smbpasswd: smbpasswd m a nom_du_poste$ L'option m pour machine (pas la demande du mot de passe). Le fichier /etc/samba/smbpasswd contient un mot de passe qui est le SID de la machine.
Samba : contrôleur de domaine Le fichier smb.conf [global] #Section Global : Définition du fonctionnement général de SAMBA #Indique le nom du groupe de travail pour Microsoft même pour un domaine WORKGROUP = formation #Indique le nom du serveur Samba NETBIOS NAME = SRVSAMBA #Définit le niveau des élections : # 1=Win9x # 16=Clt NT4 # 32=Serveur NT4 # 64=Clt Win2000 & XP #En définissant 255, on est sûr que Samba sera maître d'explorateur OS level = 65 #On définit la sécurité au niveau du partage ou de l'utilisateur security = user #On indique que les mots de passe sont cryptés encrypt passwords = yes #On indique le chemin du fichier des utilisateurs autorisés de Samba smb passwd file = /etc/samba/smbpasswd #Synchronise le mot passe de Samba avec Linux unix password sync = yes passwd program = /usr/bin/passwd %u
Samba : contrôleur de domaine Le fichier smb.conf #J'autorise toutes les adresses IP de la plage à Samba hosts allow = 200.200.200. #La correspondance des noms se trouve dans "smbusers" username map = /etc/samba/smbusers #On définit l'ordre de résolution des noms en TCP/IP puis WINS puis fichier HOSTS name resolve order = bcast wins hosts #Samba est le maitre explorateur domain master = yes #Permet à Win9x de se rajouter au domaine local master = yes preferred master = yes wins support = yes #Permet à Windows 2000 et XP de se rajouter au domaine domain logons = yes #Compte administrateur valide sur le domaine net groupmap add unixgroup = root ntgroup = Administrateurs #Définit le chemin d'accès des profils de Win 2000 logon path = \\%L\profils\%U
Samba : contrôleur de domaine Le fichier smb.conf #=======================Définitions des partages==================== #Le nom entre [] est le nom de partage [commun] #Indique le chemin du dossier qui sera partagé path = /commun #On indique le type d'accès writeable = yes #On indique si le partage est visible ou pas browseable = yes #Indique qui peut accéder au dossier valid users = %U
Samba : contrôleur de domaine Le fichier smb.conf #=======================Définitions des partages==================== #Le nom entre [] est le nom de partage [%U] #Indique le chemin du dossier qui sera partagé path = /users/%u #On indique le type d'accès writeable = yes #On indique si le partage est visible ou pas browseable = no #Indique qui peut accéder au dossier valid users = %U #Les droits par défaut pour la création d'un répertoire directory mode = 0700 #Les droits par défaut pour la création d'un fichier create mode = 0700 #Indique le chemin du répertoire privé de Linux path = %H
Samba : contrôleur de domaine Le fichier smb.conf [NETLOGON] #Indique le chemin du dossier qui sera partagé path = /NETLOGON #On indique le type d'accès writeable = no #On indique si le partage est visible ou pas browseable = yes #Indique qui peut accéder au dossier valid users = %U [admin] browseable = yes valid users = %U path = /admin [comm] browseable = no valid users = %U path = /comm [info] browseable = no valid users = %U path = /info [profils] public = yes guest ok = yes writeable = yes browseable = yes valid users = %U path = /profils
Samba : serveur dans un domaine Windows Introduction Un serveur Samba authentifiera un utilisateur en demandant au Contrôleur de Domaine de vérifier pour lui le nom de l'utilisateur et le mot de passe. 2 valeurs possibles pour le paramètre security : server (security=server). domain (security=domain) (conseillé). Afin d'éviter de créer dans Samba un utilisateur chaque fois qu'ils sont créés dans Windows. On va utiliser Winbind: permet l'authentification via le contrôleur de domaine d'un domaine Windows (NT/2000/2003) Interroge régulièrement la base de données utilisateurs du PDC modifie les fichiers passwd et smbpasswd en fonction des changements.
Samba : serveur dans un domaine Windows Configuration de winbind Spécifier à Linux que l'authentification peut se faire avec Winbind en modifiant quelques fichiers. Le fichier /etc/nssswitch.conf. passwd: files winbind shadow: files winbind group: files winbind