Contents
Contexte
# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 6.0.1 (squeeze) Release: 6.0.1 Codename: squeeze # slapd -V @(#) $OpenLDAP: slapd 2.4.23 (Nov 22 2010 23:39:34) $
LDAP
Dans les dernières versions de OpenLDAP les configurations sont stockées dans le répertoire /etc/ldap/slapd.d. Pour revenir au fichier slapd.conf on supprime le répertoire slapd.d et on récupère le fichier slapd.conf:
$ dpkg -L slapd | grep slapd.conf /usr/share/slapd/slapd.conf /usr/share/man/man5/slapd-config.5.gz /usr/share/man/man5/slapd.conf.5.gz /usr/share/doc/slapd/examples/slapd.conf
Editer le contenu de l'annuaire, plusieurs alternatives:
phpldapadmin
ldapvi
shelldap
ou tout simplement les outils fournis par ldap-utils
$ ldapvi -D "cn=admin,dc=projet,dc=irs" -w 'lePassword' -b "dc=par,dc=ici" $ ldapadd -x -D "cn=admin,dc=par,dc=ici" -w 'lePassword' -f ./fichier.ldif -c $ shelldap --server localhost --binddn "cn=admin,dc=par,dc=ici" --basedn "dc=par,dc=ici"
NSS
Paquets (côté client)
paquets nécessaires: nscd, libnss-ldap(d)
Fichiers de configuration
/etc/libnss-ldap.conf
# egrep -v '(^#|^$)' /etc/libnss-ldap.conf base dc=par,dc=ici uri ldap://notreAnnuaire ldap_version 3 rootbinddn cn=admin,dc=par,dc=ici
/etc/libnss-ldap.secret
Une seule et unique ligne dans ce fichier, le mot de passe (en clair
) du compte déclaré dans le fichier précédent.
/etc/nsswitch.conf:
# grep ldap /etc/nsswitch.conf passwd: compat ldap group: compat ldap shadow: compat ldap
Test
L'utilisateur gbaldi est un compte utilisateur défini dans l'annuaire LDAP, pour tester la que configuration de NSS est correcte on peut chercher cet utilisateur via la commande getent:
# getent passwd gbaldi gbaldi:*:3004:1100:Gary Baldi:/home/gbaldi:/bin/sh
Ok, c'est n'est pas la partie la plus compliquée mais NSS fonctionne. Nous y reviendrons pour la configuration du cache.
PAM
Paquets (côté client)
paquets nécessaires: libpam-ldap
Fichiers de configuration
/etc/pam_ldap.conf
# egrep -v '(^#|^$)' /etc/pam_ldap.conf base dc=par,dc=ici uri ldap://notreAnnuaire ldap_version 3 rootbinddn cn=admin,dc=par,dc=ici pam_password crypt
/etc/pam_ldap.secret
Idem que pour /etc/libnss-ldap.secret, mot de passe (toujours en clair) du compte défini dans /etc/pam_ldap.conf.
/etc/pam.d/*
- common-account
account sufficient pam_ldap.so account required pam_unix.so
- common-auth
auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass
- common-password
password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5
- common-session
session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel session optional pam_ldap.so
required |
doit réussir mais les autres modules sont quand même testés. |
requisite |
doit réussir et les autres modules ne sont pas testés. |
optional |
l'échec ou la réussite de ce module n'a d'importance que si c'est le seul module défini. |
sufficient |
si le test est correct on obtient une acceptation immédiate. |
NFS
Serveur
Simple
/etc/exports
/partage/direction *(sync,rw,no_subtree_check,no_root_squash) /partage/juridique *(sync,rw,no_subtree_check,no_root_squash) /partage/compta *(sync,rw,no_subtree_check,no_root_squash)
sync |
... |
rw |
... |
no_subtree_check |
... |
no_root_squash |
... |
Couplé avec LDAP
Aucune modification à faire côté serveur en ce qui concerne le NFS, seulement ajout du schéma autofs dans le fichier slapd.conf
include /etc/ldap/schema/autofs.schema
Client
Simple
# aptitude install autofs nfs-common
/etc/auto.master
/media/IRS /etc/auto.test --timeout=120 --ghost
/etc/auto.test
compta -no_root_squash,rw notreServeur:/partage/compta ://IRS/compta direction -no_root_squash,rw notreServeur:/partage/direction ://IRS/direction juridique -no_root_squash,rw notreServeur:/partage/juridique ://IRS/juridique
Couplé avec LDAP
# aptitude install autofs-ldap
/etc/default/autofs
MASTER_MAP_NAME="ou=auto.master,ou=automount,dc=par,dc=ici" TIMEOUT=300 BROWSE_MODE="yes" LOGGING="verbose" LDAP_URI="ldap://notreAnnuaire" SEARCH_BASE="ou=automount,dc=par,dc=ici" MAP_OBJECT_CLASS="automountMap" ENTRY_OBJECT_CLASS="automount" MAP_ATTRIBUTE="ou" ENTRY_ATTRIBUTE="cn" VALUE_ATTRIBUTE="automountInformation" USE_MISC_DEVICE="yes"
/etc/nsswitch.conf
automount: ldap
Visualiser, depuis un client, les répertoires partagés disponibles:
showmount -e notreServeur
DHCP
Serveur DHCP
Paquet à installer:
isc-dhcp-server-ldap - serveur DHCP capable d'utiliser LDAP comme source
/etc/dhcp3/dhcpd.conf:
ldap-server "notreAnnuaire"; ldap-port 389; ldap-username "cn=admin,dc=par,dc=ici"; ldap-password "notrePassword"; ldap-base-dn "ou=dhcp,dc=par,dc=ici"; ldap-method dynamic; ldap-debug-file "/var/log/ldap-startup.log" ;
Annuaire
- Récupération du schéma DHCP pour LDAP
On récupère le fichier dhcp.schema que l'on stocke dans le répertoire /etc/ldap/schema.
# dpkg -L isc-dhcp-server-ldap|grep -i schema /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz # zless /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema
On modifie le slapd.conf en conséquence:
include /etc/ldap/schema/dhcp.schema
- LDIF
Fichier LDIF minimal:
#OU consacrée au DHCP dn: ou=dhcp,dc=par,dc=ici objectClass: organizationalUnit objectClass: top ou: dhcp # entrée représentant notre serveur (remarque : cn=xxx où xxx = hostname). dn: cn=srvDhcp,ou=dhcp,dc=par,dc=ici objectClass: top objectClass: dhcpServer cn: srvDhcp dhcpServiceDN: cn=DhcpConfig,ou=dhcp,dc=par,dc=ici # éléments de configurations dn: cn=DhcpConfig,ou=dhcp,dc=par,dc=ici cn: DhcpConfig objectClass: top objectClass: dhcpService objectClass: dhcpOptions dhcpStatements: ddns-update-style ad-hoc dhcpStatements: default-lease-time 86400 dhcpStatements: max-lease-time 604800 dhcpOption: domain-name "par.ici" 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 dhcpPrimaryDN: cn=srvDhcp,ou=dhcp,dc=par,dc=ici # réseau sur lequel on agit dn: cn=192.168.1.0,cn=DhcpConfig,ou=dhcp,dc=par,dc=ici cn: 192.168.1.0 objectClass: top objectClass: dhcpSubnet objectClass: dhcpOptions dhcpNetMask: 24 dhcpRange: 192.168.1.200 192.168.1.253 dhcpOption: broadcast-address 192.168.1.255
VPN
Paquets à installer
openvpn network-manager-openvpn-gnome
cp /usr/share/app-install/desktop/nm-applet.desktop /usr/share/gdm/autostart/LoginWindow