>> HOME >> Linux Tips MENU >> Linux Tips : Inbound/Outbound Port 25 Blocking(IP25B/OP25B)対策
Outbound Port 25 Blocking ( OP25B )
主にISPなどから動的IPアドレスから、他のISPに出て行く25番ポートへの接続が契約しているISPにより禁止される。
Inbound Port 25 Blocking ( IP25B )
他のISPの動的IPアドレスから、25番ポートへの接続が契約しているISPにより全て禁止される。
迷惑メール(SPAM)対策として、これらの対応を取るISPが増えてきています。 つまり、これまでの方法では、動的IPアドレスではメールサーバーを立ち上げることができなくなります。
固定IPアドレスで自宅サーバーを運用することができない私どもにとっては非常に辛いことであります。 これらの制限が個人ではなく、利用者全体に対して行われ、善良な人をも巻き込むことは非常に遺憾はなはだしいのですが、 現在の情勢がそのようになっていることは仕方の無いことなので、このページはこれらの対策について記述していきます。

※ ISPやメールソフトの違いにより対応が異なる場合があります。

1. 対策 1 : 自宅サーバーの対応
1 ) ISP の SMTP サーバーを経由する
2 ) SMTP-AUTH
3 ) Postfix の再起動
2. 対策 2 : クライアントに関する対応
1 ) Submission Port ( ポート:587 ) の利用
2 ) SMTPS ( SMTP over SSL/TSL ポート:465 ) の利用
対策 1 : 自宅サーバーの対応
自宅の SMTP サーバーが接続されている ISP が OP25B を導入した場合、自宅サーバーからメールを送信する時に全てのメールを契約している ISP の SMTP サーバーを経由する他に対策が無いようです。
また、ISPによっては、その際に POP before SMTP または SMTP-AUTH による認証が必要な場合があります。
1 ) ISP の SMTP サーバーを経由する
[root@linux ~]# vi /etc/postfix/main.cf 

  :
  :

# INTERNET OR INTRANET

# The relayhost parameter specifies the default host to send mail to
# when no entry is matched in the optional transport(5) table. When
# no relayhost is given, mail is routed directly to the destination.
#
# On an intranet, specify the organizational domain name. If your
# internal DNS uses no MX records, specify the name of the intranet
# gateway host instead.
#
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
# [address] or [address]:port; the form [host] turns off MX lookups.
#
# If you're connected via UUCP, see also the default_transport parameter.
#
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
# ISPのメールサーバを中継する(Outbound Port25 Block 対策)
relayhost = [XXX.ocn.ne.jp]
  :
  :
ここでプロバイダが OCN の場合注意が必要です。
OCN の SMTP サーバとして掲載されている vcXXX.ocn.ne.jp の vc というのは virus check のことで、送信時にウィルスチェックをしてくれるサービスとのことです。 このサービスは OCN のメールアカウントを対象にしているので、独自メールサーバ等 OCN のメールアカウント以外で送信しようとすると、認証エラーが起きます。
そこで、relayhost に設定する SMTP サーバーには、vc を取って XXX.ocn.ne.jp を指定します。
2 ) SMTP-AUTH
ISP が導入している認証方式に POP before SMTP と SMTP-AUTH があるようですが、Postfix は SMTP-AUTH しか対応していないので、SMTP-AUTH を行う方法を記述します。
# ISP の SMTP サーバ向け SMTP-AUTH 用パスワードファイルの作成 ( ファイル名は任意 )
[root@linux ~]# vi /etc/postfix/isp_passwd 

# <relayhost で設定した ISP の SMTP サーバ名>      <ISP のメールアカウント>:<ISP のパスワード>
XXX.ocn.ne.jp	isp_mail_acount:isp_mail_password
# isp_passwd を DB化
[root@linux ~]# postmap /etc/postfix/isp_passwd 
[root@linux ~]# vi /etc/postfix/main.cf 

# 追加 : Postfix SMTP クライアントの SASL 認証を有効にする
smtp_sasl_auth_enable = yes
# 追加 : 上で作成したSMTP クライアント検索テーブルを指定
smtp_sasl_password_maps = hash:/etc/postfix/isp_passwd
# 追加 : Postfix SMTP クライアントで使うことが許される認証メカニズム
# anonymous を不可とする。
smtp_sasl_security_options = noanonymous
# 追加 : ISP の SMTP サーバ側と自宅サーバ側の SASL メカニズムが不一致だと認証に失敗することがあるので、
# 下記で使用するメカニズムを固定する。
smtp_sasl_mechanism_filter = LOGIN,PLAIN,CRAM-MD5
ISP が導入している SASL メカニズムの確認方法
[root@linux ~]# telnet XXX.ocn.ne.jp 25 
Trying 255.255.255.255...
Connected to XXX.ocn.ne.jp (255.255.255.255).
Escape character is '^]'.
220 XXX.ocn.ne.jp ESMTP Postfix
EHLO XXX.ocn.ne.jp 
250-XXX.ocn.ne.jp
250-SIZE 10485760
250-AUTH LOGIN PLAIN CRAM-MD5  ← この内容に合わせる
250 AUTH=LOGIN PLAIN CRAM-MD5  ← この内容に合わせる
QUIT 
221 Bye
Connection closed by foreign host.
3 ) Postfix の再起動
[root@linux ~]# service postfix restart 
Shutting down postfix:                                     [  OK  ]
Starting postfix:                                          [  OK  ]
対策 2 : クライアントに関する対応
外部から自宅サーバを利用している場合で、 自宅 SMTP サーバーを利用しているクライアント側の ISP が OP25B を導入した場合、 または、自宅の SMTP サーバーが接続されている ISP が IP25B を導入した場合、対策が必要です。
対策方法としては2種類あり、いずれも25番ポート以外のポートで自宅サーバを使用できるようにする方法です。
1 ) Submission Port ( ポート:587 ) の利用
[root@linux ~]# vi /etc/postfix/master.cf 
#
# Postfix master process configuration file.  For details on the format
# of the file, see the Postfix master(5) manual page.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
# コメントを解除
submission inet n      -       n       -       -       smtpd
       -o smtpd_etrn_restrictions=reject
       -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps    inet  n       -       n       -       -       smtpd
#  -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
  :
  :
合わせて SMTP-AUTH の設定が必要です。SMTPサーバー(Postfix) を参照してください。
また、クライアントの設定変更も必要です。
SMTPサーバーのポート番号を 587 に、SMTP-AUTH の設定を行ってください。
2 ) SMTPS ( SMTP over SSL/TSL ポート:465 ) の利用
メールサーバー間通信暗号化(OpenSSL) を参照してください。
また、クライアントの設定は メールアカウントの作成 & クライアントの設定 を参照してください。