ubuntuでIMAPサーバ構築

dovecotIMAPサーバをたてたのでメモ

まずdovecotは公式ページがわかりやすく書かれていたので設定の際にとても役立った
http://wiki2.dovecot.org/
インストールから動作確認まで一通りの手順になっているのでその流れでやっていくとよい

1.インストール

$ sudo apt-get install dovecot-imapd

2.設定
/etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir

/etc/dovecot/conf.d/10-logging.conf

log_path = /var/log/dovecot.log                 

/usr/share/dovecot/protocols.d/imapd.protocol

protocols = imap

/etc/dovecot/conf.d/auth-passwdfile.conf.ext

passdb {                                                           
  args = scheme=CRYPT username_format=%u /etc/dovecot/users        
  driver = passwd-file                                             
}                                                                                    
userdb {                                                           
  args = username_format=%u /etc/dovecot/users                     
  driver = passwd-file                                             
}                     

/etc/dovecot/usersにユーザ情報を入れる

echo "$USER:{PLAIN}password:$UID:$GID::$HOME" > users
sudo mv users /etc/dovecot/


/etc/dovecot/conf.d/10-auth.conf

#!include auth-system.conf.ext(コメントアウトする)
!include auth-passwdfile.conf.ext(#を外す)

あと、sslの設定を入れるまではこちらも入れる
/etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no

あとでsslを有効にした際はこちらをyesに戻すこと

3.再起動

$ sudo service dovecot restart

4.動作確認
完全にこのページの通り行った
http://wiki2.dovecot.org/TestInstallation
途中ファイヤーウォールの設定を入れる必要があった
/etc/iptables.sh

iptables -A INPUT -p tcp -d $MY_IP --dport 143 -j ACCEPT 
iptables -A OUTPUT -p tcp -s $MY_IP --sport 143 -j ACCEPT
iptables -A INPUT -p udp -d $MY_IP --dport 143 -j ACCEPT 
iptables -A OUTPUT -p udp -s $MY_IP --sport 143 -j ACCEPT

自宅ルータの内側なのでセキュリティは気にしていない

これでひとまず動いたのでクライアントからこのサーバに接続してみる
今回はMacのmailアプリケーションで行った
Mail > 環境設定 > アカウント
の項目で新規アカウント設定を行えばOK
4.の動作確認でtelnetを使って接続できていればうまくいくはず
うまくいかない場合はメールクライアントの設定を間違えていないか確認


5. sslを有効化
設定方法はこちら
http://wiki2.dovecot.org/SSL/DovecotConfiguration
サーバ証明書やキーの名前が違う場合は自分のものに置き換える
/etc/dovecot/10-ssl.conf

ssl = yes 
ssl_cert = </etc/ssl/certs/myserver.crt                            
ssl_key = </etc/ssl/private/myserver.key        


サーバ証明書の作り方についてはまたの機会に説明するということで。

plaintextでの認証を不可にしておく
/etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = yes

ssl用のポートを開ける
/etc/iptables.sh

iptables -A INPUT -p tcp -d $MY_IP --dport 993 -j ACCEPT 
iptables -A OUTPUT -p tcp -s $MY_IP --sport 993 -j ACCEPT

これで4.の手順で再度動作確認してみる
143ではつながらなくなっているはず。993でつながればOK

最後にMailクライアントの設定でsslを有効にしておく

プロのための Linuxシステム構築・運用技術 (Software Design plus)

プロのための Linuxシステム構築・運用技術 (Software Design plus)