レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

DNS(BIND)をインストールする

2010年7月17日 2014年1月20日
dns bind

今回は、DNS(BIND)です。DNS自体は、ドメイン管理元で、ほとんど提供されていますから、あえて自前で設置する意味はあまりないかもしれません。
ただ、自宅サーバーと考えたときに複数IPで展開されていたり、WEB,MAILなどそれぞれのサーバーが別ホスト(PC)になっているなど本格的な構成ならば、必要でしょう。

ここでは、一応、最低限の設定を行うだけにとどめておきます。
知識が不足した状態でのDNSの公開は、セキュリティ面から、非常に危険です。DNS,Sendmailについては、知識を増やしてから公開できればより良いですね。

では、早速、インストールしてみましょう。

BIND 9.xの脆弱性が最近でも報告されており、DNSは狙われやすいので公開する場合は、十分に注意の上、公開するようにしましょう。
また、DNSサーバーは、一般的なサイト運営であれば ドメインレジストラのDNSでも十分な場合が多いので、本当に必要かを十分検討の上、 本当に必要な方以外は、インストールしないことをおすすめします。

BINDをインストール

DNS(BIND)をインストールを行う際に、同時に以下の3つをインストールする必要があります。

  • bind: DNSの本体
  • bind-chroot: DNSのchroot機能

    chroot機能は、DNS(BIND)が動作するとき、指定したサブディレクトリを、ルート・ディレクトリ(/)として扱い、 新しいルートに対して相対的に実行する機能のことで、要は、BINDから見えるディレクトリ範囲を限定することで、 仮にBINDが悪さをしてもシステム全体に影響を及ぼさないためのセキュリティ機能です。

  • caching-nameserver: DNSのキャッシュ機能

    文字通りDNS(BIND)をキャッシングネームサーバとして機能させるためのパッケージです。

先の3つのインストールは、至って簡単です。

以下では、
bind , bind-chroot , caching-nameserverをまとめてインストールしています。

$ yum -y install bind bind-chroot caching-nameserver

簡単ですね。続けてDNSの設定を行ってみましょう。


BINDを設定

DNS(BIND)の設定を行います。

設定するファイルの種類には、大きく2つあります。

  • 初期設定ファイル:
    DNS(BIND)の動作・振舞いを指定したものです。
  • ゾーン(データ)ファイル:
    DNS(BIND)の管理するゾーン(ドメイン名、IPアドレス)を指定したものです。

初期設定ファイルの設定

  1. /var/named/chroot/etc/named.conf : DNSの基本初期設定ファイル
    $ cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf

    named.caching-nameserver.confをコピーして使います。
    bind-chrootをインストールしているので、/var/named/chroot/が、デフォルトのBINDのルートディレクトリになります。

    次に、named.confを編集します。

    $ vi /var/named/chroot/etc/named.conf
    ...
    
    options {
            ### listenポート指定をコメントアウトします。
            #listen-on port 53 { 127.0.0.1; };
            #listen-on-v6 port 53 { ::1; };
            ### BINDのバージョンを非表示にします。
            version "unknown";
    
            directory       "/var/named";
            dump-file       "/var/named/data/cache_dump.db";
            statistics-file "/var/named/data/named_stats.txt";
            memstatistics-file "/var/named/data/named_mem_stats.txt";
    
            // Those options should be used carefully because they disable port
            // randomization
            query-source    port 53;
            query-source-v6 port 53;
            
            ### queryの許可をlocalhostとlocalnets(LAN)に限定します。
            allow-query     { localhost; localnets; };
            
            ### query-cacheの許可をlocalhostとlocalnets(LAN)に限定します。
            allow-query-cache { localhost; localnets; };
            
            ### ゾーン転送不可に設定します。
            ### ゾーン転送は、セカンダリDNSを設置する際に使います。
            allow-transfer { none; };
            
            ### 問い合わせの転送先を指定します。
            forwarders{
                    192.168.1.1;  # ルーターIPアドレス
                    8.8.8.8;      # Google Public DNS IPアドレス#1
                    8.8.4.4;      # Google Public DNS IPアドレス#2
                    xxx.xxx.xxx.xxx; # IPSのDNS IPアドレス#1
                    xxx.xxx.xxx.xxx; # IPSのDNS IPアドレス#2
            };
    
    };
    
    ### ロギングの指定です。デフォルトのままで良いはずです。
    ### ここでは何も変更しません。
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    ### localhostのゾーン解決設定です。
    view localhost_resolver {
            match-clients      { localhost; };
            match-destinations { localhost; };
            recursion yes;
            include "/etc/named.rfc1912.zones";
            
            ### このホストで管理するドメインの内向きゾーン設定ファイルを指定します。
            include "/etc/named.example.com.zone";
    };
    
    ### 内向きのゾーン解決設定です。
    view "internal" {
            match-clients { localnets; };
            match-destinations { localnets; };
            recursion yes;
            include "/etc/named.rfc1912.zones";
    
            ### このホストで管理するドメインの内向きゾーン設定ファイルを指定します。
            include "/etc/named.example.com.zone";
    };
    
    ### 外向きのゾーン解決設定です。
    view "external" {
            match-clients { any; };
            match-destinations { any; };
            recursion no;
    
            ### このホストで管理するドメインの外向きゾーン設定ファイルを指定します。
            include "/etc/named.example.com.zone.wan";
    };
    viewタグの各パラメータについて簡単に解説しておきます。

    match-clients : ゾーンを参照できるクライアントを指定します。

    match-destinations : 返信可能なアドレスを指定します。

    recursion : 全検索を指定します。yesと指定されていれば、自DNSのキャッシュにも回答がなければ、forwardersへ問い合わせに行きます。
    noと指定されていれば、自DNSのキャッシュまで検索し、あとは、次に探すべきDNSのサーバーを教えて終了します。

  2. /var/named/chroot/etc/named.exmaple.com.zone : DNSの内向きexmaple.comゾーン初期設定ファイル

    ここでは、独自ドメインをexmaple.comとしています。慣習としてnamed.ドメイン名.zoneとすることが多いようです。 最後の拡張子に.lanなどを加えることもありますが、ここでは、先の名前で説明します。

    内向きは、LAN側という意味です。

    $ vi /var/named/chroot/etc/named.exmaple.com.zone
    
    
    # 正引きの設定
    zone "exmaple.com" {
            type master;
            file "exmaple.com.db";
    };
    # 逆引きの設定
    zone "1.168.192.in-addr.arpa" {
            type master;
            file "1.168.192.in-addr.arpa.db";
    };
    ここの逆引きは、LANのIPアドレスによって名前も変更すべきです。 ここでは、LANのネットワークアドレスを192.168.1として設定しています。

  3. /var/named/chroot/etc/named.exmaple.com.zone.wan : DNSの外向きexmaple.comゾーン初期設定ファイル

    ここでは、独自ドメインをexmaple.comとしています。先の内向きを区別するために最後の拡張子.wanを付けています。

    外向きは、WAN側という意味です。

    $ vi /var/named/chroot/etc/named.exmaple.com.zone.wan
    
    
    # 正引きの設定
    zone "exmaple.com" {
            type master;
            file "exmaple.com.db.wan";
            allow-query { any; };
    };
    # 逆引きの設定
    zone "xxx.xxx.xxx.in-addr.arpa" {
            type master;
            file "xxx.xxx.xxx.in-addr.arpa.db.wan";
            allow-query { any; };
    };
    WAN側の逆引きは、注意が必要です。
    まず、固定IPを持っておられない場合は、逆引きはすべきではありません。そのIPアドレスが、自分のものでないので、ここで設置して勝手に逆引きできるようにすべきではありません。
    また、固定IP1個お持ちの方は、ほとんどの場合、設置しても意味がないと思います。それは、固定IPを提供したプロバイダーが(逆引きの)権限委譲をしないからです。
    もし、提供したプロバイダーが(逆引きの)権限委譲が可能なら、設置する意味はあります。必ず、提供したプロバイダーへ問い合わせしてみましょう。

    そのため、一般的に逆引きは、ここで説明していないことが多いです。

    また、ここでallow-queryを指定していることに注意してください。
    設定するということは、デフォルトの設定(named.confの設定)とは異なる設定をした場合、ここでの設定が優先されます。

    ここの設定で出てきたfileは、以降で説明するゾーン(データ)ファイルになります。

ゾーン(データ)ファイルの設定

  1. exmaple.com.db : exmaple.comドメインの内向きゾーンファイル
    $ vi /var/named/chroot/var/named/exmaple.com.db
    ...
    
    
    $TTL    86400
    @       IN      SOA     exmaple.com.  root.exmaple.com.(
                                          2010062201 ; Serial
                                          28800      ; Refresh
                                          14400      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
            IN NS    exmaple.com.
            IN MX 10 exmaple.com.
    @       IN A     192.168.1.10
    *       IN A     192.168.1.10

    ここでは、
    IPアドレス : 192.168.1.10
    とし、exmaple.comドメインのいかなるサブドメインもすべて192.168.1.10として設定しています。


  2. 1.168.192.in-addr.arpa.db : 192.168.1ネットワークの逆引きファイル
    $ vi /var/named/chroot/var/named/1.168.192.in-addr.arpa.db
    ...
    
    $TTL    86400
    @       IN      SOA     exmaple.com.  root.exmaple.com.(
                                          2010062201 ; Serial
                                          28800      ; Refresh
                                          14400      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
                  IN      NS    exmaple.com.
    10            IN      PTR   exmaple.com.

    ここでは、
    exmaple.com
    IPアドレス : 192.168.1.10と設定しています。


  3. exmaple.com.db.wan : exmaple.comドメインの外向きゾーンファイル
    $ vi /var/named/chroot/var/named/exmaple.com.db.wan
    ...
    
    $TTL    86400
    @       IN      SOA     ns1.exmaple.com.  root.exmaple.com.(
                                          2010062201 ; Serial
                                          7200       ; Refresh
                                          7200       ; Retry
                                          2419200    ; Expire
                                          86400 )    ; Minimum
        IN NS    ns1.exmaple.com.
        IN MX 10 exmaple.com.
    ns1 IN A     xxx.xxx.xxx.xxx
    @   IN A     xxx.xxx.xxx.xxx
    www IN A     xxx.xxx.xxx.xxx

    ここでは、
    固定IPアドレス : xxx.xxx.xxx.xxx
    とし、exmaple.comドメインとwwwサブドメインをxxx.xxx.xxx.xxxとして設定しています。
    また、NSも指定していますからネームサーバーもxxx.xxx.xxx.xxxとして設定しています。


  4. xxx.xxx.xxx.in-addr.arpa.db.wan : xxx.xxx.xxxネットワークの逆引きファイル
    $ vi /var/named/chroot/var/named/xxx.xxx.xxx.in-addr.arpa.db.wan
    ...
    
    $TTL    86400
    @       IN      SOA     exmaple.com.  root.exmaple.com.(
                                          2004031901 ; Serial
                                          28800      ; Refresh
                                          14400      ; Retry
                                          3600000    ; Expire
                                          86400 )    ; Minimum
                  IN      NS    exmaple.com.
    XXX           IN      PTR   exmaple.com.
    固定IPが1つの場合は、xxx.xxx.xxx.xxx.in-addr.arpa.db.wanのようにネットワークアドレスも4桁で指定してあげます。 先に設定しているnamed.exmaple.com.zone.wanも、それに合わせて変更しなければなりません。

BINDを起動

ここまで設定ができたら、BINDを起動します。

$ /etc/rc.d/init.d/named start
namedを起動中:                                             [  OK  ]

もし、なんらの設定に不備があれば、ここでエラーが表示されます。 一つ一つエラーを潰していきましょう。

最後に、再起動でも起動するように設定して終わりです。

$ chkconfig named on
$ chkconfig --list named
named           0:off   1:off   2:on    3:on    4:on    5:on    6:off

ランレベル2~5のonを確認して完了です。

格安レンタルサーバーでは、DNSを提供している場合があります。
その際の設定には、上記の設定例は参考になると思います。 結局、上記で設定するような内容をWEB画面で設定するだけですからね。

また、DNSという名前でなく、マルチドメインの設定やサブドメインの設定として提供されているかもしれません。 設定することは、上記の内容から漏れることはないので、ここの設定の理解ができていると格安レンタルサーバーでの設定は、すぐに理解できると思いますよ。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

CentOS(Scientific Linux)で ネットワーク(IPアドレス、ホスト名、ドメイン名など)の設定を行う

CentOS7 編は、 CentOS 7 で ネットワーク(IPアドレス、ホスト名、ドメイン名など)の設定を行う を参照してください。 ...

maildropを使ってメール受信時に携帯へのお知らせメールを自動送信してみる

以下の記事では、maildropのインストールおよび簡単な使い方について解説してきました。 procmailの代わりに(rpmを作 ...

nginx でリバースプロキシ、FastCGIキャッシュのキャッシュを削除する方法をまとめて解説してみた

nginx でリバースプロキシのキャッシュを削除する方法は、一応、色々な方法があります。 Nginx をリバースプロキシ(キャッシュ) ...

Squidをリバースプロキシとして使ってみた

このサイトでは、リバースプロキシに関して、Nginxを使って実現する Nginx をリバースプロキシ(キャッシュ) として使ってみた という記事 ...

sendmail で smf-spf を使ってSPF認証する

以前の記事 評判のさくらのVPSでSMTP(Sendmail)を公開する時にやっておきたいこと では、SPFの送信側の対処について記述しました。 ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2180 [s]