Linux/Source/Knot
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
ns-lab
nowsky system-lab
DigiLoog
Linux
Windows
開始行:
*Knot DNS [#x03b5c41]
チェコで開発している権威DNSサーバ用アプリケーション。
KルートDNSで利用されておりチューニング次第でNSD相当の応答...
Knotの特長として、DNSSECのKSK/ZSKロールオーバーを自動化す...
~
*参考サイト [#p413258d]
-[[Knot DNS:+https://www.knot-dns.cz/]]
-[[Knot Documentation:+https://www.knot-dns.cz/documentat...
-[[IIJ Engineers Blog:+https://eng-blog.iij.ad.jp/archive...
~
*構築環境 [#dafbb252]
OSはCentOSを利用。今回はバックエンドでDNSゾーンへのDNSSEC...
KSKロールオーバー・ZSKロールオーバー専用機として構築する。
OS標準パッケージで対応していない機能があるのでソースビル...
- 共通環境
OS : CentOS 8.2.2004 x86_64
NSD : Knot v3.0.0
user : knot
group : knot
data : /var/knot/data
listen: 127.0.0.1
port : 20053
~
*インストール [#k792398c]
-&size(16){&font(b){1. インストール};};
KnotではGeoIPなど便利な機能が存在するが、
今回はDNSSEC専用のバックエンドとして構築するので不要な機...
# dnf install gnutls-devel userspace-rcu-devel lmdb-deve...
# ./configure --prefix=/usr/local/knot-3.0.0 --disable-d...
--with-module-dnsproxy=no --with-module-geoip=no --w...
--with-module-whoami=no --with-module-synthrecord=no
# make
# make install
# cp -a knot-3.0.0/distro/common/knot.tmpfiles /usr/lib/...
# cp -a knot-3.0.0/distro/common/knot.service /usr/lib/s...
# vi /usr/lib/systemd/system/knot.service
---
[Unit]
Description=Knot DNS server
Wants=network-online.target
After=network-online.target
Documentation=man:knotd(8) man:knot.conf(5) man:knotc(8)
[Service]
Type=notify
PrivateTmp=false
User=knot
Group=knot
EnvironmentFile=-/etc/sysconfig/knot
ExecStartPre=/usr/local/knot/sbin/knotc -c /etc/knot.con...
ExecStart=/usr/local/knot/sbin/knotd -c /etc/knot.conf $...
ExecReload=/usr/local/knot/sbin/knotc -c /etc/knot.conf ...
ExecStop=/usr/local/knot/sbin/knotc -c /etc/knot.conf stop
Restart=on-abort
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
~
-&size(16){&font(b){2. ディレクトリ作成};};
自動署名を行う都合上、パーミッションを緩くしたディレクト...
ディレクトリを汚さない様にする為、chrootのディレクトリを...
# mkdir /var/knot/data
# mkdir /var/knot/data/var/log
# mkdir /var/knot/data/run/knot
# mkdir /var/knot/data/lib/knot
# mkdir /var/knot/data/lib/knot/signed
# ln -s /usr/local/knot-3.0.0 /usr/local/knot
# ln -s /usr/local/knot/etc/knot/knot.conf /etc/knot.conf
# ln -s /var/knot/data/var/log /var/log/knot
# mv /usr/local/knot/etc/knot/knot.sample.conf /usr/loca...
# groupadd knot
# useradd -g knot -d /var/knot -s /sbin/nologin knot
# chown -R knot.knot /var/knot/data/var/log
# chown -R knot.knot /var/knot/data/run/knot
# chown -R knot.knot /var/knot/data/lib/knot
# chown -R knot.knot /var/knot/data/lib/knot/signed
# vi /etc/logrotate.d/knot
---
/var/log/knot/*.log {
create 0644 knot knot
missingok
sharedscripts
postrotate
systemctl reload knot > /dev/null 2>/dev/null ||...
endscript
}
~
-&size(16){&font(b){3. 設定ファイル};};
コンフィグの元ネタは、&font(b){[[IIJ Engineers Blog:+http...
DNSゾーン編集用のローカルDNSサーバ(127.0.0.1:10053)からDN...
KnotでDNSSEC署名を施した物を、フロントエンドのDNSサーバ(1...
また、サブミッション設定を行い上位の権威DSNにDSレコードが...
サブミッション確認用キャッシュDNSはプロバイダの物などを設...
#region(&color(#ff0000){サンプル};)
## Knot DNS Config
##
server:
version: "unknown"
rundir: "/var/knot/data/run/knot"
user: knot:knot
listen: 127.0.0.1@20053
database:
storage: "/var/knot/data/lib/knot"
log:
- target: "/var/knot/data/var/log/knot.log"
any: info
remote:
- id: backend
address: 127.0.0.1@10053
- id: frontend
address: 127.0.0.1@53
- id: resolv
address: [ 8.8.8.8, 8.8.4.4 ]
acl:
- id: acl_backend
address: 127.0.0.1
action: notify
- id: acl_frontend
address: 127.0.0.1
action: transfer
submission:
- id: sub_resolv
parent: resolv
policy:
- id: nsec3
algorithm: ecdsap256sha256
nsec3: on
ksk-submission: sub_resolv
template:
- id: default
master: backend
notify: frontend
storage: "/var/knot/data/lib/knot/signed"
acl: [ acl_backend, acl_frontend ]
dnssec-signing: on
dnssec-policy: nsec3
zone:
- domain: example.com
file: "example.com.zone"
#endregion
~
*DNSSEC署名 [#oe95ebd1]
DNSSEC鍵が無くなると、&color(#ff0000){一度DNSSECを解除し...
この事態を避ける為に"storage"で指定したディレクトリを定期...
Knotを起動すると『notice: [example.com.] DNSSEC, KSK subm...
コレが表示された後に"keymgr"コマンドを打つ事で、上位権威D...
# /usr/local/knot/sbin/keymgr -c /etc/knot.conf example....
---
example.com. DS 28302 13 2 XXXXX
example.com. DS 28302 13 4 XXXXX
keymgrで確認したDSレコードを、&color(#ff0000){VALUE-DOMAI...
DSレコード登録方法はレジストラによって変わるので、ドキュ...
VALUE-DOMAINを使っている場合、DSレコード登録に対応してい...
ネームサーバ設定欄に次の様なDNSSEC署名鍵設定が表示される...
&ref(dnssec-vd.png,left,nowrap,50%);
サブミッション設定をしている場合、定期的にDSレコードを確...
手動でDNSSEC署名を開始する場合、DSレコードが上位権威DNSに...
次のコマンドを打ち込むと署名を開始出来る。
# /usr/local/knot/sbin/knotc -c /etc/knot.conf zone-ksk-...
終了行:
*Knot DNS [#x03b5c41]
チェコで開発している権威DNSサーバ用アプリケーション。
KルートDNSで利用されておりチューニング次第でNSD相当の応答...
Knotの特長として、DNSSECのKSK/ZSKロールオーバーを自動化す...
~
*参考サイト [#p413258d]
-[[Knot DNS:+https://www.knot-dns.cz/]]
-[[Knot Documentation:+https://www.knot-dns.cz/documentat...
-[[IIJ Engineers Blog:+https://eng-blog.iij.ad.jp/archive...
~
*構築環境 [#dafbb252]
OSはCentOSを利用。今回はバックエンドでDNSゾーンへのDNSSEC...
KSKロールオーバー・ZSKロールオーバー専用機として構築する。
OS標準パッケージで対応していない機能があるのでソースビル...
- 共通環境
OS : CentOS 8.2.2004 x86_64
NSD : Knot v3.0.0
user : knot
group : knot
data : /var/knot/data
listen: 127.0.0.1
port : 20053
~
*インストール [#k792398c]
-&size(16){&font(b){1. インストール};};
KnotではGeoIPなど便利な機能が存在するが、
今回はDNSSEC専用のバックエンドとして構築するので不要な機...
# dnf install gnutls-devel userspace-rcu-devel lmdb-deve...
# ./configure --prefix=/usr/local/knot-3.0.0 --disable-d...
--with-module-dnsproxy=no --with-module-geoip=no --w...
--with-module-whoami=no --with-module-synthrecord=no
# make
# make install
# cp -a knot-3.0.0/distro/common/knot.tmpfiles /usr/lib/...
# cp -a knot-3.0.0/distro/common/knot.service /usr/lib/s...
# vi /usr/lib/systemd/system/knot.service
---
[Unit]
Description=Knot DNS server
Wants=network-online.target
After=network-online.target
Documentation=man:knotd(8) man:knot.conf(5) man:knotc(8)
[Service]
Type=notify
PrivateTmp=false
User=knot
Group=knot
EnvironmentFile=-/etc/sysconfig/knot
ExecStartPre=/usr/local/knot/sbin/knotc -c /etc/knot.con...
ExecStart=/usr/local/knot/sbin/knotd -c /etc/knot.conf $...
ExecReload=/usr/local/knot/sbin/knotc -c /etc/knot.conf ...
ExecStop=/usr/local/knot/sbin/knotc -c /etc/knot.conf stop
Restart=on-abort
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
~
-&size(16){&font(b){2. ディレクトリ作成};};
自動署名を行う都合上、パーミッションを緩くしたディレクト...
ディレクトリを汚さない様にする為、chrootのディレクトリを...
# mkdir /var/knot/data
# mkdir /var/knot/data/var/log
# mkdir /var/knot/data/run/knot
# mkdir /var/knot/data/lib/knot
# mkdir /var/knot/data/lib/knot/signed
# ln -s /usr/local/knot-3.0.0 /usr/local/knot
# ln -s /usr/local/knot/etc/knot/knot.conf /etc/knot.conf
# ln -s /var/knot/data/var/log /var/log/knot
# mv /usr/local/knot/etc/knot/knot.sample.conf /usr/loca...
# groupadd knot
# useradd -g knot -d /var/knot -s /sbin/nologin knot
# chown -R knot.knot /var/knot/data/var/log
# chown -R knot.knot /var/knot/data/run/knot
# chown -R knot.knot /var/knot/data/lib/knot
# chown -R knot.knot /var/knot/data/lib/knot/signed
# vi /etc/logrotate.d/knot
---
/var/log/knot/*.log {
create 0644 knot knot
missingok
sharedscripts
postrotate
systemctl reload knot > /dev/null 2>/dev/null ||...
endscript
}
~
-&size(16){&font(b){3. 設定ファイル};};
コンフィグの元ネタは、&font(b){[[IIJ Engineers Blog:+http...
DNSゾーン編集用のローカルDNSサーバ(127.0.0.1:10053)からDN...
KnotでDNSSEC署名を施した物を、フロントエンドのDNSサーバ(1...
また、サブミッション設定を行い上位の権威DSNにDSレコードが...
サブミッション確認用キャッシュDNSはプロバイダの物などを設...
#region(&color(#ff0000){サンプル};)
## Knot DNS Config
##
server:
version: "unknown"
rundir: "/var/knot/data/run/knot"
user: knot:knot
listen: 127.0.0.1@20053
database:
storage: "/var/knot/data/lib/knot"
log:
- target: "/var/knot/data/var/log/knot.log"
any: info
remote:
- id: backend
address: 127.0.0.1@10053
- id: frontend
address: 127.0.0.1@53
- id: resolv
address: [ 8.8.8.8, 8.8.4.4 ]
acl:
- id: acl_backend
address: 127.0.0.1
action: notify
- id: acl_frontend
address: 127.0.0.1
action: transfer
submission:
- id: sub_resolv
parent: resolv
policy:
- id: nsec3
algorithm: ecdsap256sha256
nsec3: on
ksk-submission: sub_resolv
template:
- id: default
master: backend
notify: frontend
storage: "/var/knot/data/lib/knot/signed"
acl: [ acl_backend, acl_frontend ]
dnssec-signing: on
dnssec-policy: nsec3
zone:
- domain: example.com
file: "example.com.zone"
#endregion
~
*DNSSEC署名 [#oe95ebd1]
DNSSEC鍵が無くなると、&color(#ff0000){一度DNSSECを解除し...
この事態を避ける為に"storage"で指定したディレクトリを定期...
Knotを起動すると『notice: [example.com.] DNSSEC, KSK subm...
コレが表示された後に"keymgr"コマンドを打つ事で、上位権威D...
# /usr/local/knot/sbin/keymgr -c /etc/knot.conf example....
---
example.com. DS 28302 13 2 XXXXX
example.com. DS 28302 13 4 XXXXX
keymgrで確認したDSレコードを、&color(#ff0000){VALUE-DOMAI...
DSレコード登録方法はレジストラによって変わるので、ドキュ...
VALUE-DOMAINを使っている場合、DSレコード登録に対応してい...
ネームサーバ設定欄に次の様なDNSSEC署名鍵設定が表示される...
&ref(dnssec-vd.png,left,nowrap,50%);
サブミッション設定をしている場合、定期的にDSレコードを確...
手動でDNSSEC署名を開始する場合、DSレコードが上位権威DNSに...
次のコマンドを打ち込むと署名を開始出来る。
# /usr/local/knot/sbin/knotc -c /etc/knot.conf zone-ksk-...
ページ名: