LDAP

LDAP Flask-Login snippet

At ${DAYWORK}, I am writing a simple Flask web frontend for our new information system. I wanted to have a simple authentication method and so I found the Flask-Login extention for Flask which takes care of user validation, session remembrance , and has a callback method in order to plug the authentication on whatever backend you’d like.

I came up with that little piece of code which makes Flask-Login check a user / password couple against a LDAP server, and validates a user regarding its user ID:

Debian backport of OpenSSH 6.2

Update

As written on the comments: _ Colin Watson Says: May 17th, 2013 at 7:12 pm

I uploaded 6.2 packages to Debian a week or so after you posted this, so you can/should now just use those instead. I expect they should build fine on wheezy. _

As a matter of fact, the following is now deprecated

At ${DAYWORK}, we used to have our own OpenSSH debian package which included the famous OpenSSH LPK patch, which permits the use of an OpenLDAP server as an SSH public key provider.

sysutils/shelldap dans les bacs

Connaissez-vous shelldap ? Cet outil absolument indispendable est L’Outil que j’attendais depuis des années. Saoulé que j’étais de la machine-à-coredumps gq et de l’usine à gaz lat, j’implorais les Dieux du code de faire apparaître quelque part sur l’internet convivial un outil pratique pour éditer des bases LDAP, possiblement en console, fou optimiste que je suis.

Et bien cet outil existe. Et il est énorme. Comme son nom l’indique, il s’agit effectivement d’un shell-like destiné à la consultation et l’administration de bases LDAP, avec la completion s’il vous plait.

cvs co ya7ans

fouyou, ce voyage dans le passé…

Il y a 7 ans, je commettais ceci. EasyLDAP était une librairie qui permettait d’implémenter une interaction LDAP en C assez simplement. Mais son but final était plus concret; en effet, en 2001, FreeBSD ne possédait pas de port nss_ldap, son architecture nss était quelque peu aride, et l’un de mes projets dans mon job de l’époque, c’était de trouver le moyen de centraliser l’authentification de nos serveurs FreeBSD, et de préférence, via LDAP. La sale magouille que j’avais trouvé à l’époque, c’était d’utiliser la variable LD_PRELOAD et de préloader, donc, la librairie eldap dans laquelle j’avais redéfini les fonctions getpwnam, getpwuid, getgrnam etc etc… Et ça marchait ! :)

nsswitch.conf, LDAP et NetBSD

NetBSD possède dans pkgsrc les packages nss_ldap et pam_ldap. J’utilise essentiellement OpenSSH-lpk pour l’authentification par clé des utilisateurs virtuels, de fait je n’utilise pas ou peu pam_ldap. Reste à faire comprendre au système qu’il doit utiliser une base LDAP pour verifier si un utilisateur est valide ou pas. Ceci se réalise grace au fichier /etc/nsswitch.conf, et plus paticulièrement, aux directives suivantes :

Qui précisent de verifier l’existence d’un utilisateur dans les fichiers plats, puis dans une base LDAP. Cette dernière est pointée par le fichier /usr/pkg/etc/nss_ldap.conf dans lequel je me contente de renseigner les directives :

ldap un jour...

Et c’est au tour d’apache. Très très simple : cd /usr/ports/www/mod_vhost_ldap/ make install clean Si votre apache n’est pas compilé avec le support LDAP vous vous ferez insulter. À noter que, contrairement à ce que dit le port : `

WITH_LDAP: Enable LDAP support (mod_auth_ldap) (implies WITH_LDAP_MODULES)

` Si je ne place pas explicitement WITH_LDAP=yes et WITH_LDAP_MODULES=yes, je me prend un unresolved symbol au démarrage d’apache.

Ajoutez maintenant dans votre httpd.conf (dans cet ordre) : LoadModule ldap_module libexec/apache2/mod_ldap.so LoadModule vhost_ldap_module libexec/apache2/mod_vhost_ldap.so puis VhostLDAPEnabled on VhostLDAPUrl "ldap://127.0.0.1/ou=votre,dc=basedn" VhostLdapBindDN "cn=utilisateur,ou=qui,dc=binde" VhostLDAPBindPassword "mot de passe convivial"

cache-cache

Suite de mes aventures dans le monde merveilleux de la haute dispo grace à OpenLDAP. Conseil du jour: bind sdb ldap, c’est une tuerie (/usr/ports/dns/bind9-sdb-ldap). Hint dépatouillé par monseigneur spoty: ne pas oublier de créer un etc/hosts dans le chroot de bind, le cas écheant il stalle comme une grosse merde avant de contacter le serveur LDAP. Un peu de conf :

voici une zone classique servie par un fichier plat: zone "imil.net" { type master; file "zone/imil.net"; }; voici un zone servie par LDAP zone "imil.net" { type master; database "ldap ldap://127.0.0.1/ou=bind,dc=imil,dc=net 172800"; }; la déjà, tu kiffes, mais regarde ca : `

chula, chupala

note: cette nouvelle est sujette à modifications en fonction de mon avancement dans la mise en place et la configuration de ma plateforme

Quelques liens glânés de-ci de-la pour monter une plate-forme mail couillue :

. SMTP Auth avec sendmail et FreeBSD . SMTP Auth, la doc officielle de sendmail.org . Un overview de l’integration SASL par l’ami asyd . l’excellent projet MiniVisp de l’ami Hug . FABULEUSE doc sur l’interfacage sendmail / LDAP . Sendmail + Auth + TLS . Utilisation de STARTTLS avec sendmail et l’accessdb . la liste des parametres compris par confLDAP_DEFAULT_SPEC (binddn, password…) . à la fin de ce tuto vous trouverez de bons exemples de virtuser LDAP . FreeBSD fast and secure mail server using sendmail and imap-uw (eeeet si) . Secure Email Using Cyrus IMAP, Sendmail, and SASLv2 . Le classique mais toujours efficace OpenLDAP QuickStart Guide . Le NSS / PAM LDAP HOWTO pour FreeBSD 5.x . saslauthd + LDAP . Des astuces pour rendre sendmail plus agressif . les migration tools de padl.com . OpenLDAP TLS HOWTO . Installer le milter DomainKey . Encore une doc sur domainkey