postfixでメールのお勉強をしてみる
ということでlinodeでPostfixを使ってMTAの勉強です。
具体的な目標は
- SMTP-AUTHを使える様にする
- submissionポートに対応する
- TLS(STARTTLS)を使えるようにする
- DKIM対応にする
- spamassasinでフィルタリングする
- Antivでフィルタリングする
- SPFで「fail」が返って来た場合は受け付けないようにする
- DNSBLを利用してブラックリストは受け付けないようにする
です。
まずはとりあえず内部で受信できるようにしたいと思います。
設定
とりあえず受信できるように設定。ドメインはlinodeのbindに権限委譲した『ivory-mind.com』を使います。
# vi /etc/postfix/main.cf myhostname = smtp.ivory-mind.com mydomain = ivory-mind.com myorigin = $mydomain # ドメイン名を省略した場合@以降に補完されるドメイン名 inet_interfaces = all # 受信を許可するソースアドレス(外部からも受信できるようにする) mydestination = localhost.$mydomain, localhost, $mydomain # 自MTA宛てのメールとみなすドメイン名 home_mailbox = Maildir/ # メールの保存形式をMaildirに
MTA変更
# /etc/init.d/sendmail off # /etc/init.d/postfix on # chkconfig sendmail off # chkconfig postfix on
sendmailコマンドをsendmail用からpostfix用に変更する。alternatives --config mtaで変更できるみたいだけど気になったのでついでにちょっと調べてみました。
# ls -l /usr/sbin/ | grep sendmail lrwxrwxrwx 1 root root 21 Nov 5 08:38 sendmail -> /etc/alternatives/mta -rwxr-xr-x 1 root root 190164 Aug 14 2008 sendmail.postfix -rwxr-sr-x 1 root smmsp 806460 Mar 14 2007 sendmail.sendmail
sendmailコマンド自体は/etc/alternatives/mtaへのシンボリックリンクになっています。ちなみにこのファイルはバイナリでした。上記コマンドを使って設定するとシンボリックリンクの実質的な向け先をsendmail.postfixの方へ向け直せるんだと思います。
# alternatives --config mta There are 2 programs which provide 'mta'. Selection Command ----------------------------------------------- *+ 1 /usr/sbin/sendmail.sendmail 2 /usr/sbin/sendmail.postfix Enter to keep the current selection[+], or type selection number: 2
メール受信テスト
ローカルのroot宛てにメール送信して受信のテスト
# mkdir -p /root/Maildir/{new,cur,tmp} # chmod -R 700 /root/Maildir/
# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 smtp.ivory-mind.com ESMTP Postfix EHLO localhost 250-smtp.ivory-mind.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: root@localhost 250 2.1.0 Ok RCPT TO: root@ivory-mind.com 250 2.1.5 Ok DATA 354 End data with. Subject: test From: root@localhost To: root@ivory-mind.com This is a test mail . 250 2.0.0 Ok: queued as AAB404EC5F QUIT
メールが来てるか確認
# ls -l /root/Maildir/new/ total 8 -rwx------ 1 root root 499 Apr 4 22:33 1238898823.Vca00I4ec5cM484537.www.ivory-mind.com -rw------- 1 root root 499 Apr 4 22:54 1238900047.Vca00I4ec60M290407.www.ivory-mind.com
届いてます。とりあえず基本設定はできたかな。外からの受信テストもしないとダメだけど。