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 : apt­get 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 (rappelez­vous 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
– Faut­il supprimer la base de données à la purge du paquet ?
NON
– Faut­il déplacer l'ancienne base de données ?
NON
– Faut­il 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 SAMBA­DOC (14mo !!)
Installation
apt­get install samba­doc 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/samba­doc/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:
apt­get 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 = Samba­LDAP PDC Server
domain master = Yes
local master = Yes
domain logons = Yes
os level = 40
#passwd program = /usr/sbin/smbldap­passwd ?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/smbldap­useradd ­w "%u"
add user script = /usr/sbin/smbldap­useradd ­m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap­userdel "%u"
add machine script = /usr/sbin/smbldap­useradd ­w "%u"
add group script = /usr/sbin/smbldap­groupadd ­p "%g"
#delete group script = /usr/sbin/smbldap­groupdel "%g"
add user to group script = /usr/sbin/smbldap­groupmod ­m "%u" "%g"
delete user from group script = /usr/sbin/smbldap­groupmod ­x "%u" "%g"
set primary group script = /usr/sbin/smbldap­usermod ­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 = iso8859­1
#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 smbldap­tools
Le paquet smbldap­tools contient tous les outils pour gérer nos utilisateurs (création, suppression ..).
apt­get install smbldap­tools
Les 2 fichiers de configuration ne sont pas au bon endroit, ils sont dans /usr/share/doc/smbldap­tool
Je vous propose les miens que vous devez placer dans /etc/opt/IDEALX/smbldap­tools/
Il semble que pour la version Stable de Debian, ces fichiers doivent être dans /etc/smbldap­tool.
Je vous conseille également de prendre la dernière version: 0.9.2
Le fichier /etc/opt/IDEALX/smbldap­tools/smbldap.conf
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify="require"
cafile="/etc/opt/IDEALX/smbldap­tools/ca.pem"
clientcert="/etc/opt/IDEALX/smbldap­tools/smbldap­tools.pem"
clientkey="/etc/opt/IDEALX/smbldap­tools/smbldap­tools.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/smbldap­tools/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 :
smbldap­populate
Pareil aucun warning ne doit être présent !! on vous demande votre mot de passe.
La dernière ligne est importante, notez­la !
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)
apt­get install ldap­account­manager
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 smblap­populate
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 libpam­ldap et libnss­ldap
apt­get install libnss­ldap
Pour répondre aux questions de debconf
Nom distinctif de la base LDAP: comme d'habitude dc=.....,dc=......
Version de LDAP : 3
La base demande­t­elle un login: NON
Le fichier de configuration doit­il être restreint en lecture: NON
apt­get install libpam­ldap
Nom distinctif de la base LDAP: comme d'habitude dc=.....,dc=.
Version de LDAP : 3
Faut­il 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.
Connectez­vous 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 plate­forme 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_sujet­1.htm

Documents pareils