This is the old XigmaNAS forum in read only mode,
it will taken offline by the end of march 2021!



I like to aks Users and Admins to rewrite/take over important post from here into the new fresh main forum!
Its not possible for us to export from here and import it to the main forum!

[Topic unique] Serveur Openldap + Samba PDC + TLS

French community

Moderators: velivole18, ernie, mtiburs

Forum rules
Set-Up GuideFAQsForum Rules
User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir,

Oui effectivement j'avais déjà vu la modif à apporter au répertoire de base dans httpd.conf.
Merci !

Quand j'en serai au même point que toi, j'essaierai de compléter par la création d'une base Ldap avec le schéma NIS qui est le standard en entreprise et qui est ce qu'il faut mettre en place pour les clients Linux.

Je mettrai aussi les explications pour y connecter un client Linux, type Ubuntu pour arriver à l'objectif final d'avoir Nas4Free et les clients Linux sur le même serveur OpenLdap. Bien sûr, chaque utilisateur adaptera l'exemple en fonction de son type de client Linux.
Ensuite je ne sais pas si un client windows peut exploiter un serveur OpenLdap, sachant que l'on associe plutôt windows à un serveur AD.
Si je ne trouve rien sur le sujet, ce sera donc uniquement pour les client Linux. Mais OpenLdap peut aussi être exploité par les bases de données type MySQL aussi ou autres ...

Bon, je viens juste de régler mon problème sur mon serveur principal où j'ai toutes mes données sensibles (panne de disque), maintenant je vais essayer de te rejoindre et d'en arriver au même point que toi. Entre temps, j'ai pris 5 mn. pour finir de traduire la nouvelle version de Nas4Free en français ...

Merci à toi, Laster13.
Je pense que je ferai l'effort de traduire le tuto en anglais pour le mettre sur le forum anglais où il n'y a rien sur le sujet.
Bien évidemment, je le mettrai à ton nom, vu l'investissement que tu y as consacré.

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir,

Je te fais part de mes tests concernant les clés. J'ai suivi ce tuto:
http://loga.us/2014/08/27/openldap-and- ... omment-124

A priori cela fonctionne et d’après le test ultime :geek: , il semblerait que le TLS soit activé...en tout cas lorsque je fais ldapsearch... mais le ldapsearch ne fonctionne que par rapport au ldap.conf qui se trouve dans "/usr/local/etc/openldap" de la jail.

Avec ldapsearch (sans le TLS)
Image

Avec ldapsearch -ZZ (-ZZ permet d'activer le chiffrement TLS), j'obtiens:
Image

Ce qui prouve bien que le cryptage fonctionne mais, comme il y a toujours un mais, lorsque je transpose sur le client nas4free.....
Image

J'obtiens le log suivant en essayant de me connecter avec l'utisateur que j'avais créer plus haut soit "ppda"
Image

Voilà, si tu as une idée

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir,

A priori, il n'accepte pas le contenu de ca.cert, non ?
C'est la config du ldap.conf de Nas4Free et non pas du client d'OpenLdap, n'est-ce pas ?
Je vois aussi dans la config du webgui un chemin à partir de la racine de Nas4Free ("/mnt/pool1/finch/....")
Il n'y a pas confusion entre les paramètres de ldapsearch qui utilise la conf. du client OpenLdap et les paramètres de Nas4Free qui sont définis par les développeurs de Nas4Free du côté Nas4Free ?
Les clés sont de quel côté ?

Ce sont des questions à brûle pourpoint, à chaud, qui sont peut-être stupides.
Je fais mes devoirs, mais dès que j'en suis libéré, je me remets dans le sujet.

Merci.
A plus.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir,

Oui il n'accepte pas le contenu de la clé ca.cert. J'ai lu qu'au moment des questions posées pour la création des clés, il fallait être vigilant concernant le "common name" et qu'il fallait le servir avec un DNS existant, ce que je pense avoir fait.

Le ldapsearch fonctionne avec la config du client openldap et non pas nas4free, d'ailleurs à la racine de nas4free je nai pas accès à cette commande. Le log d'erreur est bien avec le client de nas4free.
velivole18 wrote:Je vois aussi dans la config du webgui un chemin à partir de la racine de Nas4Free ("/mnt/pool1/finch/....")
En fait finch est l'équivalent de TheBrig et j'indique le chemein de l'endroit ou se trouve les clés.
Il n'y a pas confusion entre les paramètres de ldapsearch qui utilise la conf. du client OpenLdap et les paramètres de Nas4Free qui sont définis par les développeurs de Nas4Free du côté Nas4Free ?
Si tu peux m'expliquer ce à quoi tu penses
velivole18 wrote:Les clés sont de quel côté ?
Les clés sont dans la jail, dans le dosssier "/usr/local/etc/openldap/certs"

J'ai tenté un lien symbolique de la clé ca.crt vers "/usr/local/etc/" à la racine de nas4free... rien n'y fait. :(

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir,

Tu avais évoqué une fois le problème des droits différents lorsqu'on utilise un lien.
N'y a -t-il pas des règles stricts à respecter sur les droits des fichiers des clés ?
Peut-être faut-il basculer les clés du côté Nas4Free ? et voir s'il n'y a pas un pb de droits qui devraient être si mes souvenirs sont bon 600 ?
OpenLdap est lancé avec le user "ldap" ? Les fichiers clés, à qui appartiennent-ils ? Et le client Nas4Free, à quel groupe appartient-il ? Est-ce que Nas4Free a accès aux fichiers clés par rapport à la notion de propriété et de groupe ?

Tout ceci pour essayer de te donner des déclics pour trouver la solution.

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir,

J'avais lu je ne sais plus où qu'au moment de générer les clés il fallait le faire en étant dans un répertoire particulier.
J'ai du écrire cela dans nos multiples échanges des vacances de noêl sur OpenLdap.
N'y aurait-il pas une façon de générer les clés en se plaçant dans un répertoire privé au bon endroit ?

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonjour,

Voilà ce que j'ai tenté et c'est ce qui est préconisé sur le tuto ci dessous
http://loga.us/2014/08/27/openldap-and- ... ldap-data/

Code: Select all

# cd /usr/local/etc/openldap
# mkdir certs
Je me suis ensuite positionné sur ce dossier et j'ai créé les clés

Code: Select all

cd /usr/local/etc/openldap/certs

Code: Select all

# openssl genrsa -out cakey.pem 2048
# chmod 600 cakey.pem
# openssl req -new -x509 -days 3650 -key cakey.pem -out cacert.pem

Code: Select all

# openssl genrsa -out ldap1key.pem 2048
# chown ldap:ldap ldap1key.pem
# chmod 600 ldap1key.pem
# openssl req -new -key ldap1key.pem -out ldap1csr.pem
# openssl x509 -req -days 3650 -in ldap1csr.pem -CA cacert.pem -CAkey cakey.pem -set_serial 01 -out ldap1cert.pem
Ce qu'il y a de très important pour chaque commande "openssl req..." c'est de servir correctement le"common name" pour chacun d'entre eux. Cela doit correspondre à des DNS existantes. Si tu as des infos sur ce sujet, je suis pas sur d'avoir fait correctement. Est ce que tu connais la méthode pour vérifier que les clés sont conformes et communiquent bien entre elles?

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonjour,

Mon expérience avec les clés, et qui fonctionnait, est ce que j'avais décrit sur notre sujet OpenLdap le 26 décembre 2014 ici d'après l'article suivant Lightweight Directory Access Protocol (LDAP) Chapter 29. C'est là entre autres qu'il est dit qu'il faut un répertoire privé.
Les données que j'utilisais systématiquement dans les questions étaient les suivantes :

Code: Select all

Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:famille
Organizational Unit Name (eg, section) []:local
Common Name (e.g. server FQDN or YOUR name) []:CA-Nas4Free-Ldap
Email Address []:mon adresse mail
Et ça fonctionnait plutôt bien.

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir,

Changement de cap, je ne suis pas arrivé à faire fonctionner les clés avec Openldap serveur installé dans une jail. Voici la méthode qui fonctionne en embedded sans JAIL en ZFS. Dans le tuto final on incluera la methode pour UFS.

Les pré-requis de départ sont les suivants :
- nous disposons d'un pool ZFS (dans le tuto nommé "pool1").
- le groupe "ldap" a été ajouté dans Nas4Free via le webgui avec l'id = 389.
- le user "ldap" a été ajouté dans Nas4Free via le webgui avec l'id = 389, le groupe principal = "ldap" + le groupe "wheel", avec un shell = "nologin" et aucun mot de passe.
- le service "Services|CIFS/SMB|Réglages" est activé (Authentification="login local", Protocole Maximum="SMB2", Jeu de caractères Dos="CP 437 (Latin US), Jeu de caractères Unix="UTF-8", Mots de passe vides coché).
- le service "Accès|LDAP" est activé (à adapter en fonction de votre configuration) :
URI = "ldap://192.168.0.21"
DN de base = "dc=julp,dc=com"
Bind anonyme coché
DN pour le bind racine = "cn=manager,dc=julp,dc=com"
Mots de passe pour le bind racine = "openldap" (à adapter différemment si vous le désirez, pour le tuto ce sera toujours celui-ci ...)
Chiffrement du mot de passe = "md5"
Suffixe utilisateur = "ou=Users"
Suffixe groupe = "ou=Groups"
Suffixe mot de passe = "ou=Users"
Suffixe de la machine = "ou=Computers"
Paramètres auxiliaires =
"ldap_version 3
timelimit 30
bind_timelimit 30
bind_policy soft"

Pour un montage unionFS il faut créer une partition UFS formatée... 2go suffiront

Code: Select all

zfs create -V 2G pool1/openldap

Code: Select all

newfs /dev/zvol/pool1/openldap

Code: Select all

mkdir /mnt/openldap

Code: Select all

mount /dev/zvol/pool1/openldap /mnt/openldap

Code: Select all

cd /mnt/openldap

Code: Select all

mkdir usr
mkdir var
mkdir tmp

Code: Select all

mount_unionfs -o w /mnt/openldap/usr/ /usr/

Code: Select all

mount_unionfs -o w /mnt/openldap/var/ /var/

Code: Select all

setenv PKG_TMPDIR /mnt/openldap/tmp/

Code: Select all

setenv PACKAGESITE "ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-stable/Latest/"

Code: Select all

pkg_add -rv openldap24-server

Code: Select all

pkg_add -rv openssl

Code: Select all

cp /usr/local/openssl/openssl.cnf.sample /usr/local/openssl/openssl.cnf 

Code: Select all

mkdir /var/db/openldap-data

Code: Select all

chmod 700 /var/db/openldap-data

Code: Select all

chown ldap:ldap /var/db/openldap-data
Dans le Webui de Nas4free, il faut créer un utilisateur ldap et un groupe ldap (UID:389 et GID:389) sinon au redémarrage de Nas4free, le serveur openldap ne fonctionnera pas.

Code: Select all

cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG
A ce stade je configure ldap.conf, slapd.conf dans "/usr/local/etc/openldap" SANS LES CLES

ldap.conf

Code: Select all

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE	dc=julp,dc=com
URI	ldap://192.168.0.21

#SIZELIMIT	12
#TIMELIMIT	15
#DEREF		never
slapd.conf

Code: Select all

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include		/usr/local/etc/openldap/schema/core.schema
include        /usr/local/etc/openldap/schema/cosine.schema
include        /usr/local/etc/openldap/schema/inetorgperson.schema
include        /usr/local/etc/openldap/schema/nis.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral	ldap://root.openldap.org

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

# Load dynamic backend modules:
modulepath	/usr/local/libexec/openldap
moduleload	back_bdb
# moduleload	back_hdb
# moduleload	back_ldap



# Sample security restrictions
#	Require integrity protection (prevent hijacking)
#	Require 112-bit (3DES or better) encryption for updates
#	Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#	Root DSE: allow anyone to read it
#	Subschema (sub)entry DSE: allow anyone to read it
#	Other DSEs:
#		Allow self write access
#		Allow authenticated users read access
#		Allow anonymous users to authenticate
#	Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
#	by self write
#	by users read
#	by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database	bdb
suffix		"dc=julp,dc=com"
rootdn		"cn=manager,dc=julp,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw		secret
rootpw	 {MD5}feSlkL+wVCSXPBHPOnFPSA==

# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory	/var/db/openldap-data
# Indices to maintain
index	objectClass	eq
index    cn,sn,uid,displayName    pres,sub,eq
index    uidNumber,gidNumber      eq
le code secret de rootpw est généré par la commande

Code: Select all

/usr/local/sbin/slappasswd -h '{MD5}'
et enfin ma base de test : base.ldif

Code: Select all

dn: dc=julp,dc=com
dc: julp
objectclass: top
objectclass: domain
objectclass: domainRelatedObject
description: Mon annuaire
associatedDomain: julp.com

dn: ou=Utilisateurs,dc=julp,dc=com
objectclass: top
objectclass: organizationalUnit
ou: Utilisateurs
description: Les utilisateurs

dn: ou=Groupes,dc=julp,dc=com
objectclass: top
objectclass: organizationalUnit
ou: Groupes
description: Les groupes

dn: cn=Patrick Poivre d'Arvor,ou=Utilisateurs,dc=julp,dc=com
cn: Patrick Poivre d'Arvor
sn: ppda
objectclass: top
objectclass: person
objectclass: posixAccount
objectclass: shadowAccount
uid: ppda
uidnumber: 2000
gidnumber: 0
loginShell: /bin/bash
homeDirectory: /mnt/pool1/Photos
userpassword: {MD5}feSlkL+wVCSXPBHPOnFPSA==

dn: cn=wheel,ou=Groupes,dc=julp,dc=com
objectclass: top
objectclass: posixGroup
cn: wheel
gidNumber: 0
description: groupe wheel
memberUid: ppda
Ajouter dans postinit dans Système|Avancé|Scripts de commande

Code: Select all

mkdir /mnt/opendlap

Code: Select all

mount /dev/zvol/pool1/opendlap /mnt/opendlap

Code: Select all

mount_unionfs -o w /mnt/openldap/usr/ /usr/

Code: Select all

mount_unionfs -o w /mnt/openldap/var/ /var/

Code: Select all

/usr/local/etc/rc.d/slapd start 
Et dans Système|Avancé|rc.conf, définir la variable suivante :

Code: Select all

slapd_enable = "YES"
Je lance ensuite openldap en mode debug

Code: Select all

/usr/local/libexec/slapd -d -1
On peut aussi, mais sans mode debug :
- lancer le serveur OpenLdap avec la commande suivante :

Code: Select all

/usr/local/etc/rc.d/slapd start
- Stopper le serveur OpenLdap avec la commande suivante :

Code: Select all

/usr/local/etc/rc.d/slapd stop
- Relancer le serveur OpenLdap avec la commande suivante :

Code: Select all

/usr/local/etc/rc.d/slapd restart
Dans une autre console putty, si lancé en mode debug

Code: Select all

cd /usr/local/etc/openldap
J'incrémente ma base avec la commande

Code: Select all

/usr/local/bin/ldapadd -x -f base.ldif -W -D cn=manager,dc=julp,dc=com
On peut maintenant se connecter avec l'utilisateur enregistré "ppda" dans la base et cela fonctionne.

Les clés maintenant

Code: Select all

mkdir /usr/local/etc/openldap/certs

Code: Select all

cd /usr/local/etc/openldap/certs

Code: Select all

openssl genrsa -out cert.key 1024

Code: Select all

openssl req -new -key cert.key -out cert.csr
En common name j'ai mis l ip de nas4free, mais on peut mettre dans le champ CN = l'URI du webgui "Accès|LDAP" et il faut que cela corresponde au hostname du serveur). En mettant le hosts à jour et en utilisant le hostname au lieu de l adresse IP dans LDAP.conf et le client LDAP webui.
Pour vérifier que son hostname est à jour, taper la commande "hostname".
Pour forcer le hostname, taper " hostname nas4free.julp.com" par exemple.

Code: Select all

openssl x509 -req -in cert.csr -days 365 -signkey cert.key -out cert.crt

Code: Select all

cp cert.crt cacert.crt
Pour les clés j'ai aussi testé cette méthode et elle fonctionne également

Code: Select all

# cd /usr/local/etc/openldap
# mkdir certs
Je me suis ensuite positionné sur ce dossier et j'ai créé les clés

Code: Select all

cd /usr/local/etc/openldap/certs

Code: Select all

# openssl genrsa -out cakey.pem 2048
# chmod 600 cakey.pem
# openssl req -new -x509 -days 3650 -key cakey.pem -out cacert.pem

Code: Select all

# openssl genrsa -out ldap1key.pem 2048
# chown ldap:ldap ldap1key.pem
# chmod 600 ldap1key.pem
# openssl req -new -key ldap1key.pem -out ldap1csr.pem
# openssl x509 -req -days 3650 -in ldap1csr.pem -CA cacert.pem -CAkey cakey.pem -set_serial 01 -out ldap1cert.pem
J'essayerai prochainement la méthode décrite dans le lien que tu as posté plus haut mais je pense que cela devrait fonctionner également sans problèmes
https://www.freebsd.org/doc/handbook/network-ldap.html

Mon fichier ldap.conf dans "/usr/local/etc/openldap"

Code: Select all

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE	dc=julp,dc=com
URI	ldap://192.168.0.21

ssl                     start_tls
TLS_REQCERT             demand
tls_cacert              /usr/local/etc/openldap/certs/cacert.crt




SIZELIMIT	12
TIMELIMIT	15
DEREF		never
Mon fichier slapd.conf dans "/usr/local/etc/openldap"

Code: Select all

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include		/usr/local/etc/openldap/schema/core.schema
include        /usr/local/etc/openldap/schema/cosine.schema
include        /usr/local/etc/openldap/schema/inetorgperson.schema
include        /usr/local/etc/openldap/schema/nis.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral	ldap://root.openldap.org

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

# Load dynamic backend modules:
modulepath	/usr/local/libexec/openldap
moduleload	back_bdb
# moduleload	back_hdb
# moduleload	back_ldap

security ssf=128

TLSCertificateFile /usr/local/etc/openldap/certs/cert.crt
TLSCertificateKeyFile /usr/local/etc/openldap/certs/cert.key
TLSCACertificateFile /usr/local/etc/openldap/certs/cacert.crt


# Sample security restrictions
#	Require integrity protection (prevent hijacking)
#	Require 112-bit (3DES or better) encryption for updates
#	Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#	Root DSE: allow anyone to read it
#	Subschema (sub)entry DSE: allow anyone to read it
#	Other DSEs:
#		Allow self write access
#		Allow authenticated users read access
#		Allow anonymous users to authenticate
#	Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
#	by self write
#	by users read
#	by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# BDB database definitions
#######################################################################

database	bdb
suffix		"dc=julp,dc=com"
rootdn		"cn=manager,dc=julp,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw		secret
rootpw	 {MD5}feSlkL+wVCSXPBHPOnFPSA==

# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory	/var/db/openldap-data
# Indices to maintain
index	objectClass	eq
index    cn,sn,uid,displayName    pres,sub,eq
index    uidNumber,gidNumber      eq
La commande pour incrémenter la base sans TLS

Code: Select all

/usr/local/bin/ldapadd -x -f base.ldif -W -D cn=manager,dc=julp,dc=com
La commande pour incrémenter la base avecTLS

Code: Select all

/usr/local/bin/ldapadd -Z -f base.ldif -W -D cn=manager,dc=julp,dc=com
Consulter la base SANS TLS

Code: Select all

/usr/local/bin/ldapsearch
Consulter la base avecTLS

Code: Select all

/usr/local/bin/ldapsearch -ZZ
Cela fonctionne parfaitement bien ;)

Pour terminer la base dbd fonctionne très bien contrairement aux idées préconçues que j'ai eu au départ.

client ldap Nas4Free
Image

C'est en appliquant cette méthode qu'au final je me suis dit que peut être si cela ne fonctionnait pas dans la jail c est que tout simplement openssl n'est pas installé nativement dans nas4free contrairement au jails ou ça l'est :|

J'avais ce message d'erreur
Image

Du coup prochaine étape, je recommence dans une jail et j'installe openssl dans nas4free

Edit: Apres plusieurs tentatives, impossible de faire fonctionner le TLS dans une jail.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir,

Dans la continuité de la méthode utilisée au dessus, voici comment j'ai procédé pour installer phpldapadmin et le faire fonctionner avec le serveur WEB de Nas4free (embedded) et le chiffrement TLS.

En considérant que les commandes suivantes ont été intégrées dans Système|Avancé|Scripts de commande

Code: Select all

mount_unionfs -o w /mnt/openldap/usr/ /usr/
mount_unionfs -o w /mnt/openldap/var/ /var/

Code: Select all

setenv PKG_TMPDIR /mnt/openldap/tmp/
setenv PACKAGESITE "ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-stable/Latest/"

Code: Select all

pkg_add  -v -r php5
pkg_add  -v -r php5-extensions
pkg_add  -v -r php5-gettext
pkg_add  -v -r php5-ldap
Je poursuis avec les commandes suivantes:

Code: Select all

cd /mnt/openldap/tmp

Code: Select all

fetch http://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz

Code: Select all

tar -zxvf phpldapadmin-1.2.3.tgz

Code: Select all

mv phpldapadmin-1.2.3 /usr/local/www/phpldapadmin

Code: Select all

mv /usr/local/www/phpldapadmin/config/config.php.example /usr/local/www/phpldapadmin/config/config.php
A ce stade, il faut modifier le fichier config.php de la maniere suivante:

Code: Select all

/*********************************************
 * Define your LDAP servers in this section *
 *********************************************/

$servers = new Datastore();

/* $servers->NewServer('ldap_pla') must be called before each new LDAP server
 declaration. */
$servers->newServer('ldap_pla');

/* A convenient name that will appear in the tree viewer and throughout
 phpLDAPadmin to identify this LDAP server to users. */
$servers->setValue('server','name','My LDAP Server');

/* Examples:
 'ldap.example.com',
 'ldaps://ldap.example.com/',
 'ldapi://%2fusr%local%2fvar%2frun%2fldapi'
 (Unix socket at /usr/local/var/run/ldap) */
$servers->setValue('server','host','ldap://ldap1.loga.us');                   ---------------->ici (modifier l'adresse ldap)

/* The port your LDAP server listens on (no quotes). 389 is standard. */
$servers->setValue('server','port',389);                                             ----------------->ici

/* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin
 auto-detect it for you. */
// $servers->setValue('server','base',array(''));

/* Five options for auth_type:
 1. 'cookie': you will login via a web form, and a client-side cookie will
 store your login dn and password.
 2. 'session': same as cookie but your login dn and password are stored on the
 web server in a persistent session variable.
 3. 'http': same as session but your login dn and password are retrieved via
 HTTP authentication.
 4. 'config': specify your login dn and password here in this config file. No
 login will be required to use phpLDAPadmin for this server.
 5. 'sasl': login will be taken from the webserver's kerberos authentication.
 Currently only GSSAPI has been tested (using mod_auth_kerb).

 Choose wisely to protect your authentication information appropriately for
 your situation. If you choose 'cookie', your cookie contents will be
 encrypted using blowfish and the secret your specify above as
 session['blowfish']. */
$servers->setValue('login','auth_type','session');                              --------------------->ici

/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or
 'cookie','session' or 'sasl' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS
 BLANK. If you specify a login_attr in conjunction with a cookie or session
 auth_type, then you can also specify the bind_id/bind_pass here for searching
 the directory for users (ie, if your LDAP server does not allow anonymous
 binds. */
// $servers->setValue('login','bind_id','');
# $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');

/* Your LDAP password. If you specified an empty bind_id above, this MUST also
 be blank. */
// $servers->setValue('login','bind_pass','');
# $servers->setValue('login','bind_pass','secret');

/* Use TLS (Transport Layer Security) to connect to the LDAP server. */
$servers->setValue('server','tls',true);                                               ---------------------->ici
Pour se connecter il suffit de pointer avec l'adresse suivante
http://ip_nas4free/phpldapadmin/

Informations complémentaires:
L'ajout d'un compte d'utilisateur générique va commencer avec un UID de 1000. Cela peut entrer en conflit avec les utilisateurs ajoutés à l'hôte depuis Nas4free, sachant que Nas4free commence avec un UID de 1000. De la même manière la création d'un groupe dans phpldapadmin commence a 500 alors que Nas4free lui commence à 1000. Donc pour éviter toute confusion dans le mode de fonctiuonnement de phpldapadmin, on va modifier le fichier modèle " posixAccount" de la manière suivante:

Pour changer l'UID minimum dans phpLDAPadmin
On edite le fichier suivant:

Code: Select all

nano /usr/local/www/phpldapadmin/templates/creation/posixAccount.xml
et on remplace la ligne suivante

Code: Select all

"=php.GetNextNumber(/;uidNumber)
par:

Code: Select all

"=php.GetNextNumber(/;uidNumber;;;;10000)"
Pour changer le GID minimum dans phpLDAPadmin
on edite le fichier suivant:

Code: Select all

nano /usr/local/www/phpldapadmin/templates/creation/posixGroup.xml
et on remplace la ligne suivante

Code: Select all

"=php.GetNextNumber(/;gidNumber)
par:

Code: Select all

"=php.GetNextNumber(/;gidNumber;;;;10000)"
Par ailleurs, lorsque l'on se connecte sur phpldapadmin on a un message d'alerte et non d'erreur
Image

Pour le supprimer il suffit dans /usr/local/www/phpldapadmin/config/config.php
de remplacer

Code: Select all

/* Hide the warnings for invalid objectClasses/attributes in templates. */
// $config->custom->appearance['hide_template_warning'] = false;
par

Code: Select all

/* Hide the warnings for invalid objectClasses/attributes in templates. */
   $config->custom->appearance['hide_template_warning'] = true;
On relance le serveur et phpldapadmin fonctionne maintenant avec le serveur web de Nas4free et le chiffrement TLS

Prochaine étape SAMBA

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir,

Merci Laster13.
Je reviens vers toi sur ce sujet à la fin du mois.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir,

Petite modification de la méthode utilisée sachant que je l'avais testée sur embedded UFS. Je l'ai donc modifiée de manière à ce qu'elle fonctionne en ZFS car paradoxalement il y a quand même quelques petites différences. En fait la commande unionFS ne fonctionne que sur UFS et donc pour que cela soit également possible avec ZFS, il faut créer une partition UFS et créer le montage qui va bien ..avec les commandes suivantes:
zfs create -V 2G pool1/opendlap
newfs /dev/zvol/pool1/opendlap
mkdir /mnt/opendlap
mount /dev/zvol/pool1/opendlap /mnt/opendlap
La mise à jour a été faite dans les posts précédents

UFS...ZFS.. on s'y perd :mrgreen:

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir,

La configuration samba m'apporte aujourd'hui quelques surprises assez étonnantes que je n'arrive pour l'instant pas à expliquer. Des lors que je crée un utilisateur dans nas4free, il se retrouve immédiatement dans la base ldap... incroyable !!!

Ce qui tendrait a dire que tu avais raison dès le départ à savoir que les deux bases peuvent être liées entre elles. Ce que je suppose...Samba est relié avec LDAP grâce à un identifiant SID. Par ailleurs samba demande pour fonctionner avec LDAP de connaitre le password du serveur Openldap grâce a la commande suivante:

Code: Select all

smbpasswd –w motdepassedmin
Au final entre le SID et le password, je suppose que c'est de cette manièere que samba communique avec la base openldap et fait que les deux bases sont maintenant liées et fusionnelles!! genial!

Pour terminer un exemple.. J'ai crée dans nas4free un utiisateur "patrick" ... jusque là classique.
Je tape ensuite la commande suivante:

Code: Select all

/usr/local/bin/ldapsearch
et voila ce que j'obtiens
uid: coco
cn: coco

# patrick, Utilisateurs, julp.com
dn: uid=patrick,ou=Utilisateurs,dc=julp,dc=com
uid: patrick
sambaSID: S-1-5-21-4089065379-360782854-1121376399-1002
displayName: patrick
sambaAcctFlags: [DU ]
objectClass: sambaSamAccount
objectClass: account

# search result
search: 2
result: 0 Success

# numResponses: 13
# numEntries: 12

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir,
Alors ça, pour une surprise, c'est une surprise !
C'est avec quelle version de Nas4Free ? Peut-être est-ce une nouveauté de la dernière version ?
Donc cela veut au moins dire que tu as le bon schéma dans openldap !
Je me demande toujours pourquoi une telle fonctionnalité que les développeurs de Nas4Free ont donc développée est toujours aussi peu documentée !
En tout cas, sacrée avancée !
Je reviens vers toi courant de semaine prochaine pour reprendre toute l'install à zéro et me remettre dans le bain.
Merci.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonjour,

J'ai fait mes tests sur Shigawire (revision 972) mais je vais essayer tout à l'heure avec la version 9.3.0.2 - (révision 1349) - Nayla, je reviendrai vers toi pour te donner le résultat de mes tests.

Edit: test effectué et cela fonctionne avec cette fois la base mdb. Quelques différence tout de même dans l'install
viewtopic.php?f=35&t=8070&p=50998#p50998


Par ailleurs, je vais profiter de ce post pour écrire ce que j'ai fait car j'ai peur d'oublier! (cela commence à faire pas mal d'information) :roll:

Pour le shéma samba, j'ai fouillé sur le net et je ne l'ai pas trouvé, ce qui ne veut pas dire qu''il est introuvable mais je me suis souvenu que dans le package samba36, il était fourni avec. J'ai donc installé samba36, récupérer les shémas que je garde bien au chaud et ensuite j'ai recommencé une install propre sans ce package.
schema.rar
Il faut mettre ces 2 fichiers dans le dossier "/usr/local/etc/openldap/schema", modifier le fichier slapd.conf en rajoutant la ligne suivante

Code: Select all

include        /usr/local/etc/openldap/schema/samba.schema
et ensuite relancer le serveur.

Samba doit connaître le mot de passe (dans l’exemple c’est motdepasseadmin, à remplacer par le vrai mot de passe admin LDAP) pour l’administration LDAP. Il faut en effet que Samba ait la permission de créer, supprimer, modifier des entrées pour les comptes utilisateurs, groupes et machines.

Code: Select all

smbpasswd –w motdepassedmin
Samba va stocker ce mot de passe dans le fichier "/var/etc/private/secrets.tdb".

On a également besoin de connaître le SID du domaine, voila ce que j'ai tapé

Code: Select all

net getlocalsid
cela me renvoit

Code: Select all

SID for domain NAS4FREE is: S-1-5-21-3639633553-4277490906-3837020104
Et c'est à ce moment préci qu'une nouvelle entrée apparait dans la base ldap, je tape ldapsearch et cela me renvoit

Code: Select all

# NAS4FREE, julp.com
dn: sambaDomainName=NAS4FREE,dc=julp,dc=com
sambaDomainName: NAS4FREE
sambaSID: S-1-5-21-3639633553-4277490906-3837020104
sambaAlgorithmicRidBase: 1000
objectClass: sambaDomain
sambaNextUserRid: 1000
sambaMinPwdLength: 5
sambaPwdHistoryLength: 0
sambaLogonToChgPwd: 0
sambaMaxPwdAge: -1
sambaMinPwdAge: 0
sambaLockoutDuration: 30
sambaLockoutObservationWindow: 30
sambaLockoutThreshold: 0
sambaForceLogoff: -1
sambaRefuseMachinePwdChange: 0
sambaNextRid: 1002
Je force également notre Samba pour que son SID soit le même :

Code: Select all

net setlocalsid S-1-5-21-3639633553-4277490906-3837020104
Je ne sais pas si cette dernière commande est nécessaire mais je l'ai lu donc dans le doute... je pense que l'on aura l'occasion d'en avoir la confirmation.

Maintenant comme je te l'ai dis dans le post précédent, des lors que je crée un utilisateur dans nas4free, il s'incrémente automatiquement dans la base ldap de cette maniere

Code: Select all

# pat, Utilisateurs, julp.com
dn: uid=pat,ou=Utilisateurs,dc=julp,dc=com
uid: pat
sambaSID: S-1-5-21-3639633553-4277490906-3837020104-1001
displayName: pat
sambaAcctFlags: [DU         ]
objectClass: sambaSamAccount
objectClass: account
Si je supprime cet utilisateur de la base de nas4free, il reste malgré tout dans la base ldap, par contre ce shéma me semble un peu léger pour être exploiter correctement et pour te donner un exemple une fois effacé de nas4free, ce compte ne me permettait plus de me connecter ne serait ce qu'en ssh à nas4free. Il m'a fallu rajouter un objetClass (objectClass: posixAccount) pour compléter les infos et notamment un password, ensuite la connection en ssh etait possible. Peu être faut il rajouter des index dans slapd.conf ? (Je dois te paraitre un peu confus :shock: )

Par contre et c'est le point noir :twisted: je n'arrive pas à voir Nas4free dans mon windows 7, et j'en suis là!

Je poursuis
You do not have the required permissions to view the files attached to this post.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonjour,
Jusqu'à présent le serveur Samba ne gérait que ses propres partages mais aucune authentification de machines.Samba peut être configuré pour apparaître comme contrôleur de domaine de type Windows NT4. Un des avantages majeurs de cette configuration est la centralisation authentifiants pour les machines et les utilisateurs sous windows et unix. Samba peut également stocker les informations utilisateurs de différentes manières.
En fait cela revient à configurer un serveur PDC Samba/OpenLdap

Ce qui fonctionne jusqu'à présent:
-configuration openldap
-sécurisation TLS
-phpldapadmin

Quelques lignes que je place dans les paramètres de SMB/CIFS
Image

Je place les 2 shémas samba dans "/usr/local/etc/openldap/schema" et dans slapd.conf, j'intègre la ligne suivante

Code: Select all

include        /usr/local/etc/openldap/schema/samba.schema
Je relance ensuite Nas4free, et le serveur openldap.Le client ldap de nas4free est quand à lui activé.

Code: Select all

smbpasswd -w mot_de_passe

Code: Select all

net getlocalsid
Ces 2 commandes générent la création du domaine samba dans la base ldap
# WORKGROUP, julp.com
dn: sambaDomainName=WORKGROUP,dc=julp,dc=com
sambaAlgorithmicRidBase: 1000
sambaNextUserRid: 1000
sambaMinPwdLength: 5
sambaPwdHistoryLength: 0
sambaLogonToChgPwd: 0
sambaMaxPwdAge: -1
sambaMinPwdAge: 0
sambaLockoutDuration: 30
sambaLockoutObservationWindow: 30
sambaLockoutThreshold: 0
sambaForceLogoff: -1
sambaRefuseMachinePwdChange: 0
gidNumber: 1000
sambaDomainName: WORKGROUP
sambaSID: S-1-5-21-2029825364-390190297-4154265949
sambaNextRid: 1000
objectClass: sambaDomain
objectClass: sambaUnixIdPool
uidNumber: 1003

Dans le même esprit que les posts plus haut et en considérant que les commandes de montage ont bien été intégrées dans Système|Avancé|Scripts de commande, j'installe maintenant les smbldap-tools

Code: Select all

pkg_add -rv smbldap-tools
Ensuite je configure les deux fichiers suivants qui se trouvent dans "/usr/local/etc/smbldap-tools"
-smbldap.conf
-smbldap_bind.conf

Rien de compliquer, il suffit de remplacer certains paramètres genre.. ou=group,ou=utilisateurs etc... et de renseigner le SID de samba.

Ensuite un lien symbolique

Code: Select all

ln -s /var/etc/smb.conf /usr/local/etc/smb.conf
Ensuite je lance

Code: Select all

smbldap-populate
et voilà ce que j'obtiens
nas4free: tmp # net getlocalsid
SID for domain NAS4FREE is: S-1-5-21-2029825364-390190297-4154265949
nas4free: tmp # ln -s /var/etc/smb.conf /usr/local/etc/smb.conf
nas4free: tmp # /usr/local/sbin/smbldap-populate
Populating LDAP directory for domain WORKGROUP (S-1-5-21-2029825364-390190297-41 54265949)
(using builtin directory structure)

entry dc=julp,dc=com already exist.
adding new entry: ou=Utilisateurs,dc=julp,dc=com
adding new entry: ou=Groupes,dc=julp,dc=com
adding new entry: ou=Computers,dc=julp,dc=com
adding new entry: ou=Idmap,dc=julp,dc=com
entry sambaDomainName=WORKGROUP,dc=julp,dc=com already exist. Updating it...
adding new entry: uid=root,ou=Utilisateurs,dc=julp,dc=com
adding new entry: uid=nobody,ou=Utilisateurs,dc=julp,dc=com
adding new entry: cn=Domain Admins,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Domain Users,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Domain Guests,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Domain Computers,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Administrators,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Account Operators,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Print Operators,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Backup Operators,ou=Groupes,dc=julp,dc=com
adding new entry: cn=Replicators,ou=Groupes,dc=julp,dc=com

Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:
Ma base openldap est maintenant prête à manager le contrôleur de domaine samba ;)
Image

Je me demandais jusqu'à présent pourquoi et surtout à quoi pouvait servir cette clé dans ldap client de Nas4free, qui est le ou=Computers, maintenant je comprends mieux ;)

Les smbldap tools sont des oultils hyper pratique pour manager les utilisateurs, groupes et machines de samba.

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonjour Laster13,

Que de travail et d'énergie tu dépenses sur ce sujet !
Je vais essayer de reprendre le train en marche.
Je pense repartir de ton post ci : viewtopic.php?f=35&t=7926
et faire les posts suivants.
Au point où tu en es, le résultat de ton travail pourrait faire l'objet d'une proposition d'évolution de Nas4Free pour nos admins préférés.
Ça ne te tente pas de leur proposer ?
Bon, je vais suivre à la lettre ton tuto et tenter de comprendre.
Le seul truc qui me gène c'est qu'il faut tout recommencer à la prochaine install/upgrade de Nas4Free.
Avec cette remarque, je commence à comprendre l'intérêt d'avoir un serveur openldap stable et indépendant "à côté" de Nas4Free, mais cela demande d'avoir 2 serveurs ... L'important est de "stocker" la base ldap sur nos disques de serveur NAS afin de la retrouver d'une install à l'autre.
Je me lance et te tiens au courant.
Merci pour tout !
A +

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonjour velivole18
velivole18 wrote:Le seul truc qui me gène c'est qu'il faut tout recommencer à la prochaine install/upgrade de Nas4Free.
Pas du tout, tout est installé en dur sur le pool. Une fois la mise à jour de nas4free effectuée, il suffit simplement de remettre les mount_unionfs dans script de commande ;)

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonjour Laster13,

Dans le post viewtopic.php?f=35&t=7926
lorsque j'arrive ici : A ce stade je configure ldap.conf, slapd.conf dans "/usr/local/etc/openldap" SANS LES CLES
je n'ai pas le répertoire /usr/local/etc/openldap".
Et j'ai perdu "/mnt/openldap" ... :o
J'ai voulu retourner à mon interface webgui pour créer le user et le group ldap, mais plus d'interface webgui --> obligation de rebooter mon serveur et maintenant plus de répertoire construits auparavant.
Créer le user et le groupe ldap au tout début du tuto, c'est mieux je pense.
Bon, je pense que je vais recommencer.
A+

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonjour Laster13,

Oups ... après avoir repris, je bloque sur la commande "slappasswd -h '{MD5}'" où il dit que la commande slappasswd n'existe pas.
Je continue ...

Edit :

la commande "slappasswd" se trouve être le lien "/mnt/openldap/usr/local/sbin/slappasswd" qui pointe sur "../libexec/slapd".
Et l'exécution de slapd donne "./slapd: Exec format error. Binary file not executable., tout comme le lancement de "/usr/local/libexec/slapd -d -1".

Je continue ...

Edit :

Je pense avoir compris :
quand je lis la commande "setenv PACKAGESITE "ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-stable/Latest/"
je comprends que je suis sur une machine 32 bits ... et donc ce n'est pas dans amd64 que je dois aller chercher les packages.

A+.

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonjour Laster13,

J'ai du 64 bits d'installé et mélangé dans mon serveur 32 bits.
Je vais ré-installer complètement mon Nas4Free et reprendre l'install de openldap en faisant attention cette fois-ci de pointer sur "i386".
A+.

Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

J'utilise la commande "/usr/local/libexec/slapd -d -1" pour lancer le serveur car il y a un debug très précis. Je laisse cette consolle putty ouverte et j'ouvre une autre console pour travailler. Si je ferme la console dans laquelle j ai lancé openldap, le service s arrête. Une fois tout configurer, tu mets slapd_enable dans rc.conf et dans script de commande tu mets /usr/local/etc/rc.d/slapd start et le service se lancera tout seul au démarrage de nas4free.

Pratiquement toutes les commande ldap et smbldap sont dans "/usr/local/sbin" et ce qu il y a d étonnant c est que la 1ere fois que tu les utilises, tu es obligé d afficher le chemin complet, et ensuite pour les autres fois il suffut de taper à la racine de nas4free juste"ldapsearch" par exemple et non pas /usr/loca/sbin/ldapsearch ;)

Concernant ton idée de soumettre ce travail aux admins, je te laisse le soin de le faire des lors que tu feras le tuto pour la communauté anglo saxonne. Mon anglais est trop pauvre pour que je me lance à expliquer tout çà en anglais :lol:

Par contre attention!! le tuto que j ai fait est pour ZFS, je sais pas si tu es en zfs sur ta machine 32 bit! :shock: Si tu es en UFS dis le moi je te fais un topo, y a pas grand chose à changer!

Le fait de creer un utilisateur ldap dans nas4free ne sert qu au redémarrage de nas4free pour que le service se lance tout seul car le fichier /usr/local/etc/rc./slapd fait référence à l utilisateur "ldap"

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonjour Laster13,

Pour le tuto en anglais, je le ferai dès que je "maîtriserai" le tuto en français, mais il y a encore un bout de chemin à faire de mon côté.
J'ai planté mon Nas4Free sur ma machine physique 32 bits ...
J'étais presque prêt à refaire l'install de Nas4Free, mais je me rends compte que depuis plusieurs mois je perds beaucoup de temps avec ce PC qui n'est pas dans ma pièce principale (mon dressing me sert de salle machines ! :lol: ) et qui ne boot pas sur clé USB :cry: . Donc à chaque fois, je dois aller chercher ce lourd PC (HPxw5500) avec ses 6 disques IDE puis le rebrancher dans mon bureau avec nouvel écran, souris, clavier ... pour ré-investiguer dessus ou refaire une install. Puis une fois au point, retour dans le dressing !
Il y a quelques temps, pour openldap, j'ai fais des install de Nas4Free en virtualbox, mais sur mon PC portable de bureau. Ça marche mais avoir le serveur sur son poste client, y'a mieux ... :?
Du coup, une bonne fois pour toute, je décide d'installer virtualbox sur Ubuntu server sur mon lourd PC i386 qui restera à demeure dans mon dressing.
Avec l'application RemoteBox sur mon poste client Ubuntu, j'aurai accès à virtualbox sur mon serveur linux Ubuntu pour y faire toutes mes expériences, et en 1er lieu installer en machine virtuelle Nas4Free pour y installer OpenLdap. Comme cela si je casse tout, je "recharge" une machine virtuelle "snapshotée" auparavant et hop c'est reparti.
Je me lance, quitte à perdre un peu de temps au départ, pour en gagner par la suite.
A +

Merci.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Oui je te comprends, prends le temps de tout mettre en place de manière à travailler dans de bonnes conditions.

Pour la route ;) Je te disais que les outils smbldap étaient puissants, ils sont une dizaine en tout à permettre de manager complètement ldap de A à Z aussi bien pour des comptes SAMBA que UNIX... un régal et un exemple :

Je tape juste cette commande et voila ce qu elle me sort:

Code: Select all

smbldap-useradd -a corinne
dn: uid=corinne,ou=Utilisateurs,dc=julp,dc=com
cn: corinne
displayname: corinne
gecos: System User
gidnumber: 513
givenname: corinne
homedirectory: /home/corinne
loginshell: /bin/bash
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: posixAccount
objectclass: shadowAccount
objectclass: inetOrgPerson
objectclass: sambaSamAccount
sambaacctflags:
sambahomedrive: H:
sambahomepath: \\PDC-SRV\corinne
sambakickofftime: 2147483647
sambalmpassword: 9366DAE1FDB3E1B08B0EA5A7DF135B03
sambalogofftime: 2147483647
sambalogonscript: logon.bat
sambalogontime: 0
sambantpassword: D1897F69E2F045F10E574C7762DB063B
sambaprimarygroupsid: S-1-5-21-2029825364-390190297-4154265949-513
sambaprofilepath: \\PDC-SRV\profiles\corinne
sambapwdcanchange: 0
sambapwdlastset: 1425206613
sambapwdmustchange: 1429094613
sambasid: S-1-5-21-2029825364-390190297-4154265949-3002
sn: corinne
uid: corinne
uidnumber: 1001
userpassword: {MD5}feSlkL+wVCSXPBHPOnFPSA==

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir Laster13,

Ok ça y est.
J'ai mon Nas4Free Full en virtualbox sur ma Ubuntu-server tout en restant assis dans mon bureau ! :D
Peut-être je ferai un tuto pour installer un tel environnement, mais ce n'est pas vraiment du Nas4Free, c'est plutôt Ubuntu Server et VirtualBox. Bon, mais si les lecteurs promettent de l'utiliser pour installer de VM Nas4Free, je veux bien. On verra ... :roll:

J'ai donc repris l'install de openldap.
Je suis arrivé à l'importation de la base "base.ldif" sans problème.
Cependant, je bloque au niveau du mot de passe de "ppda" au moment de la connexion.
Dans le fichier "base.ldif", j'ai mis le mot de passe crypté à l'aide de la commande "/mnt/openldap/usr/local/sbin/slappasswd -h '{MD5}'".
Est-ce bien cela ? (d'ailleurs dans le tuto il faudra indiquer le chemin complet de la commande, sinon, le système ne connaît pas la commande "slappasswd ").
Si j'ai bien compris, arrivé à ce niveau, je peux quitter ssh/root pour me reconnecter en ssh/ppda ?
J'ai regardé dans la base avec ldapsearch et le mot de passe crypté n’apparaît pas avec la même expression que ce que j'ai mis dans "base.ldif".
Je me dis que c'est normal car à l'import des data de "base.ldif" openldap doit re-crypter, non ?
Je continue à chercher.

A+.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonsoir velivole18
velivole18 wrote:Dans le fichier "base.ldif", j'ai mis le mot de passe crypté à l'aide de la commande "/mnt/openldap/usr/local/sbin/slappasswd -h '{MD5}'".
Est-ce bien cela ?
Oui tout a fait.
velivole18 wrote:Si j'ai bien compris, arrivé à ce niveau, je peux quitter ssh/root pour me reconnecter en ssh/ppda ?
Exactement.

Étonnant pour le mot de passe...que cela bloque. Je ne suis pas devant le PC et ne peux donc pas confirmer ce soir. Je teste demain

Par contre mon mode opératoire concerne une embedded et non une full ;)

Pourquoi tu pars sur une full? :o

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir Laster13,

J'installe toujours une Full pour "bidouiller", histoire d'être plus libre dans le montage/démontage de la partition système de Nas4Free.
J'avais vu cela à l'époque où mtiburs nous faisait modifier les caractéristiques zfs dans la partition système.
Mais c'est certainement une vilaine habitude ... :lol:
Je peux monter une Embedded à côté maintenant que je peux faire des VM à tour de bras ! ;)

Pour ton aide, y'a pas le feu. Demain je suis au boulot. Et puis ça me laisse le temps de chercher.

Bonne soirée.

Merci.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonjour,

Je viens de tester et cela fonctionne.
nas4free: ~ # slappasswd -h '{MD5}'
New password:
Re-enter new password:
{MD5}CsbNNOL6wzO/DuPNBr3Plg==
je me loggue
login as: ppda
ppda@192.168.0.21's password:
Last login: Tue Mar 3 07:30:39 2015 from 192.168.0.11
Welcome to NAS4Free!
[ppda@nas4free ~]$
Avez tu bien activé le client ldap dans le webgui de Nas4free. Je te pose la question car j'avais oublié et cela ne fonctionnait pas évidemment :lol:

Bizaremment j'ai tapé la commande "slappasswd" à la racine de Nas4free et cela fonctionne. Par contre la première fois, j'avais été obligé de taper le chemin complet "/usr/local/sbin" (par contre sans "/mnt/openldap". Est ce parce que je suis en UFS et embedded ?

User avatar
velivole18
Forum Moderator
Forum Moderator
Posts: 647
Joined: 14 Jul 2012 20:23
Location: France
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by velivole18 »

Bonsoir Laster13,

Je repars sur la manip openldap avec un Nas4Free 972 Embedded.
La dernière fois je n'avais effectivement pas activé la fonction ldap dans le menu. :oops:
Bon, petites questions en passant :
1 - pourquoi faire un pool zfs "openldap" de 2Go spécifiquement et pas tout simplement faire un "zfs create pool1/openldap" tout court ?

2 - ton "pool1" est dans "/dev/zvol" ? c'est pourquoi tu écris "/dev/zvol/pool1/openldap" derrière l'ordre newfs ?
J'ai un "/mnt/pool1" d'origine. Si je fais un zfs create "pool1/openldap", la commande newfs ne fonctionne pas disant que ce n'est pas un fichier spécial.
Alors OK, ton "newfs" est appliqué sur "/dev/zvol/pool1/openldap". Tu avais donc créé auparavant le niveau "/dev/zvol/pool1" ? Le dernier niveau "openldap" n'est pas celui de la commande "zfs create pool1/openldap" ? Alors pourquoi faire le pool "pool1/openldap" ? Car à la fin, il est question de "/dev/zvol/pool1/openldap" monté sur "/mnt/openldap" et je ne vois plus le lien avec "pool1/openldap" ? Y'a un truc que je ne comprends pas dans tout cela ? Comment tu as créé "/dev/zvol/pool1/openldap" ? car /dev est sur un FS ufs, non ? et "pool1" est un pool zfs, non ? Ah, j'enrage de pas tout comprendre ... :twisted:

3 - je ne comprends pas, on peut faire un File System ufs dans un pool zfs ? (si oui, c'est trop fort ! :o )

4 - l'obligation de faire un FS ufs c'est pour ensuite faire le "mount_unionfs" avec un répertoire qui lui-même est dans un FS ufs, c'est cela ?

5 - si on loupe la ligne "cd /mnt/openldap", où s'installeraient les packages openldap et openssl ? car en fait c'est bien grâce à l'ordre de déclaration des répertoires dans les commandes "mount_unionfs" que l'installation des packages ne s'inscrivent pas dans le "usr" et le "var" du système Nas4Free mais bien dans "/mnt/openldap/usr ou /var" ? Ai-je bien compris ?
Bon, c'est juste pour bien comprendre la mécanique qui en fait est souvent le même principe dans beaucoup de tuto, et pour arrêter de faire du copier/coller bêtement des commandes de ton tuto. Peut-être ferai-je moins de bêtises la prochaine fois si je comprends mieux ce que je fais.

Merci pour ton temps que tu nous accordes à tous.
Cordialement.
11.2.0.4 - Omnius (revision 6026) x64-embedded
111909 RSDT1411 AMD Athlon(tm) 64 Processor 4000+ 4096MiB RAM - HDD 2 x 6 To in ZFS mirroring + 2 x (2 x 4To in ZFS mirroring) - SSD 32Go - UPS EATON Ellipse MAX 1100.

laster13
PowerUser
PowerUser
Posts: 995
Joined: 01 Jun 2013 19:15
Location: France-Marseille
Status: Offline

Re: Serveur OpenLDAP Nas4Free

Post by laster13 »

Bonjour velivole18

Je suis loin de pouvoir répondre à toutes tes questions :oops: J'ai d'abord essayé d'installer les packages comme j'ai pu le faire à mainte reprise sur une embedded UFS sauf qu'en ZFS impossible.. Et je me suis souvenu avoir lu par le passé une information à ce sujet qui consistait effectivement à passer par une partition UFS pour ensuite pouvoir utiliser la commande mount_unionfs. Pour le reste je pense que mtiburs pourrait nous apporter son avis sur les aspects techniques de cette procédure. Les posts qui m'ont influencé...

viewtopic.php?f=70&t=8166
viewtopic.php?f=72&t=210
l'obligation de faire un FS ufs c'est pour ensuite faire le "mount_unionfs" avec un répertoire qui lui-même est dans un FS ufs, c'est cela ?
Oui tout à fait!
- je ne comprends pas, on peut faire un File System ufs dans un pool zfs ? (si oui, c'est trop fort ! :o )
Oui c'est vrai que c'est génial ;)
si on loupe la ligne "cd /mnt/openldap", où s'installeraient les packages openldap et openssl ? car en fait c'est bien grâce à l'ordre de déclaration des répertoires dans les commandes "mount_unionfs" que l'installation des packages ne s'inscrivent pas dans le "usr" et le "var" du système Nas4Free mais bien dans "/mnt/openldap/usr ou /var" ? Ai-je bien compris ?
Je pense qu ils s'installe quand même en dur sur le pool... je crois l'avoir déjà teste d ailleurs mais à confirmer!
Alors OK, ton "newfs" est appliqué sur "/dev/zvol/pool1/openldap". Tu avais donc créé auparavant le niveau "/dev/zvol/pool1" ? Le dernier niveau "openldap" n'est pas celui de la commande "zfs create pool1/openldap" ? Alors pourquoi faire le pool "pool1/openldap" ? Car à la fin, il est question de "/dev/zvol/pool1/openldap" monté sur "/mnt/openldap" et je ne vois plus le lien avec "pool1/openldap" ? Y'a un truc que je ne comprends pas dans tout cela ? Comment tu as créé "/dev/zvol/pool1/openldap" ? car /dev est sur un FS ufs, non ? et "pool1" est un pool zfs, non
Non je n'ai rien créer au préalable, j'ai simplement suivi l'ordre chronologique des commandes telles queje les présente plus haut

J'ai par ailleurs testé la mise en place d'openldap sur la 1349 nayla en embedded ZFS. Cela fonctionne également avec quelques nuances tout de même que je précise ici pour pouvoir acter ces infos.

-Plus besoin de creer la partition en UFS. La procédure sera la suivante: ( A mon avis cela doit être lié au fait que dorénavant le pkg_add a été remplacé par le pkgng)
mkdir /mnt/pool1/openldap
cd /mnt/pool1/openldap
mkdir usr_local
mkdir var_db
mkdir tmp

Une nuance également suer les commandes mount_unionfs
mount_unionfs -o w /mnt/openldap/usr_local/ /usr/local/
mount_unionfs -o w /mnt/openldap/var_db/ /var/db/

A priori plus besoins de préciser le lien http concernant les packages, il suffit de taper directement
pkg install net/openldap24-server

Les commandes pkg_add ne fonctionne plus elle est remplacé par le pkgng

Ensuite le reste de l'install est identique ;)

Post Reply

Return to “Français”