CentOS 7.0 - Postfix の OP25B 対策!

Updated:


「CentOS 7.0 - Postfix の OP25B 対策」についての記録です。

(旧バージョンでの作業記録を更新しました。興味がなければスルーしてください)

自宅サーバであるとは言っても、Postfix でメールを送信する際にはプロバイダを経由することになる。
プロバイダが OP25B(Outbound Port 25 Blocking)対策していて自宅サーバからメールが送信できない場合は、OP25B 対策の影響を受けることになるので対策を施す必要がある。

0. 前提条件

  • CentOS 7.0-1406(x86_64) を NetInstall で最小限インストールしている。
  • サーバ用途なので、作業は基本的に全て一般ユーザから root になって行う。
  • クライアント側は Linux Mint 17 を想定。
  • プロバイダは @nifty を想定。
  • メールサーバは Postfix を想定。(Sendmail 等については各自お調べください)
  • 主に「CentOSで自宅サーバー構築」を参照。

1. メールサーバ名確認

クライアントマシンから nslookup コマンドでプロバイダに接続し、メールサーバ名を確認する。

# nslookup -type=mx nifty.com
Server:         127.0.1.1
Address:        127.0.1.1#53

Non-authoritative answer:
nifty.com       mail exchanger = 10 smmx.nifty.com.

Authoritative answers can be found from:
nifty.com       nameserver = ons0.nifty.ad.jp.
nifty.com       nameserver = ons1.nifty.ad.jp.
smmx.nifty.com  internet address = 210.131.4.177
ons0.nifty.ad.jp        internet address = 202.248.37.77
ons1.nifty.ad.jp        internet address = 202.248.20.156

メールサーバ名は “smmx.nifty.com” のようだ。

2. OP25B 影響確認

クライアントマシンから telnet コマンドでプロバイダのメールサーバへ接続できるかどうか確認する。

# telnet smmx.nifty.com 25
Trying 210.131.4.177...
Connected to smmx.nifty.com.
Escape character is '^]'.
220 conmx502.nifty.com ESMTP Nifty Mail Server   # <= 接続成功
quit                                             # <= 入力(終了)
221 2.0.0 conmx502.nifty.com closing connection
Connection closed by foreign host.

“220”(指定されたサーバーの準備完了)が返ってきたので接続は成功している。

接続に成功した場合は OP25B の影響は受けないということなので、以降の作業は不要である。(当方は行っていない)
「ホストへ接続できませんでした。 ポート番号 25: 接続に失敗しました」と出力される場合は、以降の OP25B 対策が必要である。

3. Postfix 設定ファイル編集

Postfix 設定ファイル “main.cf” を以下のように編集する。(該当箇所のみ抜粋)

File: /etc/postfix/main.cf

1
2
3
4
5
6
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = [プロバイダのSMTPサーバ名]:587  # <= プロバイダの SMTP サーバを指定

4. 認証方式の確認

以下のようにして、プロバイダの SMTP サーバが対応している認証方式を確認する。

# telnet プロバイダのSMTPサーバ名 25または587
Trying XXX.XXX.XXX.XXX...
Connected to プロバイダのSMTPサーバー名 (XXX.XXX.XXX.XXX).
Escape character is '^]'.
220 プロバイダのSMTPサーバー名 ESMTP
ehlo localhost                 # <= "ehlo localhost" と入力
250-プロバイダのSMTPサーバー名
250-AUTH LOGIN CRAM-MD5 PLAIN  # <= プロバイダの SMTPサーバが対応している認証方式
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
quit                           # <= 入力(終了)
221 プロバイダのSMTPサーバー名
Connection closed by foreign host.

5. Postfix 設定ファイル編集

Postfix 設定ファイル “main.cf” の最終行に以下の記述を追加する。
(以下の「認証方式」は、前項で確認したプロバイダのSMTPサーバが対応している認証方式のこと)

File: /etc/postfix/main.cf

1
2
3
4
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = 認証方式

6. SMTP 認証情報設定

SMTP 認証情報を以下のようにして設定する。
(SMTP サーバ名、ユーザ名、パスワードは全て、自宅サーバではなくプロバイダの SMTP サーバの情報であることに注意)

File: /etc/postfix/authinfo

1
[SMTPサーバ名]:587 ユーザ名:パスワード

7. SMTP 認証情報ファイル権限設定

# chmod 640 /etc/postfix/authinfo

8. データベース作成

# postmap /etc/postfix/authinfo

9. Postfix リロード

# systemctl reload postfix

以上。





 

Sponsored Link

 

Comments