TOP > linux(fedora)tips > allow-queryのかしこい使い方
bind-usersネタですけど、自分も投稿者と同じような状況にあったのにスルーしてた部分で、うまいworkaroundが紹介されてたので書いときます。
bindの9.4.1-P1以降、デフォルトで再帰問い合わせとキャッシュ応答が拒否になり、バージョンアップのときにあたふたした記憶があります。
そんで、allow-recursionは前からあるけど、allow-query-cacheという便利なオプションができました。
allow-recursionで再帰問い合わせを受け付ける問い合わせ元の制限ができ、allow-query-cacheでキャッシュを持ってたら返答してあげる問い合わせ元の制限ができます。
ただ、allow-query-cacheはそれ以前のバージョンでは存在しないので、その場合はキャッシュの応答を防げません。
たとえば、再帰問い合わせを許可している内部のクライアントから自分のDNSサーバにyahoo.co.jpをqueryした場合、TTLの時間ぶんだけcacheが残ります。
その後cacheがexpireする前に外部から自分のDNSへyahoo.co.jpをqueryすると、自分のDNSサーバはcacheを持ってるので応答してしまうのです。
別に9.4.1-P1以上を使えば問題ないんですけど、RedHat5系(CentOS5系)はbindの9.3系なので、allow-query-cacheが使えません。
もともとこれどころか再帰問い合わせも制限してなかった時期があったくらいなので、キャッシュくらい返してあげても良さそうなもんですが、allow-queryをうまく使えば回避できました。
◯bind9.4.1-P1以上の場合
◯bind9.4.1-P1未満の場合
タブが消えるのがむかつくんですが、allow-queryをoptions(グローバル設定的なところ)で内部にだけ許可します。
でもそうすると、外部からは自分が保持しているゾーンですら返答しなくなります。
なので、自分が保持しているゾーンに対するqueryを明示的に許可します。
これで、必要な応答だけを返すようになります。
9.4.1-P1以上の場合は、わざわざこんなことしなくても、キャッシュと再帰問い合わせをグローバル設定で限定するだけで良いのです。
なんか馬鹿にされそうですが、うれしかったので書きました。
でも「DNS&BIND第4版」のP.387にも書いてありました。。
bindの9.4.1-P1以降、デフォルトで再帰問い合わせとキャッシュ応答が拒否になり、バージョンアップのときにあたふたした記憶があります。
そんで、allow-recursionは前からあるけど、allow-query-cacheという便利なオプションができました。
allow-recursionで再帰問い合わせを受け付ける問い合わせ元の制限ができ、allow-query-cacheでキャッシュを持ってたら返答してあげる問い合わせ元の制限ができます。
ただ、allow-query-cacheはそれ以前のバージョンでは存在しないので、その場合はキャッシュの応答を防げません。
たとえば、再帰問い合わせを許可している内部のクライアントから自分のDNSサーバにyahoo.co.jpをqueryした場合、TTLの時間ぶんだけcacheが残ります。
その後cacheがexpireする前に外部から自分のDNSへyahoo.co.jpをqueryすると、自分のDNSサーバはcacheを持ってるので応答してしまうのです。
別に9.4.1-P1以上を使えば問題ないんですけど、RedHat5系(CentOS5系)はbindの9.3系なので、allow-query-cacheが使えません。
もともとこれどころか再帰問い合わせも制限してなかった時期があったくらいなので、キャッシュくらい返してあげても良さそうなもんですが、allow-queryをうまく使えば回避できました。
◯bind9.4.1-P1以上の場合
acl TRUST {
192.168.10.0/24;
127.0.0.1;
};
options {
allow-recursion { TRUST; };
allow-query-cache { TRUST; };
};
◯bind9.4.1-P1未満の場合
acl TRUST {
192.168.10.0/24;
127.0.0.1;
};
options {
allow-query { TRUST; };
allow-recursion { TRUST; };
};
zone "isokiti.tv" {
type master;
file "master/isokiti.tv";
allow-query { any; };
};
タブが消えるのがむかつくんですが、allow-queryをoptions(グローバル設定的なところ)で内部にだけ許可します。
でもそうすると、外部からは自分が保持しているゾーンですら返答しなくなります。
なので、自分が保持しているゾーンに対するqueryを明示的に許可します。
これで、必要な応答だけを返すようになります。
9.4.1-P1以上の場合は、わざわざこんなことしなくても、キャッシュと再帰問い合わせをグローバル設定で限定するだけで良いのです。
なんか馬鹿にされそうですが、うれしかったので書きました。
でも「DNS&BIND第4版」のP.387にも書いてありました。。
2008,06,25 Wed 22:38
コメント
コメントする




