robertdebock.postfix
Rola Ansible Postfix
Zainstaluj i skonfiguruj Postfix na swoim systemie.
GitHub | GitLab | Pobierania | Wersja |
---|---|---|---|
Przykładowy Playbook
Ten przykład pochodzi z molecule/default/converge.yml
i jest testowany przy każdym wypchnięciu zmian, wniosku o pull oraz wydaniu.
---
- name: Zbieżność
hosts: wszystkie
become: true
gather_facts: true
roles:
- rola: robertdebock.postfix
# postfix_relayhost: "[relay.example.com]"
postfix_myhostname: "smtp.example.com"
postfix_mydomain: "example.com"
postfix_myorigin: "example.com"
postfix_mynetworks:
- 127.0.0.0/8
- 192.168.0.0/16
postfix_aliases:
- name: root
destination: [email protected]
# Ustawienia Ziggo: ("email-address" i "email-password" to miejsca wypełniane)
postfix_relayhost: "[smtp.ziggo.nl]:587"
postfix_smtp_sasl_auth_enable: true
postfix_smtp_sasl_password_map: "/etc/postfix/relay_pass"
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_tls_security_level: may
postfix_smtp_sasl_password_map_content: |
[smtp.ziggo.nl]:587 email-address:email-password
Maszyna musi być przygotowana. W CI odbywa się to za pomocą molecule/default/prepare.yml
:
---
- name: Przygotowanie
hosts: wszystkie
become: true
gather_facts: false
roles:
- rola: robertdebock.bootstrap
- rola: robertdebock.core_dependencies
Zobacz także pełne wyjaśnienie i przykład dotyczące korzystania z tych ról.
Zmienne Roli
Domyślne wartości dla zmiennych są ustawione w defaults/main.yml
:
---
# plik domyślny dla postfix
# Te ustawienia są wymagane w Postfix.
postfix_myhostname: "{{ ansible_fqdn }}"
postfix_mydomain: "{{ ansible_domain | default('localdomain', true) }}"
postfix_myorigin: "{{ ansible_domain | default('localdomain', true) }}"
# Aby "nasłuchiwać" na publicznych interfejsach, ustaw inet_interfaces na coś takiego jak
# "all" lub nazwę interfejsu, na przykład "eth0".
postfix_inet_interfaces: "loopback-only"
# Włącz IPv4, a jeśli obsługiwane - także IPv6; jeśli tylko IPV4 ustaw na ipv4
postfix_inet_protocols: all
# Ustaw baner
postfix_banner: "$myhostname ESMTP $mail_name"
# Cel określa, dla jakich wiadomości Postfix powinien je akceptować.
postfix_mydestination: $mydomain, $myhostname, localhost.$mydomain, localhost
# Aby akceptować e-maile z innych maszyn, ustaw mynetworks na coś takiego jak
# "- 192.168.0.0/24".
postfix_mynetworks:
- 127.0.0.0/8
# Te ustawienia zmieniają rolę serwera Postfix na serwer przekaźnikowy.
# postfix_relay_domains: "$mydestination"
# Jeśli chcesz przekazywać e-maile do innego centralnego serwera przekaźnikowego, ustaw relayhost.
# użyj nawiasów, aby wysłać do rekordu A serwera przekaźnikowego.
# postfix_relayhost: "[relay.example.com]"
# Ustaw ograniczenia dotyczące odbierania e-maili.
postfix_smtpd_recipient_restrictions:
- permit_mynetworks
- permit_sasl_authenticated
- reject_unauth_destination
- reject_invalid_hostname
- reject_non_fqdn_hostname
- reject_non_fqdn_sender
- reject_non_fqdn_recipient
- reject_unknown_sender_domain
- reject_unknown_recipient_domain
- reject_rbl_client sbl.spamhaus.org
- reject_rbl_client cbl.abuseat.org
- reject_rbl_client dul.dnsbl.sorbs.net
- permit
postfix_smtpd_sender_restrictions:
- reject_unknown_sender_domain
# Domyślny poziom bezpieczeństwa SMTP TLS dla klienta Postfix
# Prawidłowe wartości to: dane, encrypt, fingerprint, may, none, secure, verify
postfix_smtp_tls_security_level: none
# Aby włączyć spamassassin, upewnij się, że spamassassin jest zainstalowany,
# (wskazówka: rola: robertdebock.spamassassin) i ustaw te dwie zmienne:
# postfix_spamassassin: enabled
# postfix_spamassassin_user: spamd
# Aby włączyć clamav, upewnij się, że clamav jest zainstalowany,
# (wskazówka: rola: robertdebock.clamav) i ustaw tę zmienną:
# postfix_clamav: enabled
# Możesz skonfigurować aliasy tutaj. Typowo przekierowanie `root` to dobry pomysł.
# postfix_aliases:
# - name: root
# destination: [email protected]
# Możesz skonfigurować kontrolę dostępu nadawczo-ciągnącą tutaj.
# postfix_sender_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Możesz skonfigurować kontrolę dostępu dla odbiorców tutaj.
# postfix_recipient_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Możesz wyłączyć wersje SSL/TLS tutaj.
# postfix_tls_protocols: '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1'
# Możesz dostarczyć szablon transport_maps Jinja2 tutaj
# postfix_transport_maps_template: /path/to/transport.j2
# Możesz dostarczyć szablon header_checks Jinja2 tutaj
# postfix_header_checks_template: /path/to/header_checks.j2
# Czy korzystać z lokalnej usługi biff.
# postfix_biff: true
# W przypadku lokalnie przesyłanej poczty do adresów, które nie mają informacji o ".domain",
# dodaj ciąg ".$mydomain".
# postfix_append_dot_mydomain: false
# Bazy danych aliasów wykorzystywanych do dostarczania lokalnego(8)
# postfix_alias_maps: "hash:/etc/aliases"
# Prefiks, który agent dostarczający wirtualne(8) dołącza do wszystkich wyników wyszukiwania w tabeli $virtual_mailbox_maps.
# postfix_virtual_mailbox_base: /var/mail
# Opcjonalne tabele wyszukiwania z wszystkimi ważnymi adresami w domenach zgodnych z $virtual_mailbox_domains.
# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
# Postfix jest ostatecznym miejscem przeznaczenia dla określonej listy domen; e-maile są dostarczane za pomocą transportu dostawy $virtual_transport.
# postfix_virtual_mailbox_domains: "$virtual_mailbox_maps"
# Postfix jest ostatecznym miejscem przeznaczenia dla określonej listy wirtualnych domen aliasów, tj. domen, dla których wszystkie adresy są aliasowane do adresów w innych lokalnych lub zdalnych domenach.
# postfix_virtual_alias_domains: "$virtual_alias_maps"
# Opcjonalne tabele wyszukiwania, które aliasują określone adresy e-mail lub domeny do innych lokalnych lub zdalnych adresów.
# postix_virtual_alias_maps: "$virtual_maps"
# Tabele wyszukiwania z identyfikatorem UID dla każdego odbiorcy, które agent dostarczający wirtualne(8) wykorzystuje podczas pisania do skrzynki odbiorczej odbiorcy.
# postfix_virtual_uid_maps: "static:2000"
# Tabele wyszukiwania z identyfikatorem GID dla każdego odbiorcy, dla dostarczania skrzynki wirtualne(8).
# postfix_virtual_gid_maps: "static:2000"
# Włącz autoryzację SASL w serwerze SMTP Postfix.
# postfix_smtpd_sasl_auth_enable: true
# Nazwa lokalnego sasla serwera SMTP Postfix.
# postfix_smtpd_sasl_local_domain: $myhostname
# Opcje bezpieczeństwa SASL dla serwera SMTP Postfix; od Postfix 2.3 lista dostępnych funkcji zależy od implementacji serwera SASL, która jest wybrana za pomocą smtpd_sasl_type.
# postfix_smtpd_sasl_security_options: noanonymous
# Zgłoś nazwę użytkownika autoryzowanego przez SASL w nagłówku wiadomości smtpd(8) odebranej.
# postfix_smtpd_sasl_authenticated_header: true
# Włącz interoperacyjność z zdalnymi klientami SMTP, które implementują przestarzałą wersję komendy AUTH (RFC 4954).
# postfix_broken_sasl_auth_clients: false
# Plik zawierający (format PEM) certyfikaty CA zaufane do podpisywania certyfikatów zdalnych klientów SMTP lub certyfikatów pośrednich CA.
# postfix_smtpd_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Plik z certyfikatem RSA serwera SMTP Postfix w formacie PEM.
# postfix_smtpd_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Lokalny plik z certyfikatem RSA serwera SMTP Postfix w formacie PEM, który ma być skopiowany do hosta docelowego.
# postfix_smtpd_tls_cert_file_source: ./certs/cert.pem
# Plik z prywatnym kluczem RSA serwera SMTP Postfix w formacie PEM.
# postfix_smtpd_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem
# Lokalny plik z prywatnym kluczem RSA serwera SMTP Postfix w formacie PEM, który ma być skopiowany do hosta docelowego.
# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem
# Żądaj, aby serwer SMTP Postfix generował nagłówki wiadomości Received:, które zawierają informacje o protokole i użytym szyfrowaniu, a także nazwie ogólnej klienta SMTP zdalnego oraz nazwie ogólnej wydawcy certyfikatów.
# postfix_smtpd_tls_received_header: true
# Domyślny poziom bezpieczeństwa SMTP TLS dla klienta Postfix; gdy określona jest niepusta wartość, nadpisuje to przestarzałe parametry smtp_use_tls, smtp_enforce_tls oraz smtp_tls_enforce_peername.
# postfix_smtpd_tls_security_level: may
# Zapytaj zdalnego klienta SMTP o certyfikat klienta.
# postfix_smtpd_tls_ask_ccert: true
# Włącz dodatkowe logowanie serwera SMTP Postfix dotyczące aktywności TLS.
# postfix_smtpd_tls_loglevel: 1
# Nazwa pliku zawierającego opcjonalną pamięć podręczną sesji TLS serwera SMTP Postfix.
# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache
# Plik zawierający certyfikaty CA zaufane do podpisywania żądanych certyfikatów lub certyfikatów pośrednich zdalnych serwerów SMTP.
# postfix_smtp_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Plik z certyfikatem RSA klienta SMTP Postfix w formacie PEM.
# postfix_smtp_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Plik z prywatnym kluczem RSA klienta SMTP Postfix w formacie PEM.
# postfix_smtp_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem
# Nazwa pliku zawierającego opcjonalną pamięć podręczną sesji TLS klienta SMTP Postfix.
# postfix_smtp_tls_session_cache_database: btree:/var/lib/postfix/smtp_tls_session_cache
# Zewnętrzne źródło entropii dla generatora liczb pseudolosowych tlsmgr(8) w pamięci.
# postfix_tls_random_source: dev:/dev/urandom
# Protokoły TLS akceptowane przez serwer SMTP Postfix z obowiązkowym szyfrowaniem TLS.
# postfix_smtpd_tls_mandatory_protocols: TLSv1
# Protokoły TLS, które klient SMTP Postfix będzie używał z obowiązkowym szyfrowaniem TLS.
# postfix_smtp_tls_mandatory_protocols: TLSv1
# Domyślny transport dostawy mailowej i następny cel dostarczenia do domen wymienionych w $virtual_mailbox_domains.
# postfix_virtual_transport: maildrop1
# Opcjonalna ścieżka do pliku skrzynki pocztowej w odniesieniu do katalogu domowego lokalnego(8) użytkownika.
# postfix_home_mailbox: Maildir/
# Maksymalny rozmiar w bajtach wiadomości, w tym informacje o kopercie.
# postfix_message_size_limit: 10240000
# Wymagaj, aby zdalny klient SMTP przedstawił się jako HELO lub EHLO, zanim wyśle komendę MAIL lub inne komendy wymagające negocjacji EHLO.
# postfix_smtpd_helo_required: false
# Jednostka czasu, w której obliczane są wskaźniki połączeń klientów i inne wskaźniki.
# postfix_anvil_rate_time_unit: 60s
# Maksymalna liczba prób połączenia, jakie może wykonać dowolny klient do tej usługi w danym okresie.
# postfix_smtpd_client_connection_rate_limit: 10
# Jak wiele jednoczesnych połączeń może wykonać dowolny klient do tej usługi.
# postfix_smtpd_client_connection_count_limit: 10
# Uznaj wiadomość odbicia za niedostarczoną, gdy dostarczenie nie powiodło się z tymczasowym błędem, a czas w kolejce osiągnął limit bounce_queue_lifetime.
# postfix_bounce_queue_lifetime: 5d
# Lokalizacja plików README Postfix, które opisują, jak kompilować, konfigurować lub obsługiwać konkretny podsystem lub funkcję Postfix.
# postfix_readme_directory: /usr/share/doc/postfix
# Lokalizacja plików HTML Postfix, które opisują, jak kompilować, konfigurować lub obsługiwać konkretne podsystemy lub funkcje Postfix.
# postfix_html_directory: /usr/share/doc/postfix/html
# Możesz zmienić port, na którym Postfix nasłuchuje.
# Postfix używa `/etc/services` do mapowania nazw usług na numery portów, takie jak `2525`.
# Więc albo określ numer portu, albo nazwę usługi, jak `smtp`.
postfix_smtp_listen_port: smtp
postfix_smtp_sasl_auth_enable: false
postfix_smtp_sasl_password_map: ""
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_sasl_password_map_content: ""
Wymagania
- pakiety pip wymienione w requirements.txt.
Stan używanych ról
Następujące role są używane do przygotowania systemu. Możesz przygotować swój system w inny sposób.
Wymaganie | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies |
Kontekst
Ta rola jest częścią wielu kompatybilnych ról. Sprawdź dokumentację tych ról w celu uzyskania dalszych informacji.
Oto przegląd pokrewnych ról:
Kompatybilność
Ta rola została przetestowana na tych obrazach kontenerowych:
kontener | tagi |
---|---|
EL | 9 |
Debian | wszystkie |
Fedora | wszystkie |
Ubuntu | wszystkie |
Minimalna wymagana wersja Ansible to 2.12, testy zostały przeprowadzone na:
- Poprzedniej wersji.
- Bieżącej wersji.
- Wersji deweloperskiej.
Jeśli znajdziesz problemy, zgłoś je na GitHubie.
Licencja
Informacje o autorze
Proszę rozważyć wsparcie finansowe mnie.
Install and configure postfix on your system.
ansible-galaxy install robertdebock.postfix