はじめに
PostifxはもともとSMTPとしてSendmailの代替として考案されたもの
SMTP(Simple Mail Transfer Protoco)
メール転送プロトコル
http://ja.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
MUA (Mail User Agent)
メッセージの読み書きに利用するソフトウエア OSXのMail, MSのOutlook Express, Thunderbirdなど
MTA (Mail Transfer Agent)
- MUA -> MTAへメッセージを渡す。
- メッセージを受け付けるかを判断
- 他の配信先へリレーを許可する
install(Cent OS)
sendmailを削除することでpostfixがdefault MTAとして認識される。
もし、sendmailを残す場合にはsystem-switch-mail system-switch-mail-gnome
をインストールする必要がある
dovecotはmysqlとperlに依存関係があるので、もしインストールされてないならこのタイミングでインストールされる。
yum update
はして置こう
sendmailを削除する場合(おすすめ)
yum install postfix dovecot
yum remove sendmail
sendmailを残す場合
yum install postfix dovecot system-switch-mail system-switch-mail-gnome
sendmailを残す場合MTA設定方法
http://blog.jicoman.info/2013/08/postfix_install/
sudo alternatives --config mta
chkconfig postfix on
chkconfig dovecot on
/etc/init.d/postfix start
/etc/init.d/dovecot start
設定
http://centossrv.com/postfix.shtml
設定を確認
postconf -d
Dovecot SASLが使えるかどうか確認。
postconf -a
/etc/postfixの master.cf, main.cfが主な設定ファイル
postfix
main.cf
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all # メールを受け取るinterface指定
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0/8
relay_domains = # 空白にすることによって untrustedなネットワークに対してopen relayしなくなる
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown # 追加(メールサーバーソフト名の隠蔽化)
message_size_limit = 10485760 # 追加(受信メールサイズ制限 : 受信メールサイズを10MB=10*1024*1024に制限)
SASL(Simple Authentication and Security Layer)認証
http://www.postfix-jp.info/trans-2.3/jhtml/SASL_README.html
基本的にSMTPには認証がない
認証機能を利用するためにはSASLを使用する
Cyrus SASL & TLS
postfixのmain.cf
修正
# 以下を最終行へ追加(SMTP-Auth設定)
smtpd_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
dovecot
/etc/dovecot.conf
listen = *
protocols = imap pop3 lmtp
/etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir #
/etc/dovecot/conf.d/10-master.conf
/etc/aliases
http://d.hatena.ne.jp/riocampos+tech/20080112/p4
# Person who should get root's mail
root: yourmail@yourdomain.com
その他
main.cf spam関連
smtpd_client_restrictions =
permit_mynetworks,
check_client_access hash:/etc/postfix/access,
# reject_rbl_client all.rbl.jp,
# reject_rbl_client bl.spamcop.net,
# reject_rbl_client list.dsbl.org,
# reject_rbl_client sbl-xbl.spamhaus.org,
permit
smtpd_helo_required = yes
smtpd_helo_restrictions =
permit_mynetworks,
check_helo_access hash:/etc/postfix/access,
reject_invalid_hostname,
reject_unknown_hostname,
reject_non_fqdn_hostname,
permit
smtpd_sender_restrictions =
permit_mynetworks,
check_sender_access hash:/etc/postfix/access,
reject_unknown_sender_domain,
reject_non_fqdn_sender
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_recipient_access hash:/etc/postfix/access,
reject_non_fqdn_recipient,
reject_unauth_destination
permit_auth_destination,
reject
smtpd_recipient_restrictions
reject_unknown_client
: 逆引きの 名前解決 のできない ノード からのメールの受信を拒否する設定です
出先からのメール送信を可能にする。
SMTP AUTH
構築 を利用する場合、あるいはPOP/IMAP before SMTP
の構築 を利用する場合には それぞれのアプリケーションに迎合する記述を "permit_mynetworks" と "reject_unauth_destination" の間に記述します。
用語
SMTP AUTH "SMTP Authentication"
「エス・エム・ティー・ピー・オース」呼び、日本語では「 SMTP 認証」と呼ばれます。 MUA が MTA にメール送信を行う際に、MTA側がユーザー認証を行う仕組みを指します。 SMTP AUTHを利用するには、MTAとMUAの双方がその仕組みに対応している必要があって普及に時間がかかっていますが、未対応の古いMUA(2000年代前半頃までにリリースされたもの)のユーザーの減少に伴い、ユーザー認証のスタンダードな手段になりつつあります。 しかし現在ではまだMUAの種類を選ばない POP/IMAP before SMTP 、あるいは両者が併用されているケースが大部分です。
POP/IMAP before SMTP
一般利用が少ない IMAP を省略して POP before SMTP 、更に省略して、 PbS と呼ばれることもあります。 メールサーバー の運用において、ユーザーからの POP3 やIMAP4による受信要求の成功をもって、その ノード に対して動的にメール中継許可を与える技術です。 メールの送信時に直接ユーザー認証を行う SMTP AUTH の標準化までのつなぎの技術とされています。 POP/IMAP before SMTPを利用してメール送信を行う場合、ユーザーは送信前に一度受信操作を行なわなければならないという欠点がありますが、SMTP AUTHに対応していない古い MUA でも利用可能という利点があるため、 ISP のメールサーバーで今でも多く採用されている方式です。 POP/IMAP before SMTPを実装するためのプログラムとして、 drac や Pop-before-smtp などが使われます。