Date: Sun, 27 Apr 2008 17:24:07 +0900 Comment: linux/tipsにDovecotを追加 ================================================================== === linux/tips/dovecot/index.wiki.txt ================================================================== --- linux/tips/dovecot/index.wiki.txt +++ linux/tips/dovecot/index.wiki.txt @@ -0,0 +1,84 @@ +${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=, 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=, method=ANONYMOUS, rip=127.0.0.1, lip=127.0.0.1, secured +