Postfix & devecot

CentOS5に対してインストールした際のメモとして記載する。


参考書:Software Design 2008年8月号

sendmailの停止
実際には使用していなかったので停止の必要は無し。

標準MTAの切り替え
こちらもPostfixになっていたので作業不要。

# alternatives --config mta
There is 1 program that provides 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix
/etc/postfix/main.cfの編集

ホスト名(FDQN)の指定

myhostnae = mail.example.jp

ドメインの指定

mydomain= example.jp

送信元アドレスは、myoriginで指定する。例としては、$myhostnameや$mydomainを指定する。

メールを受け付けるネットワークインタフェースの指定

inet_interfaces=all
にして外部ネットからも受け付けられるようにする。

メールアドレスのドメイン部になるmydestinationはとりあえず初期値

メールリレーを無条件に許可するMTAやMUA(UAってもしかしてユーザエージェント?SIPみたい)には特にしていしない初期値のまま

メールボックスの形式については、コラムを参考させていただいて、Maildirを指定

 

 

エイリアスの指定

/etc/aliasesでメールの転送先が指定できるのが、とりあえずrootだけ自分のアカウント名に変更

postalias /etc/aliases
でDBを更新

メールボックスの作成 自分のホームディレクトリ配下にMaildirディレクトリを作成
ファイアウォール
# 外部からのTCP25番ポート(SMTP)へのアクセスを許可 
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
# 外部からのTCP465番ポート(SMTPS)へのアクセスを許可
iptables -A INPUT -p tcp --dport 465 -j ACCEPT
# 外部からのTCP110番ポート(POP3)へのアクセスを許可
# ※POP3サーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
# 外部からのTCP143番ポート(IMAP)へのアクセスを許可 
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
# 外部からのTCP993番ポート(IMAPS)へのアクセスを許可 
# ※IMAPSサーバーを公開する場合のみ 
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
 

と、ここまで書いてみたが、unixアカウントを使用するとどうもうまく接続できないので
http://tipszone.jp/20120521_mail_server/
を参考にさせていただいて、バーチャルアカウントを使用してみる。

スパム対策

smtpd_client_restrictionsについては、Software Designを参考に

smtpd_client_restrictions =
reject_rbl_client sbl.spamhaus.org
reject_rbl_client xbl.smaphaus.org=127.0.0.4

を設定。

メールの中継

他のメールサーバから受信することはできるが、他のメールサーバに送信することができなかたので、以下を見直し。

smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,  
reject_unauth_destination
「permit_sasl_authenticated:SMTP_AUTHに認証されたクライアントを許可 reject_unauth_destination:以下のアドレスにマッチするものは許可 $inet_interfaces $mydestination $virtual_alias_domains $virtual_mailbox_domains 以下のドメイン・サブドメインは許可 $relay_domains 上記以外は全て拒否」とのこと
smtpd_sender_restrictions = reject_unknown_sender_domain
も設定。reject_unknown_sender_domain:送信者のメールアドレスが DNS の Aレコードや MXレコードを持たない場合は拒否とのこと。
    

 

テスト

・自分のメールサーバへのメール送信:OK

・他のメールサーバからのメール受信:OK

・他のメールサーバへのメール送信:OK

・(おまけ)GMAILからの送信テスト:OK

・存在しないアカウントへのSMTP接続がエラーになること:OK

注意

今回は、http://tipszone.jp/20120521_mail_server/に書かれてあるバーチャルサーバの方法を使用した。

セキュリティ証明書をちゃんとThunderBirdにインポートしないと、メール送信時にエラーが発生する。受信はOK。

 

その後(2013/10/2)

iPhoneからメールアカウントが使えるか試験してみた。受信は問題ないが、SMTPでの送信に失敗する。ThunderBirdでは、サーバ証明書をインポートし、正式なものではないので、例外設定で回避したが、iPhoneではそれができないみたい。

http://k-ui.jp/blog/2012/10/15/installing-a-private-certificate-in-your-iphone/

を参考にさせていただいて、サーバ証明書ファイルを含むプロファイルを登録したが、それでもだめ。やっぱり、SSL,TLSを使用するときには正式な認証局で作成した鍵を使用するべきなんだろうなあ。


最近は、「なんちゃって証明書」に対して、ブラウザなどの対応が厳しくなってきているようなので、実際に企業でWebサーバやメールサーバを立ち上げるときにはちゃんと認証局から正式な証明書を得られるようにしないとだめですね。