職場で、外向きDNSの設定の確認が必要になり、 自宅サーバに login して、DNS の設定を確認するんだけど、 どうもおかしい。セキュリティ的に危ない問い合わせに 返答をしないはずなのに、返答が返ってくる。
DNS問い合わせが乗っ取られた???
おかしい状態がはっきりしたのは、以下のように、 DNSサーバに 1.1.1.1 なんてデタラメを指定したのに、 DNSからの返答が返ってくる。
$ nslookup www.google.com 1.1.1.1 $ dig @1.1.1.1 www.google.com
この時点では、クラッキングで dnsutils が書き換えられ ているかと思われ、ヤラレタ...と思っていた。 でも、
$ shasum `which nslookup` `which dig`
の結果を、職場のサーバと比較しても、同じ値であった。 でも自宅でなければ...と考えたら、プロバイダが DNS問い合わせポート番号 #53 のパケットを強制書き換え しているとしか思えなかった。
でも、言論統制のためにアホな国の DNS 乗っ取りが、 この日本で起こるわけでも無し...と再び悩む。
しかし、プロバイダよりも、我が家のルータはコンテンツ フィルタ機能のルータ WZR-1166DHP2 で、 指定した制限端末にはパケットフィルタ用のDNSを返す 技があることを思い出し、ファームのバグを再び疑う。
アダルトサイトだけ、DNS 情報が書き換えられる
すると、同僚より「アダルトだとなんか違う挙動を示すとか...」 との一言から、以下の実験を行った。
$ dig @1.1.1.1 アダルトサイトドメイン名
を実験すると、156.154.176.229 が返ってくる。 アダルトでググると出てくるドメイン名は、すべて同じ。 そのくせ、
$ dig @1.1.1.1 普通の真面目なドメイン名
だと、正しいIPアドレスが返ってくる。 ということで、コンテンツフィルタが原因であることが判明した。
以上のことから、自宅ルータのコンテンツフィルタ機能を 停止させたら、無事正しい挙動(1.1.1.1にDNS問い合わせしても つながらず返答無し)に戻った。
つまり、Connect Safe は、制限端末の接続時に、DHCP機能でフィルタリング用のDNSサーバを教える。そのDNSは、アダルトなサイトなら正しいIPアドレスを返さないことで、 接続を危ないサイトに近づけさせない。
これに加え制限端末以外でも、DNSのパケット(Port=53)で、アダルトサイトなら Connect Safe 専用のIPアドレスに誘導させる。 このアドレス上では、Reverse-proxy を動かし、アダルトサイトなどの情報を収集する... という方式と思われる。