Mise en place d`un contrôleur de domaine Samba3 avec LDAP
Transcription
Mise en place d`un contrôleur de domaine Samba3 avec LDAP
Mise en place d'un contrôleur de domaine Samba3 avec LDAP Damien G. [email protected] Document sous licence GPL Conseils: Utilisez tout le temps le même mot de passe Je joins certains fichiers de configuration: cf en fin de ce document 1) Installation d'openLDAP Le paquet SLAPD contient la partie serveur d'openLDAP : Installation : aptget install slapd Debconf nous pose plusieurs questions : Le nom du domaine : c'est celui de LDAP (pas celui que vous utiliserez sous windows): Si vous mettez moi.com vous aurez donc dc=moi,dc=com (rappelezvous en !!) – Nom de votre organisation: peu important. moi.com – Mot de passe de l'administrateur : C'est ce mot de passe que vous utiliserez pour vous connecter, rappelez vous en !! – Module de base de données à utiliser : BDB – Fautil supprimer la base de données à la purge du paquet ? NON – Fautil déplacer l'ancienne base de données ? NON – Fautil autoriser le protocole LDAPv2 ? NON Le fichier de configuration du serveur LDAP est dans /etc/ldap/slapd.conf LDAP fonctionne avec des schémas, par défaut 4 schémas sont déjà présents, pour utiliser samba avec LDAP il faut le schéma approprié. Celui se trouve dans le paquet SAMBADOC (14mo !!) Installation aptget install sambadoc On copie le schéma que l'on place dans le répertoire dans le répertoire des schémas de LDAP: gunzip c /usr/share/doc/sambadoc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema – Puis on indique au serveur LDAP d'utiliser ce schéma, on édite /etc/ldap/slapd.conf en ajoutant : include /etc/ldap/schema/samba.schema Rajoutez rootdn et rootpw juste en dessous de suffix. On peut obtetenir un mot de passe crypté avec la commande slappasswd # The base of your directory in database #1 suffix "dc=moi,dc=com" rootdn "cn=admin,dc=moi,dc=com" rootpw {SSHA}passwordcrypté On relance le serveur LDAP /etc/init.d/slapd restart 2) Installation de SAMBA On installe le paquet SAMBA: aptget install samba Répondez à debconf en laissant tout par défaut, de toute façon on fera notre propre fichier de configuration. Le fichier de configuration du serveur SAMBA est : /etc/samba/smb.conf Supprimez tout le contenu et copiez toutes ces lignes: #### Debut du fichier ##### [global] workgroup = maison netbios name = shuttle server string = SambaLDAP PDC Server domain master = Yes local master = Yes domain logons = Yes os level = 40 #passwd program = /usr/sbin/smbldappasswd ?u %u ldap passwd sync = Yes passdb backend = ldapsam:ldap://127.0.0.1/ ldap admin dn = cn=admin,dc=moi,dc=com ldap suffix = dc=moi,dc=com ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Machines add machine script = /usr/sbin/smbldapuseradd w "%u" add user script = /usr/sbin/smbldapuseradd m "%u" ldap delete dn = Yes delete user script = /usr/sbin/smbldapuserdel "%u" add machine script = /usr/sbin/smbldapuseradd w "%u" add group script = /usr/sbin/smbldapgroupadd p "%g" #delete group script = /usr/sbin/smbldapgroupdel "%g" add user to group script = /usr/sbin/smbldapgroupmod m "%u" "%g" delete user from group script = /usr/sbin/smbldapgroupmod x "%u" "%g" set primary group script = /usr/sbin/smbldapusermod g "%g" "%u" logon path = \\%L\profile\%U logon drive = P: logon home = \\%L\%U socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 case sensitive = No default case = lower preserve case = yes short preserve case = Yes #character set = iso88591 #domain admin group = @admin dns proxy = No wins support = Yes hosts allow = 192.168.0. 127. winbind use default domain = Yes nt acl support = Yes msdfs root = Yes hide files = /desktop.ini/ntuser.ini/NTUSER.*/ ### FIN DE LA PARTIE GLOBALE ##### #### LES PARTAGES ##### [netlogon] path = /home/netlogon writable = No browseable = No write list = Administrateur # [profile] path = /home/export/profile browseable = No writeable = Yes profile acls = yes create mask = 0700 directory mask = 0700 # [homes] comment = Repertoire Personnel browseable = No writeable = Yes # [partage] comment = Repertoire commun browseable = Yes writeable = Yes public = No path = /home/partage #### Fin du fichier #### Commentaires: workgroup: C'est le nom de votre domaine. ldap admin dn = cn=admin,dc=moi,dc=com Remplacez par ce que vous avez donné a la configuration de LDAP, en laissant cn=admin: c'est le nom de l'administrateur de LDAP ldap suffix = dc=moi,dc=com Pareil Stoppez le serveur Samba : /etc/init.d/samba stop On crée un mot de passe pour root : smbpasswd w votremotdepasse Cette commande génère le fichier /var/lib/samba/secrets.tdb 3) Installation de smbldaptools Le paquet smbldaptools contient tous les outils pour gérer nos utilisateurs (création, suppression ..). aptget install smbldaptools Les 2 fichiers de configuration ne sont pas au bon endroit, ils sont dans /usr/share/doc/smbldaptool Je vous propose les miens que vous devez placer dans /etc/opt/IDEALX/smbldaptools/ Il semble que pour la version Stable de Debian, ces fichiers doivent être dans /etc/smbldaptool. Je vous conseille également de prendre la dernière version: 0.9.2 Le fichier /etc/opt/IDEALX/smbldaptools/smbldap.conf slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="require" cafile="/etc/opt/IDEALX/smbldaptools/ca.pem" clientcert="/etc/opt/IDEALX/smbldaptools/smbldaptools.pem" clientkey="/etc/opt/IDEALX/smbldaptools/smbldaptools.key" ### A changer ==> suffix="dc=moi,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Machines,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="45" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" Commentaires : Comme d'habitude vous changez le nom de domaine LDAP D'autres paramètres peuvent être renseignés, mais si on ne les indique pas, ils seront pris dans smb.conf, c'est pourquoi ce dernier doit être édité comme il faut, pas d'espaces inutiles !! Le fichier : /etc/opt/IDEALX/smbldaptools/smbldap_bind.conf slaveDN="cn=admin,dc=moi,dc=com" slavePw="votremotdepasseenclair" masterDN="cn=admin,dc=moi,dc=com" masterPw="votremotdepasseenclair" Commentaires : Remplacez par le nom de domaine LDAP Saisissez votre mot de passe LDAP en clair, on peut sans doute le mettre en crypté. On lance ensuite le serveur samba : /etc/init.d/samba start Si tout se passe bien, vous pouvez récupérer votre domaine SID en faisant : net getlocalsid Vous ne devez avoir que le SID, pas de warning et encore moins des erreurs. Vous pouvez alors peupler votre annuaire : smbldappopulate Pareil aucun warning ne doit être présent !! on vous demande votre mot de passe. La dernière ligne est importante, notezla ! entry sambaDomainName=maison,dc=shuttle,dc=com maison est le nom workroup que vous avez renseigné dans smb.conf 4) Mise en place d'une interface web pour LDAP Afin de vous faciliter la tâche, je vous propose d'installer LAM, c'est une interface web (vous devez donc avoir apache) aptget install ldapaccountmanager Il y aura sûrement beaucoup de dépendances. Avec votre navigateur web, faites http://localhost/lam Allez dans configuration login: Le login est LAM et le mot de passe LAM Dans le cadre Server Settings Remplacez les dc=...., dc=.... par le nom de domaine ldap que vous avez utilisé auparavant (j'avais «moi.com») Dans DomainSuffix, mettez la ligne que je vous avais demandé de garder lors du smblappopulate Dans Language Setting, mettez francais. Dans Security Settings, mettez cn=admin,dc=shuttle,dc=com en changeant les dc=...,dc=.... Mettez un mot de passe, c'est juste un mot de passe pour changer votre profil. Validez, retournez sur la page d'accueil. Logguez vous avec : login = admin et le mot de passe de votre LDAP Normalement vous devez avoir 2 utilisateurs: root et nobody, plusieurs groupes qui correspondent aux groupes windows. Dans outils, Samba3 domaines, vous devez avoir un domaine avec votre sid. Créez des utilisateurs qui appartiennent au groupe Domain Users 5) Configuration de l'authentification LDAP Cette partie est risquée, et une mauvais configuration peut vous empêcher de vous logguer. Je vous conseille donc d'ouvrir plusieurs consoles en root afin de pouvoir modifier votre configuration en cas de pépins. Tester après chaque modification si vous pouvez encore vous logguer (su ...) On installe les paquets libpamldap et libnssldap aptget install libnssldap Pour répondre aux questions de debconf Nom distinctif de la base LDAP: comme d'habitude dc=.....,dc=...... Version de LDAP : 3 La base demandetelle un login: NON Le fichier de configuration doitil être restreint en lecture: NON aptget install libpamldap Nom distinctif de la base LDAP: comme d'habitude dc=.....,dc=. Version de LDAP : 3 Fautil faire de l'administration local («root») un administrateur de la base LDAP: OUI root login account : cn=admin,dc=.......,cd=......... root loin password : le mot de passe de votre base LDAP Local crypt to use : crypt On édite le fichier /etc/nsswitch.conf passwd: compat ldap group: compat ldap shadow: compat ldap hosts: files dns mdns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis < ! > J'ai eu quelques soucis avec ce fichier, prenez bien garde d'avoir plusieurs consoles root et testez si vous pouvez encore vous logguer avec tous vos utilisateurs Unix < ! > Enfin, éditez le fichier /etc/ldap/ldap.conf, supprimez tout, ne mettez que: HOST 127.0.0.1 BASE dc=moi, dc=com Adaptez BASE dc=....,dc=...... Vous pouvez tester la commande getent passwd, elle vous retourne tous les comptes et les groupes à la fois Unix et LDAP. 6) Finalisation et test: On créé les répertoires que samba utilise : les profils, le partage public.... Création de répertoires : mkdir p /home/netlogon mkdir p /home/export/profile mkdir p /home/partage On donne les droits full aux répertoires suivants : chmod a+w /home/export chmod a+w /home/export/profile chmod a+w /home/partage C'est fini sur la partie serveur, on passe à la partie client en croisant les doigts : Sous Windows : Clic droit sur poste de travail, propriété, onglet «Nom de l'ordinateur». Changez «Groupe de travail» par «Domaine», donnez le nom de votre domaine, celui que vous avez mis dans smb.conf pour workgroup = Il vous demande le mot de passe : login = root, mdp = celui de root. Normalement on vous souhaite la bienvenue, rebootez. Connectezvous au domaine, avec un nom d'utilisateur qui se trouve dans votre annuaire et son mot de passe. Normalement les noms netbios de chaque pc se rajoutent tout seul dans LDAP, vous pouvez aller vérifier avec LAM. Un lecteur réseau est créé si le répertoire /home/votreuser existe on pourra ainsi gérer des profils itinérants avec des clients Linux et avoir sur n'importe quelle plateforme les fichiers personnels. 7) Fichiers de configuration: Vous trouverez les différents fichiers de configuration à cette adresse: http://damstux.free.fr/linux/samba3ldap/config/ 8) Bibliographie Cahiers de l'administrateur Debian: Editions Eyrolles : Raphael Hertzog http://cj.tronquet.free.fr/doc/samba3ldap.php http://forum.hardware.fr/hardwarefr/OSAlternatifs/liste_sujet1.htm