Carpe Diem

  Top > スポンサー広告> Mailサーバ > メールサーバの設定【OP25B対策】  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

メールサーバの設定【OP25B対策】

2011 - 11/28 [Mon] - 01:56

前回の設定で基本メールを送受信できると思いますが、それでも出来ない場合はOP25Bで禁止されてます。
その場合プロバイダメールをリレーさせます。
今回はgmailをリレーさせて外部へメールを送信できるようにします。

あらかじめポートを開放していてください。設定はあっているのにこれで詰まる人も多いです。
ポートチェック【ポート開放確認】

あとufwを設定している人はそのルールの更新もしておいてください。
$ sudo ufw allow 587

◆postfixの設定
$ sudo emacs -nw /etc/postfix/main.cf

以下を最後に追記します。

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
#smtp_use_tls = yes 
←古いので今は使わない。tls_security_levelを使う。
smtp_sasl_password_maps = hash:/etc/postfix/authinfo ←後に作成します。名前は任意。
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt 
←ルート証明書。ssl入れてたらデフォルトである。
smtp_tls_security_level = verify ←mayならルート証明書なくてもOK。
#smtp_sasl_security_options = noanonymous ←普通こっち。gmailはtlsなので下
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter =  LOGIN, CRAM-MD5, PLAIN 認証方式
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

ルート証明書は以前はThawteのCAファイルを使用していましたが、これではダメになったみたいで現在はDebianに含まれるCAファイルのになったようです。また認証方式はプロバイダによって異なります。調べ方はまた後述します。

保存します

/etc/postfix/authinfoを作ります。
# echo [SMTPサーバー名]:587 ユーザー名:パスワード > /etc/postfix/authinfo ← SMTP認証情報設定
SMTPサーバー名・・・プロバイダのSMTPサーバー名
ユーザー名・・・プロバイダのメールアカウント名
パスワード・・・プロバイダのメールパスワード


gmailなので
# echo [smtp.gmail.com]:587 ユーザー名:パスワード > /etc/postfix/authinfo
ユーザー名・・・Gmailのメールアカウント名
パスワード・・・Gmailのメールパスワード


権限変更
# chmod 640 /etc/postfix/authinfo
# postmap /etc/postfix/authinfo ← authinfo.db作成


再起動
# sudo service postfix reload

これで外部へメールを送信できるはずです。
もしできていない場合は/var/log/mail.logをチェックしてください。
relay = smtp.gmail.com
status=sent

なら送れてます。これが
relay=local
status=bounce

とかだと送れてません。localの場合指定したドメインが内側と勘違いされています。$mydestinationをチェックしてください。ここにgmail.comとかあると内側と勘違いされてうまくリレーされません。

◆認証方式の調べ方
# telnet プロバイダのSMTPサーバー名 25または587 ← プロバイダのSMTPサーバーへ接続
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


です。認証方式が違うとmailqに残ったままになります。

◆補足:Postfixのsmtp_sasl~ と smtpd_sasl~の違い

smtp_~は他のsmtpサーバに接続しに行くときのクライアントとして動作するときの設定。このメールサーバから別のメールサーバへリレーさせるときに使用します。
smtpd_~はsmtpサーバとして他からの接続を受ける時の設定。通常の送信サーバとして使用する時に必要な設定です。
Postfix側のSMTP認証のためにsmtpd_sasl、OP25B対策にsmtp_saslの項目を設定している

◆補足2:不正中継のチェック
このサイトでチェックできます。
http://www.abuse.net/relay.html
第三者中継チェック
フォームの最初にドメイン名を入力して、「test for relay」を押せば自動で進めてくれます。

もしくは自分でTELNETで確認できます。ただ外部からアクセスして、の話です。
実際にTELNETを使って自分でやってみる

自分のメールサーバのホスト名をhoge.hogehoge.comとして説明します。

1)リレーが拒否されるまともなサーバの場合

# telnet hoge.hogehoge.com 25
Trying ***.***.***.***...
Connected to hoge.hogehoge.com.
Escape character is '^]'.
220 hoge.hogehoge.comESMTP

HELO main.kozupon.com ← ①
250 hoge.hogehoge.com

MAIL FROM:aabbccddTEST@hoge.hogehoge.com ← ②
250 ok

RCPT TO:root@main.kozupon.com ← ③
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) ← ④

quit
221 hoge.hogehoge.com
Connection closed by foreign host.


① 自分の会社からTELNETを行った場合、HELOの後に会社のホスト名を入力する(FQDN)。
これで、クライアントを相手のメールサーバに認識させる。

② MAIL FROM:の後にここでは適当な有り得ないメールアドレス例えば、aabbccddTEST@hoge.hogehoge.comを入力する。これで、メールサーバに送信先を認識させる。

③ RCPT TO:の後に会社の自分のメールアドレスを入力する。これで、メールサーバに送信先を認識させる。

④ 553 sorry, レスポンスとしてが表示されたら中継は拒否された事になる。

2)リレーが許可されてしまうだめなサーバの場合

# telnet hoge.hogehoge.com 25

Trying ***.***.***.***...
Connected to hoge.hogehoge.com.
Escape character is '^]'.
220 hoge.hogehoge.comESMTP

HELO main.kozupon.com

250 hoge.hogehoge.com

MAIL FROM:aabbccddTEST@hoge.hogehoge.com

250 ok

RCPT TO:root@main.kozupon.com
250 root@main.kozupon.com... Recipient ok ← ①

quit
221 hoge.hogehoge.comclosing connection
Connection closed by foreign host.


① このメッセージで適当な、メールアドレスを入力したのにも関わらず、Recipient ok 受領している。このようなメッセージを発してる場合は、中継を許可しています。


ソース:
OP25B(Outbound Port 25 Blocking)対策
Postfixのsmtp_sasl~ と smtpd_sasl~の違い
第三者不正中継チェックの仕組み!
Postfix設定パラメータ

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。