Skip to Content

Installation de Winbind pour intégrer Samba dans un Domaine Windows

But de ce document

Ce document me sert de mémo pour Installer et configurer Winbind dans le but d’intégrer Samba dans un domaine contrôlé par un serveur Windows NT. Je le diffuse en espérant qu’il puisse servir à d’autres personnes.

Je rappelle que Winbind permet de récupérer les utilisateurs et les groupes du contrôleur de domaine Windows, pour éviter de gérer plusieurs bases de données d’utilisateurs.

Pré-requis

Avoir installé et configuré Samba :

  •  cf mon autre document sur ce sujet : http://www.coagul.org/article.php3 ?id_article=177

    Installation de Winbind

    Paquet à installer :

    apt-get install winbind

    Configuration de /etc/nsswitch.conf

    Ce fichier permet d’indiquer le programme qui s’occupe de la gestion des utilisateurs :

    Il faut simplement ajouter winbind et wins comme indiqué dans l’exemple ci-dessous :

    passwd:     compat winbind
    group:      compat winbind
    shadow:     compat
    hosts:      files dns wins
    networks:   files
    protocols:  db files
    services:   db files
    ethers:     db files
    rpc:        db files
    netgroup:   nis

    Configuration de /etc/samba/smb.conf

    Il faut modifier ce fichier, pour prendre en compte Winbind. Voici un exemple de section [global] qui fonctionne :

    [global]
      workgroup = MonDomaine
      security = DOMAIN

      netbios name = NomDuServeur
      server string = %h server (Samba %v)

      wins server = 192.0.0.9

      idmap uid = 10000-20000
      idmap gid = 10000-20000
     
      winbind separator = /
     
      log file = /var/log/samba/log.%m
      max log size = 1000
      syslog = 0

    Pour finir, il faut modifier les partages pour ajouter le nom du domaine dans les noms des utilisateurs. Voici un exemple de partage qui fonctionne :

    [SAMBA]
      path=/SAMBA
      browseable=yes
      writeable=yes
      valid users=MonDomaine/tony
      admin users=MonDomaine/tony

    Ajouter le serveur Samba au contrôleur de domaine Windows

    Il faut commencer par arrêter le serveur Samba :

    /etc/init.d/samba stop

    Voici la commande pour ajouter le serveur Samba au gestionnaire de serveurs du contrôleur de domaine Windows (l’utilisateur root, doit avoir l’autorisation d’ajouter des serveurs au domaine) :

    net rpc join -U root

    Et si tout se passe bien, le message suivant doit apparaître :

    Joined domain MonDomaine

    Ensuite, il faut redémarrer le serveur Winbind et le serveur Samba :

    /etc/init.d/winbind start
    /etc/init.d/samba start

    Quelques commandes pour vérifier que tout fonctionne

    Remarque : Avant de saisir les commandes suivantes, il faut vérifier que le serveur Samba est correctement ajouté dans la liste des serveurs du « gestionnaire de serveurs » du contrôleur de domaine Windows. Si ce n’est pas le cas, il faut peut-être attendre quelques minutes pour que la mise à jour se fasse.

    La commande suivante doit donner la liste des utilisateurs du domaine :

    wbinfo -u

    Celle-ci la liste des groupes du domaine :

    wbinfo -g

    Celle-ci permet de vérifier que les utilisateurs du domaine sont ajoutés à la liste des utilisateurs du serveur Linux avec les bons uid :

    getent passwd

    La même chose avec les groupes d’utilisateurs :

    getent group

    Cette commande permet de vérifier qu’un utilisateur particulier est correctement reconnu

    wbinfo -a MonDomaine/tony%LeMotDePasse

    La commande suivante permet d’afficher les ressources partagées par le serveur Samba « pgdebian » pour l’utilisateur « tony » :

    smbclient -L //pgdebian -U tony

    Pour finir, il ne reste plus qu’à aller sur un poste client sous Windows et vérifier que tout fonctionne correctement :-)

    Liens pour avoir plus d’informations

    Le plus complet est certainement le site officiel de Samba :

  •  http://us1.samba.org/samba/

    Je conseille particulièrement le chapitre 9 des exemples :

  •  http://us1.samba.org/samba/docs/man/Samba-Guide/unixclients.html

    Historique des modifications

    Version Date Commentaire
    0.1 20/12/04 Création par Tony GALMICHE
    0.11 11/01/05 Corrections mineures
    0.12 17/01/05 Suppression du sommaire
  • Commentaires

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Bonjour,

    Je sais que c’est faisable, car je connais une société qu’il l’a fait, mais je n’en sais pas plus :-)

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Bonjour tout le monde,

    je me pose une kestion. Winbind recupère bien les groups et users mais est ce kil les stockent ??

    Et ils possible de supprimer le serveur Windows après la récupération afin que Samba devienne PDC ???
    Quand penses tu ?

    Si tu as de la doc , fait me le savoir ???

    kiki :)

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Bonjour,

    J’ai un peu étudié ta configuration et je me pose plusieurs questions :

  •  C’est quoi le service « benuzer » ?
  •  Samba fonctionne t’il sans Winbind en créant les utilisateurs sur le poste Linux ?
  •  Il me semble qu’il y un une contradiction entre « wins support = no » et « wins server = 192.168.2.67 »
  •  Tu utilises beaucoup de paramètres que personnellement je n’utilise pas (et ne connais même pas), comme « passdb backend = tdbsam guest obey pam restrictions = yes,... ». Il faudrait peut-être faire un essai avec le minimum de paramètres comme ceux donnés dans mon document.
    A part ça, je n’ai pas trop d’idées pour te dépanner.
  • > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Voilà le log log.nt4a (du serveur ou j’ai essayé de me connecter avec l’exploreur en tant que domain administrator)

    [2005/02/09 11:19:04, 0] smbd/service.c:make_connection(800)
    nt4a (192.168.2.75) couldn’t find service benuzer

    Voilà un erreur du log.winbind
    [2005/02/09 11:31:37, 1] nsswitch/winbindd_group.c:winbindd_getgrnam(298)
    group NT1+Domänen-Admins in domain BOREALIS does not exist

    et enfin voilà mon smb.conf
    [global]
    workgroup = NT1
    netbios name = Borealis
    server string = %h server (Samba %v)
    wins support = no
    wins server = 192.168.2.67
    dns proxy = no
    name resolve order = lmhosts host wins bcast

    #### Debugging/Accounting ####
    log file = /var/log/samba/log.%m
    max log size = 1000
     ; syslog only = no
    syslog = 0
    # Do something sensible when Samba crashes : mail the admin a backtrace
    panic action = /usr/share/samba/panic-action %d

    ####### Authentication #######
    security = domain
    encrypt passwords = true
    passdb backend = tdbsam guest
    obey pam restrictions = yes
     ; guest account = nobody
    invalid users = root
     ; unix password sync = no

    ############ Misc ############

    # You may want to add the following on a Linux system :
    # SO_RCVBUF=8192 SO_SNDBUF=8192
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

    # The following parameter is useful only if you have the linpopup package
    # installed. The samba maintainer and the linpopup maintainer are
    # working to ease installation and configuration of linpopup and samba.
     ; message command = /bin/sh -c ’/usr/bin/linpopup "%f" "%m" %s ; rm %s’ &

    ########### DOMAIN ###############
     ; domain master = auto

    idmap uid = 10000-20000
    idmap gid = 10000-20000
    template shell = /bin/bash
    winbind separator = /

    #======================= Share Definitions =======================

    [samba]
    path = /home/samba/users
    browseable=yes
    writeable=yes
    valid users = NT1/Administrator
    admin users = NT1/Administrator

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Non, il ne faut pas créer les utilisateurs du domaine sur le serveur Linux. C’est le but de Winbind d’éviter ce travail.

    Si le serveur Linux est ajouté au domaine (net rpc join) et si toutes les commandes de ce document fonctionnent (wbinfo, getent, smbclient) tout devrait rouler :-)

    Concernant la commande « smbclient -L », il ne faut pas indiquer le domaine mais uniquement un utilisateur quelconque du domaine.

    > Installation de Winbind pour intégrer Samba dans un Domaine Wi

    Pour moi tout marche jusqu’à la ligne
    smbclient -L //pgdebian -U tony

    Pourquoi ne faut-il pas faire
    smbclient -L //pgdebian -U NT1/tony ?

    moi j’ai essayé avec NT1/Administrator, mais ca ne marche pas, pourtant wbinfo -a a marché...
    Faut-il vraiment créer les utilisateurs du domaine localement ?? Il me semblait qu’avec winbind y’avait plus besoin de le faire, mais là j’ai un doute...