moismailzai.protonmail_bridge_headless

Rola Ansible: ProtonMail Bridge (bezgłowa)

Instaluje ProtonMail Bridge (opcjonalnie pytając o 2FA), rejestruje go jako usługę bezgłową oraz konfiguruje Postfix do jego użycia. Wspiera serwery RedHat/CentOS, Debian/Ubuntu i Archlinux.

Tło

Aplikacja ProtonMail Bridge dla systemu Linux umożliwia integrację twojego konta ProtonMail z programami e-mail IMAP i SMTP, takimi jak Thunderbird i Evolution. Bridge jest dostępny dla wszystkich użytkowników ProtonMail z płatną subskrypcją.

Celem tej roli jest automatyzacja instalacji bridge'a, aby mógł być używany na maszynie bez interfejsu graficznego.

Konkretne zadania tej roli to:

  • pobranie najnowszej wersji bridge'a
  • zapewnienie, że pakiet jest prawidłowo podpisany przed instalacją
  • skonfigurowanie bridge'a z danymi użytkownika
  • utworzenie usługi, aby bridge działał w tle
  • utworzenie zablokowanego użytkownika do uruchamiania usługi
  • skonfigurowanie postfixa do współpracy z bridge'em (SASL)
  • na systemach RHEL, (lub opcjonalnie) skonfigurowanie kontekstów SELinux

Wymagania

Wymaga systemu RedHat/CentOS 8, Ubuntu 18 lub nowszej, lub aktualnego systemu Debian, Archlinux, czy Manjaro.

Zmienne roli

Dostępne zmienne są wymienione poniżej, wraz z domyślnymi wartościami (zobacz defaults/main.yml):

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

Twoje dane logowania do ProtonMail oraz domena. Są one używane do dodania twojego konta do ProtonMail bridge'a oraz do konfiguracji postfixa. UWAGA: gdy protonmail_enable_2fa jest ustawione na true, ta rola będzie uruchamiana interaktywnie i poprosi o kod 2FA.

# configure_selinux: ""

Czy skonfigurować SELinux. Domyślnie jest to ustawione na true w systemach RHEL, a w przeciwnym razie na false.

gpg_key_settings:
    type: default
    length: default
    subkey_type: default
    subkey_length: default
    expire_date: 0
    name: klucz usługi protonmail-bridge-headless
    email: root@localhost

Te ustawienia są używane do utworzenia lokalnego klucza GPG. Klucz jest wymagany do komunikacji ProtonMail bridge'a i pass. Dodatkowe zmiany można wprowadzić w pliku templates/protonmail-bridge.gpg.j2. UWAGA: domyślne ustawienia generują nowy niechroniony klucz do wyłącznie użytku z bridge'em. Aby dodać hasło do klucza, będziesz musiał zmienić wartości domyślne oraz templates/protonmail-bridge-headless.service.sh.j2.

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

Może być użyty do pominięcia zadań w tej roli.

protonmail_lib_dir: "/var/lib/protonmail"

Lokalizacja, w której będą przechowywane pliki konfiguracyjne i usługi.

protonmail_user: "protonmail"
protonmail_user_flags: "-L"

Nazwa i flagi użytkownika usługi.

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

Ustawienia, które możesz nadpisać w main.cf.

selinux_httpd_can_sendmail: "true"

Czy dodać polityki selinux dla httpd, podczas konfigurowania postfixa.

Zależności

Płatne konto ProtonMail.

Przykład użycia

Najpierw zainstaluj aktualną wersję 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

Następnie utwórz plik o nazwie main.yml i dodaj poniższe (zastępując twoja_nazwa_użytkownika, twoje_hasło oraz twoja_domena rzeczywistymi wartościami):

- name: "zainstaluj i skonfiguruj protonmail-bridge jako usługę bezgłową"
  become: "tak"
  hosts: "wszystkie"
  vars:
    protonmail_username: "twoja_nazwa_użytkownika"
    protonmail_password: "twoje_hasło"
    protonmail_custom_domain: "twoja_domena"
  roles:
    - "moismailzai.protonmail_bridge_headless"

Następnie z linii poleceń w tym samym katalogu uruchom:

# instaluje tę rolę z Ansible Galaxy
ansible-galaxy install moismailzai.protonmail_bridge_headless

# upewnij się, że Ansible może znaleźć rolę, którą właśnie pobrałeś
ln -s ~/.ansible/roles roles

# uruchom plik playbook, który stworzyłeś w poprzednim kroku
sudo ansible-playbook -c local -i localhost, main.yml

Po zakończeniu procesu, wyślij do siebie wiadomość testową z linii poleceń:

echo "Jeśli to widzisz, bridge został poprawnie skonfigurowany." | mail -s "Wiadomość testowa ProtonMail-bridge" -r twoj@email.adres odbiorca@email.adres

Licencja

MIT

Informacje o autorze

Ta rola została stworzona w 2021 roku przez Mo Ismailzai.

O projekcie

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

Zainstaluj
ansible-galaxy install moismailzai.protonmail_bridge_headless
Licencja
mit
Pobrania
197
Właściciel
ismailzai.com/keys/ssh.pub ismailzai.com/keys/gpg.asc