{{tag>samba serveur réseau authentification administration tutoriel }} ---- ====== Comment intégrer une machine Ubuntu dans un domaine NT Samba ? ====== Beaucoup de vieux réseaux gérés par un contrôleur de domaine NT4 ont été remplacés à moindre coût par des serveurs avec Samba paramétré en PDC. Ainsi, les utilisateurs des différentes versions de MS Windows (98 à XP) peuvent continuer à s'authentifier et partager des ressources. Mais si vous désirez également remplacer ou intégrer des machines équipées d'Ubuntu (K/X/Ed/Ubuntu compris) il serait intéressant qu'elles aient accès au même réseau et service. Si c'est la connexion à un domaine Microsoft Active Directory qui vous intéresse reportez vous au tutoriel « [[:tutoriel:comment_ajouter_machine_ubuntu_dans_domaine_active_directory|Comment ajouter une machine Ubuntu dans un domaine Microsoft Active Directory ?]] ». Si vous avez besoin de mettre en place un contrôleur de domaine Active Directory, [[:samba4|Samba4]] offre cette possibilité et plus encore ! ===== Installation ===== Pour pouvoir intégrer un PC Ubuntu à un domaine Samba, il vous faut installer le paquet //winbind// seul. Vous n'avez pas besoin du serveur Samba, seul le client Samba installé par défaut avec votre Ubuntu suffit. Pour accéder aux partages SMB de manière automatique, il faut utiliser la bibliothèque //libpam-mount// et //cifs-utils//. Vous avez donc à [[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt://winbind,libpam-mount,smbfs|winbind libpam-mount cifs-utils]]** sur la machine à joindre et non sur le serveur PDC Samba. ===== Configuration ===== Plusieurs fichiers doivent être modifiés pour que l'authentification se fasse grâce au domaine. ==== nsswitch.conf ==== Le fichier « /etc/nsswitch.conf » est le fichier de configuration des bases de données systèmes et des services de noms. C'est à lui que l'on va dire d'utiliser //Winbind// pour trouver les noms d'utilisateurs et groupes rattachés au domaine. Il faut ajouter //winbind// à //passwd// et //group//, et rajouter //wins// à //hosts//. [[:tutoriel:comment_editer_un_fichier|Éditez le fichier]] **/etc/nsswitch.conf**. Exemple : passwd: compat winbind group: compat winbind shadow: compat hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis ==== smb.conf ==== Le fichier « /etc/samba/smb.conf » est le fichier de configuration de votre client Samba mais aussi de //Winbind//. [[:tutoriel:comment_editer_un_fichier|Éditez votre fichier]] **/etc/samba/smb.conf** puis modifiez ou ajoutez les paramètres suivant dans la section **[Global]** : ^ Paramètre ^ Exemple ^ Rôle et observations ^ |workgroup|workgroup = NomDomaineSamba|Cela correspond au nom de votre domaine.| |netbios name|netbios name = Nom_netbios_de_ma_machine|C'est le nom que votre machine doit avoir sur le réseau NetBios.\\ **Attention : ce nom doit être unique** au risque de collision et impossibilité de vous connecter.| |security|security = DOMAIN|Ce paramètre indique que l'on veut que les options de sécurité soient au domaine| |wins server|wins server = 10.0.0.1|Très important pour la résolution de nom NetBios, généralement c'est votre serveur Samba qui est serveur Wins.| |winbind separator|winbind separator = /|C'est pour séparer le nom du domaine de l'utilisateur lors de la connexion (ex. : DOMAIN_SMB/Nom_utilisateur)| |winbind uid|winbind uid = 10000-20000|C'est pour indiquer la plage de numéro uid que les utilisateurs du domaine utiliseront.| |winbind gid|winbind gid = 10000-20000|Idem mais pour les groupes.| |winbind use default domain|winbind use default domain = yes|Configure //Winbind// en domaine par défaut.| |template shell|template shell = /bin/bash|Donne le shell par défaut des utilisateurs du domaine| |template homedir|template homedir = /home/%D/%U|Indique l'emplacement des répertoires "Home" des utilisateurs du domaine. Il faudra créer le répertoire %D avec D = au nom du domaine Samba. Ce répertoire doit être créé avec les droits //root//, sinon les utilisateurs du domaine ne pourront pas ouvrir de session même si l'authentification a réussi.| ===== Intégration de la machine au PDC Samba ===== Pour intégrer votre machine au domaine il vous faut vous connecter au serveur Samba avec : sudo net rpc join -S IP_du_serveur -U root passwd: ##mot de passe pour sudo passwd: ##mot de passe de root connexion au domaine Joined domain NomDomaineSamba ##message si l'intégration a réussi Si vous avez un message d'erreur comme : Creation of workstation account failed ..... retapez : sudo net rpc join -S IP_du_serveur -U root passwd: ##mot de passe de root connexion au domaine Il faut que "root" ait le droit d'ajouter les machines dans le domaine. Maintenant il faut relancer le démon Winbind sudo /etc/init.d/winbind restart * Stopping the Winbind daemon winbind [ OK ] * Starting the Winbind daemon winbind [ OK ] Pour tester si cela fonctionne quelques commandes : wbinfo --own-domain ##renvoie le nom du domaine wbinfo -u ##renvoie la liste des utilisateurs du domaine wbinfo -g ##renvoie la liste des groupes ===== Configuration de pam_mount ===== **Modification des fichiers de configuration pour l'authentification réseau (logiciel PAM)** [[:tutoriel:comment_editer_un_fichier|éditez le fichier]]/etc/pam.d/gdm et [[:tutoriel:comment_editer_un_fichier|éditez le fichier]]/etc/pam.d/gdm-autologin Y ajouter à la fin : ''@include common-pammount'' Dans les secondes lignes des fichiers /etc/pam.d/common-account et /etc/pam.d/common-auth remplacer ''sufficient'' par ''required'' (sinon l'utilisateur peut ouvrir une session même s'il s'est trompé dans le mot de passe). Les dernières versions de pam_mount se configurent dans un fichier au format XML. [[:tutoriel:comment_editer_un_fichier|éditez le fichier]] /etc/security/pam_mount.conf.xml L'ajout de lecteurs à monter au démarrage se fait aux alentours de la ligne 270, après une grande partie de commentaires (en bleu dans gedit). Pour monter les lecteurs au protocole CIFS ajoutez des lignes comme dans les exemples : **Partage global :** **Dossiers de l'utilisateur :** Pour utiliser l'identifiant de l'utilisateur dans les chemins des dossier à monter, on peut utiliser la variable %(USER) comme dans l'exemple qui suit: ===== Alternative à PAM_MOUNT ===== Une alternative pour le montage de partage Samba est d'utiliser un montage via GDM. Exemple: Création d'un répertoire « bin » dans le home de l'utilisateur. Création des répertoires dans « /media » pour le montage des lecteurs réseaux (ici « win32 », « espace_perso ») Création d'un script à l'intérieur de « $HOME/bin » (.mntrezo) : #!/bin/bash # script montage reseau # montage de \\serveur_samba\win32 mount.cifs //Adresse_IP_serveur/win32 /media/win32 -o credentials=/home/Nom_Utilisateur/.smbcredentials,domain=Nom_Domaine,uid=1000,gid=100,file_mode=0660,dir_mode=0770,iocharset=utf8 # montage de \\serveur_samba/perso mount.cifs //Adresse_IP_serveur/perso /media/perso -o credentials=/home/Nom_Utilisateur/.smbcredentials,domain=Nom_Domaine,uid=1000,gid=100,file_mode=0660,dir_mode=0770,iocharset=utf8 Création du « .smbcredentials » dans « $HOME » : nano ~/.smbcredentials Username=... password=... Pour exécuter le script en tant que root à l'ouverture de session (pour gnome); le dernier script à s'exécuter avec ces droits est dans « /etc/gdm/PreSession/Default ». Ajouter a la ligne du PATH « /$HOME/bin/ ». A la fin du script juste avant le exit ajouter : # Execution du script de login ($HOME/bin/mntrezo) bash /$HOME/bin/.mntrezo exit 0 Se déconnecter et se reconnecter. Normalement les lecteurs doivent apparaître. ===== Configuration de PAM ===== Les fichiers pam permettent de gérer les connexions et autorisations qu'elles soient locales (gdm,kdm,xdm) ou distantes (ssh). Pour plus d'information sur PAM reportez vous à cette page [[http://www.linux-kheops.com/doc/cours/jgourdin/outils-tcp-ip/Linux-pam.html|http://www.linux-kheops.com/doc/cours/jgourdin/outils-tcp-ip/Linux-pam.html]] Ici nous voulons que les utilisateurs du domaine puissent se connecter localement donc nous allons modifier le fichier /etc/pam.d/gdm si vous êtes sous Ed/Ubuntu et si vous utilisez Kubuntu c'est /etc/pam.d/kdm. En premier lieu faites une copie de sauvegarde de votre fichier d'origine. puis éditez le: sudo gedit /etc/pam.d/gdm Supprimez le contenu du fichier (attention d'avoir bien fait la sauvegarde du fichier avant) puis ajoutez les lignes suivantes : auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale auth required pam_mount.so auth sufficient pam_winbind.so use_first_pass auth required pam_unix.so use_first_pass account sufficient pam_winbind.so account sufficient pam_unix.so password required pam_unix.so nullok obscure min=4 max=8 md5 session required pam_unix.so session optional pam_mkhomedir.so session optional pam_mount.so ---- //contributeurs: [[:contributeurs|les contributeurs d'Ubuntu-fr]].//