DHCPd et LDAP

De Diablotins.org.


Cette page est en travaux, elle n'est pas encore dans un état de diffusion
Image:Onwork.jpgUtilisez la page discussion associée pour connaitre les tâches à faire et prendre contact avec le/les responsable(s)
Image:brush.png
  • Fichier /usr/local/etc/dhdhcpd.conf
 ldap-server "locahost";
 ldap-port 389;
 ldap-username "cn=dhcpmanager,dc=domain,dc=tld";
 ldap-password "<SECRET>";
 ldap-base-dn "ou=dhcp,dc=domain,dc=tld";
 ldap-method dynamic;
 ldap-debug-file "/var/log/dhcp-ldap-startup.log";
 
   * Voici le fichier LDIF ( dhcp-ressources.ldif ) pour la création, de l'utilisateur cn=dhcpmanager et de la branche ou=DHCP


  dn: ou=dhcp,dc=domain,dc=tld
  objectclass: organizationalunit
  ou: dhcp
  description: Serveur dhcp
  
  dn: cn=dhcpmanager,dc=domain,dc=tld
  objectclass: top
  objectclass: person
  cn: dhcpmanager
  sn: dhcpmanager
  userpassword: {SSHA}<SHA1_HASHED_SECRET>


 $OPENLDAPBIN/bin/ldapadd -x -D "cn=manager,ou=ressources,o=xenux,dc=net" -W -f dhcp-ressources.ldif

   * Afin de créer un fichier LDIF contenant la configuration d'un serveur DHCP déjà existant, il existe un outils livré avec le patch :
     si vous n'avez pas de serveur DHCP actif, inspirez vous du fichier LDIF résultant pour construire votre propre fichier



my $basedn = "ou=dhcp, o=domain, dc=tld"; dhcpd-conf-to-ldap.pl < dhcpd.conf > dhcpd.ldif



  1. Exemple de configuration /usr/local/etc/dhcpd.conf
  1. On donne le nom du domaine
 option domain-name "xenux.net";
  1. On défini le masque réseau
 option subnet-mask 255.255.255.0;
  1. Ici c'est le serveur de nom, le serveur privé,
  2. il faut aussi mettre le/les DNS donnés par votre provider.
 option domain-name-servers 192.168.1.2 , 192.168.1.3;
 ddns-update-style ad-hoc;
  1. Les clients auront cette adresse comme passerelle par défaut
 option routers 192.168.1.1;
  1. Le bail a une durée de 86400 s par défaut, soit 24 h
  2. On peut configurer les clients pour qu'ils puissent demander une durée de bail spécifique
 default-lease-time 86400;
  1. On le laisse avec un maximum de 7 jours
 max-lease-time 604800;
  1. Définition du réseau : 192.168.1.0 et de son masque
 subnet 192.168.1.0 netmask 255.255.255.0 {
  1. La plage d'adresses disponibles pour les clients
 range 192.168.1.4 192.168.1.253;
  1. Et l'adresse utilisée pour la diffusion
 option broadcast-address 192.168.1.255;

}

  1. Définition de notre machine PC-1
 host PC-1 {
    hardware ethernet 00:00:4C:71:46:68;
    fixed-address 192.168.1.5;

}

     Nous obtenons ainsi le fichier dhcpd-xenux.ldif correspondant à cette configuration :


 dn: cn=server, ou=DHCP,ou=ressources, o=xenux, dc=net
 objectClass: top
 objectClass: dhcpServer
 cn: server
 dhcpServiceDN: cn=DHCP Config, ou=DHCP,ou=ressources, o=xenux, dc=net
 
 dn: cn=DHCP Config, ou=DHCP,ou=ressources, o=xenux, dc=net
 cn: DHCP Config
 objectClass: top
 objectClass: dhcpService
 objectClass: dhcpOptions
 dhcpPrimaryDN: cn=server, ou=DHCP,ou=ressources, o=xenux, dc=net
 dhcpStatements: ddns-update-style ad-hoc
 dhcpStatements: default-lease-time 86400
 dhcpStatements: max-lease-time 604800
 dhcpOption: domain-name "xenux.net"
 dhcpOption: subnet-mask 255.255.255.0
 dhcpOption: domain-name-servers 192.168.1.2 , 192.168.1.3
 dhcpOption: routers 192.168.1.1
 
 dn: cn=192.168.1.0, cn=DHCP Config, ou=DHCP,ou=ressources, o=xenux, dc=net
 cn: 192.168.1.0
 objectClass: top
 objectClass: dhcpSubnet
 objectClass: dhcpOptions
 dhcpNetMask: 24
 dhcpRange: 192.168.1.4 192.168.1.253
 dhcpOption: broadcast-address 192.168.1.255
 
 dn: cn=PC-1, cn=DHCP Config, ou=DHCP,ou=ressources, o=xenux, dc=net
 cn: PC-1
 objectClass: top
 objectClass: dhcpHost
 dhcpHWAddress: ethernet 00:00:4C:71:46:68
 dhcpStatements: fixed-address 192.168.1.5
  


   * Nous avons maintenant besoin que notre serveur OpenLDAP, prennent en compte les nouveaux attributs correspondant au DHCP ( extension du schema ), mais également de mettre en place notre ACL sur la branche ou=DHCP, et ajouter de nouveaux index correspondant a nos attributs DHCP
     Pour cela procéder comme suit :
     Il faut copier le fichier dhcp.schema dans le repertoire "OpenLDAP" contenant deja tous les schemas


cp dhcp-ldap-3.0pl1/contrib/dhcp.schema $OPENLDAPBIN/etc/openldap/schema/

     Extension du schema de l'annuaire :
     Editer le fichier $OPENLDAPBIN/etc/openldap/slapd.conf, pour y ajouter ceci :


  1. Les differents class d'objets et attributs.

include /xenux/bin/OpenLDAP/etc/openldap/schema/core.schema include /xenux/bin/OpenLDAP/etc/openldap/schema/cosine.schema include /xenux/bin/OpenLDAP/etc/openldap/schema/inetorgperson.schema include /xenux/bin/OpenLDAP/etc/openldap/schema/nis.schema include /xenux/bin/OpenLDAP/etc/openldap/schema/dhcp.schema


  1. Les fichier pid et args.

pidfile /var/run/slapd.pid argsfile /var/run/slapd.args

  1. ldbm database definitions
  1. Definition de la structure du schema.

database ldbm

suffix "o=xenux,dc=net" rootdn "cn=manager,ou=ressources,o=xenux,dc=net"

  1. Le mot de passe obtenu avec slappasswd.

rootpw {SSHA}N4G7BbBFYfNZSiaBaEkWb7oV6cLReROZ # toto en crypté

  1. Ou sera stocke l'annuaire

directory /xenux/Annuaire/

  1. Creation des index

index cn,sn pres,eq,approx,sub index uid,mail index objectClass eq index dhcpHWAddress eq index dhcpClassData eq

  1. Les droits

defaultaccess read # { none | compare | search | read | write }

  1. L'administrateur a tous les droits.

access to *

       by dn="cn=manager,ou=ressources,o=xenux,dc=net" write
       by * read
  1. Seul l'utilisateur peut changer son mot de passe et l'administrateur biensur.

access to attribute=userPassword

       by dn="cn=manager,ou=ressources,o=xenux,dc=net" write
       by anonymous auth
       by self write
       by * none
  1. Seul l'administrateur et l'utilisateur dhcpmanager peuvent modifier les elements de la branche ou=DHCP

access to dn="ou=DHCP,ou=ressources,o=xenux,dc=net"

by dn="cn=manager,ou=ressources,o=xenux,dc=net" write
by dn="cn=dhcpmanager,ou=ressources,o=xenux,dc=net" write
by * read
Projets :