ホーム » 「SPF」タグがついた投稿
タグアーカイブ: SPF
postfixの設定見直し
自宅サーバに届く迷惑メールの設定はそれなりにやってるつもりだけど、相変わらず届く。
迷惑メールの送信側も、DKIM や SPF といった迷惑メールに誤認されない対策をして送ってきている。そこで改めて postfix の設定を見直す。
RBLサイトの整理, 正引き・逆引きチェック
迷惑メール送信者のデータベース(RBL)の設定をしていたけど、all.rbl.jp, zen.spamhaus.org はサービスを停止しているようで、nslookup all.rbl.jp とかも失敗するし設定を削除。
Dynamic DNS サイトのような迷惑メールサイトからのメールを拒否するために、reject_unknown_reverse_client_hostname を設定していたけど、DKIM, SPF まで設定した迷惑メールサーバも多いので、設定をさらに厳しく reject_unknown_client_hostname に変更。
この設定を変更すると、逆引きと正引きが一致しない Dynamic DNS サイト(まさに自サイト tsaitoh.net はこの状態)からのメールを拒否することになる。しかし、迷惑メールの制限を強化したいし、身の回りの 逆引きと正引きが一致しない所からのメールは、smtpd_client_regexp で受信許可するようにしよう。
((( /etc/postfix/main.cf ))) smtpd_client_restrictions = permit_mynetworks, check_client_access regexp:/etc/postfix/smtpd_client_regexp - reject_rbl_client all.rbl.jp, # サービス停止 - reject_rbl_client zen.spamhaus.org, # サービス停止 reject_rbl_client bl.spamcop.net, - reject_unknown_reverse_client_hostname, # 逆引きだけをチェック + reject_unknown_client_hostname, # IP->name->IPのチェックあり permit
DNSにDMARCを設定
SPF, DKIM の設定がうまく動いているようなので、DMARC も設定してみよう。
DMARC は、SPF, DKIM にてメールの送信者認証で問題が発生した際にそのメールをどう扱ってほしいかを受け取り側に伝えるための設定。なりすましを受けたら報告してもらえるという意味でも便利かも。
DMARCの設定
ひとまず、なりすましは無いと思うけど、DMARCの設定ミスでメールが消えても困るから、p=none を設定し、問題が起こっても特になにもしてもらわないことにする。メール受信時の成功などの統計用情報が送られてくるメールアドレスと、失敗(なりすまりが発生?やばい!?)のメールアドレスを設定。
mydns.jp の自宅ドメインの設定で、以下のような情報を返すように設定を行う。
_dmarc.tsaitoh.net IN TXT “v=DMARC1; p=none; rua=mailto:report-a@tsaitoh.net; ruf=mailto:report-f@tsaitoh.net”
p=none(なにもしない)でなく、p=quarantine(隔離), p=reject(廃棄), に設定すると、レポートメールが送られるようになる。
DMARCの状態レポートの受信設定
上で設定した、統計用メール、失敗用メールの受取先を実際に配送できるように、/etc/aliases に登録。
$ sudo vi /etc/aliases # 以下を追加 report-a: root report-f: root $ sudo newaliases
試しに Google のメールアドレスにメールを送ったら、dmarc=pass が表示されるようになった。(現時点では、p=none なので report-a 宛などのメールは送られてこない)
Authentication-Results: mx.google.com; dkim=pass header.i=@tsaitoh... dkim=pass header.i=@tsaitoh... spf=pass (google.com: domain of ... dmarc=pass (p=NONE sp=NONE dis=NONE) ...
DMARCレポート
SPF(メール送信者認証)
職場で立てたサーバで、gmail などに送ったメールが spam 扱い などをされたので、DKIM の設定を試しているけど、 なかなか設定が面倒。
ふと、自宅サーバでも、メールの送信者認証を試そうとした。 そこで、mydns.jp によるドメイン名の DNS レコードを確認していたら、 特に DNS の設定をしていないけど、mydns.jp 側で SPF の情報を 出してくれているみたい。
$ dig @8.8.8.8 txt tsaitoh.net tsaitoh.net. 299 IN TXT
“v=spf1 +ip4:xxx.xxx.xxx.xxx a:auth.gate-on.net a mx -all”
であれば、gmail 宛てのメールで spf が pass しているかと調べたら、
Authentication-Results: mx.google.com;
spf=fail (google.com: domain of xxxxxxxx@tsaitoh.net
does not designate zzz.zzz.zzz.zzz as permitted sender)
smtp.mailfrom=xxxxxxxx@tsaitoh.net
Received: from
scan03-mds.s.noc.itscom.net
(scan03-md.ns.itscom.net [175.177.155.124]) :
メールヘッダには、上記のように記録されていて、 spf 認証に失敗している。 メールの経路に itscom.net というのが入っているので何かと思ったが、 プロバイダにしている丹南CATV関係。
よくよく考えたら、自宅サーバからメールを出すときには、 OP25B(公式メールサーバ以外は、25番ポートをブロック)されている(いた) ので、postfix の transport を設定し、smtp.ttn.ne.jp 経由でメールを 出していた。 このため、tsaitoh.net のメールが、itscom.net から 出ているので怪しいので 「spf=fail」となっている。
ただ、先日学生相手の情報セキュリティの説明を自宅を例に説明していたら、 OP25B でブロックされていないのを 見つけていた。 (たぶん、光ファイバ接続の nextr 導入で制限が外れているのだろう)
ただし、丹南CATVが OP25B を復活させる可能性もあるので、 icinga にて、丹南CATV以外のメールサーバと SMTP で繋がるかチェックを加えておいた。
ということで、postfix の transport の設定を、直接メールを出すように 直したら、無事に spf=pass となった。(^_^;
Received-SPF: pass (google.com: domain of xxxxxxxx@tsaitoh.net
designates xxx.xxxx.xxx.xxx as permitted sender)
client-ip=xxx.xxx.xxx.xxx;
メール受信時のチェック
せっかく、送信時のSPF認証が通ったし、受信時にSPF確認しようと思ったけど、 postgray を導入していて、特に spam の負荷も問題にならない状態なので、 (設定面倒だし)、そのままにしておこう。