Postfix+Dovecot/導入手順
ナビゲーションに移動
検索に移動
本ページでは、MTAソフトウェアである「Postfix」の導入手順を記述します。
環境
- MTA : Postfix 2.5.6
- POP3 : Dovecot 1.1.10
外部リレーの場合、SMTP認証を実施する。認証データはUNIXアカウントと分離します。
インストール
Postfix
入手先 : http://www.postfix.org/
$ tar zxvf postfix-2.5.6.tar.gz $ cd postfix-2.5.6 $ make tidy $ make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"' $ make # adduser postfix # groupadd postdrop # make install # newaliases
Dovecot
入手先 : http://www.dovecot.org/
$ tar zxvf dovecot-1.1.10.tar.gz $ cd dovecot-1.1.10 $ ./configure $ make # adduser dovecot # make install
設定
Postfix
以下、下記の条件を満たす設定を行います。
- 外部リレーの場合、SMTP認証を実施する
- ドメイン「example.com」「example.org」を所持
- 「example.org」宛のメールは「example.com」に転送
- 「example.com」のメールボックスはUNIXアカウントディレクトリではなく、バーチャルドメイン用のディレクトリに保存
「/etc/postfix/main.cf」に下記を追加します。
home_mailbox = Maildir/ mynetworks = 127.0.0.1 smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtpd_sasl_type = dovecot smtpd_sasl_path = /var/spool/postfix/private/auth-dovecot virtual_alias_domains = example.org virtual_alias_maps = hash:/etc/postfix/virtual virtual_mailbox_domains = example.com virtual_mailbox_base = /var/spool/mail/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000
「/etc/postfix/virtual」に下記を追加します。
user@example.org user@example.com
「/etc/postfix/virtual.db」ファイルを生成するために下記コマンドを実行します。
# postmap /etc/postfix/virtual
「/etc/postfix/vmailbox」に下記を追加する。
user@example.com example.com/user/
ディレクトリの末尾に「/」を入れない場合は、mbox形式で保存します。
「/etc/postfix/vmailbox.db」ファイルを生成するために下記コマンドを実行します。
# postmap /etc/postfix/vmailbox
バーチャルドメイン用ディレクトリを作成します。
# mkdir -p /var/spool/mail/vhosts # chown 5000.5000 /var/spool/mail/vhosts
Dovecot
「/usr/local/etc」ディレクトリにある「dovecot-example.conf」を「dovecot.conf」にコピーする。コピー後、下記を追加・変更します。
protocols = pop3 disable_plaintext_auth = no ssl_disable = yes mail_location = maildir:/var/spool/mail/vhosts/%d/%n auth default { mechanisms = plain apop cram-md5 passdb passwd-file { # File contains a list of usernames, one per line #args = /etc/dovecot.deny #deny = yes args = /etc/dovecot/passwd } userdb static { args = uid=5000 gid=5000 home=/var/spool/mail/vhosts/%d/%n } (中略) socket listen { client { path = /var/spool/postfix/private/auth-dovecot mode = 0660 user = postfix group = postfix } } }
パスワードファイル「/etc/dovecot/passwd」を作成します。
<ユーザ名>:{PLAIN}<パスワード>
その他
Plain認証を試すには下記コマンドを使用します。
$ perl -MMIME::Base64 -e 'print encode_base64("\0username\0password");'
起動
# /usr/local/sbin/dovecot # /usr/sbin/postfix start
トラブルシューティング
- 「/var/log/maillog」関連
- 「warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Permission denied」
- 対策 : 「/etc/sasldb2」の所有者をpostfixにする
- 「warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Permission denied」
付録
SMTP認証の際、Dovecotではなく「cyrus-sasl」を使用する場合の導入手順を示します。
導入手順:Postfix+Dovecot/cyrus-sasl
参考
- http://www.postfix.org/SASL_README.html
- http://www.kozupon.com/mail/sasl3.html
- http://tech.ckme.co.jp/mailv.shtml
- http://www.sea-bird.org/pukiwiki/index.php?Postfix%A1%CA%A5%D0%A1%BC%A5%C1%A5%E3%A5%EB%A5%C9%A5%E1%A5%A4%A5%F3%A1%CB%A4%CE%C0%DF%C4%EA%A4%CE%B4%AC
- http://www.tmtm.org/postfix/tutorial/index.html
- http://sy2920.s151.xrea.com/mail/smtpauth-dovecot_sasl.html
- http://smdn.invisiblefulmoon.net/linux/tips/dovecot/
- http://nabe.blog.abk.nu/0304
更新履歴
- 2009/02/22
- ページ作成