メールサーバをたてる
ConoHaのVPS上でメールサーバを構築します。
メールサーバには以下を使います
環境
- メモリ 1GBプラン
- CentOS release 6.4
Postfixの設定
Postfixはデフォルトでインストールされています。
postfix-2.6.6-2.2.el6_1.x86_64が入ってました。
では設定から入ります。
main.cfの設定
# Domainの設定など
myhostname = mail.monasan.info
mydomain = monasan.info
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
# MailBoxをMaildir形式に
home_mailbox = Maildir/
# SASL
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_sasl_local_domain = $mydomain
smtpd_client_restrictions = permit_mynetworks,
reject_rhsbl_client rhsbl.ahbl.org,
reject_rbl_client spamcop.net,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client sbl.spamhaus.org,
# reject_unknown_client, 受信できないメールがあったので仕方なく一旦はずした
permit
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
smtpd_sender_restrictions = reject_unknown_sender_domain
message_size_limit = 10485760
# TLS
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt
smtpd_tls_key_file = /etc/pki/tls/certs/mail.key
smtpd_use_tls = yes
サブミッションポートを有効にする
/etc/postfix/master.cf
# 以下の部分を有効にする
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
Postfixの再起動
TLSを利用する場合は、以下に記載の「自己証明書の発行」を先に行ってください
service postfix restart
chkconfig postfix on
自己証明書の発行
openssl req -new -x509 -nodes -days 365 -out mail.crt -keyout mail.key
chmod 600 mail.key
セキュリティ証明書
自己証明書を利用しつつセキュリティ警告を出さなくしたい場合は以下を生成して
クライアントのPCなりに読み込ませます。(リスクを理解した上で自己責任でお願いします)
[bash]
openssl x509 -in mail.crt -out /var/www/html/mail.der -outform DER
[/bash]
Dovecotの設定
[bash]
imapとpop3を有効にする
"*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
これは変更しなくてOK
listen = *, ::
#クライアントからサーバがdovecotであることを隠す
login_greeting = dovecot Ready.
login_greeting = Ready.
[/bash]
/etc/dovecot/conf.d/10-auth.conf
[bash]
plain text 認証を許可
disable_plaintext_auth = no
loginを追記
auth_mechanisms = plain login
[/bash]
/etc/dovecot/conf.d/10-ssl.conf
[bash]
SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = yes
さきほど生成した証明書のパスに書き換え
ssl_cert = </etc/pki/tls/certs/mail.crt
ssl_key = </etc/pki/tls/certs/mail.key
[/bash]
dovecotをインストールしたときに必要なファイルの生成がされいた様子。
これを使っても構築可能かと思いますが今回はオレオレ証明書を生成して構築しました。
[bash]
↓ デフォルトで設定ファイルに記載のこれらのファイルも生成されている
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
#ssl_key = </etc/pki/dovecot/private/dovecot.pem
[/bash]
/etc/dovecot/conf.d/10-master.conf
ここで利用する予定のプロトコルとポートの設定を行います。
[bash]
imapの設定
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
pop3の設定
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
[/bash]
/etc/dovecot/conf.d/10-mail.conf
[bash]
Maildir形式を利用する
mail_location = maildir:~/Maildir
valid_chroot_dirs = /home
[/bash]
Dovecot起動
[bash]
service dovecot start
自動起動する場合
chkconfig dovecot on
[/bash]
ポートの解放
必要なポートを開ける
/etc/sysconfig/iptables
[bash]
smtp/submission
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
imap
-A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
[/bash]
iptablesを再起動する
[bash]
service iptables restart
[/bash]
サーバの設定はひとまずここまで。
メールユーザの管理周りについてまた次の記事で記載します。
ではまた。