FreeBSD 10.0 - 受信メールサーバ Dovecot インストール!

Updated:


「FreeBSD 10.0 - 受信メールサーバ Dovecot インストール」についての記録です。

(旧バージョンでの個人の作業記録を更新しました。興味がなければスルーしてください)

0. 前提条件

  • 以下の作業は、リモート接続して行う。(リモートから ssh vbox で接続)
  • リモート端末は、 Linux Mint 17 マシンを想定しているが、 Unix 系 OS なら同じ。
  • 設定ファイル等のテキストファイルの編集には vi コマンドを使用。
  • 作業はリモート接続で一般ユーザから root になって行う。
  • ドメインは “mk-mode.com” を想定。
  • ログローテションをするので logrotate がインストール済みであること。
  • 主にFreeBSDサーバー構築マニュアルを参照。

1. Dovecot インストール

# cd /usr/ports/mail/dovecot
# make BATCH=yes install clean
# cd

2. dovecot.conf 編集

まず、書き込み権限を付与。

# chmod 640 /usr/local/etc/dovecot.conf

そして、編集。

File: /usr/local/etc/dovecot.conf

1
2
3
4
5
protocols = imap pop3              # <= 変更(imap, pop3 のみに対応)

ssl = no                           # <= コメント解除&変更(SSL 拒否)

mail_location = maildir:~/Maildir  # <= 変更(メールボックスの場所)

3. Dovecot 自動起動設定

File: /etc/rc.conf

1
dovecot_enable="YES"  # <= 追加

4. Dovecot 起動

PortSentry が起動していとポート 143/TCP との競合で Dovecot が起動できないので、まず PortSentry を停止。

# /usr/local/etc/rc.d/portsentry.sh stop

そして、Dovecot を起動。

# /usr/local/etc/rc.d/dovecot start
Starting dovecot.
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.

Dovecot 起動後に再度 PortSentry を起動。

# /usr/local/etc/rc.d/portsentry.sh start
portsentry (tcp udp)

5. メールエイリアス DB 再構築

user_name は実際のユーザ名に置き換えること)

File: /etc/aliases

1
root:    user_name  # <= 最終行に追加(root 宛メールの転送ユーザ(もしくはメールアドレス))

そして、設定を反映。

# postalias /etc/aliases

6. 既存ユーザ用メールディレクトリ作成

user_name は実際のユーザ名に置き換えること)

# mkdir -p /home/user_name/Maildir/{cur,new,tmp}
# chmod -R 700 /home/user_name/Maildir
# chown -R user_name:user_name /home/user_name/Maildir

7. 新規ユーザ用メールディレクトリ作成

# mkdir -p /usr/share/skel/Maildir/{cur,new,tmp}
# chmod -R 700 /usr/share/skel/Maildir/

8. Procmail 設定

以下の内容でファイルを作成。

File: /usr/local/etc/procmailrc

1
2
3
4
5
6
7
8
9
10
11
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
#LOGFILE=$MAILDIR/procmail.log

# 件名に「未承諾広告※」を含むメールを破棄する
:0
* ^Subject:.*=\?[Ii][Ss][Oo]-2022-[Jj][Pp]\?[Bb]\?GyRCTCQ\+NUJ6OS05cCIo
/dev/null

9. Procmail ログローテーション

以下の内容のファイルを作成。

File: /usr/local/etc/logrotate.d/procmail

1
2
3
4
5
/home/*/Maildir/procmail.log {
    monthly
    rotate 4
    missingok
}

10. POP3 接続確認

user_name, XXXXXXXXXX は実際のユーザ名・パスワードに置き換えること)

# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
USER user_name           # <= 入力
+OK
PASS XXXXXXXXXX          # <= 入力
+OK Logged in.
LIST                     # <= 入力
+OK 0 messages:
.
QUIT                     # <= 入力
+OK Logging out.
Connection closed by foreign host.

11. BASE64 エンコードでパスワード作成

user_name, XXXXXXXXXX は実際のユーザ名・パスワードに置き換えること)

# perl -MMIME::Base64 -e 'print encode_base64("user_name\0user_name\0user_pass");'
bW1lAHV1AG1hc2FQB1c2aBhc3M2yMQ==

(上記のキーは架空(手動でランダムに変更している))

12. SMTP 接続確認

user_name, XXXXXXXXXX, キーは実際のユーザ名・パスワード、キーに置き換えること)

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.mk-mode.com ESMTP Postfix
EHLO localhost                                 # <= 入力
250-mail.mk-mode.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN
250-AUTH=SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN bW1lAHV1AG1hc2FQB1c2aBhc3M2yMQ==    # <= 入力
235 2.7.0 Authentication successful
QUIT                                           # <= 入力
221 2.0.0 Bye
Connection closed by foreign host.

13. メール送信テスト

user_name は実際のユーザ名に置き換えること)

# echo test | mail -s TEST user_name
# ls /home/user_name/Maildir/new/
1413362731.37180_0.vbox.mk-mode.com
# rm -f /home/user_name/Maildir/new/*  # <= 削除する場合

14. その他

実運用時にはポート開放の設定を適切に行うこと。


以上。





 

Sponsored Link

 

Comments