ネットワークエンジニア系ブログ。エンターテイメント、おすすめ映画、本、キッズ系などお役立ち情報を紹介!

GOISBLOG

サーバー技術

unboundインストール手順を作成したのです。

投稿日:2014年5月11日 更新日:

DNSキャッシュサーバの機能を持たせるためにunboundをインストールしたのでメモっておきます。

はじめて触ったので、手探り感満載ですが。

unboundとはなんじゃい

  • キャッシュサーバとして機能します
    再帰問い合わせを行うDNSキャッシュサーバとして動作します。
    unboundはクライアントから再帰問い合わせの要求に応答し、対象のDNSコンテンツサーバに問い合わせを行い、受け取った返事をクライアントへ返信します。
  • DNSSECをサポートしています。
    キャッシュポイズニングにより、正規ではないサーバから偽装されたパケットを防ぐことができます。DNSSECでは電子署名を基にDNSキャッシュサーバが問い合わせで得た応答が正規に権威ネームサーバから得た応答か、偽装パケットかどうか、また問い合わせたレコードが存在するか検証することができます。

セキュリティ機能
セキュリティ機能は以下のようになっています。

  • デフォルトchrootで動作
  • デフォルトで一般ユーザー権限に落として動作
  • 再帰問い合わせをするユーザーに対してのアクセス制御機能

引用:Unbound,知ってる? この先10年を見据えたDNS

スポンサーリンク


管理用アカウント作成

事前にユーザーグループの作成をします。

#groupadd -g 9998 unbound

#useradd -u 9998 -g 9998 unbound

#cat /etc/passwd

#passwd unbound
 パスワード設定

opensslのインストール

今回はunboundをコンパイルしてインストールします。

ソフトウェアをコンパイル知る為にはopansslがインストールされている必要があるので、opensslがインストールされていない場合は事前に入れておきましょう。

# mkdir /usr/local/src
# cd /usr/local/src
# wget https://www.openssl.org/source/openssl-1.0.0d.tar.gz
# tar zxvf openssl-1.0.0d.tar.gz
# ./configure
# make
# make install

ldnsインストール

ldnsはDNSプログラミングを簡単にすることができます。
RFCをサポートしており、開発者が現在のRFCに沿ったソフトウェア開発が簡単にできます。

もう一つの利点は処理速度です。
ldnsはC言語で書かれているので、Perlよりも早く処理をすることができます。

  • 機能の一覧は以下となります
  • IP4とIP6サポート
  • TSIGサポート(電子署名)
  • DNSSECサポート; 署名と検証
  • ファイルサイズが小さい
  • マニュアルページとオンライン文書をサポート

引用:日本Unboundユーザー会

それではインストールを実施します。

参照ダウンロードサイト
NLnet Labs

# cd /usr/local/src/

# wget https://www.nlnetlabs.nl/downloads/ldns/ldns-1.6.17rc2.tar.gz
# tar zxvf ldns-1.6.17rc2.tar.gz
# cd ldns-1.6.17rc2
# ./configure
# make
# make install

drillのインストール

drillはDNS及びDNSSECからデバック情報を取得するツールです。

drillはldnsに付属されているのでそれをインストールします。

# cd /usr/local/src/ldns-1.6.17rc2/drill/
# ./configure
# make
# make install

unboundのインストール

バージョン1.4.7以降ではlibexpatがインストールされている必要があります。
なので事前にインストールしておきます。

# yum install expat-devel

unboundのインストール

unboundはchrootを設定するので./configureのパス指定に注意してください。

# mkdir /usr/local/src/unbound
# cd /usr/local/src/unbound
# wget https://unbound.nlnetlabs.nl/downloads/unbound-1.4.22rc1.tar.gz
# tar zxvf unbound-1.4.22rc1.tar.gz
# cd unbound-1.4.22rc1
# ./configure --sysconfdir=/var --with-conf-file=/var/unbound/unbound.conf
# make
# make install

ライブラリの登録

# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
# ldconfig -p | grep unbound    # ライブラリが認識されてるか確認
        libunbound.so.2 (libc6,x86-64) => /usr/local/lib/libunbound.so.2
        libunbound.so (libc6,x86-64) => /usr/local/lib/libunbound.so

起動スクリプトの設定

# cp /usr/local/src/unbound/unbound-1.4.22rc1/contrib/unbound.init /etc/init.d/unbound
# sed -i 's_/usr/sbin/unbound_/usr/local/sbin/unbound_' /etc/init.d/unbound
# chkconfig --add unbound
[root@d-oha-fwd011 unbound-1.4.22rc1]# chkconfig | grep unbound
unbound         0:off 1:off   2:off     3:off   4:off   5:off   6:off
# chkconfig unbound on
# chkconfig | grep unbound
unbound         0:off 1:off   2:on      3:on    4:on    5:on 6:off

設定ファイルのシンボリックリンクを作成

# ln -s /var/unbound/unbound.conf /etc/

権限をunboundに変更

# chown unbound:unbound /var/unbound/
# chmod 751 /etc/init.d/unbound

起動

# service unbound start
unbound を起動中:                                          [  OK  ]

設定が間違っていないかをチェック

# unbound-checkconf
unbound-checkconf: no errors in /var/unbound/unbound.conf

”no errors”が出れば大丈夫です。

動作確認の為、”resolv.conf”の編集

# vi /etc/resolv.conf
nameserver  127.0.0.1

zone転送するためにunbound.confを編集

クライアントのアクセスの許可と転送先の設定をします。
以下のようにfoward先のDNSを指定し、設定を入れるだけで大丈夫です。

# vi /etc/unbound.conf
     interface: 0.0.0.0
        access-control: 192.168.0.0/24 allow    #クライアントのアクセス許可

        forward-zone:
                name: "."
                forward-addr: 192.168.1.100     #転送先設定

unbound再起動

unbound.confを編集したらサービスを再起動を実施します。

[root@d-oha-fwd011 ~]# service unbound restart
unbound を停止中:                                          [  OK  ]
unbound を起動中:                                          [  OK  ]

”dig”では無くて”drill”で確認

# drill dns.test.co.jp
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 42886
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;; dns.qtnet.co.jp.   IN      A

;; ANSWER SECTION:
dns.qtnet.co.jp. 3    IN      A 192.168.0.1

;; AUTHORITY SECTION:
qtnet.co.jp. 3  IN    NS      dns.test.co.jp.
qtnet.co.jp. 3  IN    NS      ns1.test.jp.

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Fri May  2 18:16:39 2014
;; MSG SIZE  rcvd: 86

1秒間隔で確認

# watch -n 1 drill dns.test.co.jp

ここまで、確認ができればOKです。
お疲れ様でした。

その他の機能、コマンド、使い方はまた後日。

この記事が気に入ったら
いいね!しよう

Twitter で
スポンサーリンク

-サーバー技術
-,

Copyright© GOISBLOG , 2016 AllRights Reserved.