Yannik.relaymail
Opis
Ta rola konfiguruje host, aby wysyłał wychodzące maile przez smarthost i opcjonalnie przesyłał e-maile skierowane do lokalnych użytkowników systemu. To bezpieczna alternatywa dla ssmtp.
Dlaczego nie powinienem używać ssmtp, czy nie jest łatwiejsze do skonfigurowania?
Uważam, że ta rola ułatwia konfigurację postfixa bardziej niż ssmtp.
Oto co odkryłem, gdy sam zainstalowałem ssmtp:
Chciałem użyć ssmtp, ale zauważyłem, że nie weryfikuje certyfikatu SSL/TLS zdalnego serwera na obecnych wersjach Debiana i Ubuntu i nie weryfikuje nazwy hosta certyfikatu. To duży problem, ponieważ sprawia, że szyfrowanie staje się bezużyteczne, a twoje hasło jest przesyłane jak w formie tekstu jawnego i ktokolwiek może je przechwycić. Zgłoszono to również jako błąd w Debianie, ale nie było żadnego postępu przez lata: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662960
Wersja ssmtp w pakietach Redhat została poprawiona, aby przynajmniej weryfikować certyfikat, ale nazwa hosta nadal nie jest weryfikowana, co sprawia, że szyfrowanie jest tak samo niebezpieczne jak w Debianie/Ubuntu. Istnieje błąd w tej sprawie, ale nie ma postępu od lat: https://bugzilla.redhat.com/show_bug.cgi?id=864894
Jeśli zależy ci na bezpieczeństwie konta e-mail, które używasz do wychodzących wiadomości ze swoich serwerów, nie używaj ssmtp.
ssmtp nie miało aktywnego rozwoju przynajmniej od 2009 roku: https://anonscm.debian.org/gitweb/?p=ssmtp/ssmtp.git
Oprócz tych kwestii, każdy użytkownik, który może wysyłać maile przez ssmtp, potrzebuje dostępu do pliku konfiguracyjnego ssmtp, który zawiera nazwę użytkownika i hasło używane do uwierzytelniania smtp. W normalnych warunkach prawdopodobnie dałbyś uprawnienia do odczytu dla "innych", co oznacza, że każdy użytkownik/usługa w tym systemie mógłby czytać Twoje dane uwierzytelniające smtp.
To nie dotyczy projektowania z myślą o bezpieczeństwie w postfixie.
Wymagania
Ta rola działa na wszystkich dystrybucjach opartych na Debianie i można ją łatwo dostosować do pracy na każdej dystrybucji, która obsługuje postfix.
Wymagana jest wersja Ansible 2.4 lub wyższa dla tej roli.
Zmienne roli
relaymail_smtp_host
: nazwa hosta serwera smtp używanego do przesyłania e-maili (wymagane)- Przykład:
smtp.example.org
- Przykład:
relaymail_smtp_port
: port serwera smtp używanego do przesyłania e-maili- Domyślnie:
587
- Domyślnie:
relaymail_smtp_user
: nazwa użytkownika do uwierzytelniania w serwerze poczty (wymagane)- Przykład:
[email protected]
- Przykład:
relaymail_smtp_password
: hasło do uwierzytelnienia w serwerze poczty (wymagane)relaymail_force_from_address
: nadpisuje adres nadawcy narelaymail_smtp_user
(lubrelaymail_from_address
, jeśli jest zdefiniowane).all
nadpisuje adres nadawcy dla wszystkich e-maili,local
nadpisuje go dla wszystkich maili wysyłanych przez lokalnego użytkownika,none
nigdy nie nadpisuje adresu nadawcy- Domyślnie:
all
- Domyślnie:
relaymail_from_address
: opcjonalny adres nadawcy, który będzie używany przezrelaymail_force_from_address
zamiastrelaymail_smtp_user
- Przykład:
user
lub[email protected]
- Przykład:
relaymail_overwrite_to
:all
nadpisuje adres odbiorcy dla wszystkich e-maili,local
nadpisuje adres odbiorcy dla e-maili skierowanych do lokalnych użytkowników,none
nigdy nie nadpisuje adresu odbiorcy- Domyślnie:
all
- Domyślnie:
relaymail_overwrite_to_target
: adres e-mail, na który powinny być wysyłane maile z nadpisanym adresem odbiorcy (wymagane, gdyrelaymail_overwrite_to
nie jestnone
)- Przykład:
[email protected]
- Przykład:
relaymail_smtp_tls_security_level
: Zobacz http://www.postfix.org/postconf.5.html#smtp_tls_security_level- Przykład:
dane-only
- Domyślnie:
secure
- Przykład:
relaymail_smtp_tls_wrappermode
: Połączenie z użyciem trybu SSL/TLS (zamiast STARTSSL). Wymagany przy przesyłaniu maili na porcie 465 (SMTPS).- Przykład:
"yes"
- Domyślnie:
"no"
- Przykład:
relaymail_authorized_submit_users
: Tylko wybrani użytkownicy mogą przesyłać maile za pomocą komendy sendmail (zobacz http://www.postfix.org/postconf.5.html#authorized_submit_users)- Przykład:
root
- Domyślnie:
static:anyone
- Przykład:
relaymail_restrict_port_25
: Ogranicza wychodzący ruch na porcie 25 do użytkownika postfix (za pomocą iptables).- Przykład:
false
- Domyślnie:
true
- Przykład:
relaymail_enable_smtpd
: Aktywuje smtpd na porcie 25 dla przesyłania e-maili opartego na smtp- Przykład:
true
- Domyślnie:
false
- Przykład:
relaymail_inet_interfaces
: Interfejsy do nasłuchiwania, gdy smtpd jest aktywowany- Przykład:
all
- Domyślnie:
loopback-only
- Przykład:
relaymail_mynetworks
: Sieci, z których można akceptować i przekazywać e-maile (dotyczy tylko, gdy smtpd jest aktywowany)- Przykład:
127.0.0.0/8 172.30.0.0/16
- Domyślnie:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Przykład:
relaymail_authorized_smtp_users
: Użytkownicy, którzy mogą przesyłać maile za pośrednictwem lokalnego smtp- Przykład:
['keepalived']
- Domyślnie:
[]
- Przykład:
relaymail_install_rsyslog
: Instaluje rsyslog, który jest odpowiedzialny za zapisywanie wiadomości dziennika postfixa w/var/log/mail.log
- Przykład:
false
- Domyślnie:
true
- Przykład:
relaymail_additional_options
: słownik par klucz/wartość, który zostanie dodany domain.cf
.- Domyślnie:
{}
- Domyślnie:
relaymail_additional_master_config
: Dodatkowa konfiguracja, która jest dodawana domaster.cf
- Domyślnie: ``
Uwaga: Opcje ustawione za pomocą relaymail_additional_options
nadpiszą wcześniejsze ustawienia. Zgodnie z podręcznikiem postfixa, "Gdy ten sam parametr jest definiowany wielokrotnie, tylko ostatni przypadek jest zapamiętywany." Więc chociaż nadpisania są dozwolone, postfix wygeneruje komunikat ostrzegawczy.
Przykładowy playbook
- hosts: all
roles:
- role: Yannik.relaymail
relaymail_smtp_host: smtp.example.org
relaymail_smtp_user: [email protected]
relaymail_smtp_password: secret
relaymail_overwrite_to: local
relaymail_overwrite_to_target: [email protected]
relaymail_additional_options:
smtp_tls_wrappermode: "yes"
Licencja
GPLv2
Informacje o autorze
Yannik Sembritzki
This role setups up a host so that it sends outgoing mails over a smarthost and optionally forwards email addressed to local system users. A secure alternative to ssmtp.
ansible-galaxy install Yannik.relaymail