Created
January 1, 2024 12:55
-
-
Save t-shiro/5d25c1da1f6a00bd4bbc276f81a8ce4b to your computer and use it in GitHub Desktop.
how-to-config-ad-blocking-dns-in-ds216j
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Synologyの古いNASでDNSサーバでad-block用 | |
## TL;DR | |
Synologyの古いNAS上で、Synologyが提供するDNS Serverパッケージのファイルを編集して広告ドメインをnull zoneに落とすAd-block DNS Serverを作ります。 | |
過去の情報と比較して、最新のDSM7.2系ではファイルパスが異なるため、その対応を行います。 | |
## System information | |
- NAS: Synology DS216j | |
- DSM: DSM 7.2.1-69057 Update 3 | |
- DNS Server: 2.2.2-23120 | |
## 事前設定 | |
- SSHログインの有効化 | |
- 端末とSNMP - 端末 以下で「SSHサービスを有効化する。」にチェックして適用 | |
- ユーザーホームサービスの有効化 | |
- コントロールパネル - ユーザーとグループ - 詳細 - ユーザーホームサービス 以下で「ユーザーホームサービスを有効化する」にチェックして適用 | |
- DNS Serverパッケージのインストール | |
- パッケージセンターにてDNSで検索 | |
- 開発元がSynology Inc. のDNS Serverをインストール | |
## DNSサーバの設定 | |
### ひな形となる設定の投入 | |
過去の手順を踏襲し、 null.zone.file という名前のドメインを作成します。 | |
- DNS Serverパッケージを開く | |
- 左から「ゾーン」カラムを開き、作成 - プライマリ ゾーン の順にクリックして新規作成 | |
- ドメイン タイプ: 正引きゾーン | |
- ドメイン名: null.zone.file | |
- プライマリDNSサーバ: Synology NASのアドレス | |
- シリアル番号のフォーマット: 日付(YYYYMMDD) | |
- その他はデフォルトのままで保存 | |
### Zone masterファイルの編集 | |
- NASにsshでログイン | |
- sudo su - にてrootユーザーに切り替え | |
- zone fileの編集 | |
- /var/packages/DNSServer/target/named/etc/zone/master/ 以下の null.zone.file を以下の様に編集 | |
``` | |
$TTL 86400 ; one day'; | |
@ IN SOA ns.null.zone.file. mail.null.zone.file. ( | |
2024010100 | |
86400 | |
7200 | |
864000 | |
86400 | |
) | |
IN NS ns.null.zone.file.; | |
IN A 0.0.0.0; | |
* IN A 0.0.0.0; | |
``` | |
### Zone dataファイルの編集 | |
- ブロックしたいドメインの一覧を ad-block.dbとして保存 | |
- PCで作成してホームディレクトリ ( /var/services/${username} ) にscp | |
- /var/packages/DNSServer/target/named/etc/zone/data 以下にコピー | |
- パーミッションを644に設定 | |
- ad-block.db をincludeするよう設定 | |
``` | |
# DBファイルの例 | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# ls -lah | |
total 16K | |
drwxr-xr-x 2 DNSServer DNSServer 4.0K Jan 1 21:12 . | |
drwxr-xr-x 5 DNSServer DNSServer 4.0K Jan 1 20:45 .. | |
-rw-r--r-- 1 DNSServer DNSServer 143 Jan 1 21:12 ad-blocker.db | |
-rw-r--r-- 1 DNSServer DNSServer 263 Jan 1 21:09 null.zone.file | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# cat ad-blocker.db | |
zone "www.amazon.co.jp.infotoop.shop" { type master; notify no; file "/var/packages/DNSServer/target/named/etc/zone/master/null.zone.file"; }; | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# | |
# include設定 | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# cat null.zone.file | |
zone "null.zone.file" { | |
type master; | |
file "/var/packages/DNSServer/target/named/etc/zone/master/null.zone.file"; | |
allow-transfer {none;}; | |
allow-update {none;}; | |
allow-query {any;}; | |
}; | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# echo 'include "/var/packages/DNSServer/target/named/etc/zone/data/ad-blocker.db";' >> null.zone.file | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# cat null.zone.file | |
zone "null.zone.file" { | |
type master; | |
file "/var/packages/DNSServer/target/named/etc/zone/master/null.zone.file"; | |
allow-transfer {none;}; | |
allow-update {none;}; | |
allow-query {any;}; | |
}; | |
include "/var/packages/DNSServer/target/named/etc/zone/data/ad-blocker.db"; | |
root@okinawa-nas:/var/packages/DNSServer/target/named/etc/zone/data# | |
``` | |
### 設定反映と動作確認 | |
パッケージマネージャから手動でDNS Serverを停止 → 起動 | |
``` | |
[ romanov@michael ] $ dig @192.168.200.210 www.amazon.co.jp.infotoop.shop | |
; <<>> DiG 9.10.6 <<>> @192.168.200.210 www.amazon.co.jp.infotoop.shop | |
; (1 server found) | |
;; global options: +cmd | |
;; Got answer: | |
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27682 | |
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 | |
;; OPT PSEUDOSECTION: | |
; EDNS: version: 0, flags:; udp: 1232 | |
;; QUESTION SECTION: | |
;www.amazon.co.jp.infotoop.shop. IN A | |
;; ANSWER SECTION: | |
www.amazon.co.jp.infotoop.shop. 86400 IN A 0.0.0.0 | |
;; Query time: 5 msec | |
;; SERVER: 192.168.200.210#53(192.168.200.210) | |
;; WHEN: Mon Jan 01 21:53:08 JST 2024 | |
;; MSG SIZE rcvd: 75 | |
[ romanov@michael ] $ | |
``` | |
### 備考 | |
DS216Jでは5万レコード程度でDNSサーバの起動に失敗する様になった | |
## 参考情報 | |
https://www.europoint.uk/using-synology-dns-server-to-block-adverts/ | |
https://github.com/steventblack/ad-blocker |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment