reallyenglish.cyrus-sasl

ansible-role-cyrus-sasl

Installe cyrus-sasl, saslauthd et configure les utilisateurs dans le fichier de base de données SASL. Ce rôle ne prend en charge que la base de données SASL locale et saslauthd. Si vous souhaitez d'autres systèmes, ce rôle n'est pas pour vous.

sasl_check_pw

Ce rôle installe un script python pour vérifier le mot de passe d'un utilisateur sous /usr/local/bin sur toutes les plateformes. Comme il n'y a aucun moyen de voir si le mot de passe défini dans une variable de rôle et celui dans la base de données sont les mêmes, le script lit cyrus_sasl_sasldb_file et recherche l'utilisateur et son mot de passe. Le script suppose que cyrus_sasl_sasldb_file est au format dbm.

sasl_check_pw path user domain

path est le chemin vers cyrus_sasl_sasldb_file. user est le nom d'utilisateur dans cyrus_sasl_sasldb_file, et domain est le nom de domaine auquel l'utilisateur appartient. Définissez le mot de passe à vérifier dans une variable d'environnement, userPassword. Lorsque le mot de passe correspond à celui dans cyrus_sasl_sasldb_file, il imprime matched sur stdout. Sinon, il imprime does not match sur stdout. Il doit être exécuté par un utilisateur ayant les permissions de lecture sur cyrus_sasl_sasldb_file.

Exigences

Aucune

Variables du Rôle

Variable Description Par défaut
cyrus_sasl_package le nom du paquet de cyrus-sasl {{ __cyrus_sasl_package }}
cyrus_sasl_saslauthd_service le nom du service de saslauthd {{ __cyrus_sasl_saslauthd_service }}
cyrus_sasl_saslauthd_enable activer saslauthd si oui oui
cyrus_sasl_saslauthd_flags dictionnaire de variables de service et leurs valeurs (voir ci-dessous) {}
cyrus_sasl_saslauthd_flags_default valeur par défaut des variables de service et leurs valeurs {{ __cyrus_sasl_saslauthd_flags_default }}
cyrus_sasl_plugin_dir le répertoire des plugins où se trouve la configuration de l'application {{ __cyrus_sasl_plugin_dir }}
cyrus_sasl_saslpassword_command la commande pour gérer le mot de passe des utilisateurs {{ __cyrus_sasl_saslpassword_command }}
cyrus_sasl_sasldblistusers_command la commande pour lister les utilisateurs dans la base de données {{ __cyrus_sasl_sasldblistusers_command }}
cyrus_sasl_sasldb_file chemin vers le fichier de base de données SASL {{ __cyrus_sasl_sasldb_file }}
cyrus_sasl_sasldb_owner propriétaire du fichier de base de données SASL root
cyrus_sasl_sasldb_group groupe du fichier de base de données SASL {{ __cyrus_sasl_sasldb_group }}
cyrus_sasl_sasldb_file_permission permissions du fichier de base de données SASL {{ __cyrus_sasl_sasldb_file_permission }}
cyrus_sasl_config dictionnaire de la configuration de l'application (voir ci-dessous) {}
cyrus_sasl_user dictionnaire des utilisateurs dans le fichier de base de données SASL (voir ci-dessous) {}

cyrus_sasl_saslauthd_flags

Cette variable est un dictionnaire des variables des fichiers de configuration de démarrage, tels que les fichiers sous /etc/default, /etc/sysconfig, et /etc/rc.conf.d. On suppose que les fichiers sont sourcés par le mécanisme de démarrage avec sh(1). Une clé dans le dictionnaire est le nom de la variable dans le fichier, et la valeur de la clé est la valeur de la variable. La variable est combinée avec une variable dont le nom est identique mais terminaison _default (expliqué ci-dessous), et le résultat crée le fichier de configuration de démarrage, généralement un fichier composé de lignes key="value" dans le répertoire approprié pour la plateforme.

Lorsque la plateforme est OpenBSD, l'explication ci-dessus ne s'applique pas. Dans ce cas, la seule clé valide est flags et sa valeur est passée à daemon_flags, comme décrit dans rc.conf(5), où daemon est le nom de l'un des scripts de contrôle des daemons rc.d(8).

cyrus_sasl_saslauthd_flags_default

Cette variable est un dictionnaire de clés et valeurs dérivées de la configuration par défaut de l'amont et doit être constante à moins que cela ne soit absolument nécessaire. Par défaut, le rôle crée un fichier de configuration de démarrage pour chaque plateforme avec cette variable, identique à celle par défaut.

Lorsque la plateforme est OpenBSD, la variable a une seule clé, flags et sa valeur est une chaîne vide.

cyrus_sasl_config

La clé est le nom de l'application. La valeur est un dictionnaire dans lequel la clé est un nom de variable et la valeur est sa valeur. Exemple :

cyrus_sasl_config:
    myapp:
        pwcheck_method: saslauthd

cyrus_sasl_user

La clé est le nom d'utilisateur et ses valeurs sont un dictionnaire.

Clé Valeur
domain le domaine de l'utilisateur
password le mot de passe de l'utilisateur
appname le appname de l'utilisateur
state soit present soit absent. Le rôle crée l'utilisateur si present, ou le supprime s'il est absent
cyrus_sasl_user:
  foo:
    domain: reallyenglish.com
    password: password
    appname: argus
    state: present

Debian

Variable Par défaut
__cyrus_sasl_package libsasl2-2
__cyrus_sasl_saslauthd_service saslauthd
__cyrus_sasl_saslauthd_flags_default {"MECHANISMS"=>"pam", "MECH_OPTIONS"=>"", "THREADS"=>5, "OPTIONS"=>"-c -m /var/run/saslauthd"}
__cyrus_sasl_plugin_dir /usr/lib/sasl2
__cyrus_sasl_saslpassword_command saslpasswd2
__cyrus_sasl_sasldblistusers_command sasldblistusers2
__cyrus_sasl_sasldb_file /etc/sasldb2
__cyrus_sasl_sasldb_file_permission 0660
__cyrus_sasl_sasldb_group root

FreeBSD

Variable Par défaut
__cyrus_sasl_package cyrus-sasl
__cyrus_sasl_saslauthd_service saslauthd
__cyrus_sasl_saslauthd_flags_default {}
__cyrus_sasl_plugin_dir /usr/local/lib/sasl2
__cyrus_sasl_saslpassword_command saslpasswd2
__cyrus_sasl_sasldblistusers_command sasldblistusers2
__cyrus_sasl_sasldb_file /usr/local/etc/sasldb2
__cyrus_sasl_sasldb_file_permission 600
__cyrus_sasl_sasldb_group wheel

OpenBSD

Variable Par défaut
__cyrus_sasl_package cyrus-sasl--
__cyrus_sasl_saslauthd_service saslauthd
__cyrus_sasl_saslauthd_flags_default {"flags"=>"-a getpwent"}
__cyrus_sasl_plugin_dir /usr/local/lib/sasl2
__cyrus_sasl_saslpassword_command saslpasswd2
__cyrus_sasl_sasldblistusers_command sasldblistusers2
__cyrus_sasl_sasldb_file /etc/sasldb2
__cyrus_sasl_sasldb_file_permission 600
__cyrus_sasl_sasldb_group wheel

RedHat

Variable Par défaut
__cyrus_sasl_package cyrus-sasl
__cyrus_sasl_saslauthd_service saslauthd
__cyrus_sasl_saslauthd_flags_default {"SOCKETDIR"=>"/run/saslauthd", "MECH"=>"pam", "FLAGS"=>""}
__cyrus_sasl_plugin_dir /usr/lib64/sasl2
__cyrus_sasl_saslpassword_command saslpasswd2
__cyrus_sasl_sasldblistusers_command sasldblistusers2
__cyrus_sasl_sasldb_file /etc/sasldb2
__cyrus_sasl_sasldb_file_permission 0640
__cyrus_sasl_sasldb_group root

Dépendances

Aucune

Exemple de Playbook

- hosts: localhost
  roles:
    - ansible-role-cyrus-sasl
  vars:
    cyrus_sasl_user:
      foo:
        domain: reallyenglish.com
        password: password
        appname: argus
        state: present
    cyrus_sasl_config:
      myapp:
        pwcheck_method: saslauthd
      argus:
        pwcheck_method: auxprop
        auxprop_plugin: sasldb
        mech_list: DIGEST-MD5
    cyrus_sasl_sasldb_group: "{% if ansible_os_family == 'Debian' %}nogroup{% else %}nobody{% endif %}"
    cyrus_sasl_sasldb_file_permission: "0640"

    extra_variables_debian:
      THREADS: 6
    extra_variables_redhat:
      FLAGS: -n 6
    extra_variables_freebsd:
      saslauthd_flags: -a pam -n 6
    extra_variables_openbsd:
      flags: -a getpwent -n 6
    cyrus_sasl_saslauthd_flags: "{% if ansible_os_family == 'Debian' %}{{ extra_variables_debian }}{% elif ansible_os_family == 'RedHat' %}{{ extra_variables_redhat }}{% elif ansible_os_family == 'FreeBSD' %}{{ extra_variables_freebsd }}{% elif ansible_os_family == 'OpenBSD' %}{{ extra_variables_openbsd }}{% endif %}"

Licence

Copyright (c) 2017 Tomoyuki Sakurai <[email protected]>

Autorisation d'utiliser, de copier, de modifier et de distribuer ce logiciel pour toute
finalité, avec ou sans frais, est accordée, à condition que le texte de copyright ci-dessus
et cette permission apparaissent dans toutes les copies.

LE LOGICIEL EST FOURNI "EN L'ÉTAT" ET L'AUTEUR DÉCLINE TOUTE GARANTIE
EN CE QUI CONCERNE CE LOGICIEL, Y COMPRIS TOUTE GARANTIE IMPLICITE DE
COMMERCIALITÉ ET D'APTITUDE À UN USAGE PARTICULIER. EN AUCUN CAS L'AUTEUR NE POURRA ÊTRE TENU RESPONSABLE
DE QUELQUES DOMMAGES SPÉCIAUX, DIRECTS, INDIRECTS, OU CONSÉCUTIFS, OU DE QUELS QUE SOIENT
DOMMAGES DÉCOULANT D'UNE PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS, QUE CE SOIT
DANS LE CADRE D'UN CONTRAT, D'UNE NÉGLIGENCE OU D'AUTRE ACTION EN RESPONSABILITÉ, DÉCOULANT DE OU EN LIEN
AVEC L'UTILISATION OU LA PERFORMANCE DE CE LOGICIEL.

Informations sur l'auteur

Tomoyuki Sakurai tomoyukis@reallyenglish.com

Ce README a été créé par qansible

À propos du projet

Configures cyrus-sasl and users in SASL DB file

Installer
ansible-galaxy install reallyenglish.cyrus-sasl
Licence
isc
Téléchargements
17.2k
Propriétaire