moismailzai.protonmail_bridge_headless

Rol de Ansible: ProtonMail Bridge (sin interfaz gráfica)

Instala el ProtonMail Bridge (opcionalmente pidiendo autenticación de dos factores), lo registra como un servicio sin interfaz gráfica y configura Postfix para usarlo. Soporta servidores RedHat/CentOS, Debian/Ubuntu y Archlinux.

Antecedentes

La aplicación ProtonMail Bridge para Linux te permite integrar tu cuenta de ProtonMail con programas de correo electrónico IMAP y SMTP como Thunderbird y Evolution. Bridge está disponible para todos los usuarios de ProtonMail con una suscripción de pago.

El propósito de este rol es automatizar la instalación del bridge para que pueda usarse en una máquina sin interfaz gráfica.

Específicamente, este rol hará:

  • descargar la última versión del bridge
  • asegurar que el paquete esté correctamente firmado antes de instalarlo
  • configurar el bridge con tu información de usuario
  • crear un servicio para mantener el bridge funcionando en segundo plano
  • crear un usuario bloqueado para ejecutar el servicio
  • configurar Postfix para usar con el bridge (SASL)
  • en sistemas RHEL, (opcionalmente) configurar los contextos de SELinux

Requisitos

Requiere RedHat/CentOS 8, Ubuntu 18 o superior, o un sistema Debian, Archlinux o Manjaro actualizado.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml):

protonmail_username: ""
protonmail_password: ""
protonmail_custom_domain: ""
protonmail_enable_2fa: false

Tus credenciales de ProtonMail y el dominio. Se utilizan para agregar tu cuenta al ProtonMail-bridge y para configurar Postfix. NOTA: cuando protonmail_enable_2fa está configurado como true, este rol se ejecutará de forma interactiva y te pedirá un código de autenticación.

# configure_selinux: ""

Si se debe configurar SELinux. Por defecto, es verdadero en sistemas RHEL y falso de lo contrario.

gpg_key_settings:
    type: default
    length: default
    subkey_type: default
    subkey_length: default
    expire_date: 0
    name: clave del servicio protonmail-bridge-sin-interfaz
    email: root@localhost

Estos ajustes se utilizan para crear una clave GPG local. La clave es necesaria para que el ProtonMail bridge y pass se comuniquen. Se pueden realizar cambios adicionales en el archivo templates/protonmail-bridge.gpg.j2. NOTA: los valores predeterminados generan una nueva clave sin protección que se usará exclusivamente para el bridge. Para agregar una contraseña a la clave, necesitarás modificar los valores predeterminados, así como templates/protonmail-bridge-headless.service.sh.j2.

configure_gpg: "true"
configure_pass: "true"
configure_postfix: "true"
configure_service: "true"
configure_user: "true"

Se pueden usar para omitir tareas en este rol.

protonmail_lib_dir: "/var/lib/protonmail"

La ubicación donde se almacenarán los archivos de configuración y del servicio.

protonmail_user: "protonmail"
protonmail_user_flags: "-L"

El nombre y las banderas del usuario del servicio.

postfix_hostname: "{{ protonmail_custom_domain }}"
postfix_localhost_address: "127.0.0.1"

Configuraciones que puedes sobrescribir en main.cf.

selinux_httpd_can_sendmail: "true"

Si se debe agregar políticas de selinux para httpd al configurar Postfix.

Dependencias

Una cuenta de ProtonMail de pago.

Uso de ejemplo

Primero, instala una versión actual de Ansible:
Archlinux:

sudo pacman -Syu ansible

RHEL:

sudo dnf -y install epel-release
sudo dnf repolist
sudo dnf -y install ansible

Debian:

sudo apt update
sudo apt install -y software-properties-common
sudo apt-add-repository -y -u ppa:ansible/ansible
sudo apt install -y ansible

Luego, crea un archivo llamado main.yml y agrega lo siguiente (reemplazando your_username, your_password, y your_domain con sus valores reales):

- name: "instalar y configurar protonmail-bridge como un servicio sin interfaz gráfica"
  become: "yes"
  hosts: "all"
  vars:
    protonmail_username: "tu_nombre_de_usuario"
    protonmail_password: "tu_contraseña"
    protonmail_custom_domain: "tu_dominio"
  roles:
    - "moismailzai.protonmail_bridge_headless"

Luego, desde la línea de comandos en el mismo directorio, ejecuta:

# instala este rol desde Ansible Galaxy
ansible-galaxy install moismailzai.protonmail_bridge_headless

# asegura que Ansible puede encontrar el rol que acabas de descargar
ln -s ~/.ansible/roles roles

# ejecuta el playbook que creaste en el paso anterior
sudo ansible-playbook -c local -i localhost, main.yml

Una vez que el proceso esté completo, envíate un mensaje de prueba desde la línea de comandos:

echo "Si estás viendo esto, el bridge se ha configurado correctamente." | mail -s "Mensaje de prueba de ProtonMail-bridge" -r tu@email.direccion destinatario@email.direccion

Licencia

MIT

Información del Autor

Este rol fue creado en 2021 por Mo Ismailzai.

Acerca del proyecto

Installs the ProtonMail bridge (optionally prompting for 2FA), registers it as a headless service, and configures Postfix to use it.

Instalar
ansible-galaxy install moismailzai.protonmail_bridge_headless
Licencia
mit
Descargas
197
Propietario
ismailzai.com/keys/ssh.pub ismailzai.com/keys/gpg.asc