メールサーバを構築
構成
オフィシャルサイトのwikiでは、iredmailというメールサーバを紹介しています。
http://code.google.com/p/iredmail/
しかし、ネットで検索すると日本語だと130件しか結果がありません。
海外の検索でも、数千件。
聞いたことがないのと、以前使っていたsendmailを使う予定です。
※メールサーバの設定は、webサーバの設定よりも慎重に行う必要があります。なぜならば、世にはびこるスパムメールの手助けをしてしまう可能性があるからです。
ですので、世の人の迷惑にかからないメールサーバーを構築します。
インストール(センドメール)
[root@testMan ~]##yum install sendmail
[root@testMan ~]# yum list |grep sendmail
sendmail.x86_64 8.13.8-2.el5 installed
sendmail-cf.x86_64 8.13.8-2.el5 base
sendmail-devel.i386 8.13.8-2.el5 base
sendmail-devel.x86_64 8.13.8-2.el5 base
sendmail-doc.x86_64 8.13.8-2.el5 base
必要そうなパッケージもインストールする。
sendmail.mc設定
sendmail.mcの設定内容を変更します。
設定が終わったら、sendmail.cfにその内容を反映します。
mcがテンプレートで、cfが本当の設定ファイルという関係になっています。
#vi /etc/mail/sendmail.mc
#cd /etc/mail
#m4 sendmail.mc > sendmail.cf
送信元のメールアドレスの変更
dnl MASQUERADE_AS(`example.com')dnl
dnl FEATURE(`masquerade_envelope')dnl
↓
MASQUERADE_AS(`rackspace-jp.com')dnl
FEATURE(`masquerade_envelope')dnl
ホスト外からの送信の許可設定
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
↓
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
コメントアウトしたことで、ホスト外からも送信可能にしています。
このままだと、セキュリティ的にはダウンしてしまいます。
他の設定項目で、送信の許可設定を行います。
名前解決できないMTAからのリレーの禁止
FEATURE(`accept_unresolvable_domains')dnl
↓
dnl FEATURE(`accept_unresolvable_domains')dnl
スパムメール対策
送信するメールのサイズの制限(追加)
追加する
define(`confMAX_MESSAGE_SIZE',`10000000')dnl
10MB以上のメールは、送信しなくなります。
同時に送信できるメールコピーの上限数(追加)
define(`confMAX_RCPTS_PER_MESSAGE', `200')dnl
同じメールを大量に送る数を制限します。
ホスト名ごとのメールボックス振分け
[root@testMan mail]# vi /etc/mail/virtusertable
[root@testMan mail]# makemap -v hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
key=`info@rackspace-jp.com', val=`tanii'
virtusertableファイルの中身
info@rackspace-jp.com tanii
意味は、
[受信対象のメールアドレス] [書き込み先のアカウント]
これで、info@rackspace-jp.comに送られてきたメールはtaniiに届くようになります。
複数ドメインで運用しようと考えている方は、必要な設定です。
受信、転送を許可するホストの設定
※セキュリティ的に一番大切
デフォルト設定だと、自分のホスト以外から届いたメールを転送しません。今回は、特にそれで問題ないので変更しません。
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
ここを下手に設定することで、spamerを餌食になることになるので、お気をつけ下さい。
ポート解放
webサーバ構築の際にも、少し触れましたが
rackspaceのデフォルト設定では、22番ポートしか空いていません。
ファイアーフォール(iptablese)によって、閉じています。
下記のofficialwikiを参考にして、mailポート(smtp)を解放してください。
http://cloudservers.rackspacecloud.com/index.php/CentOS_5.3_-_Graphical_User_Interface_for_iptables
MXレコードの設定
オフィシャルwikiを参考にMXレコードを設定してください。
http://cloudservers.rackspacecloud.com/index.php/DNS_-_Creating_a_DNS_Record
- オフィシャルwikiからの注意
- Priorityは、初めて登録する場合は10、次は20と増やして登録してください。
-
- また、contentのドメインの最後にピリオドをいれないでください。
設定した内容
Name | Content | Priority | TTL | Type |
---|---|---|---|---|
rackspace-jp.com | rackspace-jp.com | 10 | 300 | MX |
メール受信確認
[root@testMan mail]# tail -f /var/mail/tanii
この状態で、info@rackspace-jp.comにメールしてみました。
すると送ったメール内容がコンソール上に表示されるはずです。
おめでとう、sendmailおくれたよ。
メール送信確認
コマンドラインから、メールを送信してみましょう。
$ mail -s '
' <送り先メールアドレス>
this is mail body.[ Ctrl + D を2回押す ]
送信OKでした。gmailで受信しましたが、見事に迷惑メールと判断されましたw
逆引きの設定をしていないからでしょうか。
参考にしたサイト
・お便利.com(メールサーバ編)
http://www.obenri.com/_mailserver/index.html
・コマンド集 コマンドラインからメール送信(Fstyle)
http://fstyle.ddo.jp/archives/2005/07/linux_-.html