• ベストアンサー

外部DNSのnamed.confの設定について

bind9にて外部DNSを作ろうとしたのですが 以下の点がクリアできなくて困っております。 ご教授頂ければと思います。 acl kyokaに書かれているIP以外を許可したいのですが iPの前に!をつける方法で問題ないでしょうか? また別の方法があるのでしょうか? acl kyoka { !192.168.0.0/16; !127.0.0.1; }; options { allow-recursion { any; }; allow-query { kyoka; }; recursion no; zone "hoge.jp" IN { type master; file "hoge.jp"; allow-query { kyoka; };

質問者が選んだベストアンサー

  • ベストアンサー
  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

aclで"!"を使ったことがないのでなんともいえないところがありますが、以下のようにしてみたらどうなりますか? ----- acl kyoka { !192.168.0.0/16; !127.0.0.1; any; }; ----- また、以下の設定は相互に矛盾しているのでどちらかに統一したほうが良いかと。 ----- options { allow-recursion { any; }; recursion no; ----- なお、内部からのDNS queryと外部からのDNS queryを分けて処理したいのであれば、"view" を使って設定する、という手もあります。

yann_1981
質問者

お礼

最後にanyを付けたところ、問題なく動作いたしました。 ご指摘ありがとうございます。 外部DNSサーバと内部DNSサーバは分けるようにしましたので 外部は外部からの問い合わせのみで使用しようと思っております。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

lib/dns/acl.c を確認した限りでは、 acl は上から順に参照していき、 !がないエントリ:その時点でチェックを打ち切り許可する。 !があるエントリ:その時点でチェックを打ち切り拒否する。 エントリの最後に到達:拒否する。 という動作を行っているように見えます。 なので、No.1の方が回答されているように、 any をつけてあげる必要があると思います。 acl kyoka { !192.168.0.0/16; !127.0.0.1; any; <== ★ }; 他にも、view が上から acl をチェックすることを利用して、 192.168.0.0/16、127.0.0.1のみ参照できるview internal を 定義し、中身はすべてのアクセスを拒否でゾーンは hint (/dev/null) の みとし、view external で外向けの設定をする方法もあると思います。 ただし、同一サーバに内向け DNS を構成しないのであれば、 わざわざ内部からのアクセスを拒否する必要性はないと思うのですが、 いかがでしょうか?

yann_1981
質問者

お礼

anyをつけると解決しました。 ありがとうございます。 よく考えてみれば、たしかに内向けは構成しないので 必要なかったかもしれません)汗 何はともあれご指導ありがとうございました。

関連するQ&A

  • DNSサーバ構築に当たって

    質問したい事は、いわゆる、外向けコンテンツDNSサーバ構築するに当たって allow-query  allow-recursion の再帰問い合わせ制限をかけると、 クライアントPCから当該DNSサーバ指定してのインターネット接続や ping www.yahoo.co.jpで応答が返ってきません。 普通にインターネット接続させて、なおかつ allow-query  allow-recursion の再帰問い合わせ制限を行いたい場合 どうすればよろしいのでしょうか。 resolv.confによそのDNSサーバIPアドレスを仕込まないといけないのでしょうか? そもそも、自DNSサーバがあるのに、普通にインターネット接続させるためだけに よそのDNSサーバを resolv.confに指定させる事は当然なのでしょうか? bind9.3*系でのnamed.conf設定で以下のようにしています。 options { allow-query { TRUST; }; allow-recursion { TRUST; }; view "lan" { match-clients { TRUST; }; view "wan" { match-clients { any; }; recursion no zone "example.jp" { type master; file "example.jp"; allow-query { any; }; }; 以上、宜しくお願い致します。

  • Fedora 20のBIND設定について

    BINDを設定してDNSサーバーを構築したいと思っているのですが、 設定方法が今一つはっきりしなく成功していません。 私のサーバー名 www.abc.com    IPアドレス  192.168.0.3    ルーターIPアドレス 192.168.0.1    ダイナミックDNSを利用しています。 問題点は  DNSサーバーを構築する場合   1. ルーターのポートフォワーディング設定は必要ですか。      192.168.0.3       UDP      ポート番号53―53      優先度7     と設定するが、ポートの開放されていない。      あるところでは      BIND設定        options { #listen-on port 53 { ・・・・ }; に#をつけている。   2. BINDインストール後でダイナミックDNSを使う場合に      view "external" { ・・・・・ } を設定できるのでしょうか。      あるところでは       view "external" { match-clients { any; }; allow-query { any; }; recursion no; zone "server.world" IN { type master; file "server.world.wan"; allow-update { none; }; }; zone "80.0.16.172.in-addr.arpa" IN { type master; file "80.0.16.172.db"; allow-update { none; }; }; };   のように書かれているのですが、ダイナミックDNSを使うとグローバルIPアドレス  は変化してしまうので80.0.16.172.dbのような書き方ができないのではと思っているのですが  考え方が間違っているのでしょうか。

  • DNSについて (外部からアクセスできません)

    DNSの質問 現状の内容が以下です グローバルIP : 取得済み(***.***.186.28) ドメイン   : 取得済み(aa.net) ルータIP : 192.168.0.1(メーカ:OMRON) Webサーバ名 : gn(ホスト名) サーバIP : 192.168.0.116 OS : RedHat ENTERPRISE LINUX 5 BNID : BIND 9.3.3rc2 Apache : 2.2.3 Webサーバ名 : dy(ホスト名) サーバIP : 192.168.0.120 OS : RedHat BNID : 無し Apache : 2.2.3 ドメイン指定完成後予定図 http://aa.net -> gn(192.168.0.116) http://aa.netはDNSサーバを導入する前にもアクセス可能 http://dns.aa.net -> gn(192.168.0.120) http://test.aa.net -> gn(192.168.0.120) gnをDNSサーバになっています。LAN内でhttp://dns.aa.netとhttp://test.aa.netアクセス可能。外部からhttp://dns.aa.netとhttp://test.aa.netのアクセスが出来ません。 DNSサーバのポート53番を開いてる。ルータのファイアーウォールに192.168.0.116のtcpとudp追加しました。 DNSサーバ構築の初心者です、設定に関して色々間違えてるところがあると思います、アドバイス頂ければ幸いです。 どうぞ宜しくお願い致します 構成ファイルが以下になります。 named.conf ******************************************************************************* // Red Hat BIND Configuration Tool // // Default initial "Caching Only" name server configuration // options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ //query-source address * port 53; allow-query{ any; }; allow-transfer{ any; }; forwarders { 203.138.71.154; 210.150.255.66; }; version "8.0"; }; controls { inet 127.0.0.1 allow {localhost;} keys { rndckey; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/rndc.key"; view "internal" { match-clients { localhost; localnets; }; recursion yes; zone "aa.net" { type master; file "aa.net.lan"; allow-update { none; }; }; zone "0.168.192.in-addr.arpa" { type master; file "0.168.192.in-addr.arpa.db"; allow-update { none; }; }; }; view "external" { match-clients { any; }; recursion no; zone "aa.net" { type master; file "aa.net.wan"; allow-update { none; }; }; zone "186.***.***.in-addr.arpa" { type master; file "186.***.***.in-addr.arpa.db"; allow-update { none; }; }; }; *******************************************************************************

  • 再帰的クエリについて

    VineLinux6.2(kernel-3.4.87-2vl6)でネームサーバを立ち上げています。 Vertion bind-9.6 プライマリとセカンダリを公開していますが、急に自分のドメインが解決しなくなりました。 [root@ns ~]# nslookup hoge.hoge ;; Got recursion not available from プライマリネームサーバIPアドレス, trying next server ;; Got recursion not available from セカンダリネームサーバIPアドレス, trying next server Server: プロバイダネームサーバIPアドレス Address: プロバイダネームサーバIPアドレス#53 Non-authoritative answer: Name: hoge.hoge Address: プライマリネームサーバIPアドレス, ここで、named.confのoptionsにあるrecursionを no から yes に変更すると、何事も無くプライマリネームサーバが応答します。 しかしこれでは再再帰的クエリーを許可する為、あまり好ましくありません。 そこで、 acl my-network { 自分のネットワーク; }; recursion no; allow-recursion { my-network; }; としてみたのですが、効果はありませんでした。 nslookup hogehoge 127.0.0.1 も同じ結果でした。 どこをどう触れば自分のネットワークが許可できるのかわかりません。 すみませんが、ご存知の方、よろしくお願いいたします。 ---- named.conf acl and options ----- acl my-network { 192.168.99.0/24; 127.0.0.1/32; }; options { recursion yes; <-- no ではDNSの回答を得られません。 allow-recursion { my-network; }; directory "/var/ns"; listen-on port 53 { 127.0.0.1/32; 192.168.99.0/24; }; allow-query { my-network; }; allow-transfer { none; }; forwarders { プロバイダDNS; }; empty-zones-enable no; listen-on-v6 {none; }; recursive-clients 40; };  

  • DNS

    CentOS4.3で、bind9.24で構築していますが、固定IPと独自ドメインの関連付けがうまくいかず、 dig @192.168.1.100 www.yahoo.co.jp これは、グローバルアドレスで引けますが、dig @192.168.1.100 www.example.net 自身のグローバルアドレスが引けません。プライベートアドレスだけ引けます。nslookupでも同様です。named.confの内容は、 acl localnet{ 192と127 }; options { allow-query{ localnet; };  allow-recursion{ localnet; };  allow-transfer{ localnet; };  }; view "internal" { match-clients { localnet; }; zone "." IN { type hint; file "named.ca"; }; 省略 zone "example.net" IN { type master; file "example.net.internal.zone"; allow-update { none; }; }; zone "1.168.192.in-addr,arpa" IN { type master; file "1.168.192.internal.rev"; allow-update { none; }; }; }; view "external" { match-clients { any; }; zone "example.net" IN { type master; file "example.net.external.zone"; allow-query { any; };  }; }; $TTL 86400 @ IN SOA ns.example.net.web.example.net. ( 省略     IN NS ns.example.net IN MX 10 example.net @ IN A XXX.XXX.XXX.XXX ←xはグローバルIP  www IN A XXX.XXX.XXX.XXX   ftp IN A XXX.XXX.XXX.XXX  mail IN A XXX.XXX.XXX.XXX 内部DNSは省略しましたが、ほぼ同様です。 東芝ノートPC SatellateA11 Cerelon2.4G メモリ512MB ポートは、53番のみ開いています。ルーターは、NTTのSV3です。理解できるお方が折られましたらご教授願います。

  • DNS(BIND)の設定について

    教えてください。 named.confの設定と思いますが、 allow-queryやallow-recursion又、recursion yesもしくはnoなどの設定が あります。 これらはどのような設定をする為のものか、教えていただけないでしょうか。 どのような違いがあるのでしょうか? それぞれ設定する上で関係することがあるのでしょうか? DNSサーバを設置している環境や用途は以下の通りです。 プライマリのDNSサーバを社内に立てます。 セカンダリサーバはプロバイダ側で用意します。 サーバを公開するのと、会社内のPCがインターネットへ出れるようにしたいです。(プロキシ経由) とりあえずallow-recursionだけ社内のPCが存在しているローカルセグメントを 書いて設定しました。 allow-queryやrecursionの設定はどのようにすればいいのでしょうか? すみません。よろしくお願いします。

  • named.confの設定

    今日まで正常に動いていたサーバが、バーチャルホスト2つ目の追加をしてからnamed.confが正常に起動してくれません。 以下の状況です。 ************************************************************* /etc/rc.d/init.d/named restart named を停止中: [ OK ] named を起動中: named 設定でエラー: : /etc/named.conf:50: unknown option 'view' /etc/named.conf:59: unknown option 'view' /etc/named.conf:65: '}' expected near end of file ************************************************************* と50行、59行、65行に間違いがあると云われますが、色々、試みましたがダメでした(**) 下記にnamed.confの一部を記載します。どうかご指摘、ご教授下さい。 ******************************************************************* view localhost_resolver { match-clients { localhost; }; match-destinations { localhost; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.sample_A.com.zone"; include "/etc/named.sample_B.net.zone"; include "/etc/named.sample_C.com.zone"; }; view "internal" {                  #ここが50行目です match-clients { localnets; }; match-destinations { localnets; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.sample_A.com.zone"; include "/etc/named.sample_B.net.zone"; include "/etc/named.sample_C.com.zone"; }; view "external" {                  #ここが59行目です match-clients { any; }; match-destinations { any; }; recursion no; include "/etc/named.sample_A.com.zone.wan"; }; ********************************************************************* 簡単な仕様ですが、 OS:centos5 BIND:9.3.4 固定IP:1つ 宜しくお願いします。

  • BIND 9での内部のみのDNSで、ホスト名が引けません

    BIND9での開発をしなければいけない状況で、現在WindowsServer2003にてDNSをBIND9で立ち上げようとして、タイトルのように完全修飾ドメイン名(ホスト名.ドメイン名)ではnslookup host digコマンドなどでの結果が得られるのですがホスト名では結果を得ることができません。(タイムアウトエラーが出てしまいます。) 逆引きでも問題なく参照することができ、問題はホスト名のみなのですが・・・ インターネットで検索など試してみたのですがそれらしき答えを得ることができなかったので質問させて頂きます。 --------named.conf----------- options { directory "C:\WINDOWS\system32\dns\etc"; allow-query { 127.0.0.1; 192.168.100.0/24; }; allow-recursion{ 192.168.100.0/24; }; pid-file "named.pid"; recursion yes; }; zone "." IN{ type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "hoge.local" IN { type master; file "hoge.zone"; }; zone "100.168.192.in-addr.arpa" IN { type master; file "100.168.192.in-addr.arpa"; }; -----------正引きゾーン内容--------------- $TTL 86400 ; 1 day @ IN 86400 SOA DNS.hoge.local. mail.hoge.local. ( 2001060134 ; serial 10800 ; refresh (3 hours) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ); ; IN NS DNS.hoge.local. IN MX 10 buf1.hoge.local. ; DNS IN A 192.168.100.11 buf1 IN A 192.168.100.10 buf2 IN A 192.168.100.12 buf3 IN A 192.168.100.15 www IN CNAME DNS.hoge.local. ftp IN CNAME DNS.hoge.local. mail IN CNAME buf1.hoge.local. 後、補足でもう一つ疑問なのですが、ipconfig/flushdnsを行った際に、関数内でエラーが出て処理を完了できません。といった内容のようなものが出てキャッシュを削除することができません。 自分でも調べてみますが、どうかご教授願います。 宜しくお願いします。

  • BINDのバージョンによって設定違いについて

    以下の設定をBIND9.3.0とBIND8.2.4に設定しました。 BIND9.3.0には、zone "." の設定は必要ないのですが BIND8.2.4には、zone "." の記述がないと正常に動作しません。 (BIND8.1.2では、記述がなくても動作したような記憶がありますが・・) BINDによって記述が必要でしょうか? また、BINDのバージョンによっての記述の違いがわかるホームページ等 ございましたら教えて下さい。 options { directory /var/named; pid-file "/var/run/named/named.pid"; auth-nxdomain yes; version allow-transfer { any; }; allow-query { any; }; allow-recursion { any; }; forward only; forwarders { 192.168.***.***; }; // query-source port 53; }; zone "." in { type hint; file "named.root"; };  ・  ・  ・  ・  ・

  • IPアドレスが一つの時のnamed.confの設定

    Bindの参考書を見ると、named.confにおける逆引きの ゾーンファイルの設定が zone "0.168.192.in-addr.arpa" IN { type master; file "0.168.192.in-addr.arpa.db"; }; 等となっていますが、私の場合サーバのIPアドレスが一つ(DNS,WWW,MAIL全て共通)しかありません。その場合、上記ゾーンファイルの設定は zone "1.0.168.192.in-addr.arpa" IN { type master; file "1.0.168.192.in-addr.arpa.db"; }; のようにするべきでしょうか?違うところは、 0.168.192 を 1.0.168.192 としただけです。 よろしくお願いします