CentOS 6.3(6.4)に挑戦 : 20:メールサーバー構築(Postfix+Dovecot)
2012年10月2日全面的に書き直し。参考URL
postfix:http://www.server-world.info/query?os=CentOS_6&p=mail&f=1
dovecot:http://www.server-world.info/query?os=CentOS_6&p=mail&f=2
方針はとりあえずOSのユーザをメアドにし、パスワードはOSと同じ、SMTP Authにする。
postfixはインストールされているので、まずは /etc/postfix/main.cfの設定から
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.kinryokai.net
mydomain = kinryokai.net
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
header_checks = regexp:/etc/postfix/header_checks
smtpd_banner = $myhostname ESMTP unknown
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
# size=50MB
message_size_limit = 52428800
# mailbox=1GB
mailbox_size_limit = 1073741824
私は最後のmailbox_size_limitの設定を指定しなかったのでエラーに悩ませれた。これは指定をしないと5120000になっておりmessage_size_limitより小さいのでエラーになっていた。postfixの設定値を調べるには
# postconf →全ての設定値の表示
# postconf -n →デフォルトより変更したもの
エラーが出たらログを調べるという鉄則を忘れ、悩みつづけた自分がいやになった。ちゃんと /var/log/maillog に fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit と書いてある。
2013/02/23追記:今日 mailbox_size_limit = 10737418240 つまり10GBにしたら、Logにfatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limitと出た。何で?? 多分postfix自体が何かの制限をかけていて10GBのmailboxを受けてけていないと思う。後日調べて見よう。9GBまではOK
mynetworksは設定しなくてもpostconfで調べるとこのサーバーのネットワークレンジが設定してあった。多分postfix自信が調べてくれているのだろう。
/etc/postfix/header_checksの最初に下記を追記。これはアドレスなしのメールを拒否する設定。
/^From:.*<#.*@.*>/ REJECT
/^Return-Path:.*<#.*@.*>/ REJECT
SMTP-Auth設定
# service saslauthd start
# chkconfig saslauthd on
postfixの再スタート (centos 6 はデフォルトでposifixが走っている)
# /etc/rc.d/init.d/postfix restart
dovecotのインストールと設定
# yum -y install dovecot
/etc/dovecot/dovecot.confは変更しないので、/etc/dovecot/conf.d/10-auth.conf の設定
disable_plaintext_auth = no →コメントを外しnoに変更:プレーンテキストも受ける
auth_mechanisms = plain login →loginを追記
/etc/dovecot/conf.d/10-mail.conf の設定
mail_location = maildir:~/Maildir →コメントを外し、右辺を追記
/etc/dovecot/conf.d/10-master.confの設定
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth { →コメントを外す
mode = 0666 →コメントを外す
user = postfix →追記
group = postfix →追記
}
dovecotのスタート
# /etc/rc.d/init.d/dovecot start
# chkconfig dovecot on
fierewallの設定を変更して使用するポートを開ける。
私は SMTP:25, SMTPS:465, POP3:110, POP3S:995, IMAP:143, IMAPS:993を開けることにした。
ここでメールソフトthunderbirdでサーバーの設定をしてテスト。thunderbirdの設定は
受信にはpop3でなく、IMAPを使う設定
受信サーバー名:設定したサーバー名
port: 143
ユーザ名: OSに登録しているユーザー名(ドメインは入れない事)
パスワード:OSに登録しているユーザーのパスワード
接続の保護:なし
認証方式:平文
送信(SMTP)サーバー
受信サーバー名:設定したサーバー名
port:25
接続の保護:なし
認証方式:平文
ユーザ名: OSに登録しているユーザー名(ドメインは入れない事)
このサーバーはkvmでサブホストを作っている。親ホストでdnsmasqが簡易DNSサーバーとして動いているので、その親OS上にthunderbirdを使用してメールソフトを設定し、親ホストの /etc/hosts にメールサーバーの設定を書き(192.168.xxx.xx mail.kinryokai.net mail)dnsmasqをリスタートしてthunderbirdがある親ホストでmial.kinryokai.netでメールサーバーが走っているホストを参照出きるようにした。物理的に別のサーバー(仮想化ソフトはXEN)があり、現在、使用中のメールサーバーがあるので、外部とのテストは出来ない。どなたかテストするいいアイデアがあれば教えて下さい。
投稿された内容の著作権はコメントの投稿者に帰属します。