CnetOS 7 - 自宅サーバで、メールを送信するための「OP25B」対策。

自宅サーバからメールを送信する場合、障害となるのがプロバイダ(ISP)によるOP25B対策だと思います。

OP25B対策とは、ISP(OCNやJ:COMなど)が迷惑メール対策として実施しているメール送信規制のことです。

少し具体的には、SMTPの25ポートを使った通信ができないよう制限されているため、自宅のSMTPサーバ(Postfix等)から hoge@yahoo.co.jp宛などのメールは送信できません。

 

本投稿では、OP25Bによって自宅サーバからメール送信ができない(OP25B)場合の対処方法を紹介します。

 

 

内容

OP25Bによるメール送信規制は、SMTPの25ポートではなく、587ポートを使うことで回避できます。

VPSなどでグローバルIPアドレスが付加されたSMTPサーバをお持ちの場合は、そちらをメール送信に利用することでOP25Bを回避することができます。

SMTPサーバをお持ちでない方は、GoogleのSMTPサーバを利用しましょう。GoogleのSMTPサーバを利用する場合、Gmailのアカウントが必要となるので作成するか既存アカウントをご利用してください。

 

目次

1.Postfixのインストールと設定

2.Gmailの設定

3.メール送信テスト

 

作業環境
- CentOS 7.1
- Postfix 2.10.1

 

 

1.Postfixのインストールと設定

 

Postfixをインストール

Postfixをインストールします。Postfixがインストールされていないとメールの送信ができません。

加えて、Postfixと一緒にmailコマンドを含むパッケージとGoogleのメール認証に必要となるパッケージをインストールします。

# yum install postfix cyrus-sasl-plain mailx

 

Postfixを設定

Postfixの設定は、「/etc/postfix/main.cf」に記述していきます。

設定を記述する前にバックアップの取得は忘れに実施しましょう。

# cp /etc/postfix/main.cf{,.bak}

 

リレーサーバ(googleのSMTPサーバ:smtp.gmail.com)を設定ファイルに記述していきます。

vimなどのエディタを利用して、main.cfの行末に以下の設定を追記してください。

# vim /etc/postfix/main.cf
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain
smtp_sasl_password_maps = hash:/etc/postfix/google_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_use_tls = yes

 

パスワードファイルを作成

先ほどのmain.cnfの設定に以下の設定項目がありました。

smtp_sasl_password_maps = hash:/etc/postfix/google_passwd

これは、GoogleのSMTPサーバに接続する認証で必要なパスワードファイルを指定しています。

「/etc/postfix/google_passwd」に認証で必要な情報を登録します。

# vim /etc/postfix/google_passwd
[smtp.gmail.com]:587 アカウント名@gmail.com:パスフレーズ

例えば、アカウント名が hoge 、パスフレーズが hogehoge123 の場合は、「 [smtp.gmail.com]:587 hoge@gmail.com:hogehoge123 」としてください。

 

パスワードファイルの作成を終えた後は、ファイルをDB化します。

# postmap /etc/postfix/google_passwd

パスワードファイルのDB化でパスワードファイルと同じディレクトリに「パスワードファイル名.db」ができます。

# ls -lh /etc/postfix/google_passwd.db
-rw-r--r--. 1 root root 12K  7月  1 10:59 2015 /etc/postfix/google_passwd.db

 

Postfixを起動

ここまでの設定を終えたら、Postfixを起動させましょう。

# systemctl start postfix

正常に起動出来ているかステータスを確認しておきましょう。

# systemctl status postfix
postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled)
   Active: active (running) since 水 2015-07-01 11:05:46 JST; 1 day 1s ago
 Main PID: 1984 (master)
   CGroup: /system.slice/postfix.service
           tq 1984 /usr/libexec/postfix/master -w
           tq 1998 qmgr -l -t unix -u
           mq29427 pickup -l -t unix -u

 7月 01 11:05:45 hoge systemd[1]: Starting Postfix Mail Transport Agent...
 7月 01 11:05:46 hoge postfix/postfix-script[1973]: starting the Postfix mail system
 7月 01 11:05:46 hoge postfix/master[1984]: daemon started -- version 2.10.1, configuratio...fix
 7月 01 11:05:46 hoge systemd[1]: Started Postfix Mail Transport Agent.
Hint: Some lines were ellipsized, use -l to show in full.

 

正常起動が確認できたら自動起動設定に登録しておきます。

# systemctl enable postfix

 

 

3.メール送信テスト

 

メールを送信

mailコマンドを利用して、メールを送信するテストを行います。

# echo "Hello! test mail!!" | mail -s "test mail" hoge@yahoo.co.jp

mailコマンドでは、「"Hello! test mail!!"」の部分がメール本文となり、「"test mail"」の部分が件名で「hoge@yahoo.co.jp」が宛先です。

 

メールログを確認

送信の確認はメールログを見て行います。

# grep "hoge@yahoo.co.jp" /var/log/maillog
wed  1 11:10:27 hoge postfix/smtp[30706]: CD159BA043: to=<hoge@yahoo.co.jp>, relay=smtp.gmail.com[173.194.72.109]:587, delay=3.7, delays=0.1/0.06/2.2/1.3, dsn=2.0.0, status=sent (250 2.0.0 OK 1435775012 h12sm3010469pdk.77 - gsmtp)

メールログを見て、「status=sent」となっていればメール送信が正常に行えたことを指しています。

 

 

Gmailを設定

ここまで手順通りに進めていれば、Gmail宛にセキュリティに関する注意メールが届いているはずです。内容を確認して以下のようにしてください。

f:id:sabakan1204:20150702060538j:plain

メール本文の赤で囲っているURLをクリックしてください。

f:id:sabakan1204:20150702060555j:plain

安全性の低いアプリのアクセスを許可するよう設定してください。

 

 

これで、OP25B対策は完了です。