BSDTR

DNSCrypt-proxy - Anonim DNS - Reklam engelleme - FreeBSD

 


Masaüstü olarak kullandığımız FreeBSD de DNSCrypt-proxy ile hem dns cache yapacağız, hem reklamları engelleyeceğiz, hemde Anonim DNS yapıp, hangi DNS kullandığımızı gizleyeceğiz.
Örn. dnsleaktest.com gibi bir sitede hangi DNS yi kullanıyorsanız sürekli onu görürsünüz, Anonim DNS de ise her sorgu yaptığınızda farklı DNS adresleri görünecektir, gerçek DNS niz görünmeyecektir.
Önce kuruluma başlayalım.
# pkg install dnscrypt-proxy2

İçine bunları yerleştirelim.
ee /etc/rc.conf
local_unbound_enable="YES"
dnscrypt_proxy_enable="YES"

Devam...
ee /usr/local/etc/dnscrypt-proxy/dnscrypt-proxy.toml
Bul
listen_addresses = ['127.0.0.1:53']
Değiştir
listen_addresses = ['127.0.0.1:5353']

Hemen üstte # server_names bulun ve önünde ki '#' diyezi kaldırın.
server_names = ['scaleway-fr', 'google', 'yandex', 'cloudflare']

Tabii burada istediğiniz server name ekleyebilir, çıkarabilirsiniz, adresler için buralara bakabilirsiniz.
dnscrypt.info/public-servers/
dnscrypt-resolvers.csv

Devam...
resolv.conf böyle olsun. (edns0 sizde değişik olabilir, sizde ki neyse o olsun)
ee /etc/resolv.conf

nameserver 127.0.0.1
options edns0

Unbound.conf 'a ekle, böyle olsun.
ee /var/unbound/unbound.conf
server:
    interface: 127.0.0.1
    do-not-query-localhost: no
#server:
#    username: unbound
#    directory: /var/unbound
#    chroot: /var/unbound
#    pidfile: /var/run/local_unbound.pid
#     auto-trust-anchor-file: /var/unbound/root.key

include: /var/unbound/forward.conf
include: /var/unbound/lan-zones.conf
include: /var/unbound/control.conf
include: /var/unbound/conf.d/*.conf

Yeni bir dosya açalım ve içine ekleyelim.
ee /var/unbound/conf.d/10-forward.conf
server:
  do-not-query-localhost: no

forward-zone:
  name: *
  forward-addr: 127.0.0.1@5353

Servisleri çalıştıralım.
# service netif restart

dnscrypt-proxy başlangıçta otomatik çalışmasını sağlayalım.
# service dnscrypt-proxy onestart

Kontrol edelim
# service dnscrypt-proxy onestatus
dnscrypt_proxy is running as pid 1005.

Şimdi DNSCrypt-proxy 'i çalıştıralım
# dnscrypt-proxy -config /usr/local/etc/dnscrypt-proxy/dnscrypt-proxy.toml

Bir takım servis ayarları geçecek en sonda is ready diyorsa tamamdır.
...
[NOTICE] dnscrypt-proxy is ready - live servers: 58

Şimdi bir aksilik olmadıysa dnscrypt-proxy çalışıyor olmalı.
Bi kontrol edelim.
$ sockstat -4 |grep 53
_dnscrypt-proxy dnscrypt-p1005 6 udp4 127.0.0.1:5353      *:*
_dnscrypt-proxy dnscrypt-p1005 7 tcp4 127.0.0.1:5353      *:*
unbound  local-unbo 811   3  udp4   127.0.0.1:53          *:*
unbound  local-unbo 811   4  tcp4   127.0.0.1:53          *:*

Konsolda bunu döndürün.
$ drill -D google.com
...
;; Query time: 83 msec
Bir daha döndürün. 0 ise tamamdır, cache yapılıyordur.
$ drill -D google.com
...
;; Query time: 0 msec


[ Gizli DNS - Anonim DNS ]
dnscrypt-proxy.toml de Anonim DNS için bu ayarları uygulayabilirsiniz.
# ----------
# server_names = ['scaleway-fr', 'google', 'yandex', 'cloudflare']

# ----------

dnscrypt_servers = true
doh_servers = true

# ---------
[anonymized_dns]
# ----------
routes = [
   { server_name='decloudus-nogoogle-tst', via=['*'] },
   { server_name='adguard-dns', via=['*'] }
]
# ----------
skip_incompatible = true
İşlemler bittiyse
# service dnscrypt-proxy restart
https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Anonymized-DNS


[ Reklam engelleme - Kara Liste (Blocklist) ]

# mkdir /usr/local/etc/dnscrypt-proxy/generate-domains-blocklist
$ cd /usr/local/etc/dnscrypt-proxy/generate-domains-blocklist
Altaki adresleri bir dosyaya kaydedin, adıda linkler.txt olsun
https://raw.githubusercontent.com/DNSCrypt/dnscrypt-proxy/master/utils/generate-domains-blocklist/domains-allowlist.txt
https://raw.githubusercontent.com/DNSCrypt/dnscrypt-proxy/master/utils/generate-domains-blocklist/domains-blocklist-local-additions.txt
https://raw.githubusercontent.com/DNSCrypt/dnscrypt-proxy/master/utils/generate-domains-blocklist/domains-blocklist.conf
https://raw.githubusercontent.com/DNSCrypt/dnscrypt-proxy/master/utils/generate-domains-blocklist/domains-time-restricted.txt
https://raw.githubusercontent.com/DNSCrypt/dnscrypt-proxy/master/utils/generate-domains-blocklist/generate-domains-blocklist.py
Konsoldan bunu döndürün.
$ wget -i linkler.txt -P . -q --show-progress

 
İnenleri kontrol edelim.
$ ls /usr/local/etc/dnscrypt-proxy/generate-domains-blocklist
domains-allowlist.txt
domains-blocklist-local-additions.txt
domains-blocklist.conf
domains-time-restricted.txt
generate-domains-blocklist.py

Devam...

# chmod a+x generate-domains-blocklist.py
# /usr/local/bin/python3 generate-domains-blocklist.py > dnscrypt-blocklist-domains.txt
# cd ..
# ln -s generate-domains-blocklist/dnscrypt-blocklist-domains.txt dnscrypt-blocklist-domains.txt

ee dnscrypt-proxy.toml
Dosya içine Pattern-based blocking (blacklists) bölümünü bul ve düzenle

[blocked_names]
blocked_names_file = 'dnscrypt-blocklist-domains.txt'
[allowed_names]
allowed_names_file = 'domains-allowlist.txt'
# service dnscrypt-proxy restart
Yapılandırmayı elle test edelim, hata varsa onları düzeltin.
cd /usr/local/etc/dnscrypt-proxy ; dnscrypt-proxy -check
Hata yoksa çıktı böyle bir şey olmalı...
[2024-08-03 15:32:32] [NOTICE] dnscrypt-proxy 2.1.5
[2024-08-03 15:32:32] [NOTICE] Source [public-resolvers] loaded
[2024-08-03 15:32:32] [NOTICE] Source [relays] loaded
[2024-08-03 15:32:32] [NOTICE] Configuration successfully checked
Tarayıcınızı kapatıp/açın artık reklam görmemeniz lazım, ya da daha az görmeniz lazım, başka bir ayar yapmanıza gerek yok.
Kontrol edin, reklam engelleyici çalışıyor mu?
$ host pagead2.google.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases: 

Host pagead2.google.com not found: 3(NXDOMAIN)
Online test içinde burayı kullanabilirsiniz.

Eğer filtre için bir güncelleme betiği isterseniz, bunu kullanabilirsiniz.
#!/bin/sh 
cd /usr/local/etc/dnscrypt-proxy/generate-domains-blocklist
a=$(du -sk dnscrypt* | awk '{print $1}')
/usr/local/bin/python3 generate-domains-blocklist.py > dnscrypt-blocklist-domains.txt
service dnscrypt-proxy restart 
b=$(du -sk dnscrypt* | awk '{print $1}')
echo ; clear 
if [ "$a" != "$b" ]; then
echo ; echo " Guncellendi: $b kb ✓" ; echo ; exit 0
else 
echo ; echo " Güncellenmedi: $a kb !!" ; echo ; fi ; exit

İyi günlerde kullanın.

* dnsleaktest sitesinde her test ettiğinizde kullandığınız DNS ler otomatik  olarak değişmektedir.

 



 

yorum yok:

Yorum Gönder

2010 - 2024 Beastie BSD Türkiye 🇹🇷