LinuxLabs6: Intégration à un réseau Windows

Les réseaux Windows utilisent un ensemble de protocoles pour le partage de fichiers et d’imprimantes. Samba est le logiciel Open Source qui implémente ces protocoles. Ce LinuxLabs vise à présenter les capacités de machines BSD ou GNU/Linux à s’intégrer dans une réseau Windows.

Samba met en oeuvre le protocole SMB (Server Message Block). Dans l’ancien Windows NT 4, il était appelé CIFS (Common Internet File System). Dans Vista et Seven, il est appelé SMB2. Samba vise l’interopérabilité des systèmes autour du protocole.

1. Arrière-plan

Samba 3.6.5 est la dernière version stable publiée le 30 avril 2012. Voici ce que Samba peut faire :

  • Offrir un service de partage des fichiers et d’imprimantes des clients GNU/Linux, UNIX/BSD, et Windows;
  • Assister à la découverte du réseau (avec ou sans NetBIOS)
  • Authentifier des utilisateur sur un domaine Windows.
  • Fournir un serveur de résolution de noms Windows Internet Name Service (WINS).
  • Agir en tant que  Windows NT-style Primary Domain Controller (PDC)
  • Agir en tant que  Backup Domain Controller (BDC) pour un PDC Samba
  • Agir en tant que membre d’un domaine Active Directory (AD)
  • Joindre un PDC Windows NT/2000/2003/2008

Ce que Samba ne peut pas faire :

  • Agir en tant que BDC pour un PDC  Windows (et inversément)
  • Agir en tant que contrôleur de domaine AD.

Il supporte les fonctionnalités SMB2 (Vista et Seven). Il peut-être complété par une solution Open Source de déploiement d’application : http://wpkg.org/WPKG_overview:fr.

Samba 4 propose des fonctionnalités alléchantes. La version future est toujours en développement, mais elle mériterait d’être testée.

2. Préceptes

On lira la documentation The Official Samba 3.5.x HOWTO and Reference Guide.

Samba intègre deux démons :

  • smbd  assure le partage des ressources et occupe le port TCP 139 (Session NetBIOS) et TCP 445 (Service d’annuaire Microsoft).
  • nmbd assure le service WINS et occupe les ports UDP 137  (Service de noms NetBIOS) et UDP 138 (données NetBIOS).

Il utilise aussi winbind pour les logons Windows.

D’autres logiciels ou scripts sont à utiliser selon les scénarios.

  • Pour chaque partage on créer un espace appartenant à un
  • un groupe d’utilisateurs système
  • qui a des droits spécifiques sur le système de fichier
  • un utilisateur système avec mot de passe
  • qui est dans le groupe précité
  • une synchronisation smbpasswd sera nécessaire

Les machines sont dans le même LAN.

Le server se configure dans le fichier /etc/samba/smb.conf constitué d’une section gloable et de sections concernant chaque partage. On s’attardera sur les modes de fonctionnement « security » : « user », « domain » et « ads ».

On se base sur le document http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/FastStart.html pour les exercices.

Exercice 1. Partage simple

1.1. préparation

apt-get update
apt-cache show samba-common
apt-get install samba
more /etc/samba/smb.conf
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

1.2. Partage simple

Voici un configuration typique qui permet de partager dans un Workgroup « LOCAL » un espace de fichiers en lecture seule pour les membres du Workgroup. Le nom NetBIOS du serveur est « SAMBASERVER ». Le nom du partage est « data ».

 nano /etc/samba/smb.conf.master

1.3. Modification de smb.conf.master, configuration du partage et du serveur de fichiers

[global]
 workgroup = LOCAL
 netbios name = SAMBASERVER
 security = SHARE
[data]
 comment = Data
 path = /home/partage
 force group = utilisateurs
 read only = No
 guest ok = Yes

1.4. Création de smb.conf vérifié

 testparm -s smb.conf.master > smb.conf

1.5. Ajout des comptes et des droits

groupadd utilisateurs
useradd -g utilisateurs -d /home/partage -m -s /bin/false utilisateur1
passwd utilisateur1
id utilisateur1
smbpasswd -a utilisateur1
net rpc user
mkdir /home/partage
ls -l /home/partage
chown root:utilisateurs /home/partage
chmod 1775 /home/partage
ls -l /home/partage

1.6. Test sur différents clients.

Exercice 2. Contrôleur de domaine

Scénario

Une entreprise type de 7 rôles dans 3 groupes dans le domaine « entreprise » :

  1. utilisateur, groupe, privilège
  2. directeur, direction, administrateur
  3. sdirecteur, direction, administrateur
  4. comptable, compta, super-utilisateur
  5. aide-comptable, compta, super-utilisateur
  6. commercial1, commercial, simple utilisateur
  7. commercial2, commercial, simple utilisateur
  8. secretaire, commercial, simple utilisateur

Chaque utilisateur accède à son lecteur réseau personnel et à un lecteur réseau commun appelé « partage » où tout le monde peut écrire.

Il y également un partage par groupe. Le groupe « direction » a accès à tous les partages.

On utilisera les profils itinérants. Ils sont stockés sur le serveur.

On donnera des privilèges Microsoft aux utilisateurs.

On utilisera les lettres réseau suivantes :

  • M: Lecteur personnel
  • X: « partage » commun
  • R: partage « direction »
  • S: partage « compta »
  • T: partage « commercial »

Opérations

  1. Définition du serveur et des partages (smb.conf)
  2. Création des groupes systèmes
  3. Création des utilisateurs systèmes
  4. Smbpasswd
  5. Vérification net rpc user
  6. smbpasswd -a  root
  7. Correspondance groupes GNU/Linux et Microsoft
  8. Ajout des utilisateurs aux groupes (privilèges)
  9. Création des répertoires partagés
  10. /netlogon
  11. /profils
  12. /commun
  13. /direction
  14. /comptabilité
  15. /commercial
  16. logon script

Autres applications.

Intégration DNS Bind9

Connection à un AD/LDAP

Authentification LDAP

Accès aux partages

Partage d’imprimantes et imprimante PDF

Corbeille

Anti-virus

activation SMB2

 

 

 

Ce contenu a été publié dans Laboratoires, Linux. Vous pouvez le mettre en favoris avec ce permalien.

3 réponses à LinuxLabs6: Intégration à un réseau Windows

  1. root@server10:/etc/samba# groupadd direction
    root@server10:/etc/samba# groupadd compta
    root@server10:/etc/samba# groupadd commercial

    useradd -g direction -d /home/directeur -m -s /sbin/nologin directeur
    useradd -g direction -d /home/sdirecteur -m -s /sbin/nologin sdirecteur
    useradd -g compta -d /home/comptable -m -s /sbin/nologin comptable
    useradd -g compta -d /home/aide-comptable -m -s /sbin/nologin aide-comptable
    useradd -g commercial -d /home/commercial1 -m -s /sbin/nologin commercial1
    useradd -g commercial -d /home/commercial2 -m -s /sbin/nologin commercial2
    useradd -g commercial -d /home/secretaire -m -s /sbin/nologin secretaire

    smbpasswd -a directeur
    smbpasswd -a sdirecteur
    smbpasswd -a comptable
    smbpasswd -a aide-comptable
    smbpasswd -a commercial1
    smbpasswd -a commercial2
    smbpasswd -a secretaire

    groupadd invites
    groupadd utilisateur
    groupadd utilisateurpouvoir
    groupadd administrateur

    net groupmap add ntgroup= »Domain Guest » unixgroup= »invites » rid= »514″
    net groupmap add ntgroup= »Domain Users » unixgroup= »utilisateur » rid= »513″
    net groupmap add ntgroup= »Builtin Power Users » unixgroup= »utilisateurpouvoir » rid= »547″
    net groupmap add ntgroup= »Domain Admins » unixgroup= »administrateur » rid= »512″

    gpasswd -a directeur administrateur
    gpasswd -a sdirecteur administrateur
    gpasswd -a comptable utilisateurpouvoir
    gpasswd -a aide-comptable utilisateurpouvoir
    gpasswd -a commercial1 utilisateur
    gpasswd -a commercial2 utilisateur
    gpasswd -a secretaire utilisateur

    mkdir /share
    mkdir /share/samba
    mkdir /share/samba/netlogon
    chmod 755 /share/samba/netlogon

    mkdir /share/samba/profils
    chmod 1777 /share/samba/profils/

    mkdir /share/samba/direction
    mkdir /share/samba/compta
    mkdir /share/samba/commercial
    chmod 770 /share/samba/direction/
    chmod 770 /share/samba/compta/
    chmod 770 /share/samba/commercial/

    nano -D /share/samba/netlogon/direction.bat

    net time \\SERVEUR10 /set /yes
    net use x: \\SERVEUR10\commun
    net use r: \\SERVEUR10\direction
    net use s: \\SERVEUR10\compta
    net use t: \\SERVEUR10\commercial

  2. [global]
    workgroup = ENTREPRISE
    server string = Serveur Samba %v
    netbios name = SERVEUR3

    # Controleur de domaine
    domain logons = yes
    domain master = yes
    local master = yes
    OS level = 80
    logon script = %g.bat
    wins support = yes
    time server = yes
    logon path = \\%L\profiles\%U
    logon drive = H:

    # Scripts
    add user script = /usr/sbin/useradd « %u »
    add group script = /usr/sbin/groupadd « %g »
    add machine script = /usr/sbin/useradd -g machine -c « Machine (%u) » -M -d /dev/null -s /bin/false « %u »
    delete user script = /usr/sbin/userdel « %u »
    delete user from group script = /usr/sbin/userdel « %u » « %g »
    delete group script = /usr/sbin/groupdel « %g »

    [homes]
    comment = Répertoire personnels
    browseable = no
    writeable = yes

    [netlogon]
    comment = Netlogon
    path = /share/samba/netlogon
    guest ok = yes
    writeable = no

    [profiles]
    path = /share/profils
    browseable = no
    guest ok = yes

    [commun]
    path = /share/samba/commun
    comment = Partage Commun
    writeable = yes
    force create mode = 0666
    force directory mode = 1777

    [direction]
    path = /share/samba/direction
    comment = Partage Direction
    write list = @direction
    force group = direction
    force create mode = 0660
    force directory mode = 1770

    [compta]
    path = /share/samba/compta
    comment = Partage Compta
    write list = @direction, @compta

    [commercial]
    path = /share/samba/commercial
    comment = Partage Commercial
    write list = @direction, @commercial

Laisser un commentaire