ROCK5GmbH.mailserver

Rola Ansible do skonfigurowania serwera pocztowego

Ta rola ansible instaluję serwer pocztowy, jak opisano w tym wpisie blogowym autorstwa Thomasa Leistnera.

SSL

Certyfikaty SSL i klucze powinny znajdować się w /etc/myssl/$FQDN.crt oraz /etc/myssl/$FQDN.key na hoście pocztowym (gdzie $FQDN to pełna nazwa hosta). Można to zmienić, ustawiając zmienną {{ ssl_directory }} na inny katalog. Jeśli te pliki nie istnieją, zostanie utworzony certyfikat samopodpisany do początkowego użytku, jednak nie jest on rekomendowany do zastosowań produkcyjnych. Jeśli potrzebujesz certyfikatu podpisanego przez zaufany CA, sprawdź Let's Encrypt.

Zmienne

Następujące zmienne musisz ustawić, aby móc korzystać z tej roli:

Zmienna Opis
dbserver_root_pw hasło dla użytkownika root w bazie danych
mailserver_sql_vmail_password hasło dla użytkownika vmail w bazie danych
milter_sql_spamass_password hasło dla użytkownika spamassassin w bazie danych
mailserver_hostname nazwa hosta serwera pocztowego (np. mail)
mailserver_domain domena serwera pocztowego (np. example.com)

Istnieje wiele innych zmiennych, które można dostosować w instalacji serwera pocztowego. Możesz je znaleźć w pliku defaults/main.yml tej roli i jej zależnościach.

Hasła

Zamiast przechowywać hasła w formie tekstu jawnego w vars/vars.yml, rozważ użycie ansible vault.

Aby szybko zacząć z vaultem, możesz wykonać ansible-vault create vars/vault.yml i wypełnić go w ten sposób:

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(Zastąp foo, bar i baz bezpiecznymi hasłami)

Teraz, zawsze gdy uruchamiasz playbook z tą rolą, pamiętaj, aby użyć opcji --ask-vault-pass z ansible-playbook.

Wdrożenie

Przed wdrożeniem musisz ustawić hasła dla użytkowników bazy danych (patrz powyżej). Ponadto ten playbook zakłada domyślną instalację Ubuntu Server 16.04 i nie był testowany na innych dystrybucjach.

Przykładowy playbook mógłby wyglądać tak:

---
- hosts: all
  become: yes
  roles:
    - ROCK5GmbH.mailserver
  vars:
    - vault.yml

Aby pobrać tę rolę i wszystkie jej zależności, możesz użyć ansible galaxy:

ansible-galaxy install ROCK5GmbH.mailserver

Aby wdrożyć na jednym hoście, wystarczy wykonać

ansible-playbook --ask-vault-pass -i $HOST, playbook.yml

gdzie $HOST to adres IP lub URL serwera.

Jeśli chcesz wdrożyć na wielu hostach, zaleca się pracę z inwentarzami, aby ustawić zmienne dla każdego hosta, jednocześnie zachowując wspólne zmienne.

Po wdrożeniu serwer pocztowy będzie prawie gotowy do użycia. Wszystko, co pozostało, to dodać rzeczywiste domeny i użytkowników do swojej bazy danych SQL. Najpierw użyj doveadm pw -s SHA512-CRYPT, aby wygenerować hash hasła dla użytkownika. Aby dodać użytkownika, zaloguj się na swoim serwerze, a następnie połącz się z bazą danych za pomocą

mysql -u root -p

i wprowadź hasło roota do bazy danych SQL. Teraz dodaj domenę (np. mysystems.tld) i użytkownika (user1):

use vmail;
insert into domains (domain) values ('mysystems.tld');
insert into accounts (username, domain, password, quota, enabled, sendonly) values ('user1', 'mysystems.tld', '{SHA512-CRYPT}$kgid87hdenss', 2048, true, false);

Dalsza personalizacja

Ta konfiguracja pozwala również na wprowadzenie polityk TLS w bazie danych SQL, co umożliwia ustawienie konkretnych polityk TLS dla konkretnych domen. Możesz dodać politykę za pomocą

insert into tlspolicies (domain, policy, params) values ('gmx.de', 'secure', 'match=.gmx.net');

Różne możliwe polityki są wymienione i wyjaśnione tutaj. (match=.gmx.net zapewnia, że postfix sprawdzi certyfikat dla gmx.net, ponieważ nie mają oni certyfikatu dla gmx.de)

Możesz również dodać nowy serwer pocztowy do swojego DNS (rekord A(AAA) i MX), a także dodać wpis dla SPF i DKIM.

O projekcie

This role installs a mailserver with Postfix, Dovecot, Spamassassin, Amavis, ClamAV and a database backend.

Zainstaluj
ansible-galaxy install ROCK5GmbH.mailserver
Licencja
mit
Pobrania
139
Właściciel
Sophisticated Web Applications & Plattform Operations