最新 追記

おこたの国


2008-07-06

_ [Futbol] 勝ってしまった

突然夏になってしまった。涼しいまま秋が来るかと期待したのに。甘すぎたか。

知らん間にもう 7月である。結局 6月は何も書かなかった。理由はひとつ。UEFA EURO 2008 のため。

これまでさんざん期待しては裏切られ、というのを繰り返してきたもんだから、今回はちょっと違う向き合い方をしてみた。期待してるフリをしない。要は願掛けみたいなものである。いいかげん「応援してるのをおおっぴらに吹聴して回るのがあかんのではないか」と思ったのだ。で、今回は本当に大人しくしてた。内心はグループリーグの一戦目から舞い上がりっぱなしだったのだが、外向きには「ゆーろ? なにそれ」みたいなフリを…

いやいや、そんなのが関係あるわけない。強かったよ。こーいう試合が見たかったんだという試合運びをして勝ち上がってってくれた。それがとてもうれしいやね。しかも、チャビが最優秀選手ときた。言う事無しですがね。でも、一番の感想としては、「うわ、本当に優勝しちゃったよ」だったりする。感情を抑えるクセができてたせいか、今でも「しまった」感が漂ってる。

まぁ、組み合わせに恵まれたってのはあるかと思う。イニエスタも調子を落としてた。オランダとの対戦が見れんかったも残念か。でも、もう、いい。勝てたんだから。

_ [tDiary] ツッコミありなしフィード

なぜか 20040822 へのコメントスパムが去年から大人気。フィルタをかいくぐってくるのを見つけるたび、手で消してたりする。今日、久々にやってきたので、200408.tdc を編集し、200408.parser を削除する、なんてことをした。しかし、URL なしの「bookmark you thx」ってなスパムは、なんの意味があるんだろう。もしかして単なる嫌がらせか?

さて、コメント自体は削除できるんだけど、RSS に記録された方は消すことができない。makerss.cache を編集できればいいんだけど、Ruby 力が圧倒的に不足してるので手がでない。そこで、コメント無しフィード機能を使う事にした。

tdiary.conf に、

@options['makerss.url'] = 'comments.rdf'
@options['makerss.suffix'] = '(with comments)'
@options['makerss.no_comments.file'] = 'index.rdf'
@options['makerss.no_comments.suffix'] = ''

を追加し、設定画面から「ツッコミ抜きのフィードを配信する」に変更。

これで、index.rdf にはツッコミは入らなくなった。って、上の EURO 2008 話は、その効果を見るためにむりくり書いたエントリだったり。


2008-07-26 DNS cache poisoning rhapsody

_ [COMP] loopback の dnscache を他マシンに見せる

うちでは未だに DJB の tinydns を使ってて、DNS再帰サーバーは各マシンの loopback で動かしてる dnscache なので、今回の騒ぎは他人事だと思ってた。 が、よくよく考えると、プライベートな LAN にいる連中のことを失念してた。

  • Mac mini では、Mac OS X に付随の BIND 9.4.1-P1 を使ってる。
  • ThinkPad 群は、プロバイダの再帰サーバーを rtx1000 経由で使ってる。

相変わらず Apple は、この手の対応はまったくもって遅い。まぁ、ユーザーランドが FreeBSD ベースだからって、付随の BIND を使ってるヤツがいるなんて思ってもいなさそうだ。

YAMAHA も問題か。説明文書も一週遅かったし、なんにせよ未だに source port をランダム化するファームすら出てきていない。

さてどうするか。

個々のマシンに最新の BIND を入れる?

再帰サーバーは共有したりせず、各ホスト専用のを各ホストの loopback で個別に動かすのがスジだと思ってるんで、この方法が一番適切に思える。が、運用が面倒になるのが難点。WindowsUpdate やソフトウェアアップデートといった方法で更新できないのって、クライアントマシン用施策としては失格なんじゃないかと。

話は逸れるが、ISC って、BIND の Windows バイナリ配ってるのね。知らなかった。これ入れると dig とかも使えるのかしら。Windows って nslookup しかないんで不便なんだよな。

dhcp で再帰サーバーのアドレスを通知できないのは不便

プライベートな LAN にいる連中は dhcp のクライアントだ。各マシンに BIND 入れてそこを見に行かせるようにすると、ノートPCを持ち出した時にあれこれ困りそうだ。さらによくよく考えると、うちには PlayStation 3 があるんだった。こいつが名前引きできなくなると、まいにちいっしょが見れなくなるじゃないか。

DMZ にいるマシンの dnscache をプライベートLANから使う

DJB の tinydns は、外部インターフェイスで権威サーバーを動かし、内部インターフェイス(lo0)で再帰サーバーを動かすという実にシンプルな構成になっている。BIND みたく、両方一緒になっててクエリの種類で VIEW を分けて挙動を変えるなんてことはしていない。だからこそ安全なんだが、だからこそ、今回の場合は頭を抱えることになった。

外部インターフェイスに alias 付け、その alias 上で、もひとつ dnscache を動かすって方法もあるんだが、それはそれで面倒だ。ということで、pf においで願った。要は、プライベートLANからのクエリであれば、loopback へリダイレクトしてしまえ、という方法である。

DMZ にあるマシンの dnscache

プライベートLANからのクエリも受け付けるように変更する。server/ip に、プライベートLAN のネットワークを付けたファイルを追加。

# touch ${DNSCACHE}/server/ip/[プライベートLANネットアドレス]
rtx1000

再帰サーバーの機能を止め、プロバイダからの通知にある再帰サーバーの取り入れを止め、DMZにあるマシンのアドレスを再帰サーバーとして直接指定。dhcp でも、自身のアドレスを通知させないように。

dns service off
no dns server pp
dns server [DMZ にあるマシンのアドレス]
dns notice order dhcp server
dns notice order msext server

さらに今回、プライベートLAN に居ながら、手動でアドレスを割り当てていた Mac mini も、dhcp を利用するように変更してるんだけど、ここには書かない。

pf.conf

これが今回のキモ。キモなのに 2行しかない。

table <nats> { プライベートLANネットアドレス }
rdr on $ext_if inet proto { udp, tcp } from <nats> to any port domain -> 127.0.0.1 port domain

dhcp 配下の各マシンをあれこれ操作したり、tinydns と dnscache のログをしばらく眺めてて、想定していた結果になっていることを確認。rtx1000 のファームが更新されるまではこれでいきませう。

今後

DMZ にあるマシンの再帰サーバーのキャッシュが、Windows や Mac(or PS3)が呼び込んだ「なにか」によって汚染される可能性があるのが今イチ。やはり、BIND を各マシンに入れ込むかなぁ。ISC の配布している BIND は試してみたいし。んで、PS3 だけはプロバイダの再帰サーバー使えばいいやな。rtx1000 経由で使うなら、フィルタをも少し検討しないとな。プロバイダの再帰サーバー以外からのレスポンスは受付けないようにするとか。

_ [COMP] dnscache returns

やはり、もひとつ dnscache を動かしてしまった。ただし、外部インターフェイスではなく loopback に alias を付け、pf でリダイレクトする。

# dnscache-conf Gdnscache Gdnslog ${DNSCACHE_EXT} 127.0.0.2
# touch ${DNSCACHE_EXT}/servers/ip/[プライベートLANネットアドレス]
# echo 'ifconfig_lo0_alias0="inet 127.0.0.2 netmask 0xffffffff"' >> /etc/rc.conf
# ifconfig lo0 inet 127.0.0.2 netmask 0xffffffff alias

pf.conf も変更。

rdr on $ext_if inet proto { udp, tcp } from <nats> to any port domain -> 127.0.0.2 port domain

ちょっとすっきり。

$ dig +short -t txt porttest.dns-oarc.net @127.0.0.2
 z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"[kamui] is GOOD: 26 queries in 3.0 seconds from 26 ports with std dev 17069.11"
$ netstat -f inet -a | grep domain
tcp4       0      0  localhost.domain       *.*                    LISTEN
tcp4       0      0  127.0.0.2.domain       *.*                    LISTEN
tcp4       0      0  kamui.domain           *.*                    LISTEN
udp4       0      0  localhost.domain       *.*
udp4       0      0  127.0.0.2.domain       *.*
udp4       0      0  kamui.domain           *.*

あたりまえだけど、127.0.0.2 って名前が付いてないんだなぁ。

追記

localhost と loopback, lo0 の表記が入れ乱れてたので統一してみた。ついでに、title を差し替え。


2002|10|
2003|10|12|
2004|01|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|05|07|08|09|10|11|12|
2009|02|06|08|09|
2010|02|08|
2011|08|
2012|07|
2013|01|06|09|10|
2019|07|10|
2020|07|