buluma.postfix
Rola Ansible postfix
Zainstaluj i skonfiguruj postfix na swoim systemie.
GitHub | Wersja | Problemy | Prośby o Pull | Pobrania |
---|---|---|---|---|
Przykładowy Playbook
Ten przykład pochodzi z molecule/default/converge.yml
i jest testowany przy każdym pushu, prośbie o pull oraz wydaniu.
---
- name: Zastosuj
hosts: all
become: true
gather_facts: true
roles:
- role: buluma.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: ("adres-email" i "hasło-email" są przykładowe)
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 adres-email:hasło-email
Maszyna musi być przygotowana. W CI jest to robione za pomocą molecule/default/prepare.yml
:
---
- name: Przygotuj
hosts: all
become: true
gather_facts: false
roles:
- role: buluma.bootstrap
- role: buluma.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 na nazwę interfejsu, np. "eth0".
postfix_inet_interfaces: "loopback-only"
# Włącz IPv4, a jeśli wspierane, to także IPv6 - jeśli tylko IPV4 ustaw na ipv4
postfix_inet_protocols: all
# Ustaw baner
postfix_banner: "$myhostname ESMTP $mail_name"
# Miejsce docelowe mówi Postfix, dla jakich maili ma akceptować pocztę.
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 hosta przekaźnikowego.
# 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 A-record przekaźnika.
# 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 TLS SMTP dla klienta Postfix
# Ważne 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,
# (wskaźnik: rola: buluma.spamassassin) i ustaw te dwie zmienne:
# postfix_spamassassin: enabled
# postfix_spamassassin_user: spamd
# Aby włączyć clamav, upewnij się, że clamav jest zainstalowany,
# (wskaźnik: rola: buluma.clamav) i ustaw tę zmienną:
# postfix_clamav: enabled
# Możesz skonfigurować aliasy tutaj. Zwykle przekierowanie `root` to dobry pomysł.
# postfix_aliases:
# - name: root
# destination: [email protected]
# Możesz skonfigurować kontrolę dostępu nadawców tutaj.
# postfix_sender_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Możesz skonfigurować kontrolę dostępu 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 używać lokalnej usługi biff.
# postfix_biff: true
# Przy lokalnie przesyłanej poczcie, dodaj ciąg ".$mydomain" do adresów, które nie mają informacji ".domain"
# postfix_append_dot_mydomain: false
# Bazy danych aliasów używane do lokalnej (8) dostawy
# postfix_alias_maps: "hash:/etc/aliases"
# Prefiks, który agent dostawy virtual(8) dołącza do wszystkich wyników ścieżki z tabeli $virtual_mailbox_maps.
# postfix_virtual_mailbox_base: /var/mail
# Opcjonalne tabele wyszukiwania z wszystkimi ważnymi adresami w domenach, które odpowiadają $virtual_mailbox_domains.
# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
# Postfix jest ostatecznym celem dla wskazanej listy domen; poczta jest dostarczana za pomocą transportu dostawy $virtual_transport
# postfix_virtual_mailbox_domains: "$virtual_mailbox_maps"
# Postfix jest ostatecznym celem dla wskazanej listy wirtualnych domen aliasów, które mają wszystkie adresy aliasowane do adresów w innych lokalnych lub zdalnych domenach.
# postfix_virtual_alias_domains: "$virtual_alias_maps"
# Opcjonalne tabele wyszukiwania, które aliasują konkretne adresy e-mail lub domeny do innych lokalnych lub zdalnych adresów.
# postix_virtual_alias_maps: "$virtual_maps"
# Tabele wyszukiwania z identyfikatorem użytkownika dla każdego odbiorcy, który agent dostawy virtual(8) używa podczas pisania do skrzynki odbiorczej odbiorcy.
# postfix_virtual_uid_maps: "static:2000"
# Tabele wyszukiwania z identyfikatorem grupy dla każdego odbiorcy do dostawy wirtualnej (8).
# postfix_virtual_gid_maps: "static:2000"
# Włącz autoryzację SASL w serwerze SMTP Postfix.
# postfix_smtpd_sasl_auth_enable: true
# Nazwa lokalnej domeny autoryzacji SASL serwera SMTP Postfix.
# postfix_smtpd_sasl_local_domain: $myhostname
# Opcje bezpieczeństwa SASL serwera SMTP Postfix; od Postfix 2.3 lista dostępnych funkcji zależy od wybieranego wdrożenia serwera SASL z smtpd_sasl_type.
# postfix_smtpd_sasl_security_options: noanonymous
# Raportuj nazwę użytkownika z autoryzacją SASL w nagłówku wiadomości odebranej smtpd(8).
# postfix_smtpd_sasl_authenticated_header: true
# Włącz współpracę z zdalnymi klientami SMTP, które implementują przestarzałą wersję polecenia AUTH (RFC 4954).
# postfix_broken_sasl_auth_clients: false
# Plik zawierający (format PEM) certyfikaty CA zaufanych 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 na docelowy host.
# 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 na docelowy host.
# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem
# Zażądaj, aby serwer SMTP Postfix produkował nagłówki wiadomości Received, które zawierają informacje o protokole i szyfrowaniu używanym, a także nazwie ogólnej zdalnego klienta SMTP i nazwie ogólnej wystawcy certyfikatu klienta.
# postfix_smtpd_tls_received_header: true
# Domyślny poziom bezpieczeństwa SMTP TLS dla klienta Postfix; gdy określona jest niepusta wartość, zastępuje to przestarzałe parametry smtp_use_tls, smtp_enforce_tls i smtp_tls_enforce_peername.
# postfix_smtpd_tls_security_level: may
# Poproś 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 opcjonalny cache sesji TLS serwera SMTP Postfix.
# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache
# Plik zawierający certyfikaty CA zaufanych do podpisywania certyfikatów serwerów SMTP zdalnych lub pośrednich CA.
# 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 opcjonalny cache 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 w pamięci tlsmgr(8) pseudo generatora liczb losowych (PRNG) pool.
# 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 maila i następny cel dostawy 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).
# 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ę poleceniem HELO lub EHLO przed wysłaniem polecenia MAIL lub innych poleceń wymagających 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 jakikolwiek klient może wykonać do tej usługi w jednostce czasu.
# postfix_smtpd_client_connection_rate_limit: 10
# Ile równoczesnych połączeń, jaki klient może wykonać do tej usługi.
# postfix_smtpd_client_connection_count_limit: 10
# Uważaj, że wiadomość zwrotna jest niedostępna, gdy dostarczenie kończy się błędem tymczasowym, a czas w kolejce osiągnął limit bounce_queue_lifetime.
# postfix_bounce_queue_lifetime: 5d
# Miejsce, w którym znajdują się pliki README Postfix, które opisują, jak zbudować, skonfigurować lub obsługiwać konkretny podsystem lub funkcję Postfixa.
# postfix_readme_directory: /usr/share/doc/postfix
# Miejsce, w którym znajdują się pliki HTML Postfix, które opisują, jak zbudować, skonfigurować lub obsługiwać konkretny podsystem lub funkcję Postfixa.
# 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, np. `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
Poniższe role są używane do przygotowania systemu. Możesz przygotować swój system w inny sposób.
Wymaganie | GitHub | Wersja |
---|---|---|
buluma.bootstrap | ||
buluma.core_dependencies |
Kontekst
Ta rola jest częścią wielu kompatybilnych ról. Zapoznaj się z dokumentacją tych ról w celu uzyskania dalszych informacji.
Oto przegląd powiązanych ról:
Kompatybilność
Ta rola była testowana na tych obrazach kontenerowych:
kontener | tagi |
---|---|
Amazon | Kandydat |
EL | 9, 8 |
Debian | wszystkie |
Fedora | wszystkie |
Ubuntu | wszystkie |
Kali | wszystkie |
Minimalna wersja Ansible wymagana to 2.12, testy zostały przeprowadzone na:
- Poprzedniej wersji.
- Aktualnej wersji.
- Wersji deweloperskiej.
Jeśli napotkasz problemy, zgłoś je na GitHubie
Dziennik zmian
Licencja
Informacje o autorze
Install and configure postfix on your system.
ansible-galaxy install buluma.postfix