2008-04-27T17:24:07の更新内容

linux/tips/dovecot/index.wiki.txt

current previous
1,84 0,0
+
${smdncms:tags,Dovecot}
+
*Dovecot
+
IMAP/POPサーバ[[Dovecot:http://www.dovecot.org/]]に関するTips。
+

          
+
-参考
+
--[[FrontPage - Dovecot Wiki:http://wiki.dovecot.org/]]
+
--[[メールサーバー構築(Postfix+Dovecot) - Fedoraで自宅サーバー構築:http://fedorasrv.com/postfix.shtml]]
+

          
+
**設定ファイル
+
***使用するプロトコルを設定する
+
protocolsで設定する。 設定出来るのはimap(IMAP), imaps(IMAP+SSL) pop3(POP), pop3s(POP+SSL)。 SSLを使用する場合は、ssl_disableをnoにする。
+
 protocols = imap imaps
+
 ssl_disable = no
+

          
+
また必要に応じてssl_cert_fileとssl_key_fileも設定する
+
 ssl_cert_file = /usr/share/ssl/certs/dovecot.pem
+
 ssl_key_file = /usr/share/ssl/certs/dovecot.pem
+

          
+
***メールボックスの形式・パスを設定する
+
mail_locationで設定する。 Maildir形式を使用する場合はmaildir、:に続けてパスを指定する。 %hはユーザ名に展開される。
+
 mail_location = maildir:%h/Maildir
+

          
+
***CRAM-MD5, APOP等の認証方法を有効にする
+
まずmechanismsで使用したい認証方法、passdb passwd-fileセクションで認証に使用するパスワードファイルをを設定する。
+
 auth default {
+
   mechanisms = login plain cram-md5 apop anonymous
+
   passdb passwd-file {
+
     args = /etc/dovecot/passwd
+
   }
+
 }
+
次に、dovecotpwコマンドでパスワードファイルに記入するパスワードを作成する。
+
 $ dovecotpw -s CRAM-MD5
+
 Enter new password:     # ここでパスワードを入力
+
 Retype new password:    # 確認のためもう一度入力
+
 {CRAM-MD5}a9f061d1dbbda6f500f99b019d8c3ba7236507d4bcaecf6cfc9e21c36d5402e3
+

          
+
作成するパスワードに使用できるスキームは-lオプションで一覧できる。
+
 $ dovecotpw -l
+
 CRYPT MD5 MD5-CRYPT SHA SHA1 SMD5 SSHA PLAIN CLEARTEXT CRAM-MD5 HMAC-MD5 DIGEST-MD5 PLAIN-MD4 PLAIN-MD5 LDAP-MD5 LANMAN NTLM RPA
+

          
+
作成したパスワードを先ほど設定したパスワードファイルに書き込む。 書式は「ユーザ名:パスワード」
+
 dovecotuser:{CRAM-MD5}a9f061d1dbbda6f500f99b019d8c3ba7236507d4bcaecf6cfc9e21c36d5402e3
+
 dovecotuser:{PLAIN}password
+

          
+
書き込み終わったらパーミッションを読み取り専用に変えておく。
+
 $ sudo chmod 400 /etc/dovecot/passwd
+

          
+
***PAMによる認証を無効にする
+
passdb pamのセクションをコメントアウトする。
+
 # passdb pam {
+
    :
+
    :
+
 # }
+

          
+
***SSL/TLSを使用しない接続での平文によるログインを拒否する
+
disable_plaintext_authをyes, ssl_disableをnoにする。
+
 disable_plaintext_auth = yes
+
 ssl_disable = no
+
このように設定すると、IMAP LOGINDISABLED, IMAP STARTTLS, POP STLSの各capabilityを返すようになる。
+

          
+
***greeting messageでcapabilityを返すようにする
+
login_greeting_capabilityをyesにする。
+
 protocol imap {
+
   login_greeting_capability = yes
+

          
+
このように設定すると、クライアントが接続した時(CAPABILITYコマンドを発行する前)にcapabilityを返すようになる。 接続時にDovecotが返すレスポンスは次のようになる。
+
 * OK [CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS AUTH=LOGIN AUTH=PLAIN AUTH=CRAM-MD5] Dovecot ready.
+
noの場合(デフォルト)は次のようになる。
+
 * OK Dovecot ready.
+

          
+
ただしyesに設定してもクライアントがこの機能をサポートしていない場合capabilityは無視され、noに設定した場合と同様に通常どおりCAPABILITYコマンドが発行される。
+

          
+
***anonymousでのログインを許可する
+
auth_anonymous_usernameにanonymousでログインした場合に参照するメールボックスのユーザを指定し、mechanismsにanonymousを追加する。
+
 auth_anonymous_username = dovecotuser
+
 auth default {
+
   mechanisms = login plain cram-md5 apop anonymous
+

          
+
この設定例だと、anonymousでログインした場合はユーザdovecotuserのメールボックスが参照される。 anonymousでログインしたときに使用されるトークンは/var/log/mail.log(anonymousの後ろの括弧内)に記録される。
+
 Apr 25 19:58:39 hayami dovecot: auth(default): anonymous(test,127.0.0.1): login
+
 Apr 25 19:58:39 hayami dovecot: imap-login: Login: user=<dovecotuser>, method=ANONYMOUS, rip=127.0.0.1, lip=127.0.0.1, secured
+
 Apr 25 20:04:22 hayami dovecot: auth(default): anonymous(idolm@ster.example.com,127.0.0.1): login
+
 Apr 25 20:04:22 hayami dovecot: imap-login: Login: user=<dovecotuser>, method=ANONYMOUS, rip=127.0.0.1, lip=127.0.0.1, secured
+