Debian8.0 JessieでPostfix + DovecotSASLメールサーバー構築

2015/05/17[公開]

 ウチの自宅サーバーをDebian8.0 JessieにアップデートするためにOSをクリーンインストールしたのですが、前に記事にしたPostfix+Dovecot+SASL2の設定ではメールシステムが上手く動きませんでした。

 DovecotのWikiページを参考に、pop3とIMAP、SMTPに対応させて、さらにpop3s、IMAPs、SMTPsで利用する設定を実施した備忘録です。

このページの目次

スポンサー リンク

Dovecot SASL認証を使う

 メールサーバーシステムを設定しようとすると、PostfixとDovecotでMTAとMRAと役割が分かれているとか、悪意のある第三者にスパムメールの踏み台にされないようにSASL認証を設定しないといけないなど、相当ややこしいですね。

 今回もバージョンが変われば設定も変わるということで最初さっぱり動いてくれなかったので、いろいろググっていたらDovecotがSASL認証を上手い事やってくれるようなことがDovecotのWikiに英語で書いてありました。いままでPostfixとDovecotとSASLの3つを設定して連携させなくてはいけなかったのがPostfixとDovecotの2つだけ設定すればいいようです。3つを連携させるのが2つになるだけで全然複雑さが違います。

 PostfixがDovecot SASLに対応しているかは postconf -a コマンドで確認できるとのことです。(下記のpostfixとdovecotを先にインストールしてください。)

# postconf -a

cyrus
dovecot

  Debian Jessieでは、cyrusとdovecotが対応しているようです。

PostfixとDovecotのインストール

 postfixとdovecotをインストールします。aptitudeでインストールします。

aptitude install dovecot-imapd dovecot-pop3d postfix
dovecot1
説明だけなので<了解>で進みます
dovecot2
私はインターネットサイトを選びました。固定グローバルIPの場合はこれでしょう。
dovecot3
メールアドレスの@以下を入れて<了解>で進みます。

Dovecotの設定

 dovecotの設定は、/etc/dovecot/conf.d の中の4ファイルを編集します。

10-master.conf ファイルの編集

 22-23行目の#コメントを外してIMAPsのポート993を待ち受け状態にします。19行目のIMAPポート143はデフォルトで有効になっているので#はそのままで大丈夫です。

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }

  43-44行目の#コメントを外してPOP3sのポート995を待ち受け状態にします。

service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

 96-98の#コメントを外して、PostfixのSASL認証と連携させます。

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }

10-mail.conf ファイルの設定

 Maildir形式に変更します。30行目を#コメントアウトして31行目を追記します。

#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir

10-auth.conf ファイルの編集

 10行目をyesからnoに変えて、プレインテキスト認証を有効にします。

disable_plaintext_auth = no

 100行目に login を追加してOutlook Expressやwindowsメールに対応させます。

auth_mechanisms = plain login

10-ssl.conf ファイルの編集

 POP3s、IMAPs、SMTPsを使うならTLS/SSL必須なので有効にします。私しか使わないメールサーバーなので、証明書はPostfixインストール時に作成されたsnakeoil証明書を利用します。

 6行目を#を外して、yesに変えて有効にします。

ssl = yes

 13-14行目で証明書ファイルの場所を指定します。

ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key

 Postfixの設定

 postfixの設定は/etc/postfix の中の2つのファイルを編集します。

main.cf ファイルの編集

  38-39行目を#コメントアウトして、一行追加してMaildir形式に変更します。

#mailbox_command = procmail -a "$EXTENSION"
#mailbox_size_limit = 0
home_mailbox = Maildir/

 SASL認証をDovecotと連携させる設定を一番下に追加します。

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_relay_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination

master.cf ファイルの編集

 今回はSMTPsに対応させるので、28-38行目の#コメントを外します。ポート587のsubmissionポートも使う場合は、17-27行目も#を外します。

#tlsproxy  unix  -       -       -       -       0       tlsproxy
#submission inet n       -       -       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_helo_restrictions=$mua_helo_restrictions
  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -

Maildirディレクトリ作成

 メール保存をMaildir形式にしたので、Maildirディレクトリを作成します。

 既存ユーザーでログインした状態で

su [user_name]
maildirmake.dovecot ~/Maildir

 各ユーザーのホームディレクトリにMaildirフォルダを作ります。

 次は、suコマンドでroot権限になってから

maildirmake.dovecot /etc/skel/Maildir

 これで今後追加するユーザーはMaildirディレクトリが自動で作られます。

サービス再起動と動作確認

 設定が有効になるのはサービス再起動後からです。

/etc/init.d/dovecot restart
/etc/init.d/postfix restart

 動作確認

 次の3つとも動作確認ができればたぶんPsotfixとDovecot側の設定は成功です。今回は相当ハマりました。

待ち受けポート確認

 netstat -an –tcp コマンドで各ポートがLISTENになっているか確認します。

# netstat -an --tcp

稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN

telnet 127.0.0.1 25

# telnet 127.0.0.1 25

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 fanless-svr.ikt-s.com ESMTP Postfix (Debian/GNU)

  telnetでポート25に接続してみます。Postfixの文字が出ていればOKです。quitと入力して終了します。

 Postfixの表示が出ていない場合は怪しいです。この場合はCtrl+] (‘む’のキー)を押してqで戻ります。

telnet 127.0.0.1 110

# telnet 127.0.0.1 110

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
+OK Dovecot ready.

  ポート110ではDovecot readyの表示が出ていればOKです。

クライアントPCのメーラー設定

 PCのメーラーにアカウント設定をします。Windows Live メールで設定した例です。

postfix11
POP3s とSMTPs の設定です。
IMAPs と SMTPs の設定です。
IMAPs と SMTPs の設定です。

最後にひとこと

 これでやっとメールシステム復旧しました。これでもだいぶ簡単に設定できるようになったと思います。

スポンサー リンク

  参考サイト:

http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL

https://help.ubuntu.com/community/PostfixDovecotSASL

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です