reallyenglish.cyrus-sasl

ansible-role-cyrus-sasl

Instala cyrus-sasl, saslauthd y configura usuarios en el archivo de la base de datos SASL. Este rol solo es compatible con la base de datos SASL local y saslauthd. Si deseas otros back-ends, esto no es para ti.

sasl_check_pw

Este rol instala un script de Python para verificar la contraseña de un usuario en /usr/local/bin en todas las plataformas. Dado que no hay forma de ver si la contraseña definida en una variable de rol y la de la base de datos son las mismas, el script lee cyrus_sasl_sasldb_file y busca al usuario y su contraseña. El script asume que cyrus_sasl_sasldb_file está en formato dbm.

sasl_check_pw ruta usuario dominio

ruta es el camino al cyrus_sasl_sasldb_file. usuario es el nombre de usuario en cyrus_sasl_sasldb_file, y dominio es el nombre de dominio al que pertenece el usuario. Configura la contraseña a verificar en una variable de entorno, userPassword. Cuando la contraseña coincide con la de cyrus_sasl_sasldb_file, imprime matched en stdout. Cuando no coincide, imprime does not match en stdout. Debe ser ejecutado por un usuario con permiso de lectura sobre cyrus_sasl_sasldb_file.

Requisitos

Ninguno

Variables del Rol

Variable Descripción Por defecto
cyrus_sasl_package el nombre del paquete de cyrus-sasl {{ __cyrus_sasl_package }}
cyrus_sasl_saslauthd_service el nombre del servicio de saslauthd {{ __cyrus_sasl_saslauthd_service }}
cyrus_sasl_saslauthd_enable habilitar saslauthd si es sí
cyrus_sasl_saslauthd_flags diccionario de variables del servicio y sus valores (ver abajo) {}
cyrus_sasl_saslauthd_flags_default valor por defecto de las variables del servicio y sus valores {{ __cyrus_sasl_saslauthd_flags_default }}
cyrus_sasl_plugin_dir el directorio de plugins donde reside la configuración de la aplicación {{ __cyrus_sasl_plugin_dir }}
cyrus_sasl_saslpassword_command el comando para gestionar la contraseña de los usuarios {{ __cyrus_sasl_saslpassword_command }}
cyrus_sasl_sasldblistusers_command el comando para listar usuarios en la base de datos {{ __cyrus_sasl_sasldblistusers_command }}
cyrus_sasl_sasldb_file camino al archivo de la base de datos SASL {{ __cyrus_sasl_sasldb_file }}
cyrus_sasl_sasldb_owner propietario del archivo de la base de datos SASL root
cyrus_sasl_sasldb_group grupo del archivo de la base de datos SASL {{ __cyrus_sasl_sasldb_group }}
cyrus_sasl_sasldb_file_permission permiso del archivo de la base de datos SASL {{ __cyrus_sasl_sasldb_file_permission }}
cyrus_sasl_config un diccionario de configuración de la aplicación (ver abajo) {}
cyrus_sasl_user un diccionario de usuarios en el archivo de la base de datos SASL (ver abajo) {}

cyrus_sasl_saslauthd_flags

Esta variable es un diccionario de variables de archivos de configuración de inicio, como archivos en /etc/default, /etc/sysconfig y /etc/rc.conf.d. Se asume que los archivos son sourced por el mecanismo de inicio con sh(1). Una clave en el diccionario es el nombre de la variable en el archivo, y el valor de la clave es el valor de la variable. La variable se combina con una variable cuyo nombre es el mismo que esta, pero con el sufijo _default (explicado a continuación) y el resultado crea el archivo de configuración de inicio, normalmente un archivo que consiste en líneas de clave="valor" en el directorio apropiado para la plataforma.

Cuando la plataforma es OpenBSD, la explicación anterior no se aplica. En este caso, la única clave válida es flags y su valor se pasa a daemon_flags descrito en rc.conf(5), donde daemon es el nombre de uno de los scripts de control de demonios rc.d(8).

cyrus_sasl_saslauthd_flags_default

Esta variable es un diccionario de claves y valores derivados de la configuración predeterminada del upstream, y se supone que es constante a menos que sea absolutamente necesario. Por defecto, el rol crea un archivo de configuración de inicio para cada plataforma con esta variable, idéntico al predeterminado.

Cuando la plataforma es OpenBSD, la variable tiene una sola clave, flags y su valor es una cadena vacía.

cyrus_sasl_config

La clave es el nombre de la aplicación. El valor es un diccionario en el que la clave es un nombre de variable y el valor es su valor. Ejemplo:

cyrus_sasl_config:
    miaplicacion:
        pwcheck_method: saslauthd

cyrus_sasl_user

La clave es el nombre de usuario y sus valores son un diccionario.

Clave Valor
domain el dominio del usuario
password la contraseña del usuario
appname el appname del usuario
state ya sea present o absent. El rol crea el usuario si es present, o lo elimina si es absent
cyrus_sasl_user:
  foo:
    domain: reallyenglish.com
    password: password
    appname: argus
    state: present

Debian

Variable Por defecto
__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 Por defecto
__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 Por defecto
__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 Por defecto
__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

Dependencias

Ninguna

Ejemplo 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 %}"

Licencia

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

Permiso para usar, copiar, modificar y distribuir este software para cualquier
propósito con o sin cargo se concede por la presente, siempre que el aviso de
derechos de autor anterior y este aviso de permiso aparezcan en todas las copias.

EL SOFTWARE SE PROPORCIONA "TAL CUAL" Y EL AUTOR DESCARTA TODAS LAS GARANTÍAS
CON RESPECTO A ESTE SOFTWARE, INCLUYENDO TODAS LAS GARANTÍAS IMPLÍCITAS DE
COMERCIALIZACIÓN Y ADECUACIÓN. EN NINGÚN CASO EL AUTOR SERÁ RESPONSABLE POR
DAÑOS ESPECIALES, DIRECTOS, INDIRECTOS O CONSECUENTES O CUALQUIER DAÑO
QUE SURJA DE LA PÉRDIDA DE USO, DATOS O GANANCIAS, YA SEA EN UNA ACCIÓN POR
CONTRATO, NEGLIGENCIA O CUALQUIER OTRA ACCIÓN, QUE SURJA DE O EN CONEXIÓN
CON EL USO O RENDIMIENTO DE ESTE SOFTWARE.

Información del Autor

Tomoyuki Sakurai tomoyukis@reallyenglish.com

Este README fue creado por qansible

Acerca del proyecto

Configures cyrus-sasl and users in SASL DB file

Instalar
ansible-galaxy install reallyenglish.cyrus-sasl
Licencia
isc
Descargas
17.2k
Propietario