Günlerden bir gün bu arkadaşınız demiş benim DNS sorgularım niye plaintext olarak yapılıyor. Başlamış düşünmeye demiş ben bunu şifreleyim de dış mihraklar göremesin hemen aşağıdaki adımları sırasıyla uygulamış ve bu arkadaş artık mutluymuş.
apt-get install unbound dnscrypt-proxyShellScriptuygulama kurulumlarımız artık tamam sıra geldi konfigürasyonları tamamlamaya ilk olarak dnscrypt-proxy uygulamasını kurcalıyoruz.
mertcan@0x2e88ce4:~/Desktop$ cat /etc/default/dnscrypt-proxy
# What local IP the daemon will listen to, with an optional port.
# The default port is 53. If using systemd, this is not used and must be
# specified in dnscrypt-proxy.socket.
DNSCRYPT_PROXY_LOCAL_ADDRESS=127.0.0.31:53
# Remote DNS(Crypt) resolver.
# You can find a list of resolvers at
# /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv.
DNSCRYPT_PROXY_RESOLVER_NAME=cisco
# Extra flags to pass to dnscrypt-proxy
DNSCRYPT_PROXY_OPTIONS=""
PlaintextDNSCRYPT_PROXY_RESOLVER_NAME= değerine karşılık gelen kullanacak olduğunuz dns sağlayıcısıdır. Ben bu ayarlamayı yaparken cisco tercih ettim.
bunun dışında özel bir lokal adres kullanacaksanız bunu da DNSCRYPT_PROXY_LOCAL_ADDRESS=127.0.0.31 adresini düzenleyerek yapabilirsiniz.
Süreci başlatıyorsunuz
systemctl start dnscrypt-proxyShellScriptSıra geldi DNS sorgularını ön belleğe aldıracağımız, hayatımızı düzene sokacağımız, güvenliğimizi biraz daha arttıracağımız DNS çözümleyicisini dürteceğiz zaten kurulumunu yapmıştık ayarlamalarını da şu şekilde yapıyoruz.
önce gerekli olan root.hints dosyasını indirip klasörde yerini aldıralım.
wget -c ftp://ftp.internic.net/domain/named.cache -O /etc/unbound/root.hintsShellScriptÖn tanımlı olarak Unbound DNS uygulaması DNSSEC yapısını aktif ettiği için bunu ek olarak ayarlamamıza gerek yok unbound.conf.d klasörü içerisine geçişinizi yapın ve aşağıdaki gibi bir dosya oluşturun ben kendi adımı kullandım
nano mertcan.confShellScriptVe içerisini aşağıdaki gibi doldurdum.
server:
root-hints: "/etc/unbound/root.hints"
interface: 127.0.0.69
access-control: 127.0.0.69/8 allow
private-address: 127.0.0.69/8
harden-short-bufsize: yes
harden-large-queries: yes
cache-max-ttl: 86400
cache-min-ttl: 3600
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
hide-version: yes
hide-identity: yes
harden-glue: yes
prefetch: yes
prefetch-key: yes
do-not-query-localhost: no
harden-dnssec-stripped: no
logfile: "/var/log/unbound.log"
val-log-level: 2
verbosity: 1
forward-zone:
name: "."
forward-addr: 127.0.0.31ShellScriptKullanacak olduğum ip adresi 127.0.0.69 olduğu için interface: 127.0.0.69 olarak düzenlemeyi yaptım ve access-control ile private-address için aynı şekilde düzenledim. Forward kısmında ise Dnscrypt için ayarladığımız ip adresini ekledim ki oraya yönlendirsin.
Hemen ardından kayıt edip çıktım ve kendi DNS çözücü mü DNSCrypt ile ayarlamış oldum. Bu sayede DNS engellemelerinin önüne geçtim ve Cache yapısı sayesinde DNS sorgularını kısaltmayı başardım.
Güncelleme 15 Ocak 2017
Systemd kullanan arkadaşlarda son güncelleme ile bir takım sıkıntılar çıkmıştır diye düşünüyorum. Bunun birinci nedeni artık socket kullanıyor olması yönlendirmesel bir problem çıkıyor ve haliyle internete bağlanamıyoruz.
İlk olarak socketimizi düzenliyelim /lib/systemd/system/ klasörüne giriş yapıyoruz. dnscrypt-proxy.socket dosyasını şu şekilde değiştiriyoruz.
[Unit]
Description=dnscrypt-proxy listening socket
Documentation=man:dnscrypt-proxy(8)
Wants=dnscrypt-proxy-resolvconf.service
[Socket]
ListenStream=127.0.0.31:53
ListenDatagram=127.0.0.31:53
[Install]
WantedBy=sockets.target
PlaintextŞimdi asıl yönlendirmeyi de artık /etc/dnscrypt-proxy/dnscrypt-proxy.conf içerisine yapacağız. Eskisi gibi default altında bulunmuyor biraz daha düzenlemişler.
# A more comprehensive example config can be found in
# /usr/share/doc/dnscrypt-proxy/examples/dnscrypt-proxy.conf
ResolverName cisco
Daemonize no
TCPOnly no
# LocalAddress only applies to users of the init script. systemd users must
# change the dnscrypt-proxy.socket file.
LocalAddress 127.0.0.31:53
PlaintextAyarların geçerli olması için servisleri yeniden başlatın.
