sendmailで別サーバからのメールリレーを許可する設定をする方法

サーバAからサーバBを経由してメールを送信するのを「リレー」といいますが、sendmailでリレーを可能にするための方法をご紹介します。 サーバAからの転送設定はすでに済ませているとしますので、サーバBでの設定作業となります。

現在の設定を確認する

ローカル( 127.0.0.1 )からのみSMTPを受け付ける設定になっていることを確認してみます。

# netstat -an | grep 25
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN

ローカル以外からもSMTPを受けつける

ローカル以外からもSMTPを受けつけるように設定を変更します。

# cp -p /etc/mail/sendmail.mc /etc/mail/sendmail.mc.20141001
# vi /etc/mail/sendmail.mc
dDAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
↓ dnl を先頭に付けてコメント化
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

これで 127.0.0.1 からのみ受けつける制限が外れますので、sendmailを再起動して全てのホストからSMTPを受けつけるようになっていることを確認してみます。

# /etc/rc.d/init.d/sendmail restart
# netstat -an | grep 25
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN

リレーを許可するIPを指定する

最後にリレーを許可するIPを指定します。これを入れないとリレーされないので要注意です。

# cp -p /etc/mail/access /etc/mail/access.20141001
# vi /etc/mail/access
下記を追記
xxx.xxx.xxx.xxx                 RELAY
# makemap hash /etc/mail/access.db < /etc/mail/access
# /etc/rc.d/init.d/sendmail restart

これでリレー設定は完了です。

コメントを残す

メールアドレスが公開されることはありません。