buluma.postfix

Rola Ansible postfix

Zainstaluj i skonfiguruj postfix na swoim systemie.

GitHub Wersja Problemy Prośby o Pull Pobrania
github Wersja Problemy Pull Requests Rola Ansible

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

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 Ansible Molecule Wersja
buluma.core_dependencies Ansible Molecule Wersja

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:

dependencies

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

Historia roli

Licencja

Apache-2.0

Informacje o autorze

Shadow Walker

O projekcie

Install and configure postfix on your system.

Zainstaluj
ansible-galaxy install buluma.postfix
Licencja
apache-2.0
Pobrania
86.9k
Właściciel
DevOps Engineer