Dans Oracle VM Virtualbox, j'ai installé une nouvelle copie d'Ubuntu Server 14.04.1 version 64 bits, avec OpenSSH également installé. Les étapes que j'ai effectuées:
Sudo apt-get install slapd ldap-utils
nano /etc/ldap/ldap.conf
Ici j'ai entré BASE dc=elemer,dc=local
URI ldap://192.168.0.14
Sudo apt-get install phpldapadmin
Sudo nano /etc/phpldapadmin/config.php
et remplacé tous les "dc = exemple, dc = com" par "dc = elemer, dc = local"
Sur la machine physique, j'ouvre un navigateur Web et saisis 192.168.0.14/phpldapadmin. La page Web s'affiche et je tape mon mot de passe (le mot de passe LDAP est identique à celui de la racine).
LDAP se moque de moi et dit
"Impossible de se connecter au serveur LDAP Mon serveur LDAP
Erreur: Informations d'identification non valides (49) pour l'utilisateur
Échec de l'authentification sur le serveur
Nom d'utilisateur ou mot de passe invalide "
Le mot de passe est vraiment correct, j'ai même créé d'autres machines virtuelles et répété le processus à partir de scrath, utilisé une approche différente parfois mais jamais réussi à le faire correctement.
Si je lance ldapsearch -x
il me donne: "Résultat: 32 Aucun objet de ce type
Si j'exécute ldapadd
et que je mets mon mot de passe, il dit:
ldap_sasl_interactive_bind_s: INvalid credentials (49) additional info: SASL(-13): user not found: no secret in database
ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com dn
donnera No such object (32)
Donc, tout d’abord, Ubuntu réussit à créer un long chemin ( https://help.ubuntu.com/14.04/serverguide/openldap-server.html ) sur LDAP qui omet une phase importante:
Après avoir installé slapd, vous devrez exécuter Sudo dpkg-reconfigure slapd
et sélectionner: NO - votre.domaine.fr - Nom de l’organisation - mot de passe - mot de passe - HDB - OUI - OUI NON
J'ai trouvé la solution à Où est le dc = exemple, dc = com ldap dit?
Merci pour mur
Edit: Apparemment, il s’agit d’un problème très répandu qui a été signalé dans de nombreux autres forums sans solution viable. Il ya quelque temps, j’ai résolu et signalé la solution ici, mais après un certain temps, j’ai voulu refaire les étapes, j’ai dit que je ne pouvais pas reproduire avec succès. Ainsi, après quelques tentatives et erreurs, je réussis et je vais donc mettre les instructions ici, sans omettre aucun détail. j'espère que ça aide. avant de commencer, assurez-vous que vous avez l'adresse IP de votre machine (par exemple, en utilisant ifconfig
, par exemple 192.168.33.10)
connaître/changer votre nom d'hôte: ouvrez le fichier /etc/hostname
. vous pouvez tout supprimer et le remplacer par votre domaine (par exemple, myserver.org
).
installation de packages OpenLDAP: vous avez besoin de 3 packages slapd
, ldap-utils
et phpldapadmin
. En installant slapd
, il vous sera demandé de saisir un mot de passe administrateur.
configuration d'OpenLDAP: ouvrez /etc/ldap/ldap.conf
et ne commentez pas les lignes ci-dessous (supprimez le # du début des lignes)
BASE dc = exemple, dc = com
URI ldap: //ldap.example.com ldap: //ldap-master.example.com: 666
et les changer pour
BASE dc = myserver, dc = org
URI ldap: //192.168.33.10 ldap: //192.168.33.10: 666
rappelez-vous que vous devez remplacer l'exemple IP 192.168.33.10
par votre adresse IP.
configuration de phpldapadmin: ouvrez /etc/phpldapadmin/config.php
dans l'éditeur. Recherchez les lignes ayant $servers->setValue
, remplacez 127.0.0.1
par l'adresse IP du serveur. remplacez tous example
s et com
s par les termes que vous avez définis à l'étape a
Reconfigurer le serveur OpenLDAP: vous devez reconfigurer le serveur OpenLDAP (je ne sais pas vraiment pourquoi!) Sudo dpkg-reconfigure slapd
puis sélectionnez: NO
-> myserver.com
-> OrganisationName
-> password
-> password
-> HDB
-> NO
-> YES
-> NO
le problème devrait être résolu maintenant. mais quand vous avancez, il y a un autre problème tel que décrit ici dans ce post . vous pouvez le résoudre en suivant les instructions du lien
Je devrais remercier Anandd Nayyar et me référer à sa vidéo sur youtube qui m'a beaucoup aidé à résoudre ces problèmes.
J'ai suivi ces étapes. Cela a fonctionné pour moi.
Commencez par supprimer tous les packages (tous les packages ldap que vous avez installés) en utilisant Sudo apt-get remove <package>
, puis procédez comme suit:
Sudo apt-get install slapd ldap-utils
/etc/ldap/ldap.conf
dans GeditAssurez-vous que le fichier se présente comme suit:
#LDAP Defaults
#See ldap.conf for details
#This file should be world readable but not world writable.
BASE dc=ldap,dc=com
URI ldap://localhost:389
12
15
never
#TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt*
Enregistrez le fichier et quittez
Sudo dpkg-reconfigure slapd
ldap.com
ldapsearch -x
Installer le package phpldapadmin
Sudo apt-get install phpldapadmin
Sudo gedit /etc/phpldapadmin/config.php
Editez les valeurs suivantes
Définissez le nom de votre serveur LDAP
$servers->setValue('server','name', Anagh LDAP Server');
Définissez l'adresse IP de votre serveur LDAP
$servers->setValue('server','Host','IP-Address');
Définir le nom de domaine du serveur
$servers->setValue('server','base',array('dc=ldap,dc=com'));
Définir à nouveau le nom de domaine du serveur
$servers->setValue('login','bind_id','cn=admin,dc=ldap,dc=com');
La ligne ci-dessous sera commentée. Décommentez-le, puis définissez-le sur true
$config->custom->appearance['hide_template_warning'] = true;
Sauvegarder et quitter le fichier
J'ai donc fait un tutoriel après avoir lu cet article + n autre article + en regarder quelques-uns vidéos youtube et enfin le comprendre. Avoir un serveur esxi rend les traces et les erreurs triviales dans le temps
https://www.freesoftwareservers.com/index.php/2016/07/13/install-ldap-phpldapadmin-ubuntu-14-04/
Hostname : ldap.freesoftwareservers.com
[DOMAIN] : freesoftwareservers
[LDAPIP] : 192.168.1.200
Copier le texte puis rechercher et remplacer
[LDAPIP] = Ldap Servers IP Address
[DOMAIN] = Root domain without .com IE: freesoftwareservers
[COMNETORG] = .com or .net or .org or .whatever
Sudo su
apt-get update
apt-get install -y Apache2 slapd ldap-utils phpldapadmin
sh -c 'echo "BASE dc=[DOMAIN],dc=[COMNETORG]\nURI ldap://[LDAPIP]" >> /etc/ldap/ldap.conf'
dpkg-reconfigure slapd
Entrez les informations suivantes:
NO
[DOMAIN].[COMNETORG]
[DOMAIN]
Admin PWD (Note this is the Ldap User "Admin" PWD, doesn't have to be root/Sudo users PWD)
Admin PWD
HDB
NO
YES
NO
Remplacez toutes les instances de "127.0.01" par [LDAPIP] & remplacez toutes les instances de dc = example par dc = [DOMAIN]
sed -i -e 's/127.0.0.1/[LDAPIP]/g' /etc/phpldapadmin/config.php
sed -i -e 's/dc=example/dc=[DOMAIN]/g' /etc/phpldapadmin/config.php
sed -i -e 's/dc=com/dc=[COMNETORG]/g' /etc/phpldapadmin/config.php
Changez le shell par défaut en/bin/bash et le répertoire personnel par défaut en/home/$ username:
nano /etc/phpldapadmin/templates/creation/posixAccount.xml
<attribute id="homeDirectory">
<display>Home directory</display>
<!-- <onchange>=autoFill(homeDirectory;/home/%gidNumber|0-0/T%/%uid|3-%)</onchange> -->
<order>8</order>
<page>1</page>
</attribute>
<attribute id="loginShell">
<display>Login Shell</display>
<order>9</order>
<page>1</page>
<!-- <value><![CDATA[=php.PickList(/;(&(objectClass=posixAccount));loginShell;%loginShell%;;;;loginShell)]]></value> -->
<type>select</type>
<value id="/bin/sh">/bin/sh</value>
<value id="/bin/csh">/bin/csh</value>
<value id="/bin/tsh">/bin/tsh</value>
<value id="/bin/bash">/bin/bash</value>
</attribute>
L'ajout d'un utilisateur provoque d'étranges erreurs dans PWD:
sed -i -e 's/password_hash/password_hash_custom/g' /usr/share/phpldapadmin/lib/TemplateRender.php
Vous utilisez ceci dans une VM dédiée? Redirige la racine domain.com vers domain.com/phpldapadmin via:
sh -c 'echo "RedirectMatch ^/$ /phpldapadmin/" >> /etc/Apache2/Apache2.conf'
service Apache2 restart
Ouvrez UFW
ufw allow 389
ufw allow 80
Activer l'attribut de clé publique:
cat << EOL >~/openssh-lpk.ldif
dn: cn=openssh-lpk,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openssh-lpk
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
DESC 'MANDATORY: OpenSSH Public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
DESC 'MANDATORY: OpenSSH LPK objectclass'
MAY ( sshPublicKey $ uid )
)
EOL
Ajoutez ldif pour le support de clé RSA:
ldapadd -Y EXTERNAL -H ldapi:/// -f ~/openssh-lpk.ldif
Vérifiez que tout fonctionne:
ldapsearch -x
root@ldap:# ldapsearch -x
# extended LDIF
#
# LDAPv3
# base <dc=freesoftwareservers,dc=com> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# freesoftwareservers.com
dn: dc=freesoftwareservers,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: FreeSoftwareServers
dc: freesoftwareservers
# admin, freesoftwareservers.com
dn: cn=admin,dc=freesoftwareservers,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Après avoir installé un package complet OpenLdap, j'ai remarqué que le processus ne redémarre pas correctement après un service slapd restart
.
Vous devez trouver le processus en exécutant la commande
Sudo ps -aux | grep [s]lapd
puis tuez-le
kill -9 <PID>
et Sudo service slapd start
. Tout a fonctionné pour moi après ça.