web-dev-qa-db-fra.com

Impossible de se connecter à la nouvelle installation d'OpenLDAP

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:

  1. Sudo apt-get install slapd ldap-utils

  2. nano /etc/ldap/ldap.conf Ici j'ai entré BASE dc=elemer,dc=localURI ldap://192.168.0.14

  3. Sudo apt-get install phpldapadmin

  4. Sudo nano /etc/phpldapadmin/config.php et remplacé tous les "dc = exemple, dc = com" par "dc = elemer, dc = local"

  5. 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).

  6. 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.

  1. Si je lance ldapsearch -x il me donne: "Résultat: 32 Aucun objet de ce type

  2. 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

  1. ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com dn donnera No such object (32)
5
elemer82

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

5
elemer82

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)

  1. 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).

  2. 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.

  3. 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.

  4. 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 examples et coms par les termes que vous avez définis à l'étape a

  5. 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

  6. 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.

1
Foad

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:

Étape 1: Installez OpenLDAP

  1. Sudo apt-get install slapd ldap-utils
  2. Donnez le mot de passe administrateur/mot de passe root
  3. Ressaisissez le mot de passe de l'administrateur/root

Étape 2: Configurez OpenLDAP

  1. Ouvrez le fichier /etc/ldap/ldap.conf dans Gedit
  2. Assurez-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*
    
  3. Enregistrez le fichier et quittez

Étape 3: Reconfigurer le slapd avec les valeurs mises à jour

  1. Sudo dpkg-reconfigure slapd
  2. Sélectionnez "Non" et appuyez sur Entrée
  3. Entrez le nom de domaine DNS ldap.com
  4. Entrez le nom de l'organisation: entrez un nom, par exemple Logiciel Anagh
  5. Entrez le mot de passe administrateur LDAP
  6. Sélectionnez la base de données backend
  7. Choisissez la valeur par défaut uniquement
  8. Sur l'écran suivant, sélectionnez "Non"
  9. Cliquez sur Oui pour déplacer l'ancienne base de données.
  10. Sélectionnez "Non" sous LDAPv2 Protocol

Étape 4: Testez l’openLDAP

  1. ldapsearch -x
  2. PART-B Administration du serveur LDAP
  3. Installer le package phpldapadmin

    Sudo apt-get install phpldapadmin
    
  4. Sudo gedit /etc/phpldapadmin/config.php

  5. Editez les valeurs suivantes

    1. Définissez le nom de votre serveur LDAP

      $servers->setValue('server','name', Anagh LDAP Server');
      
    2. Définissez l'adresse IP de votre serveur LDAP

      $servers->setValue('server','Host','IP-Address');
      
    3. Définir le nom de domaine du serveur

      $servers->setValue('server','base',array('dc=ldap,dc=com'));
      
    4. Définir à nouveau le nom de domaine du serveur

      $servers->setValue('login','bind_id','cn=admin,dc=ldap,dc=com');
      
  6. La ligne ci-dessous sera commentée. Décommentez-le, puis définissez-le sur true

    $config->custom->appearance['hide_template_warning'] = true;
    
  7. Sauvegarder et quitter le fichier

  8. Redémarrer Apache2
  9. Navigateur Web ouvert
  10. Puis adresse IP/phpldapadmin
0
Anagh Hegde

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/

https://youtu.be/BU48SA2uv1s

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

Vous n'utilisez pas de .com? Puis lancez aussi le suivant

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

Si vous n'obtenez pas quelque chose de similaire, ça ne marche pas!

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
0
FreeSoftwareServers

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.

0
Cifren