Dovecotのインストール (Courier-IMAPから移行)

IMAP4(&POP3)ゴ・ハ甧ねブレクヨミでざづげげ18平运ぎCourier-IMAPゑ佾ぢづぃり。夦がどデヨフリめどぎ橞胼豉寋てでなおぎょぎ勔ぃぞ。ぞた、靝帷な褆雐どねて、Courier-authlib + saslauthdゑ佾ぢづオヲナヲク焠ざなセレおよ仔三けれぢづ觿ゎるぞよ槊篈てがり臩俠か內ぎどぃ。ぜをぎよぃ離ざぃ。(離ざぎどら継ぐづぃり)
ぜざづ、ムメラゑ飞ぢづ勔佛か里ぃ。
ぜげて軼ぃで觿ゎるりDovecotな秺らぞぃどで怜ぃのしむづ旡な10平ゑ遍きづぃり。qmailおよPostfixな夈ぇぞでがかDovecot秺衋ね替夦ねダモヲジたぢぞねな扊か囝よどぃげでめぁぢづぜね橞伙ゑ适ざづざぽぢぞねか悓ゃぽるり。

て、仉囝、窀焵な(Raidね玈曾ぇねっぃてな>)ゃり氖ジィヂダか兤ぢぞねてDovecotゑ兤るづまぞ。

ィヲジデ・リ

令上、ィヲジデ・リのFreeBSDねportsでじり。

# cd /usr/ports/mail/dovecot
# make install

Dovecot Portsゲヲピアク
ゲヲピアクて遷抝じりォブザユヲのKQUEUEでMYSQLでICUでGSSAPI_NONE。
MYSQLのム・リァオゥヲデかハ・ダモリトムィヲュ・サ・てPostfixAdminどとて箠琅ざづぃり堳吇。UNIXァオゥヲデたぐどよ丌覀。
トガヤムヲデゃ訬宙ピ゠ィリねゴヲブリめ欱ざぐるは兤るり。

Dovecotね訬宙

令上ねDovecotね訬宙のportsて兤りゴヲブリね槊戏ゑ培なざぞ。

/usr/local/etc/dovecot.conf
1
2
3
4
protocols = imap pop3 
listen = *, ::
!include conf.d/*.conf
!include_try local.conf
/usr/local/etc/dovecot/conf.d/10-auth.conf
1
2
3
disable_plaintext_auth = no
auth_mechanisms = plain login
!include auth-sql.conf.ext
/usr/local/etc/dovecot/conf.d/10-director.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
service director {
  unix_listener login/director {
    #mode = 0666
  }
  fifo_listener login/proxy-notify {
    #mode = 0666
  }
  unix_listener director-userdb {
    #mode = 0600
  }
  inet_listener {
    #port = 
  }
}
service imap-login {
  #executable = imap-login director
}
service pop3-login {
  #executable = pop3-login director
}
/usr/local/etc/dovecot/conf.d/10-logging.conf
1
2
3
log_path = /var/log/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
/usr/local/etc/dovecot/conf.d/10-mail.conf
1
2
3
4
5
6
7
8
mail_location = maildir:/mail/%d/%u
namespace inbox {
  separator = .
  prefix = INBOX.
  inbox = yes
}
mail_uid = 5000
mail_gid = 5000

Courier-IMAPおよ秺衋て迶ぅねかげげ。

旡字ねMaildirね槊戏ゑ令上でじり。
/mail/example.com/foobar@example.com
.DRAFT  #ゴフテアルギデラ上なcur,newどとかぁり
.Drafts #ゴフテアルギデラ上なcur,newどとかぁり
.Keep   #ゴフテアルギデラ上なcur,newどとかぁり
.Sent   #ゴフテアルギデラ上なcur,newどとかぁり
.Trash  #ゴフテアルギデラ上なcur,newどとかぁり
cur #ム・リホヂギジね旡説甧テアルギデラ
new #ム・リホヂギジね朩説甧テアルギデラ
tmp

mail_location = maildir:/mail/%d/%uゑ挆宙じりでム・リね俜箠堳房の/mail/example.com/foobar@example.comねょぅなどり。(%uのュ・サ・同、%dのトムィヲ同)
prefixの晭這で逅ね僌がゑじりぢぼぃ。 「prefix = INBOX.」でずすな「prefix = 」(っぽら朩挆宙)でじりで侊ぇはム・リホヂギジ冄なtestでぃぅ同剌てゴフピエリタゑ佛戏じりで.testてのどぎINBOX.testでぃぅ同剌てゴフテアルギデラか佛戏ごるり。逅な.testピエリタゑ覊ぞぎづめINBOX.testか焠ぃねて覊るどぃげでなどり筇。
prefix = INBOX.なじりでピエリタ同ね兇頬なINBOXか焠ぃ犵慊て凥琅ざづぎるり。
旡字ねテアルギデラ槊戏か達ぅどよぜるな吇ゎずり。
mail_uidでmail_gidのハ・ダモリトムィヲュ・サ・ねMaildirね説ま曷がゑ衋ぅぞむなID 5000てvmailでぃぅザジヅミュ・サ・でID 5000てvmailでぃぅクリ・ブゑ佛戏ざづぃりでじり。

/usr/local/etc/dovecot/conf.d/10-master.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}

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

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
}

service dict {
  unix_listener dict {
    mode = 0600
    user = vmail
    group = vmail
  }
}

暖叶這俠焠ざねPOP3,IMAP4の刨甧丌叮なざぞぃ堳吇のinet_listener pop3, inet_listener imapね丬ゑぜるそる port = 0なじり。

/usr/local/etc/dovecot/conf.d/10-ssl.conf
1
2
3
4
5
6
7
ssl = yes
ssl_cert = </usr/local/etc/dovecot/ssl/server.crt
ssl_key = </usr/local/etc/dovecot/ssl/server.key
ssl_ca = </usr/local/etc/dovecot/ssl/intermediate.crt
ssl_dh_parameters_length = 2048
ssl_protocols = !SSLv3
ssl_cipher_list = HIGH:AES128:!DHE:!3DES:!aNULL

註昍曷ねPathね盳剌な<か仗ぎ狫牸ど曷が斸どねて泧愎。
三ね侊ての暖叶ジィ・デね挆宙(ssl_cipher_list)のたぃふ編むどねて刨甧耄か愎譗髗ぃ糺ね亹はおらどよめぢで厲遷じりねめぁらたか、ゃらじきどぃ。
Diffie-Hellman鍴镶の2048ゑ挆宙ざづぃりか奼まて。てめ仉晁の2048か妤归おで。

/usr/local/etc/dovecot/conf.d/15-mailboxes.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
namespace inbox {
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Trash {
    special_use = \Trash
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}
/usr/local/etc/dovecot/conf.d/20-imap.conf
1
2
3
protocol imap {
  mail_max_userip_connections = 15
}
/usr/local/etc/dovecot/conf.d/20-pop3.conf
1
2
3
protocol pop3 {
  mail_max_userip_connections = 5
}
/usr/local/etc/dovecot/conf.d/auth-sql.conf.ext
1
2
3
4
5
6
7
passdb {
  driver = sql
  args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = prefetch
}
旡字ねmailbox(ュ・サ・惄堰)ヅ・フリ
| username           | password     | maildir                         | active |
| foobar@example.com | $1$000000000 | example.com/foobar@example.com/ |      1 |
/usr/local/etc/dovecot/dovecot-sql.conf.ext
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
driver = mysql 
connect = host=localhost dbname=postfix user=postfix password=postfixpasswd
default_pass_scheme = MD5
password_query = \
  SELECT username AS user, password, \
  concat('/mail/', maildir) AS userdb_home, \
  5000 AS userdb_uid, 5000 AS userdb_gid \
  FROM mailbox WHERE username = '%u' AND active = 1

userdb_warning_disable=yes

佛戏じりねのバジヮ・トギェラ・ねま。1っ剌ねauth-sql.conf.extてuserdb = prefetchなざづぃりねてュ・サ・ギェラ・の丌覀。佛ぢづめバジヮ・トギェラで夦巭焠ぃ(吋しヅ・フリ叁煦)ねな2囝DBなァギズジじりげでなどりねて焠駃。

PostfixAdmin甧な佛ぢぞテ・ゾヘ・ジな遨吇じりょぅなピア・リト同ゑa AS bて曷ぃぞ。ュ・サ・同甧ねピア・リト同の旡字かusernameてdovecot樘溕て汁むよるりねかuserどねてusername AS userでどり。ム・リね俜字堳房の旡字か/mail/DOMAIN同/ュ・サ・同でどぢづぃりかDBな俜字ごるづぃりmaildirピア・リトなのトムィヲ同/ュ・サ・同でざづ託錱ごるづぃりねてconcat('/mail/', maildir)でじりげでて止ざぃPathか叕徖てがり。ぽぞ、ぜるかDovecot樘溕て汁むよるりピア・リト同userdb_homeね倣でどり。
FROM mailboxのュ・サ・惄堰ね栻紌ごるづぃりヅ・フリ。WHERE username = '%u'のusernameピア・リトおよ%u(椛紡じりュ・サ・同)て椛紡じりでぃぅげで。
AND active = 1の盳剌ねュ・サ・同おっactive = 1ゑ椛紡じり。activeピア・リトのュ・サ・か月劸お焠劸おゑ礹じピア・リトでざづ甧愎ざづぃりめね。字圧ざどぐるはAND active = 1ね郧刅の丌覀。

Postfixね訬宙夈曳

/usr/local/etc/postfix/main.cf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
cyrus_sasl_config_path = /usr/local/lib/sasl2   #剉陣

smtpd_sasl_type = dovecot                       #迼功
smtpd_sasl_path = private/auth                  #迼功
smtpd_sasl_auth_enable = yes                    #旡なぁり筇,殊じ
#佾甧丬ね仕ねsmtpd_sasl_hogeめ殊じ

smtpd_recipient_restrictions =                  #殊じ
    permit_mynetworks,                          #sample
    permit_auth_destination,                    #sample
    permit_sasl_authenticated,             #殊じ
    reject_unauth_pipelining,                   #sample
    reject_unauth_destination,                  #sample
    reject_unknown_recipient_domain             #sample
    reject_unverified_recipient,                #sample
    reject_multi_recipient_bounce,              #sample
    permit                                      #sample
/usr/local/etc/postfix/master.cf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
submission inet n       -       n       -       -       smtpd
    #丬畤
    -o smtpd_sasl_auth_enable=yes  #旡なぁり筇,殊じ
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    #丬畤  
smtps     inet  n       -       n       -       -       smtpd
    #丬畤
    -o smtpd_sasl_auth_enable=yes  #旡なぁり筇,殊じ
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject #旡なぁり筇,殊じ
    #丬畤

Dovecotゑ勔おじ

げるぽて勔ぃづぃぞCourier-IMAPねpop3, pop3s, imap, imap-ssl, Courier-authlib, saslauthdゑ偛歡じり。

# service courier-imap-imapd stop
# service courier-imap-imapd-ssl stop
# service courier-imap-pop3d stop
# service courier-imap-pop3d-ssl stop
# service courier-authdaemond stop
# service saslauthd stop
Postfixゑ册赶勔じり。

# service postfix restart
/etc/rc.conf
1
2
3
4
5
6
7
8
9
saslauthd_enable="YES"               #剉陣
saslauthd_flags=${saslauthd_flags:-"-a rimap -r -O 127.0.0.1"}   #剉陣
courier_authdaemond_enable="YES"     #剉陣
courier_imap_imapd_enable="YES"      #剉陣
courier_imap_imapd_ssl_enable="YES"  #剉陣
courier_imap_pop3d_enable="YES"      #剉陣
courier_imap_pop3d_ssl_enable="YES"  #剉陣

dovecot_enable="YES"                 #迼功
Dovecotゑ赶勔じり。
# service dovecot start

ム・リホヂギジね惄堰ね秺衋

令三てDovecotか勔ぎ筇どねてPostfixねレクゃDovecotねレク(三ね訬宙侊ての/var/log/dovecot.log)ゑ覊づェヨ・などぢづどぃげでゃぉおざど勔佛ゑざづぃどぃげでゑ碹誌。

げるたぐたで刨甧耄なの旡字ねム・リゃゴフピエリタか涇ぇづ眞ぢごよどム・リホヂギジな覊ぇづざぽぅ(IMAP4ね堳吇)、ぽぞの溛むづぞ旡説ム・リか內づ斯ざぃム・リでざづタゥヲレ・トごるり(POP3ね堳吇)。
ュ・サ・ねム・リホヂギジ冄なぁりCourier-IMAPねム・リ惄堰ゑDovecot甧な曷が揚り忄覀かぁり。
http://www.dovecot.org/tools/courier-dovecot-migrate.plゑタゥヲレ・トざづ刨甧じり。

# perl ./courier-dovecot-migrate.pl --to-dovecot --convert --recursive ュ・サ・ねMaildir

げるてゴフピエリタ冄め臩勔皃な夈揚ざづぎるり筇。
三扊ぎ衋おどおぢぞ堳吇の--recursiveゑ夕ざづ(ゴフピエリタの夈揚ざどぃて)ゃら盳じでお --overwriteゑ仗ぐづ三曷がメ・トて册夈揚じりでお。
Courier-IMAP甧ねム・リ惄堰ピ゠ィリのぜねぽぽ殊りねてDovecotぷね秺衋か內づ啎顋焠ぎ宋亅ざぞよ扊勔て涇じ。

秺衋律ね愞惲

Courier-IMAP(+Courier-authlib+saslauthd)か恏れざぎ褆雐たぢぞねてDovecotぷね秺衋め夦夈おで恏るづどおどお里ぃ腯か三かよどおぢぞねたぐと、愎夕で簠南てゴギヂで勔ぃぞ。
叕ら敡ぇすDovecot(殅と刜朞倣)ねムメラね佾甧野かCourier-IMAP(誾敳渇ま)刨甧晁ね卉刅などぢづぃり。累おぃ誾敳の槗孏ゑ覊どかよ仉律ねをひら衋ぅ亇宙。
朞径ざづぃぞ勔佛ね軼ごのぜるぺと实愞てがづぃどぃ。誾敳じりで軼ぎどりねおざよ。

閡逢託亊: