OPENLDAP + SAMBA + CLIENT WINDOWS 7
Bonjour, aprés avoir passé des nuits à se prendre la tête et quelque migraines, je veux en épargner quelques un.
Voici l'installation de OPENLDAP + SAMBA + CLIENT WINDOWS 7
Merci a:
- Flori@n de http://www.blogeek.ec0.fr
- senti de http://progenvrac.com
- Deajan le jeu de http://www.badministrateur.com
Installation de Openldap :
Caracteristique:
- Nom du serveur: ec0.local
- Domaine: ec0
apt-get install slapd ldap-utils
Suppression de l’annuaire créer lors de l’installation :
Lorsque vous avez installé Openldap, l’installateur va créer par défaut une base, par souci de clarté nous allons la supprimé.
rm /etc/ldap/slapd.d/cn\=config/olcDatabase={1}hdb.ldif
Backup de la base par défaut :
tar -cvjf backup_ldap.tar.gz /var/lib/ldap
tar -cvjf backup_ldap_config.tar.gz /etc/ldap/slapd.d
Suppression de la base par défaut :
rm /var/lib/ldap/*
Redémarrage du service LDAP :
/etc/init.d/slapd restart
Configuration de LDAP :
Depuis les nouvelles versions LDAP nous avons dorénavant la possibilité d’intégrer la configuration de notre annuaire dans une base LDAP et non plus depuis un fichier de configuration.
Ce mode de configuration à un avantage certain. Nous pouvons dorénavant effectuer des modifications à chaud de la configuration.
Ce mode de fonctionnement trouve tout son intérêt dans un environnement professionnel.
Nous pouvons dorénavant modifier à chaud les schémas, le mot de passe Manager, les droits d’accès, la manière d’indexer son annuaire ldap, etc …
NB : Le backend cn=config ne sert que pour la partie configuration. Ajout des schémas :
On va commencer par ajouter les schémas de base qui nous permettrons d’avoir un serveur LDAP fonctionnel.
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
EN COUR DE REALISATION
Nous allons identifier un utilisateur interne à la base LDAP, il sera nommé Manager, nous allons donc de suite configurer un mot de passe, pour des raisons des sécurités nous allons devoir au préalable hasher le mot de passe, car sinon celui-ci apparaitra en clair dans la configuration.
Cryptage du mot de passe super user :
# l'option -h {SSHA} indique que nous souhaitons crypter avec le hachage SSHA
slappasswd -h {SSHA} New password: MON_MOT_DE_PASSE Re-enter new password: MON_MOT_DE_PASSE {SSHA}XXXXXXXXXXXXXXXXX==
Plus d’information : https://www.openldap.org/doc/admin24/security.html
Création de notre template de configuration :
La création de notre configuration et la déclaration de notre base LDAP se font par le biais d’un fichier ldiff, comme pour une base LDAP traditionnelle.
Ci dessous mon template de base ldap :
mkdir /etc/ldap/import_ldiff/
Nous allons stoker notre base ldap dans un dossier particulier, très pratique en cas de multibase LDAP :
mkdir /var/lib/ldap/ec0.local/ chown -R openldap:openldap /var/lib/ldap/ec0.local vi /etc/ldap/import_ldiff/new_config_global.ldiff
#REMOVE COMMENT BEFORE IMPORT
dn: cn=config changetype: modify replace: olcLogLevel #Modifie le niveau de logs olcLogLevel: stats dn: cn=config changetype: modify replace: olcIdleTimeout #Modifie le timeout olcIdleTimeout: 30
vi /etc/ldap/import_ldiff/new_config_module.ldiff
#REMOVE COMMENT BEFORE IMPORT
# Load dynamic backend modules dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: back_hdb.la
vi /etc/ldap/import_ldiff/new_config_database.ldiff
#REMOVE COMMENT BEFORE IMPORT
# Database settings dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig #Type de base olcDatabase: {1}hdb # OU de la base ldap olcSuffix: dc=ec0,dc=local # Dossier de stockage de la base ldap olcDbDirectory: /var/lib/ldap/ec0.local/ # Definition du compte Manager interne olcRootDN: cn=admin,dc=ec0,dc=local # Definition du mot de passe associe au compte Manager olcRootPW: {SSHA}XXXXXXXXXXXXX # Nombre de resultat affiche lors d'une recherche olcSizeLimit: 500 olcDbConfig: set_cachesize 0 2097152 0 olcDbConfig: set_lk_max_objects 1500 olcDbConfig: set_lk_max_locks 1500 olcDbConfig: set_lk_max_lockers 1500 #Gestion des Index olcDbIndex: objectClass eq olcLastMod: TRUE olcDbCheckpoint: 512 30 # ACL sur la base LDAP olcAccess: to attrs=userPassword by dn="cn=admin,dc=<del>ec0</del>,dc=local" write by anonymous auth by self write by * none olcAccess: to attrs=shadowLastChange by self write by * read olcAccess: to dn.base="" by * read olcAccess: to * by dn="cn=admin,dc=ec0,dc=local" write by * read
Import de la configuration :
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/import_ldiff/new_config_global.ldiff ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/import_ldiff/new_config_module.ldiff ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/import_ldiff/new_config_database.ldiff
Test de la Configuration :
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=config"
… Retourne l'ensemble des éléments …
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "dc=ec0,dc=local" ... Retourne une base vide, c'est normal ...
Modification du registre windows:
Voila il ne reste plus qu'a se connecter avec un pc Windows, mais un problème subsiste et la connexion est impossible:
Eh bien les developpeurs de Samba ont eu leur petite idée. Il faut deux ingrédients:
- Faire une petite modification du registre de Windows Seven.
- Disposer au minimum de Samba 3.3.7 ou de Samba 3.4.0.
Pour ce qui est de la modification registre, rendez-vous dans la clef suivante
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters
et ajoutez les valeurs suivantes:
DWORD DomainCompatibilityMode = 1 DWORD DNSNameResolutionRequired = 0