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宛にセキュリティに関する注意メールが届いているはずです。内容を確認して以下のようにしてください。
メール本文の赤で囲っているURLをクリックしてください。
安全性の低いアプリのアクセスを許可するよう設定してください。
これで、OP25B対策は完了です。