Outils pour utilisateurs

Outils du site


informatique:projets:ssh-ldap-fetcher

SSH LDAP Fetcher

SSH-LDAP-Fetcher est un outil permettant de récupérer des clés publiques SSH depuis un annuaire LDAP. Cet outil peut être utilisé pour ajouter la partie clé publique en plus de l'authentification LDAP classique par mot de passe.

Il existe un certain nombre d'outils/scripts pour cette tâche, mais l'idée de cet outil est d'apporter quelques petites options que je n'ai pas retrouvé dans d'autres telles que :

  • Entièrement paramétrable en ligne de commande
  • Utilisation du syslog
  • Utilisation du DNS pour localiser le serveur LDAP (TODO)
  • Gestion des comptes expirés (TODO)

Cet outil est écrit en Python.

Utilisation

La syntaxe est relativement simple et utilise des paramètres en ligne de commande. L'outil a vocation à être utilisé avec OpenSSH (via le paramètre AuthorizedKeysCommand) mais vous pouvez à des fins de test le lancer en ligne de commande pour vérifier son fonctionnement (en mode debug par exemple).

Syntaxe de ssh-ldap-fetcher
usage: ssh-ldap-fetcher [-h] --ldap-uri LDAP_URI --ldap-base LDAP_BASE
                        [--ldap-user-base LDAP_USER_BASE] --ldap-filter
                        LDAP_FILTER [--ldap-scope {base,onelevel,subtree}]
                        --ldap-attr LDAP_ATTR [--use-tls] [--debug]
                        [--syslog]
                        user
 
positional arguments:
  user                  Username to fetch from
 
optional arguments:
  -h, --help            show this help message and exit
  --ldap-uri LDAP_URI   LDAP server to fetch from
  --ldap-base LDAP_BASE
                        LDAP base dn
  --ldap-user-base LDAP_USER_BASE
                        User base (default: ou=users,<ldap-base>)
  --ldap-filter LDAP_FILTER
                        LDAP search filter (%s replaced with user)
  --ldap-scope {base,onelevel,subtree}
                        LDAP search scope (default: subtree)
  --ldap-attr LDAP_ATTR
                        LDAP attribute containing pub key
  --use-tls             Use TLS for connection
  --debug               Show debugging messages
  --syslog              Log messages to syslog

Exemple avec OpenSSH

Dans l'exemple ci-dessous, une recherche dans 'ldap.tld' est faite avec le login de l'utilisateur connecté (%u) et la commande utilisera le syslog pour tracer les connexions.

/etc/ssh/sshd_config
[...]
AuthorizedKeysCommand /usr/bin/ssh-ldap-fetcher --ldap-uri ldap://ldap.tld
                                                --ldap-base dc=tld
                                                --ldap-filter "(&(objectClass=person)(uid=%%s))"
                                                --ldap-attr sshPublicKey
                                                --use-tls
                                                --syslog %u
AuthorizedKeysCommandUser nobody

Téléchargement

Pour le moment ssh-ldap-fetcher est distribué sous la forme d'un paquet Debian.

informatique/projets/ssh-ldap-fetcher.txt · Dernière modification : 2022/11/27 17:25 de lestat

Outils de la page