postfixでメールのお勉強をしてみる

ということでlinodePostfixを使ってMTAの勉強です。

具体的な目標は

  • SMTP-AUTHを使える様にする
  • submissionポートに対応する
  • TLS(STARTTLS)を使えるようにする
  • DKIM対応にする
  • spamassasinでフィルタリングする
  • Antivでフィルタリングする
  • SPFで「fail」が返って来た場合は受け付けないようにする
  • DNSBLを利用してブラックリストは受け付けないようにする

です。

まずはとりあえず内部で受信できるようにしたいと思います。

インストール

ソースでちゃんと入れたいところですが、しょっぱなからSASLまわりでつまづいたのでまずはパッケージでいけるところまで試してみます。

# yum -y install postfix

設定

とりあえず受信できるように設定。ドメイン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変更

sendmail->postfixに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

届いてます。とりあえず基本設定はできたかな。外からの受信テストもしないとダメだけど。