from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

ipv6tokaiの勉強会に行ってみた

初参加です。

浸透いうなの人ってこの人だったんですね。

教授だったんだ。。。twitterのアイコンあれだけど普通にすごい人だった。

Impressions

くっそ難しかったので時間たってしまったけど復習。

何やったか?

スライドみながら先生が解説をしてくれた。軽く探してみたんですが出てこなかった。

フランスのTLDあたりにdigすると"ent was here!!"って出るんだけど ent was here is なに

というお話。難しかったが概要ぐらいは理解できた気がする。

さすがにこれを一発で理解できたらすごいレベルのスライドらしいので救われた。

次にあらかじめ用意していただいたVM上のDNSを動かして挙動を見ながら解説を聞いた。

面白かったが実際に試しながらやるのには自分の理解がなさ過ぎた。

bindすら使ったことないし、NSD is 何というレベルだから仕方ないね。freeBSDは使ったことありまぁす!

最後にこれのスライドを見た。

https://indico.dns-oarc.net/event/25/session/4/contribution/4/material/slides/0.pdf

このスライドは来週(つまり今週)ぐらいに発表された最新の内容らしい。afnicはフランス版jpnic

読もうとしたけどどうせどちゃくそdeepな内容で理解できなさそうだしフランス語っぽかったので諦めた。

ANSSI is何。ANSIのことっぽい?

とったアウトラインそれを見ながら学習

  • CTC(NW会社

ctc 中部テレコミュニケーション株式会社

  • co.jpにはゾーンがない

らしいよ。一つのDNSはn個のゾーン(e.g. example.co.jp以下、qawsedfyikolp.co.jp以下は持ってるけどhoge.co.jpは持ってない)を持てる。

あ、これですね。間違いない・・・↓

detail.chiebukuro.yahoo.co.jp

nslookupで対話的なのはset recurse、タイプ指定はset type=XX

root設定したらなんかバグった。

余談ですがdnsを8.8.8.8にするとやっぱispから配布されるpeerのDNS使うよりすこし動作が鈍る。

わりと体感できるノロさ。

  • RR,リソースレコード

dnsのaとかaaaaとかの属性一覧っぽい。

  • dnssecはanserを検証する仕組みであってausonaryセクションやXXXセクションは見ない

へえ。

属性ドメイン全部にtxtレコード追加したのはなぜ

dnssec自体のrfcじゃなかった

  • dnsopl ML

こ↑こ↓

日本DNSオペレーターズグループ

  • cojpはtxtレコードが入る前はレコードは何もない

  • dnsへの毒入れでDoS(正規のDSを引けない)ただし偽サイトに誘導はできない

dnssecを使った今回の悪用では、偽サイトに誘導はできないがdosはできる。(間違ってたら申し訳ない

でもjpドメインdosって割とヤヴァイ

  • empty nonterminal(今回の動作に重要)

  • NSEC3リソースレコード

  • NSECレコード(存在してないことの証明

DNS名の集合を正規順序づけする処理は、最上位(一番右の)ラベルに基づいて
   名前を順序づけることから始まる。最上位ラベルが同一である場合、次に上位の
   ラベルに基づいて順序づけを行い、以下同じ処理を繰り返す。

rfc 4034、「DNSSEC」より引用

https://jprs.jp/tech/material/rfc/RFC4034-ja.txt

NSECは存在しないことの証明。

上の仕様書読んでたらなんかdnskeyなる文字列が出てきた。dnskeyレコードはそのゾーンの公開鍵らしい。

あとDSレコードとかも出てきた。trust chain作るやつだな。詳しい動作は調べてもよくわからんかった・・・

DSレコード結構出てきたけどこれか・・・

a.example.jp IN NSEC b.example.jp

ゾーン列挙によるFQDNをすべて書き出し(

対策として NSECが返す値をハッシュ値にする

リソースレコード==RR

NSEC3レコードはリソースレコードレコード(TXT,A,AAAA)などもついでに返す

type bit map field

  • NSEC3はものすごい処理の負荷がかかる

らしいよ。正直DNSなんて小学生レベルのCPUパワーぐらいしかいらないと思ってた。

  • NSEC3レコード中にOpt-OUTフラグ

NSEC3ではDNSSECを適用してないとそのドメインをすっ飛ばす(Opt-Out

この間に名前はないよー>この間に署名されてる名前がないよ

委任先のドメイン名がDNSSECを導入してないとすっ飛ばす。

insecureなdeligateと呼ぶ

NDNS

  • open dnssec等のツールでopt-outをドメインごとに切り替えれる(dnssecがやってないけどNSEC3を返す、返さない)

aichi.jpはその下が全部insecure deligate

そうするとNSEC3でDNSSEC RRが返されない

  • のにLDNSの場合返される

そもそもLDNS is 何?

drillとかunboundで使われてるっぽい。


飽きた。

というか早くvirtualboxで実際に動かしたい。ということであとは解説せずにアウトラインだけ乗せておく。


LDNSはすべての場合においてdnssecを生成する

LDNSだと空の非終端を生成する

jpはenpty nonterminalにtxtを入れた

でもfranceはtxtレコードを入れた

ent was here とは何か

dns oprations MLというdns運用のML

frnicにdigしてみるとent was here!!!とか出てきた

"co.jp"

JPRS

ent was hireは何かerrを見つけたのでそれをnicが隠しているように思える

frc 5155のappendixA example zoneの解説

freebsd10 vimageではとっても不安定でした。

freebsd 11では安定してきた

jailにvimageを加えるとネットワークスタックも分離できる。仮想ネットワークスタックを作れる。

vitocha、rubyで仮想ネットワークを作る

jlsでjailのls

jexec

rootサーバーはホスト(jailの上のfreebsd)でNSDで動いている

jexec(じぇーえぐぜっく

digコマンドのbsd系としてdrillコマンドがある。

ldns-signzoneコマンド

ksk,zskって何かは省略

dnssec-signzoneコマンドもldns-signzoneと同じ

ldns-sign

closest closerにマッチするNSEC3

RRSIGレコードis何

ldns-nsec3-hash

-a 1はsha1 -sでソルト

証明ってなんだよ・・・数学かなにか?

NXドメインとno dataの違い

存在する名前をdigで引くとNOERRORステータスが返ってくる

存在しない名前を引くとMXDOMAINsutatusが返ってくる

存在する名前の存在しないRR(タイプ)で引くと

dig -t AAAA

status:no errorになる

nxドメインはその名前もないしその下のドメインも一つもない。

enply no terminalは no dataになる

2種類目

NSEC3で存在することがわかるがbitmap fealdは空なのでemptyだということがわかる

referrol(委任) この移譲(委譲に対する署名)が署名されていないことの証明

authoryty sectionは委任の応答

closest encloserとnext closerの2つがかえってくる

drillは-Dでdnssecを確認してくれるしdrillのほうがわかりやすい

nsd-control reload

drill

dnssec-signzoneでdnssecで署名すると署名セクションが2つしか返ってこなくなる。(dnssec-signzoneが生成されない)

ngコマンド

dns-signzoneには穴がある

2年前に気づいたのにjprsが進言したのにまだ対応されてない

17日

google public dns serviceがこれでおかしくなる

bindとNSD

最近はgoogleがhttpで転送するサービスを始めた

実際にjailの中で動かしてみる。

これがやりたかっただけだろシリーズ。

jail系コマンド

  • jail

chroot強化互換。jailは触ったことあった。

  • jls

jailをリストする

生きているjailと死んだjailがある。

まず最初にjlsしてみる。何もjailを作ってないので何もない。

んでjail作るrbスクリプト実行すると10個ぐらいできてその中にjexecして入るとその中でもfreebsdが動いているのでjlsすると何もない。

  • jexec

jreを実行する奴

ん?まてよ・・・

execのman見てみたら

execute command in existing jailsとか書いてあった。

jexec hostnameでjailに入れる。

次はNSDで遊んでみる

NSD

dnsサーバー

bindと同じ系統の権威サーバー。ちなみにキャッシュサーバーとしての実装はunboundが有名。

nsd-control-XXXXというコマンドが多い。

だいたいnsd-control XXXXXのサブコマンド形式でコントロールする。

nsd-control-setupとかnsd-control-timezoneぐらいしかnsd-control-XXXX系コマンドはない。

やっぱ権威DNSの実装だけあって設定多いな。DNSは幅広くて難しい。

というかNSDの正式名称ってname server daemonなのか

nscd

name server cache daemon。nsdcじゃないぞ!

nsdcもnscdもどっちも存在する。

solaris-user.com

なんか自分の環境だとnsdcは存在しなかった。たぶんだけどnsdcとnsd-controlはどっちかがどっちかの進化形なんだと思う。

あ り ま し た(経血ゼリー)

ldns – 日本Unboundユーザー会

NSD3系はnsdcでコントロールしてNSD4系はnsd-controlでコントロールする、と。

つまり今時分が触ってるのはNSD4

nsd単体とnsd-control startはおなじっぽい。

あとnsd-control stopでとめたりreloadできる。

nsd.conf

見てみた。nsdのconfファイル。

ゾーン情報はzoneディレクティブをnsd.confの中に書いて丸投げしてるな?

そっちのほうが面白そうだし見に行く。

ゾーンファイル

cronみたいな感じでRRを定義してた。これなら割と楽にいじれそう。

感想

nsdを一通りいじれるようになったし、jail系コマンドとかも知ることができたので良かった。

DNS、ムズイ。