WindowsでもUnboundで広告ブロック

unbound

庂呉フレヂギゑ衋ぃぞぃで怜ぢぞでがなフヨゥサてぁるはぜね扊ねブヨクィヲゑ佾ぅでぃぅねかぁりぐとぁぽら臩田庥かどぃざ、フヨゥサ令夕なの劸枛かどぃ。奼が勜扊ゃらぞぃどよDNSゴ・ハゑ佾ぅねか簠南たぐとWindowsのとぅじりね>でどりでゃのらげだよめUnboundぁぞらか毓輂皃簠南おどで。ぜげて、WindowsなUnboundゑィヲジデ・リざづ庂呉フレヂギゑ衋ぢづまぞ。
䷿忛、仉囝佾甧ざぞねのWindows 10 Home 64bit Insider Preview Build16237.rs_prerelease.でUnbound 1.6.4

Unboundねィヲジデ・リ

Windows片unboundねィヲジデ・リヺ訬宙 1
Unboundね八弎ゴィデおよWindows甧ねィヲジデ・ヨ・ゑタゥヲレ・トじり。培末64ヒヂデ片ゑタゥヲレ・トてOK.(牸判ど琅田かぁぢづ32ヒヂデ片Windowsゑ佾ぢづりどよ32ヒヂデ片ゑタゥヲレ・ト)

Windows片unboundねィヲジデ・リヺ訬宙 2
タゥヲレ・トざぞピ゠ィリゑ实衋。
[Next]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 3
License Agreementゑ説をて吋愎てがりどよ[I Agree]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 4
[Next]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 5
[Next]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 6
[Install]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 7
[Finish]ゑギラヂギ。
ィヲジデ・リ宋亅。

Windows片unboundねィヲジデ・リヺ訬宙 8
ィヲジデ・リ兇ゑ牸な夈曳ざづぃどぐるはUnboundのC:\Program Files\Unboundなィヲジデ・リごるぞ筇たか、げねピエリタのュ・サ・か晭這なピ゠ィリゑ夈曳てがどぃねてピエリタ冄ね訬宙ピ゠ィリゑ夈曳てがどぃ。
ぜげてピエリタねズガヤラヅアゑ夈曳じり。(Unboundか止帷な勔ぎょぅなどぢぞよ戺ざづぬ)
ェギジブレ・ヨ・てC:\Program Files\Unboundねピエリタゑ史ギラヂギ。[ブレバヅア]ゑ閊ぎ。

Windows片unboundねィヲジデ・リヺ訬宙 9
「Unboundねブレバヅア」町靡ね三郧なぁり[ズガヤラヅア]ゾクゑ遷抝。
丬殴史偳なぁり[緧雅]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 10
三殴ねクリ・ブ同/ュ・サ・同ねラジデおよUsers(hoge\Users)ゑ遷抝。
上殴ねァギズジ訰叮ね「夈曳」衋ね「訰叮」なダウヂギゑ仗ぐり。[OK]ゑギラヂギ。

Unboundね訬宙

C:\Program Files\Unbound\service.confかムィヲね訬宙ピ゠ィリなどり。夈曳なの攸衋ゲ・トゑ止ざぎ誌譗てがりェテアゾゑ佾ぅ。Windowsな仗ぃづり「ムメ帲」のタム。

C:\Program Files\Unbound\service.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server:
    verbosity: 0        #レクゑ叕よどぃ

    interface: ::1      #IPv6
    interface: ::0      #IPv6
    interface:127.0.0.1 #IPv4
    interface: 0.0.0.0  #IPv4

    access-control: 0.0.0.0/0 refuse         #IPv4 WANおよ佾ゎずどぃ
    access-control: ::0/0 refuse             #IPv6 WANおよ佾ゎずどぃ
    access-control: 127.0.0.0/8 allow        #IPv4 臩躪の訰叮
    access-control: ::1 allow                #IPv6 臩躪の訰叮
    access-control: 192.168.0.0/24 allow     #IPv4 LANの訰叮 (臩刅ねLANァトルジな曷が揚ぇり)
    access-control: fdc0:1:1:0::/64 allow    #IPv6 LANの訰叮 (臩刅ねLANァトルジな曷が揚ぇり)

    #INCLUDE FILES
    include: "C:\Program Files\Unbound\local_zone_ipv6.conf" #IPv6+IPv4甧  IPv4ねまね璯墂どよげね衋の剉陣 (上ね衋で掑仕)
    include: "C:\Program Files\Unbound\local_zone.conf"      #IPv4たぐね璯墂甧 IPv6ぁらね璯墂どよげね衋の剉陣 (三ね衋で掑仕)

    include: "C:\Program Files\Unbound\local_data_ipv6.conf" #IPv4ねまね璯墂どよげね衋の剉陣
    include: "C:\Program Files\Unbound\local_data.conf"      #げね衋の涇ごどぃ

    include: "C:\Program Files\Unbound\local_data_malware_ipv6.conf"  #IPv4ねまね璯墂どよげね衋の剉陣
    include: "C:\Program Files\Unbound\local_data_malware.conf"       #げね衋の涇ごどぃ

forward-zone:
    name: "."
    forward-addr: 2001:4860:4860::8888   # IPv6 Google public DNS#1 or your ISP's DNS (1st)
    forward-addr: 2001:4860:4860::8844   # IPv6 Google public DNS#2 or your ISP's DNS (2nd)
    forward-addr: 8.8.8.8                # IPv4 Google public DNS#1 or your ISP's DNS (1st) 
    forward-addr: 8.8.4.4                # IPv4 Google public DNS#2 or your ISP's DNS (2nd)

server: auto-trust-anchor-file: "C:\Program Files\Unbound\root.key"

ィヲギリ・トピ゠ィリね郧刅ね5っねピ゠ィリの悩ぃィヲゾ・ヌヂデ 庂呉陣厺甧HOSTSピ゠ィリおよ叕徖じり。庂呉フレヂギ甧でポリゥェァフレヂギ甧。

forward-zoneの三ねィヲギリ・トざぞペジデラジデなぱぢおおよどおぢぞペジデゑ啎ぃ吇ゎずり兇などりねてブレハィタねDNSゴ・ハゃバフラヂギDNSゴ・ハゑ挆宙じり。
どぉ、IPv4封甧ねヌヂデヮ・ギ璯墂てぁりどよAAAAルゲ・ト(IPv6ァトルジ)ゑ迓筓ざづげどぃDNSね斸か焠離どねてブレハィタか描侚ざづぃりDNSかAAAAピアリゾ仗がDNSゴ・ハてぁるはぜるゑ刨甧じり斸か艮ぃおで。三ね侊てのGoogleねバフラヂギDNSゑ託輈ざづぃりぐとげるのAAAAルゲ・トゑ迓じねて佾ゎどぃへが。

ソ・ヲピ゠ィリの1っねトムィヲなァペまぞぃな夦野ねペジデか字圧ざづぜるよゑフレヂギじりねなペジデ南佌てラジデ匕じりねか焠駃どねてトムィヲ南佌てフレヂギじりぞむねラジデ。

替律ね33衋盭の1衋盭およねServer:ズギザユヲで吋し。判ズギザユヲね律な迼託じりょぅど堳吇のげをど曷が斸。ぁぽら褑むよるどぃおめ。三ね侊たでforward-zoneズギザユヲね剌ぁぞらな衋頬ね「Server:」ゑ陣ぃづ罭ぃづゃぢぞ斸か吋しズギザユヲね訬宙か飚ひ飚ひなどりょら艮ぃおめ。

げるてWindowsゑ册赶勔ざぞよUnboundかガモヂザヤゴ・ハでざづ勔ぎ筇。めざぎのゲポヲトブレヲブデゃPowershellおよunbound-control.exeゑ擌佛じり。赶勔たぐどよェギジブレ・ヨ・およunbound.exeゑタフリギラヂギてめ。

Unboundピエリタ冄ね吃exeピ゠ィリ(ね幽っお)ゑ实衋じりで、ピ゠ィァゥエ・リね町靡か衧礹ごるり筇どねて內郧訰叮じり。(げる志るりで這俠てがどぃねて勔おどぃょぅな覊ぇり)

ラソリハね夈曳

DNSゴ・ハか溕傘てがづめぜるゑ佾ぅ訬宙ゑざどぃで归焵佾ゎるどぃ。宵庬甧ねLAN璯墂てぁるはリ・ゾ・どとねDHCPゴ・ハねDNSゴ・ハね挆宙頄盭なunboundゑ訬罭ざぞWindows PCねァトルジゑ曷ぃづゃるはDHCP酌上ね竮未のUnboundゑ佾ぅょぅなどぢづぎるり。
竮未こでな扊勔訬宙じりねてぁるは、UNIX糺てぁるは/etc/resolv.confなUnboundゑ訬罭ざぞWindows PCねァトルジゑ曷ぎ。
げげぽての迶ぅ郧刅の焠ぃ筇。

啎顋のWindowsね堳吇。Unboundゑ訬罭ざぞWindows PCめ志るすな夈ぇどぃで。

Windows片unboundねィヲジデ・リヺ訬宙 11
「ヌヂデヮ・ギ掤継」およ佾甧丬ねヌヂデヮ・ギァタブゾゑ史ギラヂギざづ[ブレバヅア]ゑギラヂギ。
三ね侊ての焠緙LANね斸ゑ遷をてぃり。

Windows片unboundねィヲジデ・リヺ訬宙 12
「ヌヂデヮ・ギ」ゾクか遷抝ごるづぃりげでゑ碹誌ざづ「ィヲゾ・ヌヂデブレデゲリハ・シユヲ4 (TCP/IPv4)」ゑ遷抝ざづ[ブレバヅア]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 13
「欠ねDNSゴ・ハ・ねァトルジゑ佾ぅ」なゑ仗ぐり。
「儩兇DNSゴ・ハ・」な 127.0.0.1 ゑ挆宙じり。[OK]ゑギラヂギ。
LAN冄ね仕ねペジデての127.0.0.1てのどぎUnboundゑィヲジデ・リざぞペジデねIPァトルジゑ挆宙。

Windows片unboundねィヲジデ・リヺ訬宙 14
「ヌヂデヮ・ギ」ゾクか遷抝ごるづぃりげでゑ碹誌ざづ「ィヲゾ・ヌヂデブレデゲリハ・シユヲ6 (TCP/IPv6)」ゑ遷抝ざづ[ブレバヅア]ゑギラヂギ。

Windows片unboundねィヲジデ・リヺ訬宙 15
「欠ねDNSゴ・ハ・ねァトルジゑ佾ぅ」なゑ仗ぐり。
「儩兇DNSゴ・ハ・」な ::1 ゑ挆宙じり。[OK]ゑギラヂギ。
LAN冄ね仕ねペジデての ::1 てのどぎUnboundゑィヲジデ・リざぞペジデねIPv6ァトルジゑ挆宙。
どぉ、IPv4封甧璯墂てのげるの丌覀。

末杤どよげるて絁ゎらね筇。
たぐと、げるたで丌其吇か癹甞じり堳吇かぁりまぞぃ。訬宙ざぞ焠緙LAN,月緙LANか佾甧丌胼などりどと。どをお、DHCP璯墂てDNSたぐ扊勔挆宙てどりぢぼぃ。
ぜげて、PC赶勔晁のDNSのDHCPおよ挮よるぞめねゑ佾甧ざ、赶勔律なDNSゑ夈曳じりハヂダピ゠ィリゑ佛戏。

C:\Program Files\Unbound\change_dns.bat
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
@echo off

netsh interface ipv6 set dns name="Wi-Fi" source=dhcp register=non validate=no
netsh interface ipv4 set dns name="Wi-Fi" source=dhcp register=non validate=no

rem netsh interface ipv6 set dns name="ィ・ゴヌヂデ" source=dhcp register=non validate=no
rem netsh interface ipv4 set dns name="ィ・ゴヌヂデ" source=dhcp register=non validate=no


timeout 30 /nobreak

netsh interface ipv6 set dns name="Wi-Fi" source=static addr="::1" register=non validate=no
netsh interface ipv4 set dns name="Wi-Fi" source=static addr="127.0.0.1" register=non validate=no

rem netsh interface ipv6 set dns name="ィ・ゴヌヂデ" source=static addr="::1" register=non validate=no
rem netsh interface ipv4 set dns name="ィ・ゴヌヂデ" source=static addr="127.0.0.1" register=non validate=no

exit

衋頬な rem か仗ぃづぃりねのゲムヲデ。たおよ三ね侊ての月緙LANのゲムヲデなどぢづぃりねて实衋ごるどぃ。

三て佛戏ざぞハヂダピ゠ィリかWindows赶勔晁な实衋ごるりょぅなゾジギゑ発錱じり。て、替运ねWindowsねゾジギ ジグシヤ・ヨのUI擌佛てゾジギゑ発錱ざづめどおどお怜ぃ這らな实衋ごるどぃ仢牨どねてゾジギゑゲポヲトて佛戏じり。(ゲポヲトてゾジギゑ佛戏じりで佔敄お止帷な勔ぎげでか夙ぃ)

ゲポヲトブレヲブデゑ箠琅耄樨陏て赶勔。
げるのジゾ・デホゾヲゑ史ギラヂギて衧礹ごるりラジデなゲポヲトブレヲブデ(箠琅耄)かぁるはぜる。Windows10ね替斯璯墂たでジゾ・デホゾヲゑ工ギラヂギざづ「Windows ザジヅミッ・リ」冄なぁり「ゲポヲトブレヲブデ」ゑ史ギラヂギざづ「ぜね仕」⇢「箠琅耄でざづ实衋」

schtasks /create /tn DNS夈曳 /tr "C:\Program Files\Unbound\change_dns.bat" /sc onstart /rl highest /F

Windows片unboundねィヲジデ・リヺ訬宙 16
佛戏ざぞゾジギか発錱ごるづぃりげでゑ碹誌じり。
ジゾ・デホゾヲゑ史ギラヂギて「ゲヲデレ・リバヌリ」およ「ゾジギ ジグシヤ・ヨ」ゑ赶勔。ぽぞのWindows10ね替斯璯墂どよジゾ・デホゾヲゑ工ギラヂギて「Windows 箠琅ッ・リ」およ「ゾジギ ジグシヤ・ヨ」ゑ赶勔。
工刖ね「ゾジギ ジグシヤ・ヨ ヨィフヨラ」ゑ遷抝。丬夭刖三殴ねラジデな「DNS夈曳」ゾジギか発錱ごるづぃりげでゑ碹誌。

Windowsゑ册赶勔ざづレクィヲざ、30科令三径ぢづおよPowerShellぽぞのゲポヲトブレヲブデゑ閊が、 ipconfig /all ゑ实衋じり。
「DNSゴ・ハ・」ね頄盭ゑ採ざ ::1 で 127.0.0.1 ね2っか衧礹ごるづぃりげでゑ碹誌じり。
nslookup www.google.com ゑ实衋じり。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\foobar> nslookup www.google.com
ゴ・ハ・:  localhost
Address:  ::1

樨陏ねどぃ囝筓:
同剌:    www.google.com
Addresses:  2404:6800:400a:806::2004
          172.217.27.164

PS C:\Users\foobar>

げをど愞しなIPv6, IPv4でめなァトルジか止ざぎ兤ぢづぃるはOK.
三ね侊のUnboundゑ勔おざづぃりWindows PCて实衋ざぞねて「ゴ・ハ・」かlocalhostなどぢづぃり。

庂呉(迶惐)ペジデね碹誌め衋ぅ。nslookup baidu.com ゑ实衋。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\foobar> nslookup baidu.com
ゴ・ハ・:  localhost
Address:  ::1

樨陏ねどぃ囝筓:
同剌:    baidu.com
Addresses:  ::
          0.0.0.0

PS C:\Users\foobar>

IPv6ての :: な、IPv4ての 0.0.0.0 などるはOK.

閡逢託亊:

コメント: WindowsでもUnboundで広告ブロック

  1. Windows用Unboundで設定の変更を反映させるにはどうしたら良いんでしょうか?
    こちらで紹介されているファイルを利用させていただいているのですが、
    一通り設定をしてUnboundを実行させた後、ゾーンファイルから適宜コメントアウトで
    特定のホストにアクセスできるよう設定を変更したものの反映方法がわからず困っています。
    コントロールパネル>管理ツール>サービスからUnbound DNS validatorを選択し
    サービスの再起動を行ってもダメで、
    PowerShellからunbound-controlでreloadを実行してもダメでした。
    (unbound-controlの方はstopをかけても直後にstatusでrunningとなっているのが
    確認できたので何がどうなっているのかわからないという感じもしました
    http://i.imgur.com/ydvXzip.png)
    OSの再起動をすると変更が反映されるのは確認できましたが、OSの再起動となると
    細かい設定変更の反映が手間になってしまうので他の方法があれば教えていただきたいです。

  2. unboundの設定変更後、サービスの再起動でその設定は有効になります。
    DNSキャッシュサーバとしては新しい設定で動いているのですが、それを利用するクライアント側はそれとは別にDNSリゾルバキャッシュを持っています。(Windowsの場合)
    クライアントというのはunboundに問い合わせる全てのPCやその他端末ですが、そこにはunboundが動いているWindows PC自身も含まれます。
    名前解決が必要なとときに毎回DNSサーバに対して問い合わせを行うよりも一度問い合わせた結果を自身で溜めておいてそれを利用した方が効率が良いからということのようです。
    弊害もあるのでどうかなとは思いますが。
    Windowsの場合はコマンドプロンプトやPowerShellの管理者権限で、ipconfig /flushdns を行うことでそのWindows PCが起動後直近24時間以内に溜めていたDNSリゾルバキャッシュをフラッシュすることができます。
    hostsファイルの変更はファイル保存後特に何もしなくてもすぐに更新した内容が有効になりますが、DNSではキャッシュをフラッシュするという1手間が必要です。これはDNSサーバが何であっても同じです。
    急ぎでなければ24時間経つと取得済のDNSリゾルバキャッシュは無効になって新たにDNSサーバに問い合わせを行うのでその時点で新しいホスト情報が有効になります。
    ちなみにipconfig /displaydnsを行うとその時点で持っているDNSリゾルバキャッシュを表示することができます。

  3. サービスの再起動を行っておけばOKで、すぐに確認したい場合はipconfig /flushdnsを行えば良いということですね。
    突然のコメントにもかかわらず懇切丁寧でわかりやすい解説をしていただき大変助かりました。ありがとうございました!

  4. がと様

    はじめまして。当HPで手順を見て設定をしたのですが、うまくいかないところがございます。

    nslookupの手順でつまづいていて、nslookupに失敗しているのです。
    問題切り分けをしたところ、unbound-control.exe reloadをCMDで実行したところ、
    以下のエラーメッセージが出ております。

    [1633750260] unbound-control[4452:0] error: connect: Connection refused.
    for 127.0.0.1 port 8953

    内容としては、127.0.0.1がport8953に対して疎通性がとれないということの認識ですが、
    どのようにしたら解決できますでしょうか?

    お忙しいところ恐縮です。ご確認いただけますでしょうか

  5. Winedows用のUnboundは4年ほど前に記事に書いた頃とだいぶ変わっているようです。記事の内容はだいぶ手直しが必要な感じです。
    nslookupが失敗するようでしたら、とりあえずWindowsの管理機能の「サービス」でUnboundサービスが起動していることを確認してみてください。
    起動していないようであれば「サービス」でUnboundを起動してnslookupを試してください。それで問題ないようであれば、Unboundがサービスの自動起動失敗する部分を直すことになるかと思います。(その部分を確認中です)

  6. がと様

    タカシジャンボイモです。

    お早い回答いただき、誠にありがとうございました。
    いただいたアドバイスにもとづき確認をしたところ、うまくいきました。

    ご参考までに、下名が対応した手順をお伝えいたします。

    [1]Windowsの管理機能の「サービス」を開く
    [2]プログラム「Unbound DNS validator」を起動する。
     #デフォルトだと、この部分が無効になっていました。
    [3]起動したことを確認する。
     その後はコマプロのnslookup http://www.google.comの確認 ⇒ 想定通り回答あり
     nslookup http://www.baidu.com ⇒ 想定通り回答無し
    [4]DNSの設定を各PCやスマホに実施
    [5]googleの閲覧をし、アクセス可能であることを確認。
    [6]baiduの閲覧をし、アクセス不可であることを確認。
      

  7. 無事動いたようで良かったです。Unboundは4年前からのChangelogを見るとかなり多くの変更・修正点がありましたが、「がとらぼ」の超基本的な設定部分では特に大きな影響はなかったようです。ただ、この記事で触れてなかったremote-controlコマンドは、設定で許可しておかないと利用できないのでその部分のとっかかりになる点についてだけ記事を作りました。WindowsでもUnbound (Remote controlの準備)になります。

コメントは締め切られています。