PostfixおよびDovecotに基づく最小限のメールサーバー。 パート1:Dovecot

目的:PostfixとDovecotのみを使用し、デフォルト設定を最小限に変更して、最小限の動作をするメールサーバーを取得します。 システムのフレームワークを取得します。これに基づいて、将来、スパムフィルターを構成し、データベース、LDAPを操作できます。

郵便システムは以下を行う必要があります。

  1. 任意の数のドメインとユーザーをサポートします。
  2. ローカルアカウントに関連付けられていないユーザーにサービスを提供します。
  3. POP3、TLSサポート付きIMAPを介してメールボックスへのアクセスを提供します。
  4. TLSサポート付きのSMTPプロトコルを使用して、電子メールの送受信を提供します。


設定はCentOS 6で実行されました。Postfix2.6.6、Dovecot 2.0.9。 OS機能は適用されませんでした。



メールシステムの構造



慣例により、メールシステムは、メールボックスへのアクセス方法とユーザーのリストによって分けることができます。

従来のメールシステム

Postfix、Dovecotはユーザーのリストにアクセスして並行して作業し、ユーザーのメールボックスへのアクセスを共有します。

簡易メールシステム

Dovecotは、ユーザーのメールボックスにアクセスするための「バックエンド」です。 このアプローチでは、メールボックスの場所であるユーザーのリストはDovecotのみが知っています。 目標を達成するために使用するのはこのアプローチです。
画像 画像


単純化されたシステムと比較した古典的なシステムの主な利点:

  1. パフォーマンス。 Postfixはメールボックスにアクセスでき、2番目の場合よりも速く簡単にユーザーにメールを直接配信できます。
  2. システムの各部分が互いに独立していること。 Dovecotが切断された場合、Postfixは主な機能を継続します-手紙を受け取ります。


単純化されたシステムと比較した古典的なシステムの主な欠点:

  1. メールボックスの形式は、両方のプログラムで明確にする必要があります。
  2. メールボックスへのアクセスを同期する必要があります。
  3. 安全性 Postfixには追加の権限が必要です。 Postfixは、メールボックスとユーザーのリストに直接アクセスできる必要があります。
  4. セットアップとメンテナンスはもう少し複雑です。


ドコット



Dovecotはシステムの中核であるにもかかわらず、多くの機能を実行します。 その設定は問題を引き起こさないはずです。 おそらくこれは、Dovecotが認証されたクライアントのみを扱うという事実によるものであり、Postfixについては言えません。 名前はusername @ domainnameの形式で設定されます。

  1. ユーザー「vmail」を作成して、「shell」アクセスなしで、ホームフォルダ「/ home / vmail」を使用してメールを保存します。



  2. 認証を設定します。

    auth_mechanisms = plain login
          
          



    (ログインは同じプレーンですが、Outlookの場合)

     mail_gid = vmail mail_uid = vmail
          
          



    Dovecotでは、TLS接続の確立後のみパスワード送信の制限がデフォルトで実行され、追加の設定は必要ありません。 TLSを使用するため、他の認証メカニズムは不要で、PLAINのみが必要です。 Dovecotが/ etc / pki / dovecot / certs /フォルダーにインストールされると、CentOSの自己署名証明書が作成されます。これを使用して、TLSを構成します。

    重要な点に注意を向けたいと思います。 認証メカニズムと認証データの保存方法を区別する必要があります。 これら2つの概念は同じと呼ばれることもありますが、2つの異なるものです。 詳細はこちらこちら



  3. ユーザーのメールボックスを保存する場所を設定します。

    仮想ユーザーごとに、ホームフォルダーを次の形式で設定します-/ home / vmail / domain / username

     mail_home = /home/vmail/%d/%n
          
          



    およびホームフォルダ内のメールの場所-/ home / vmail / domain / username / Maildir、
     mail_location = maildir:~/Maildir
          
          



    Maildirメールボックスの形式は、必要に応じて従来のシステムへの移行を簡素化するために選択されます。 PostfixはMaildirをサポートしています。 ただし、従来のシステムに戻る予定がない場合は、Dovecotでサポートされているメールボックス形式を選択できます。



  4. 次の2つのディレクティブは、Dovecotがユーザー名とパスワードを検索する場所と方法を指定します。

     userdb { args = username_format=%u /etc/dovecot/users driver = passwd-file } passdb { args = scheme=ssha512 username_format=%u /etc/dovecot/users driver = passwd-file }
          
          



    標準のパスワードファイル/ etc / passwdの形式の/ etc / dovecot / usersファイルを使用しました。

    パスワードファイルの例(パスワードは切り捨てられます):

     user1@example1.com:{SSHA512}2YT51xuhilbvb4vYRIb1oj1EvrKFszhf2MNw=:::::: user3@example3.com:{SSHA512}GdBv9GEE1rfFpd4+fzXS+UKh4x6gTpTaH4=::::::
          
          



    セキュリティのため、ユーザーパスワードはクリアテキストではなく、ソルトされたSHA512を保存します。 ファイル「/ etc / dovecot / users」に入力するために、ユーザーのユーザー名とパスワードの2つのパラメーターでこのスクリプトを使用します。
     #!/bin/sh echo $1:$(doveadm pw -s ssha512 -p $2):::::: >> /etc/dovecot/users
          
          





  5. Postfixとの通信用のサービスをセットアップします。

    ユーザー名とSASL認証を検索します。

     service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { mode = 0600 user = vmail } }
          
          



    ユーザーのメールボックスにアクセスするため。

     service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } user = vmail } protocol lmtp { postmaster_address = postmaster@example1.ru }
          
          



    より詳細に読むことができます:ここでLMTPについて、ここでLMTPとPostfixについて、そしてここでSASLについて。



結果の「devconf –N」:
 # 2.0.9: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-504.16.2.el6.x86_64 x86_64 CentOS release 6.6 (Final) auth_mechanisms = plain login mail_gid = vmail mail_home = /home/vmail/%d/%n mail_location = maildir:~/Maildir mail_uid = vmail mbox_write_locks = fcntl passdb { args = scheme=ssha512 username_format=%u /etc/dovecot/users driver = passwd-file } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { mode = 0600 user = vmail } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } user = vmail } ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem userdb { args = username_format=%u /etc/dovecot/users driver = passwd-file } protocol lmtp { postmaster_address = postmaster@example.com }
      
      







これで、/ etc / dovecot / usersファイルにユーザー名とパスワードを追加するだけで十分になり、ユーザー認証が最初に成功した後にメールボックスが自動的に作成されます。 または、ユーザーが手紙を受け取った後、先を見てください。

パート2:Postfix



All Articles