postfixのインストールと送信設定

内部のサーバから外部へメール送信(SMTP)の設定を行います。
POPに関してはSPAM対策がしんどいので自宅サーバでは設定しない

SMTPを設定するに当たって気をつけなければならない点に「オープンリレーにしない」「OP25B」「SMTP AUTH」「SPFレコード」があります。

  • 「オープンリレーにしない」 外部ネットワークから中継を可能にすると知らぬ間にSPAMの踏み台にされます。そして村八分されます
  • OP25B SPAMとの戦いの中でプロパイダ系のメールサーバは25番ポートでのメール送信を受付しなくなってなっています。(代わりに587番ポートで受付するようになってます)
  • SMTP AUTH」SMTPはプロトコル自体に認証機能を持って無く、後から認証機能が付きました。なので「POP before SMTP」と「SMTP Authentication」の2つの方法がありひと手間かけて設定してあげる必要があります。
  • SPFレコード」DNSSPFレコードを設定することにより、レコードに設定されたIPからのメール送信は信頼できると判断して受信してくれるようになる場合があります。今回はこれは設定しません


postfixのインストールと設定

# chkconfig sendmail off
# yum install postfix
# vi /etc/postfix/main.cf

myhostname = xxxxxxx.com
mydomain = xxxxxx.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = subnet
mynetworks = 192.168.0.0/24, 127.0.0.0/8
home_mailbox = Maildir/

# chkconfig postfix on
# chkconfig --list postfix
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
# /etc/rc.d/init.d/postfix start

これで25番ポートでのメール送信はできるようになりますが、ひと手間掛けます。
自宅サーバだと何かの間違えでSPAM認定されて村八分(接続拒否)されると終わりなのでプロパイダのメールサーバを経由して送信します

# vi /etc/postfix/main.cf
relayhost = [smtp.xxxxx.jp]:587

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtpauth
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login

# vi /etc/postfix/smtpauth
[smtp.xxxxxx.jp]:587 name:password

# chmod 640 /etc/postfix/smtpauth
# postmap /etc/postfix/smtpauth
# /etc/rc.d/init.d/postfix restart

これでプロパイダ経由でメール送信できるようになりました。


最後に手動(telnet)でメール送信して確認

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 xxxxxx.com ESMTP Postfix
HELO xxxxxx.com
250 xxxxx.com
MAIL FROM:xxxxxx@gmail.com
250 2.1.0 Ok
RCPT TO: xxxxxx@xxxxx.jp
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: xxxxxx@gmail.com
Subject: test
Hello world.
.
250 2.0.0 Ok: queued as 0C3CAEA803D
quit