以下サイトでまとめられているが、1か月に1回は脆弱性情報が公開される印象がある。
・JPRS DNS関連技術情報
https://jprs.jp/tech/
というわけで、単純なDNSキャッシュサーバーであれば、そろそろBINDを使わなくてもよいのではないか?ということで、unboundというOSSを使ってみることにした。
unbound導入手順
今回はCentOS 7.3にunboundを導入する。1. yumでunboundをインストール
yumを使ってインストールする。# yum install unbound
------------------------------
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.nus.edu.sg
* extras: centos.usonyx.net
* updates: mirror.vastspace.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ unbound.x86_64 0:1.4.20-28.el7 を インストール
--> 依存性の処理をしています: unbound-libs(x86-64) = 1.4.20-28.el7 のパッケージ: unbound-1.4.20-28.el7.x86_64
--> 依存性の処理をしています: ldns >= 1.6.16-10 のパッケージ: unbound-1.4.20-28.el7.x86_64
--> 依存性の処理をしています: libunbound.so.2()(64bit) のパッケージ: unbound-1.4.20-28.el7.x86_64
--> 依存性の処理をしています: libldns.so.1()(64bit) のパッケージ: unbound-1.4.20-28.el7.x86_64
--> 依存性の処理をしています: libevent-2.0.so.5()(64bit) のパッケージ: unbound-1.4.20-28.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ ldns.x86_64 0:1.6.16-10.el7 を インストール
---> パッケージ libevent.x86_64 0:2.0.21-4.el7 を インストール
---> パッケージ unbound-libs.x86_64 0:1.4.20-28.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
unbound x86_64 1.4.20-28.el7 base 473 k
依存性関連でのインストールをします:
ldns x86_64 1.6.16-10.el7 base 476 k
libevent x86_64 2.0.21-4.el7 base 214 k
unbound-libs x86_64 1.4.20-28.el7 base 296 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 1.4 M
インストール容量: 4.4 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): ldns-1.6.16-10.el7.x86_64.rpm | 476 kB 00:00
(2/4): unbound-1.4.20-28.el7.x86_64.rpm | 473 kB 00:00
(3/4): unbound-libs-1.4.20-28.el7.x86_64.rpm | 296 kB 00:00
(4/4): libevent-2.0.21-4.el7.x86_64.rpm | 214 kB 00:00
--------------------------------------------------------------------------------
合計 1.4 MB/s | 1.4 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
~(中略)~
インストール:
unbound.x86_64 0:1.4.20-28.el7
依存性関連をインストールしました:
ldns.x86_64 0:1.6.16-10.el7 libevent.x86_64 0:2.0.21-4.el7
unbound-libs.x86_64 0:1.4.20-28.el7
完了しました!
------------------------------
yumが使えない場合は、rpmからインストールする必要があるが、依存するパッケージとインストール順序は以下の通りとなる。
------------------------------
1 -> libevent-2.0.21-4.el7.x86_64.rpm
2 -> ldns-1.6.16-10.el7.x86_64.rpm
3 -> unbound-libs-1.4.20-28.el7.x86_64.rpm
4 -> unbound-1.4.20-28.el7.x86_64.rpm
------------------------------
2. unbound設定
/etc/unbound/unbound.confを編集し、必要な設定を行う。デフォルトではすべてがコメントアウトされているので、必要な部分をアンコメントしたり、追記したりすればよい。以下に修正箇所を記載する。
------------------------------
server:
interface: 0.0.0.0 ←すべてのアドレスからの問い合わせに回答(IPv4)
interface: ::0 ←すべてのアドレスからの問い合わせに回答(IPv6)
access-control: 0.0.0.0/0 refuse ←デフォルト拒否(IPv4)
access-control: 127.0.0.0/8 allow ←ループバックアドレスを許可(IPv4)
access-control: 192.168.1.0/24 allow ←問い合わせを許可するネットワーク
access-control: ::0/0 refuse ←デフォルト拒否(IPv6)
access-control: ::1 allow ←ループバックアドレスを許可(IPv6)
access-control: ::ffff:127.0.0.1 allow ←ループバックアドレスを許可(IPv6)
forward-zone: ←アンコメントする
name: "." ←すべてのドメインに対してフォワード
forward-addr: 129.250.35.250 ←フォワード先DNS(今回はNTT America Technical Operations)
forward-addr: 8.8.8.8 ←フォワード先DNS(今回はGoogle Public DNS)
------------------------------
3. 設定ファイルのチェック
unboundには設定ファイルをチェックするコマンドが用意されている。これはサービス起動時に自動で実行されるが、手動でも実行可能。# unbound-checkconf
------------------------------
unbound-checkconf: no errors in /etc/unbound/unbound.conf
------------------------------
4. 設定ファイル再読み込みのため、unboundを再起動
最後に設定反映のためunboundを再起動する。# systemctl restart unbound
# systemctl status unbound
------------------------------
● unbound.service - Unbound recursive Domain Name Server
Loaded: loaded (/usr/lib/systemd/system/unbound.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2017-02-25 12:03:22 JST; 2s ago
Process: 28392 ExecStartPre=/usr/sbin/unbound-anchor -a /var/lib/unbound/root.key -c /etc/unbound/icannbundle.pem (code=exited, status=0/SUCCESS)
Process: 28391 ExecStartPre=/usr/sbin/unbound-checkconf (code=exited, status=0/SUCCESS)
Main PID: 28395 (unbound)
CGroup: /system.slice/unbound.service
mq28395 /usr/sbin/unbound -d
~(以下略)~
------------------------------
5. DNS名前解決先を自分自身にする
必須ではないが、最後にOS自身の名前解決も自分自身に変えておく。# vi /etc/resolv.conf
------------------------------
nameserver 127.0.0.1
------------------------------
以上でインストール作業は終了。私の環境ではインストールから半月ほど経過しているが、特に問題なく動作している。
0 件のコメント:
コメントを投稿