Ansibleでメールサーバーを建ててみる


Webサーバーはよく建てるがメールサーバーは建てた事が無い・・・
なので、簡単に建てられるメールサーバースクリプトを書いてみました。

githubへ

Ansibleのwith_itemsを使って、バーチャルメールボックスの作成・IDパスワードの発行が出来るようにしてみました。

またメールのバックアップ先としてAmazonS3を採用しているので、構築→撤去→再構築が非常に楽です。

メリット

  • コマンド一発でメールサーバーが構築出来る。
  • Yamlファイルでアカウントを管理出来るので、MySQLよりも構築が簡単で設定しやすい。
  • メールのバックアップはS3に全部投げてるからトラブル時の復旧が楽。

デメリット

  • CentOS6.*しか使えない。
  • アカウント追加に毎回ansibleの実行が必要。
  • アカウントIDがメールアドレスに固定される。
  • TLSサポートしていない
  • .bashrcとか上書きしちゃう

とデメリットが非常に多くなってしまいましたが、実験やお手軽なメールサーバーの構築に役立てて頂けると幸いです。

初めてメールサーバーを建てたので、おかしい設定・バグ・セキュリティ欠陥等あればコメントして頂けると嬉しいです。

追記

2015-04-16

  • 単位時間辺りの配信数制限を追加しました。
  • クライアント辺りの同時接続数/時間あたりの接続回数制限を追加しました。
  • 特定のドメインに対する遅延配信設定(スパム回避の為)を追加しました

2015-04-14

  • 簡易メーリングリスト機能を追加しました。
  • メールエイリアスに関する設定を変更しました。

2015-04-13

  • クォータの設定の代わりにドメイン毎の容量レポーターを追加しました。
  • imap接続に対応しました。