1. DNS/毒盛/キャッシュ上書き/glue変更
Contents
おそらくは2008年のKaminsky/民田の指摘あたりからだろうと思うが、 BINDはNSの指す名前のAレコードを変更するだけでは毒盛できなくなっていた。 (これはRFC2128の記述とは異なる) glueを優先しているということです。
NSの変更は受け入れるにも関わらず、Aレコードだけの変更は認めないのである。
今日改めて、named 9.12.3 で確認した。-- ToshinoriMaeno 2018-12-27 23:45:36
- namedは @127.0.0.1 をlisten している。
1.1. 確認手順
brau.jp ゾーンの NSの指すAレコードを変更してみる。
Contents
1.1.1. 登録を確認
#dig +norec -t ns brau.jp @a.dns.jp などで
brau.jp. 86400 IN NS a.ns.brau.jp. a.ns.brau.jp. 86400 IN A 14.192.44.29
1.1.2. 本来の設定
# .brau.jp::a:3600 +a.ns.brau.jp:14.192.44.29:3600 -a.ns.brau.jp:14.192.44.5:3600
1.1.3. brau.jp NS
$ dnsq ns brau.jp 14.192.44.29 2 brau.jp: 44 bytes, 1+1+0+0 records, response, authoritative, noerror query: 2 brau.jp answer: brau.jp 3600 NS a.ns.brau.jp
1.1.4. a.brau.jp 確認
$ dnsq a a.brau.jp 14.192.44.29 1 a.brau.jp: 78 bytes, 1+1+1+1 records, response, authoritative, noerror query: 1 a.brau.jp answer: a.brau.jp 300 A 127.0.0.1 authority: brau.jp 3600 NS a.ns.brau.jp additional: a.ns.brau.jp 3600 A 14.192.44.29
Auth/Addが返ってくることを確認しておく。
1.1.5. x.brau.jp query
キャッシュに問い合わせる。
$ dig +nocookie x.brau.jp @127.0.0.1 ; <<>> DiG 9.12.3 <<>> +nocookie x.brau.jp @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14219 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1220 ;; QUESTION SECTION: ;x.brau.jp. IN A ;; ANSWER SECTION: x.brau.jp. 300 IN A 127.0.0.3 ;; Query time: 10 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: 金 12月 28 08:36:09 JST 2018 ;; MSG SIZE rcvd: 54
- これは正しい返答だ。
1.1.6. ゾーンサーバー側の設定変更
a.ns.brau.jpのAを変更する。
# .brau.jp::a:3600 -a.ns.brau.jp:14.192.44.29:3600 +a.ns.brau.jp:14.192.44.5:3600 +x.brau.jp:127.0.0.3:300 +*.brau.jp:127.0.0.1:300 テストの都合で *.brau.jp A を設定してある。(ワイルドカード設定)
1.1.7. 毒が入るか
毒返答を返す。
$ dig +nocookie y.brau.jp @127.0.0.1 ; <<>> DiG 9.12.3 <<>> +nocookie y.brau.jp @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17904 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1220 ;; QUESTION SECTION: ;y.brau.jp. IN A ;; ANSWER SECTION: y.brau.jp. 300 IN A 127.0.0.1 ;; Query time: 11 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: 金 12月 28 08:40:54 JST 2018 ;; MSG SIZE rcvd: 54
1.1.8. 毒が入ったかの確認
入っていない。
$ dig +nocookie z.brau.jp @127.0.0.1 ; <<>> DiG 9.12.3 <<>> +nocookie z.brau.jp @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2083 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1220 ;; QUESTION SECTION: ;z.brau.jp. IN A ;; ANSWER SECTION: z.brau.jp. 300 IN A 127.0.0.1 ;; Query time: 12 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: 金 12月 28 08:42:25 JST 2018 ;; MSG SIZE rcvd: 54
1.1.9. 念の為
named のキャッシュを確かめてみる。 a.ns.brau.jpは書き換わっていない。
$ dig +norec a.ns.brau.jp @127.0.0.1 ; <<>> DiG 9.12.3 <<>> +norec a.ns.brau.jp @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59468 ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1220 ; COOKIE: 2c50db137934d99e395473195c2563be0941087bfbbf7d7b (good) ;; QUESTION SECTION: ;a.ns.brau.jp. IN A ;; AUTHORITY SECTION: brau.jp. 1743 IN NS a.ns.brau.jp. ;; ADDITIONAL SECTION: a.ns.brau.jp. 84543 IN A 14.192.44.29 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: 金 12月 28 08:43:58 JST 2018 ;; MSG SIZE rcvd: 106