いらっしゃいませ
ここでは、OP25B(Outbound Port 25 Blocking)対策について掲載しています。
OP25B(Outbound Port 25 Blocking)とは…?
スパムメール対策として取り入れられたもので、通常メールを送信する際に使われるSMTPポート(TCP/25)をプロバイダがブロックし、迷惑メールなどの送信を防止するというものです。
OP25Bを導入しているプロバイダの一覧はこちら。
このOP25Bですが、自宅サーバを構築する上では少々やっかいなもので、サーバ側で対策をしてあげないとメールを送信できない可能性があります。
対策としては以下の2つ。
1つ目の方法は、OP25Bを導入しているプロバイダが用意しているSubmissionポートと呼ばれる代替ポート(TCP/587)を使う方法。
2つ目の方法は、通信を暗号化してしまう方法。
どちらも共通するのはメールの送信に使うポートを変えてしまうという点ですね。2つとも設定する必要はなく、どちらか片方を設定すればだいたい大丈夫です。
※ただし、うまくいかないこともあります…。
プロバイダのSMTPサーバの認証方式を確認
今回のOP25B対策では、プロバイダ指定のSMTPサーバを経由してメールを送ることになります。まずはSMTPサーバの認証方式を確認しておきましょう。
[root@sl ~]# telnet プロバイダ指定のSMTPサーバ 25
Trying XXX.XXX.XXX.XXX...
Connected to SMTPサーバ (XXX.XXX.XXX.XXX).
Escape character is '^]'.
220 SMTPサーバ SMTP-Gateway Version 1.01 at Sat, 29 Jun 2013 21:33:19 +0900 (JST)
ehlo localhost (入力)
250-SMTPサーバ Hello localhost [xxx.xxx.xxx.xxx], pleased to meet you
250-AUTH CRAM-MD5 LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 104857600
250-DSN
250-DELIVERBY
250 HELP
quit (入力)
221 2.0.0 SMTPサーバ closing connection
Connection closed by foreign host.
もしtelnetでのログインができないようであれば、ポートを25から587に変更してみてください。
今回参考に使った例では、認証方式として、CRAM-MD5、LOGIN、PLAINが使用されていることが分かります。
Submissionポートを使用したOP25B対策
通常SMTPポート(TCP/25)を使うところをSubmissionポート(TCP/587)を使ってメールの送信をするよう、サーバの設定を行います。
Cyrusのインストール
SMTP-AUTHのため、Cyrusパッケージをインストールします。
[root@sl ~]# yum -y install cyrus*
読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* remi-safe: ftp.riken.jp
* sl: ftp.riken.jp
* sl-security: ftp.riken.jp
* sl6x: ftp.riken.jp
* sl6x-security: ftp.riken.jp
パッケージ cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64 はインストール済みか最新バージョンです
パッケージ cyrus-sasl-2.1.23-15.el6_6.2.x86_64 はインストール済みか最新バージョンです
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package cyrus-imapd.x86_64 0:2.3.16-15.el6 will be インストール
---> Package cyrus-imapd-devel.x86_64 0:2.3.16-15.el6 will be インストール
---> Package cyrus-imapd-utils.x86_64 0:2.3.16-15.el6 will be インストール
---> Package cyrus-sasl-devel.x86_64 0:2.1.23-15.el6_6.2 will be インストール
---> Package cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.2 will be インストール
---> Package cyrus-sasl-ldap.x86_64 0:2.1.23-15.el6_6.2 will be インストール
---> Package cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.2 will be インストール
---> Package cyrus-sasl-ntlm.x86_64 0:2.1.23-15.el6_6.2 will be インストール
---> Package cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.2 will be インストール
---> Package cyrus-sasl-sql.x86_64 0:2.1.23-15.el6_6.2 will be インストール
--> 依存性の処理をしています: libpq.so.5()(64bit) のパッケージ: cyrus-sasl-sql-2.1.23-15.el6_6.2.x86_64
--> トランザクションの確認を実行しています。
---> Package postgresql-libs.x86_64 0:8.4.20-8.el6_9 will be インストール
--> 依存性解決を終了しました。
依存性を解決しました
===============================================================================
パッケージ アーキテクチャ
バージョン リポジトリー
容量
===============================================================================
インストールしています:
cyrus-imapd x86_64 2.3.16-15.el6 sl 11 M
cyrus-imapd-devel x86_64 2.3.16-15.el6 sl 232 k
cyrus-imapd-utils x86_64 2.3.16-15.el6 sl 254 k
cyrus-sasl-devel x86_64 2.1.23-15.el6_6.2 sl 302 k
cyrus-sasl-gssapi x86_64 2.1.23-15.el6_6.2 sl 33 k
cyrus-sasl-ldap x86_64 2.1.23-15.el6_6.2 sl 28 k
cyrus-sasl-md5 x86_64 2.1.23-15.el6_6.2 sl 46 k
cyrus-sasl-ntlm x86_64 2.1.23-15.el6_6.2 sl 35 k
cyrus-sasl-plain x86_64 2.1.23-15.el6_6.2 sl 30 k
cyrus-sasl-sql x86_64 2.1.23-15.el6_6.2 sl 31 k
依存性関連でのインストールをします。:
postgresql-libs x86_64 8.4.20-8.el6_9 sl 201 k
トランザクションの要約
===============================================================================
インストール 11 パッケージ
総ダウンロード容量: 12 M
インストール済み容量: 47 M
パッケージをダウンロードしています:
(1/11): cyrus-imapd-2.3.16-15.el6.x86_64.rpm | 11 MB 00:03
(2/11): cyrus-imapd-devel-2.3.16-15.el6.x86_64.rpm | 232 kB 00:00
(3/11): cyrus-imapd-utils-2.3.16-15.el6.x86_64.rpm | 254 kB 00:00
(4/11): cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64.rpm | 302 kB 00:00
(5/11): cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64.rpm | 33 kB 00:00
(6/11): cyrus-sasl-ldap-2.1.23-15.el6_6.2.x86_64.rpm | 28 kB 00:00
(7/11): cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64.rpm | 46 kB 00:00
(8/11): cyrus-sasl-ntlm-2.1.23-15.el6_6.2.x86_64.rpm | 35 kB 00:00
(9/11): cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64.rpm | 30 kB 00:00
(10/11): cyrus-sasl-sql-2.1.23-15.el6_6.2.x86_64.rpm | 31 kB 00:00
(11/11): postgresql-libs-8.4.20-8.el6_9.x86_64.rpm | 201 kB 00:00
-------------------------------------------------------------------------------
合計 2.9 MB/s | 12 MB 00:04
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています : cyrus-imapd-utils-2.3.16-15.el6.x86_64 1/11
インストールしています : postgresql-libs-8.4.20-8.el6_9.x86_64 2/11
インストールしています : cyrus-sasl-sql-2.1.23-15.el6_6.2.x86_64 3/11
インストールしています : cyrus-imapd-2.3.16-15.el6.x86_64 4/11
インストールしています : cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64 5/11
インストールしています : cyrus-imapd-devel-2.3.16-15.el6.x86_64 6/11
インストールしています : cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64 7/11
インストールしています : cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64 8/11
インストールしています : cyrus-sasl-ldap-2.1.23-15.el6_6.2.x86_64 9/11
インストールしています : cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64 10/11
インストールしています : cyrus-sasl-ntlm-2.1.23-15.el6_6.2.x86_64 11/11
Verifying : cyrus-sasl-ntlm-2.1.23-15.el6_6.2.x86_64 1/11
Verifying : cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64 2/11
Verifying : postgresql-libs-8.4.20-8.el6_9.x86_64 3/11
Verifying : cyrus-sasl-ldap-2.1.23-15.el6_6.2.x86_64 4/11
Verifying : cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64 5/11
Verifying : cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64 6/11
Verifying : cyrus-imapd-2.3.16-15.el6.x86_64 7/11
Verifying : cyrus-sasl-sql-2.1.23-15.el6_6.2.x86_64 8/11
Verifying : cyrus-imapd-utils-2.3.16-15.el6.x86_64 9/11
Verifying : cyrus-imapd-devel-2.3.16-15.el6.x86_64 10/11
Verifying : cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64 11/11
インストール:
cyrus-imapd.x86_64 0:2.3.16-15.el6
cyrus-imapd-devel.x86_64 0:2.3.16-15.el6
cyrus-imapd-utils.x86_64 0:2.3.16-15.el6
cyrus-sasl-devel.x86_64 0:2.1.23-15.el6_6.2
cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.2
cyrus-sasl-ldap.x86_64 0:2.1.23-15.el6_6.2
cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.2
cyrus-sasl-ntlm.x86_64 0:2.1.23-15.el6_6.2
cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.2
cyrus-sasl-sql.x86_64 0:2.1.23-15.el6_6.2
依存性関連をインストールしました:
postgresql-libs.x86_64 0:8.4.20-8.el6_9
完了しました!
Postfixの設定
Postfixの設定を変更します。
[root@sl ~]# vi /etc/postfix/main.cf
#relayhost = $mydomain
↓
relayhost = [プロバイダ指定のSMTPサーバ]:587
MyDNSを利用している方は、MyDNSの提供するサーバを指定することも可能です。プロバイダのSMTPサーバを指定してダメな場合はこちらを利用してみるのも良いと思います。
ただし、期間限定としているため、いつまで利用できるかは分かりません。
また、最後尾に以下の設定を追記します。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/ispinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = CRAM-MD5,PLAIN (先に確認した認証方式)
認証情報の設定
プロバイダのSMTPサーバにログインするための認証情報を設定します。プロバイダから与えられたアカウント名、パスワード等を会員証などで確認し、設定します。
[root@sl ~]# echo [プロバイダのSMTPサーバ]:587 プロバイダのメールアカウント:パスワード > /etc/postfix/ispinfo
[root@sl ~]# chmod 640 /etc/postfix/ispinfo
[root@sl ~]# postmap /etc/postfix/ispinfo
Postfixの再起動
設定を反映するため、Postfixを再起動します。
[root@sl ~]# /etc/init.d/postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
メーラーからテスト送信を行い、正しく動作するか確認してください。
通信の暗号化を使用したOP25B対策 (オススメ!)
通信内容を暗号化し、通常SMTPポート(TCP/25)を使うところをSMTPSポート(TCP/465)を使ってメールの送信をするよう、サーバの設定を行います。
ここで暗号化されるのは、メールの送受信を行っている端末と現在構築しているメールサーバ間になります。メールサーバから先は暗号化の保証がありませんので、そこらへんは注意が必要です。
また、事前にSSLの設定を行っておく必要があります。
今回は、Let's Encryptを使って証明書を発行したものとして話を進めます。自己発行の証明書の場合は各自ファイル名等を読み替えてください。
Postfixの設定
設定ファイル(main)の最後尾に以下を追記します。
[root@sl ~]# vi /etc/postfix/main.cf
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mhserv.info/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mhserv.info/privkey.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
さらに、以下の設定ファイル(master)を編集します。
[root@sl ~]# vi /etc/postfix/master.cf
#smtps inet n - n - - smtpd
#-o smtpd_tls_wrappermode=yes
#-o smtpd_sasl_auth_enable=yes
↓
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
Postfixの再起動
設定を反映するため、Postfixを再起動します。
[root@sl ~]# /etc/init.d/postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
Dovecotの設定
送信時だけでなく、受信時の通信も暗号化するよう、Dovecotの設定も変更します。
[root@sl ~]# vi /etc/dovecot/conf.d/10-ssl.conf
#ssl = yes
↓
ssl = yes
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
↓
ssl_cert = </etc/letsencrypt/live/mhserv.info/fullchain.pem
ssl_key = </etc/letsencrypt/live/mhserv.info/privkey.pem
Postfixの再起動
設定を反映するため、Dovecotを再起動します。
[root@sl ~]# /etc/init.d/dovecot restart
Dovecot Imap を停止中: [ OK ]
Dovecot Imap を起動中: [ OK ]
ルータのポートマッピング
暗号か通信用のポートマッピングを行います。
使用するポートは以下の通りです。
- ・SMTPS:465
- ・POPS:995
- ・IMAPS:993
メーラーの設定
基本的な操作は前回と変わりありませんが、一部、暗号化に関する項目を設定します。
設定が終わったら、自分自身へのメール送受信、外部とのメール送受信のテストを行い、正しく動作するかを確認してください。
参考にしたサイト様
Scientific Linuxで自宅サーバー構築 - OP25B(Outbound Port 25 Blocking)対策
Scientific Linuxで自宅サーバー構築 - メールサーバー間通信内容暗号化(OpenSSL+Postfix+Dovecot)
今回新しく登場したコマンド
[広告]
トップページ
CentOS 5
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ファイルサーバ
○その他