Le serveur samba est un outil qui révolutionne les petites infrastructures informatiques comme les collèges lycées centre de formation... Cet outil nous permet d'implanter des serveur fonctionnant sur linux et compatible avec Windows, MAC OS X, et autre.
Il fournit un bon niveau de sécurité et est relativement facile à implanter. on peu grâce à lui développer un serveur de fichier (le plus simple et le moins sécurisé), un serveur d'impression, un PDC (Contrôleur de Domaine Principal) ou BDC (contrôleur secondaire: backup).
Dans ce chapitre, je vais vous expliquer les principaux paramètres de configuration pour réaliser un serveur de fichier avec un exemple concret puis les paramètres supplémentaire pour un contrôleur de domaine.
Dans la plupart des distributions, le serveur samba est pré-installer et pré-configurer. La configuration se trouve dans le fichier /etc/samba/smb.conf. Ce fichier de configuration ressemble fort à un fichier .INI des systèmes windows avec des ses sections.
Les sections sont déclarées entre crochet: [] celle que l'on trouvera toujours est la section GLOBAL. On y trouvera la configurationglobal du serveur qui déterminera si samba tourne en tant que serveur de fichier, PDC ou BDC... C'est souvent la section la plus importante.
Ensuite vienne d'autres sections spécialisées comme HOMES, PRINTERS, PROFILES, NETLOGON,... que nous verrons par la suite.
Pour bien débuter (ou même quand on est pro ;) ) lorsqu'on édite un fichier de configuration ou un code source de programme, il est nécessaire voir obligatoire de commenter son fichier. Les commentaires nous permettrons de nous y retrouver de mieux mémoriser se qu'on est en train de faire et surtout savoir ce que vient faire cette ligne de m... dans notre fichier qu'on a créer 4 ans auparavant.
Un commentaire commence par un dièse (#) ou un point-virgule (;). Un commentaire ne peut être que sur une nouvelle ligne, c'est à dire qu'il ne pourra pas se trouver devant ou derrière un paramètre ou sa valeur. Tout manquement à ces deux règles engendrera un fonctionnement non souhaiter de votre serveur.
Les paramètres sont très nombreux c'est pourquoi je ne vous les présentez pas tous. Toutes fois je vous présenterez les plus courants...
tout d'abord, voici la syntaxe générale d'un paramètre.
Paramètre = [sa_valeur]
Rien de bien compliquer jusque là.
Sections | Paramètre | Exemple | Description |
---|---|---|---|
GLOBAL | workgroup | WORKGROUP | Nom du groupe de travail windows ou du nom de domaine |
netbios name | SERVEUR | Nom netbios du serveur | |
server string | serveur | Nom apparaissant dans le voisinage réseaux windows | |
security | share | Définit le niveau de sécurité. Ici share veut dire partager, on ne demande pas de mot de passe l'identification se fait suivant différents paramètres c'est le niveau de sécurité le plus faible |
|
guest account | nobody | Spécifie le compte UNIX que samba doit utiliser pour les connections en mode invité. Il est à noté que le compte doit exister sur la station UNIX | |
PARTAGE | path | /home/partage | chemin du dossier partagé |
comment | Mon dossier partagé | Commentaire de la ressource | |
read only | no | si "no" = on autorise l'écriture dans ce dossier si "yes" = on ne peut que lire |
|
browseable | yes | si "yes" = la ressource apparaît dans l'explorateur | |
guest ok | yes | Les comptes invité peuvent accéder a cette ressource |
Voici un exemple de fichier de configuration pour réaliser un serveur de fichier. Ce serveur de fichier partage 3 dossiers.
cet exemple n'utilise que les paramètres vu précédemment.
[global] # Définition du groupe de travail workgroup = WORKGROUP ; Nom NETBIOS du serveur netbios name = NICO ; c'est le nom qui apparait dans le voisinage réseau server string = Nico ; Niveau de sécurité partage public security = share # Les utilisateurs logués en tant qu'invité utiliseront le compte invite guest account = nobody [partage] #====== Definition du partage nommé partage ====== # On défini le chemin du fichier partager path = /home/partage # Description du partage comment = partage public # On autorise l'ecriture read only = no # Le partage sera visible dans l'explorateur browseable = yes # les Invite on le droit d'y acceder guest ok = yes [Divers] path = /mnt/win_d comment = Disque divers read only = yes browseable = yes guest ok = yes [DL Linux] path = /home/Fichiers téléchargés/ read only = no browseable = yes guest ok =yes
Avant de vous donnez tel quel le fichier de configuration nécéssaire pour faire tourner samba en controleur de domaine, je vais d'abord vous donner de nouveaux paramètres dont vous aurez besoin. Les voicis donc:
Section | Paramètre | Exemple | Description |
---|---|---|---|
GLOBAL | local master | yes | Un local master browser relève les ordinateurs présents sur le réseaux par la méthodes de broadcast. En gros il envoi une requete a tout le monde et il note qui lui répons. Ce paramètre autorise ou nom à participer aux élections du local master |
domain master | yes | Le domain master collecte la liste des local master browser. Comme précédament on autorise notre serveur a participer aux élections | |
prefered master | yes | On force les élections au démarrage | |
oslevel | 65 | Permet de gagner aux élections (on triche hihihi) | |
domain logons | yes | Gestion des authentifications sur le domaine. | |
encrypt password | yes | Crypter le mot de passe | |
smb passwd file | /etc/samba/smbpasswd | Spécifie l'emplacement du fichier où seront enregistrer les mots de passe | |
unix password sync | no | Ne pas synchroniser les mots de passes unix et samba. Mettre à no | |
passwd program | /usr/bin/passwd %u | Spécifie le programme permettant de changer les mots de passe. %u spécifie le nom d'utilisateur samba |
Cette configuration permet à samba de fonctionner en tant que controleur de domaine mais ce n'est pas suffisant.
En effet, il nous faut maintenant créer les comptes samba.
Nous allons créer deux utilsateurs: nvincent et jvincent. Ils ferons tous les deux partie du groupe users. Commençons d'abord par créer les comptes UNIX. pour se faire, nous allons utilser la commande adduser.
Maintenant nous allons créer le compte invite qui sera utilisé pour les utilisateurs non identifier et qui ne disposerons de quasiment aucun droit.
Nous allons maintenant affexter les mots de passe samba à ses utilisateur pour se faire nous utiliserons la commande smbpasswd qui va s'utiliser comme suit.
Vous n'avez donc plus qu'à faire cette manipulation avec nos deux utilisateur créer précédament. Il faut aussi le faire avec le compte invite mais nous ne spécifions pas de mot de passe pour se compte.
Lorsqu'une machine de type Windows 2000 / XP souhaite se connecter à notre controleur de domaine, un copte lui correspondant doit etre spécifier dans le fichier smbpasswd. Ces comptes se différencie par le fait qu'il se termine par un $ et ils ne pocéderons ni shell, ni répertoire personnel.
Ce qui nous donne pour une machien s'appelant Win2k:
Pour des raisons de sécurité évidentes, il est déconseiller de mettre le même mot de passe root pour samba et pour notre machine serveur! Ce mot de passe root samba vous sera demandé lorsque que vous rejoindrai une machine à un domaine.
D'où la commande suivante:
smbpasswd -a root
voilà pour notre serveur. il ne nous reste plus qu'à configurer le partage du répertoire personnel...
Le principal avantage d'un domaine est de retrouver notre session windows identique quelque soit le poste utilisé. Pour le réaliser, notre session est enregistrée sur le serveur il nous faut donc définir ses resources et les partager.
Ces deux ressources dans samba ont chacun leur section spécifque à savoir [profiles] pour les profiles et [homes] pour les répertoires personnels.
Voici ce que nous allons mettre dans la section profiles. Je vous expliquerai ensuite les nouvelles directives utilisées.
Nous avons donc deux nouveaux paramètre: "create mask" et "directory mask". Elle servent a spécifier les droits que les utilisateurs auront lors de la création d'un nouveau fichier. On peut les comparé à la commande chmod.
create mask 700 voudras donc dire que les fichiers créer par un utilisateur ne pourront etre accéder que par cet utilisateur qui aura tous les droits dessus et personne d'autres.
Si ce que je vous dit là c'est du chinois, je vous redirige vers la section Droit d'accès.
Quand à dirctory mask bah c'est pareil mais pour les répertoire créer par l'utilisateur.
Comme précédamant je vais vous donner ce que l'on met dans cette section et je vous expliquerai le paramètre qu'on a pas encore vu. Donc voici cette fameuse section homes.
Bon en fait c'est pas très compliqué, invalid users çà veut dire ce que çà veut dire... on ne partage pas de repertoire personnel avec les invités...
[global] # Définition du nom de domaine workgroup = MONDOMAINE ; Nom NETBIOS du serveur netbios name = NICO ; c'est le nom qui apparait dans le voisinage réseau server string = Nico ; Niveau de sécurité user, demande un login et un mot de passe security = user encrypt passwords = yes unix password sync = no passwd program = /usr/passwd %u passwd chat = *New* %n\n *Re* %n\n *pa* ; Gestion de l'authentification sur le domaine domain logons = yes # Les utilisateurs logués en tant qu'invité utiliseront le compte invite guest account = invite local master = yes domain master = yes oslevel = 65 prefered master = yes [profiles] path = /home/export/profile browseable = no writeable = yes create mask = 0700 directory mask = 0700 [homes] comment = Repertoire Personnel browseable = no writeable = yes invalid users = invite [partage] #====== Definition du partage nommé partage ====== # On défini le chemin du fichier partager path = /home/partage # Description du partage comment = partage public # On autorise l'ecriture read only = no # Le partage sera visible dans l'explorateur browseable = yes # les Invite on le droit d'y acceder guest ok = yes
sommaire | système de fichier | droit d'accès | commandes utiles | commande grep et regex | raccourcis | serveur samba