ROCK5GmbH.mailserver

メールサーバーをセットアップするためのAnsibleロール

このansibleのロールは、トーマス・ライストナーによるこのブログ記事に記載されているように、メールサーバーをインストールします。

SSL

SSL証明書とキーは、メールホストの/etc/myssl/$FQDN.crt/etc/myssl/$FQDN.keyに配置されることが期待されています(ここで$FQDNはホストの完全修飾ドメイン名です)。このパスは、{{ ssl_directory }}変数を別のパスに設定することで変更できます。 これらのファイルが存在しない場合、初期利用のために自己署名証明書が作成されますが、これは本番環境では推奨されていません。信頼できるCAによって署名された証明書が必要な場合は、Let's Encryptを利用してください。

変数

このロールを使用するために、以下の変数を設定する必要があります。

変数 説明
dbserver_root_pw データベースのルートユーザーのパスワード
mailserver_sql_vmail_password データベース内のvmailユーザーのパスワード
milter_sql_spamass_password データベース内のspamassassinユーザーのパスワード
mailserver_hostname メールサーバーのホスト名(例:mail
mailserver_domain メールサーバーのドメイン(例:example.com

メールサーバーのインストールをカスタマイズするために、さらに多くの変数が利用可能です。これらはこのロールのdefaults/main.ymlやその依存関係に記載されています。

パスワード

vars/vars.ymlにパスワードをプレーンテキストで保存する代わりに、ansible vaultを使用することを検討してください。

vaultのクイックスタートのために、ansible-vault create vars/vault.ymlを実行して、次のように記入できます:

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(foo、bar、bazを安全なパスワードに置き換えてください)

このロールを含むプレイブックを実行する際は、--ask-vault-passを使用するのを忘れないでください。

デプロイメント

デプロイメントの前に、データベースユーザーのパスワードを必ず設定してください(上記参照)。 また、このプレイブックはUbuntu Server 16.04のデフォルトインストールを前提としており、他のディストリビューションではテストされていません。

サンプルのプレイブックは次のようになります:

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

このロールとすべての依存関係を取得するには、ansible galaxyを使用できます:

ansible-galaxy install ROCK5GmbH.mailserver

単一ホストにデプロイするには、次のコマンドを実行すれば十分です:

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

ここで$HOSTはサーバーのIPアドレスまたはURLです。

複数のホストにデプロイしたい場合は、各ホストごとに変数を設定できるように、インベントリを使うことをお勧めします。

デプロイメントが完了すると、メールサーバーはほぼ準備が整います。残るのは実際のドメインとユーザーをSQLデータベースに追加することだけです。 まず、doveadm pw -s SHA512-CRYPTを使用してユーザーのパスワードのハッシュを生成してください。 ユーザーを追加するには、サーバーにログインし、次のコマンドでデータベースに接続します:

mysql -u root -p

ここで、SQLデータベースのルートパスワードを入力します。次に、ドメイン(ここでは:mysystems.tld)とユーザー(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);

さらなるカスタマイズ

このセットアップでは、SQLデータベース内でTLSポリシーを設定できるため、特定のドメインに特定のTLSポリシーを設定できます。 ポリシーを追加するには、次のようにします:

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

さまざまな可能なポリシーは、こちらにリストされ、説明されています。 (match=.gmx.netは、Postfixがgmx.netの証明書をチェックすることを保証します。彼らはgmx.deの証明書を持っていないためです。)

新しいメールサーバーをDNSに追加することもお勧めします(A(AAA)およびMXレコード)、およびSPFとDKIMのエントリも追加してください。

プロジェクトについて

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

インストール
ansible-galaxy install ROCK5GmbH.mailserver
ライセンス
mit
ダウンロード
139
所有者
Sophisticated Web Applications & Plattform Operations