自宅メールサーバをDKIM対応へ
Yahoo のメールアカウントに、迷惑メール対策のため「DMARC」導入を開始しますとのメールが届いている。送信側ドメイン認証のひとつで、なりすましだった場合の取り扱いを設定することができるらしい。
しかし、自宅メールサーバは、mydns.jp を用いたダイナミックDNSを用いたサイト。このため、メールサーバを立ち上げても spam 送信元と誤認(なりすましと誤認)される可能性も高く、自宅サーバからのメールは、受け取り側で迷惑メールフォルダに落ちないか心配したり、すぐに相手に届くか不安であった。
ということで、DMARC の前に、DKIM にて信用してもらえるように設定を行う。DKIMは受信したメールが正しいメールサーバから送られ改ざんされていないか確認する方式。SPFは以前に導入済みだけど、正しいメールサーバから発信されたか確認する方式なので、DKIM ほどの信頼はない。
opendkim のインストール
Debian では、opendkim のパッケージが配布されているので必要なパッケージをインストールする。設定のために セレクタ名 を postfix としてプライベートキーを生成する。/etc/dkimkeys/postfix.txt には、DNS に登録する “IN TXT” の設定が生成される。
$ sudo aptitude install opendkim opendkim-tools $ cd /etc/dkimkeys $ sudo opendkim-genkey -D /etc/dkimkeys -b 1024 -d tsaitoh.net -s postfix $ sudo chown opendkim:opendkim /etc/dkimkeys/*
opendkim の設定として、上記処理で作られたプライベートキーを登録し、DKIM キーを付加する処理のためのサーバと接続するためのソケットを定義する。
((( 以下のファイルを編集 ))) $ sudo vi /etc/opendkim.conf Domain tsaitoh.net KeyFile /etc/dkimkeys/postfix.private Selector postfix Socket inet:8892@localhost
DKIM 電子署名を付加するための postifix の設定
postfix でメールを送信する時に opendkim に接続し DKIM の電子署名を付加するために、前述のソケットに対応する設定を以下の様に記載する。
((( /etc/postfix/main.cf ))) $ sudo vi /etc/postfix/main.cf smtpd_milters = inet:127.0.0.1:8892
DKIM のための DNS の設定
DNSに、公開鍵などの設定を行う。mydns.jp を使っているので、mydns.jp にログインし、DOMAIN INFO にて、以下の設定を加える。
_adsp._domainkey IN TXT dkim=unknown postfix._domainkey IN TXT v=DKIM1; h=sha256; k=rsa; p=XXX...XXX
DNS設定が正しく反映されているか確認。
$ nslookup -query=TXT _adsp._domainkey.tsaitoh.net 8.8.8.8 _adsp._domainkey.tsaitoh.net text = "dkim=unknown" $ nslookup -query=TXT postfix._domainkey.tsaitoh.net 8.8.8.8 postfix._domainkey.tsaitoh.net text = "v=DKIM1; h=sha256; k=rsa; p=XXX...XXX
サーバの再起動とDKIMの確認
$ sudo service opendkim start $ sudo service postfix restart
試しに Google のアカウントにメールを送ったら、メールヘッダに以下が表示されるようになった。SPF は、以前に設定済みなので、自宅サーバからのメールは、確実に相手に届くようになったと思われる。
ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tsaitoh.net .... spf=pass (google.com: domain of ....
ネットワークが繋がらない filter-aaaa-on-v4
最近、職場や自宅にて時々ネットワークが繋がらないときがある。
ネットワークの設定などは自前サーバを配置しているとはいえ、ちゃんと設定してあるはず。
繋がらないという状態でも、異なるサイトなら問題なくつながるので、プロバイダーや自宅ネットワークが落ちているということはない。でも、ふと IPv6 アドレスが問題になっているのかと反省。
自宅内は閉じているとはいえ、IPv6が使える状態。もしかして、上流接続はIPv4しか使えないけど、たまにIPv6アドレスを引いてしまうとかであろうか。
filter-aaaa-on-v4
そこで、色々調べ、IPv4 アドレスからの問い合わせは、IPv6 を使わせないための設定をしてみた。
((( /etc/bind/named.conf.options ))) options { : listen-on-v6 { any; } ; filter-aaaa-on-v4 yes ; }
動作確認
$ nslookup localhost Name: localhost Address: 127.0.0.1 $ nslookup localhost ::1 Name: localhost Address: 127.0.0.1 Name: localhost Address: ::1
気のせいかもしれないけど、職場の環境も filter-aaaa-on-v4 つけたけど、IPv4 fallback がなくなったのかな。応答が速くなったように感じる。
www.googleapis.comの名前引き
自宅では、予定を google-home で自動で喋らせたりするために、gcalcli などのコマンドを使っている。しかし、最近エラーで予定取得に失敗することが増えた。python 関係のライブラリの更新の不整合かと思っていたが、どうも www.googleapis.com の問題のよう。
gcalcli がエラーになったり、成功したりと再現性がないので、エラーメッセージで www.googleapis.com に接続できないっていうし、”nslookup www.googleapis.com” を実行すると、名前引きに失敗する。しかしながら、”nslookup www.googleapis.com 8.8.8.8″ なら成功する。何度か調べていると、通常の nslookup でも名前がひけたりする。意味不明。
bind の設定は….以前、セキュリティ対策で導入した、”OpenDNS (Cisco Umbrella)”を使うようになっている。これが原因か…。bindの設定を修正して、安定して gcalcli が動くようになったかな。
# Cisco Umbrella は、怪しいサイトの可能性の場合、名前引きを失敗させる Open な DNS
Google API を使った攻撃があるのか? OpenDNS にグレー判定されてんの?
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 の負荷も問題にならない状態なので、 (設定面倒だし)、そのままにしておこう。
mydns.jpさん落ちてる?
自宅サーバ(tsaitoh.net)に繋がらない。 自宅サーバは、トップ画面が自分専用のブックマーク状態なので、 つながらないと、何かと面倒。
自宅サーバが落ちたのかと心配したが、接続時に"Could not resolve hostname"と表示されるので、 tsaitoh.net のドメイン名が拾えていない。 となると、利用しているドメイン管理サービス"mydns.jp"が原因か? 試しに、"www.mydns.jp"に接続するが、予想通り繋がらない。 ということで、珍しくDNSトラブルで復旧待ち。
(追記) 14:30 無事復帰。

mydns.jpが落ちて分かったこと。
自宅は、実質固定アドレスなので mydns.jp が落ちてもIPアドレスさえ分かれば接続できる。 とはいっても google で小技が必要。 nagios3で監視してるから DNS が落ちた時にメールを出す際に、 メール文面にIPアドレスを付加すればいいんだけど、 現実は IP アドレス逆引きができず gmail 宛メールは 450 で保留されてしまう。 (mydns.jpの復旧と共に配送に成功していた…)
メールアドレス変更、あぶね
SPAMが多くて捨てアカウント状態になっている丹南CATVの メールアドレスに久々にアクセスしてみた。 タイトルに”[[spam]]”とついた迷惑メールフォルダ落ちが500通、 普通の受信トレイに300通ほど。 ゴミ掃除したら、10通ほどが真面目なメール。
といっても、カード会社、自宅サーバDNSのMyDNS、任天堂のメール。 さすがに前2つは、定期的なメールだったとはいえ、見落とすと やばいので早々に gmail 宛てに変更。 そういえば、自宅ドメイン管理の sakura.ne.jp への登録も、 忘れるとヤバイと確認したら、しっかり丹南のアドレス。 これまた、早々に変更。
これでほぼ、重要なサービスのメール移行未完了なのは無いはずなんだが….
丹南のWebページを消してもらう
以前から自宅で、サーバの実験として movabletype などを動かし、Blogなどは 家族それぞれで記事が書けるようにしている。 このため、丹南ケーブルテレビで契約した時に開設した、http://www.ttn.ne.jp/~t-saitoh/ の ページは、使うことがなくなり放置状態であった。 ページには dead link があったり、メールアドレスがHTML的に残っていたりと、 問題もあったので、Webページは1年ほど前に解約していた。
しかし、先日何気なくアクセスしたら、ページデータが残っていた。 1年ほど前の解約手続きでは ftp 接続が切られた&丹南のリンクを切っただけっぽい。 ということで、dead link などもあるし、データも含めて削除依頼となった。
でも、この辺の手続きをやろうと思っている理由は、 子どものページの一般公開の問題。プライバシー的にも個人名を消したりしているとはいえ、 危険性も指摘される。 昨日も、子どものページのヘッダ部分を修正し、noindex,nofollowなどを書き加え、 Google などのクローラから消されるように設定を追加した。 かといって、トップページからのリンクはまだ残っている。
バカ親的な視点や、子どもの親どうしのネタ、親戚との話のネタとしては、 まるっきり消すのはつまらない。このため、職場&丹南CATV&近隣のネットワーク以外からの アクセスでは、子どものページへのリンクを表示させないように設定を加えようと画策中。 PHPのREMOTE_HOSTと、Cookieなどのテクニックを交え、 知り合いには子どものページを見せるけど、他には見せないような手立てを考えたい。
Facebookで、友達限定のページを作り、その中にリンクを記載しておくのも手かな。
spam多いし丹南CATVメール転送を止める
先日、Yahooメールのgmail転送を止めたんだけど、 主要な家用メールはgmailに移行したし、丹南ケーブルのメール転送も、ついに 止めた。
単純に転送を止めてメールを読まないだけなんだけど、 HDD浪費も気の毒感もあって、メールアカウントの停止の方法を サポートに聞いてみた。
しかし、会員への連絡に使うし、他のサービスとの連携もあるので、 メールだけ止めるということはできないとの返事。 gmailでの削除方法を提案してくれたけど、Archiveに入れるだけで、 ゴミ箱などにも入れずに捨てることはできない。
会員への障害予定連絡などは、RSSフィードを読むようにしてみるか…
Spamドメイン登録者が山田太郎って
自宅に連続して届く競馬関連のSpamだけど、 フィルタで分別できるとはいえ、腹の立つ相手。 んで、ドメイン登録を調べてみたけど、以前ならそれなりに責任者っぽい名前が見つかったけど、 今回はドメイン登録者が「山田太郎」って…. しかも、2011/8/3に登録して、8/4には自宅にメールが届いてる。 ドメイン登録代行業者も、もう少し厳しいチェックをしてほしい。
メールの、From 以外にも、Reply-To: に書かれている、chance-pinch.net も、 ドメイン登録を調べたけど、これまた"Yamada Taroh"だった。

MyDNS.jp に移行
3domain.hk の停止予告に伴い、Dynamic DNS の管理を MyDNS.JP に移行した。
≪/..path../mydns-jp.sh≫ #!/bin/bash # "chmod 711 mydns.jp" にて、ひとまず見えないように... # MyDNS.JP にて発行された情報 USER=hogehoge PASS=fugafuga # アドレスの更新 if [ -x /usr/bin/wget ]; then /usr/bin/wget --no-proxy \ --http-user="$USER" --http-passwd="$PASS" \ -O /dev/null -q http://www.mydns.jp/login.html fi
- さくらインターネットに登録してある、tsaitoh.net の DNS サーバの設定を変更
- DNSサーバの稼働チェックの nagios の設定を変更
などの設定を加える。最後に、以下のコマンドで正しく引けていることを確認。
$ dig @dns1.ttn.ne.jp tsaitoh.net