Šio įrašo autorius: Techtronic.
Straipsnis pirmą kartą publikuotas ir pasiskolintas iš čia.
As radau sprendima blokuoti reklamas, tracking servisus bei soc tinklus. Naudoju BIND tam. Stai paprastas budas kaip toki galima paleisti pas save.
Suprantama pirma instaliuoti bind|named (nelendu i tokias detales, forumas nera naujokams).
Tada paprastas setupas: /etc/namedb/blockeddomain.hosts
; This zone will redirect all requests back to the blackhole itself.
$TTL 600
@ 1D IN SOA localhost root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
5 IN A 127.0.0.1
Kuris nurodo, kad tarkim google.lt ip adresas bus 127.0.0.1
/etc/namedb/block.zones zonu failas kuriame "blacklistai":
zone "adcash.com" {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "statcounter.com" {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "facebook.com" {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "primewire.ag" {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "poll.fm" {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "wwwpromoter.com" {type master; file "/etc/namedb/blockeddomain.hosts";};
Na ir kad paprasciau butu block parasiau paprasta shell skriptuka:
NAMED_ZONE="/etc/namedb/block.zones"
NAMED_HOST="/etc/namedb/blockeddomain.hosts"
if [[ $(/usr/bin/id -u) == 0 ]]; then
[[ -z ${1} ]] && exit
E=$(grep ${1} /etc/namedb/block.zones | awk '{print $2}' | sed 's/"//g')
if [[ ${1} != ${E} ]]; then
print "ok"
echo "zone \"${1}\" {type master; file \"${NAMED_HOST}\";};" >> ${NAMED_ZONE}
rndc reconfig
else
print "sorry, error."
fi
fi
Tokio setupo problemos:
1 Laikas kuris reikalingas blocklist sukurti (keleta valandu kol surenkama ka blokuoti).
Privalumai:
1 DNS caching (speeds up DNS queries).
2 Nereikia jokiu AD blockeriu, neapkrauna sistemos (-200 domains = ~ 15MB memory).
3 Toks setupas routeri leidzia apsaugoti visa jusu home network nuo pornografiniu, socialiniu ir panasiu tinklapiu.
Šio įrašo autorius: Ghost.
Straipsnis pirmą kartą publikuotas ir pasiskolintas iš čia.
Siūlau, mano galva, paprastesnį variantą (na serveris tikrai lengvesnis)
# sudo apt-get install unbound
Šlamšto blokavimui tinka numatytieji nustatymai, pakanka prisidėti norimus DNS serverių adresus. Pavyzdžiui:
# egrep -v '^\s*#|^\s*$' /etc/unbound/unbound.conf | tr -s '\n'
server:
verbosity: 1
python:
remote-control:
forward-zone:
name: "."
forward-addr: 8.8.8.8 # Google Public DNS
forward-addr: 8.8.4.4 # Google Public DNS
Toliau pasileidžiam serverį, pasitikrinam, ant kokių portų jis kabo:
# sudo invoke-rc.d unbound restart
Restarting recursive DNS server: unbound.
# unbound-control lookup google.com
The following name servers are used for lookup of google.com.
forwarding request:
Delegation with 0 names, of which 0 can be examined to query further addresses.
It provides 2 IP addresses.
8.8.8.8 not in infra cache.
8.8.4.4 not in infra cache.
# dig @localhost google.com
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @localhost google.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47732
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 299 IN A 2.127.252.242
google.com. 299 IN A 2.127.252.221
google.com. 299 IN A 2.127.252.231
<...>
Kol kas viskas veikia
Kad atkartoti tai, ką Techtronic scenarijus daro - sintaksė labai paprasta:
# sudo unbound-control local_zone "google.com" static
# sudo unbound-control local_data "google.com 3600 in A 127.0.0.1"
Tikrinam:
# dig @localhost google.com
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @localhost google.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48891
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 3600 IN A 127.0.0.1
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon Feb 9 22:49:01 2015
;; MSG SIZE rcvd: 44
Taigi ir vėl viskas gražiai suveikė
Reikalui eisant, galima pašalinti įrašus po vieną:
Na čia tas pats principas, tik įgyvendinimas kitas
Truputį turėtų skirtis užklausų laikas. Sakykim man iš sąrašo su minėtais 20K+ įrašų grep norimą adresą ištraukia per ~ 4 ms, dig savo ruožtu trunka 0 ms (realiai turbūt trunka keletą µs, kurių neberodo). Bet tos kelios milisekundės vargu ar turi didesnės įtakos.
Labiausiai skiriasi, manau, pagal pritaikymo galimybes. Naudojant serverį galima apsaugot visą tinklą (10, 100, 1000, ... kompiuterių), naudojant host failą - tik vieną kompiuterį.
Taip pat, pagal mano siūlomą metodą, lengva įkelti bei pašalinti įrašus.
Hosts failas, kita vertus, negyvena kompiuterio atmintyje, tai galima užskaityti kaip privalumą namų vartotojui, bet dėl to, kaip parodžiau aukščiau, truputį nukenčia greitis.
Beje, visi norintieji išgauti blokuotinų adresų sąrašą iš windows nuorodoje naudojamo hosts failo, tai padaryti galite taip
# time getent hosts ubuntu.lt
127.0.0.2 ubuntu.lt
real 0m0.212s
user 0m0.000s
sys 0m0.000s
# time getent hosts ubuntu.lt
127.0.0.2 ubuntu.lt
real 0m0.004s
user 0m0.000s
sys 0m0.000s
Panašu, kad sistema “kešina” ir hosts failą, tada lieka vienas skirtumas - patogumas naudotis
DAR PAPILDAU
Neįtikino manęs mano išvados po poros bandymų, kad sistema “kešina” host failą, tad truputį rimčiau patestavau
Įkeliu ubuntu.lt į Unbound blokuojamųjų sąrašą:
# unbound-control local_zone "ubuntu.lt" static
# unbound-control local_data "ubuntu.lt 3600 in A 127.0.0.3"
# getent hosts ubuntu.lt
127.0.0.3 ubuntu.lt
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 2.1ms
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 2.0ms
Vidurkis: 2.0ms
Šįkart rezultatai jau hosts failo naudai
3 bandymai po 10K užklausų Unbound:
# for k in $(seq 3); do for i in $(seq 10000); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/10000.}'; done
Vidurkis: 3.1ms
Vidurkis: 3.1ms
Vidurkis: 3.1ms
3 bandymai po 10K užklausų hosts failas:
# for k in $(seq 3); do for i in $(seq 10000); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/10000.}'; done
Vidurkis: 2.9ms
Vidurkis: 2.9ms
Vidurkis: 2.9ms
SULYGINU JĖGAS
Kad jėgos būtų apylygės, eksportuoju Unbound sąrašą į hosts failą:
# unbound-control local_zone "ubuntu.lt" static
# unbound-control local_data "ubuntu.lt 3600 in A 127.0.0.5"
# getent hosts ubuntu.lt
127.0.0.5 ubuntu.lt
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 31.1ms
Atkreipkit dėmesį, kad susidaro įspūdis, jog Unbound dabar užtrunka ilgiau, bet taip nėra
Pakeičiam /etc/nsswitch.conf failo eilutę:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Štai taip (dns atsiduria pirmiau files):
#hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts: dns files
Pakartoju testą:
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 15.4ms
Pusė sugaišto laiko kažkur dingo Taip yra todėl, kad dabar kreipiamasi tiesiai į dns serverį, ir jei adresatas nerastas - į hosts failą.
Bet Unbound vistiek užtrunka ilgiau nei įprastai, tad pašalinu files direktyvą. Dabar hosts failas fisiškai nebus liečiamas:
hosts: dns
Dar kartą kartoju testą:
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 2.0ms
2.0ms - skaičiai jau kažkur matyti?
Toliau testuosiu hosts failą.
Atkeičiu /etc/nsswitch.conf į:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 29.6ms
Testą užbaigiu grąžindamas /etc/hosts failą į pirminę sąranką ir pakartoju Unbound testą:
# cat /etc/hosts.bak > /etc/hosts
# unbound-control local_zone "ubuntu.lt" static
# unbound-control local_data "ubuntu.lt 3600 in A 127.0.0.5"
# getent hosts ubuntu.lt
127.0.0.5 ubuntu.lt
# for i in $(seq 50); do time getent hosts ubuntu.lt; done 2>&1 | grep real | awk -F'.' 'BEGIN{i=0}{gsub("s","",$2); i+=$2}END{printf "Vidurkis: %.1fms\n", i/50.}'
Vidurkis: 2.1ms
Taigi Unbound sparta tiesiogiai priklauso nuo hosts failo dydžio. Kitaip tariant, apskritai sistemos dns sparta priklauso nuo hosts failo dydžio.
Idomumo dėlei galima net paskaičiuoti:
29.6 + 2.1 = 31.7ms
Tai beveik atitinka pirminę /etc/nsswitch.conf sąranką, kai pirma kreipiamasi į hosts failą, po to į dns serverį, Unbound šiuo atveju užtruko 31.1ms.
Truputi papiktino mane @Ghost lyginimas BIND su unbound, bet didelis respektas jam uz alternatyvu buda, nes kiekvienam darbui yra tam skirtas instrumentas, ir siuo atveju unbound yra greitesnis ir naudoja maziau resursu nes jis nera skirtas atsakyti uz DNS zonas (non authoritative). Bet ar yra geresniu? TAIP.
Vienas is tokiu yra Dnsmasq, ir forume jau rasiau kaip ji paleisti, bet kad viska laikyti vienoje temoje perkeliu cia. Taigi paprastas how-to setup Dnsmasq caching DNS uzklausom.
Suprantama pirma mums reikia install Dnsmasq:
apt-get install dnsmasq
Sukuriam nauja faila /etc/dnsmasq.conf arba keiciame esama, mus domina sie parametrai:
# Listen on the local IP address.
listen-address=127.0.0.1
# Listen on the standard DNS port.
port=53
# Set the dnsmasq's cache size (names).
cache-size=1000
# Read the IP addresses of the upstream nameservers from /etc/resolv.conf.
resolv-file=/etc/resolv.conf
# Don't poll /etc/resolv.conf for changes.
no-poll
# Don't read the hostnames in /etc/hosts.
#no-hosts
# Log the results of DNS queries handled by dnsmasq.
#log-queries
# Specify the userid/groupid to which dnsmasq will change after startup.
user=dnsmasq
group=dnsmasq
# Include blackists
conf-file=/home/minde/.dnsmasqrc
Toliau paleiskima dnsmasq ir patirkinam ar tinkamai veikia:
Kaip matom 53 portas atviras. Dabar reikia sukurti faila /etc/resolv.conf.head
DHCP atnaujindamas /etc/resolv.conf naudos resolv.conf.head, todel visada
turesim nameserver nustatyta i 127.0.0.1:
nameserver 127.0.0.1
Toliau mums reikia sukurti juodaji sarasa kurio sintakse atrodo taip:
address=/vardas.lt/127.0.0.1
Tokiu budu nukreipsim vardas.lt i 127.0.0.1.
Mano atveju failas /home/minde/.dnsmasqrc:
Atmintis: 250KB (8 kartus maziau nei Unbound 2.21 MB). Laikas uzklausom: 0 msec (nes grazina viska is caches, tad kad ir 5000 kartu uzklausa bus kartojama laikas nesikeis). Sudetingumas: Paprasta setup, lengva keisti blacklista ir tam nereikia jokiu spec teisiu.
As turiu dar parases how-to PowerDNS setup spargalkese, jis taip pat veikia greitai bei naudoja mazai resursu. Panasiai kaip Unbound, bet zonas saugo i sqlite database. Daugiau sutinkamas BSD tipo OS.
Kartu database editorius (tested su 200 000 records).
Šiaip mintis labai gera, turiu galvoj duombazę, taip kompo atmintis nebūtų perkrauta.
Butent taip ir as galvojau, kad SQLite panaudojimas yra puiki ideja.
Su laiku problemu kaip ir jokiu nera, bet rasant ta spargalke klientas nusprende jiems reikia BIND. Tai kaip ir liko numestas, atnaujinsiu kai turesiu daugiau laiko.
Panašus sprendimas naudojant Raspberry Pi: http://pi-hole.net/
Artimiausiu metu išbandysiu - vis tiek jau turiu suinstaliuotą DietPi(P2P & musicbox: rtorrent, museek(slsk client), mpd+ncmpcpp+webUI)
@bark rašė:
Panašus sprendimas naudojant Raspberry Pi: http://pi-hole.net/
Artimiausiu metu išbandysiu - vis tiek jau turiu suinstaliuotą DietPi(P2P & musicbox: rtorrent, museek(slsk client), mpd+ncmpcpp+webUI)
Labai sunku ji pavadinti panašiu, sprendimas toks pats + nukreipia AD tinklapius i localhost'e veikianti lighttpd.
Toks pastebejimas (nekreipiant demesio i naudojamas sudo komandas), basic-install.sh skriptas atsiuncia index.html faila, kuris bus matomas uzblokavus reklama. Nemanai kad viena diena tame index.html bus ju reklama?
Paprastas sprendimas tiems kas neturi laiko/noro ar sugebejimu paleisti savo dns servisa.
Galima naudoti jau siulomus kuriu tikrai yra ne vienas. Viena is ju naudoju jau kuri laika ir tikrai esu patenkintas kaip jis veikia. Ji pas save paleisti nera sudetinga, tereikia pakeisti ISP duotus DNS i ju. Kaip tai padaryti jie raso taip pat. OpenDNS
Kriptovaliutos, mining'as ir panasus "reikalai" jau nieko siais laikais nestebina, bet kai atsiranda budai naudoti kitu resursus mums apie tai nezinant tampa problema. Kas tai yra ar kaip visa tai veikia cia nera geriausia vieta diskutuoti, bet sarasas domenu kurie uzsiima mining'u manau telpa i sios temos remus :)
Šio įrašo autorius: Techtronic.
Straipsnis pirmą kartą publikuotas ir pasiskolintas iš čia.
As radau sprendima blokuoti reklamas, tracking servisus bei soc tinklus. Naudoju BIND tam. Stai paprastas budas kaip toki galima paleisti pas save.
Suprantama pirma instaliuoti bind|named (nelendu i tokias detales, forumas nera naujokams).
Tada paprastas setupas:
/etc/namedb/blockeddomain.hosts
Kuris nurodo, kad tarkim google.lt ip adresas bus 127.0.0.1
/etc/namedb/block.zones zonu failas kuriame "blacklistai":
/etc/bind/named.conf konfiguracija:
Na ir kad paprasciau butu block parasiau paprasta shell skriptuka:
Tokio setupo problemos:
1 Laikas kuris reikalingas blocklist sukurti (keleta valandu kol surenkama ka blokuoti).
Privalumai:
1 DNS caching (speeds up DNS queries).
2 Nereikia jokiu AD blockeriu, neapkrauna sistemos (-200 domains = ~ 15MB memory).
3 Toks setupas routeri leidzia apsaugoti visa jusu home network nuo pornografiniu, socialiniu ir panasiu tinklapiu.
Šio įrašo autorius: Ghost.
Straipsnis pirmą kartą publikuotas ir pasiskolintas iš čia.
Siūlau, mano galva, paprastesnį variantą (na serveris tikrai lengvesnis)
Šlamšto blokavimui tinka numatytieji nustatymai, pakanka prisidėti norimus DNS serverių adresus. Pavyzdžiui:
Toliau pasileidžiam serverį, pasitikrinam, ant kokių portų jis kabo:
Pasitikrinam, ar veikia forward direktyva:
Kol kas viskas veikia
Kad atkartoti tai, ką Techtronic scenarijus daro - sintaksė labai paprasta:
Tikrinam:
Taigi ir vėl viskas gražiai suveikė
Reikalui eisant, galima pašalinti įrašus po vieną:
Tikrinam:
Matot, kad ir vėl suranda g00gle serverius.
Laikui bėgant gali susikaupti nemažas sąrašas nepageidaujamų adresų, tad tą sąrašą galima išsisaugoti:
Jei taip atsitiktų, kad prisireikė serverį perkrauti, sąrašus įkelti galima taip:
Kokie pliusai?
1) Nereikia kurti zonų failų
2) Nereikia perkrauti serverio įkeliant zonas, taigi nepradingsta sukauptas cache
3) Labai nesudėtingai eksportuojami/importuojami adresų žurnalai
4) Optimaliau išnaudoja kompiuterio atmintį nei Bind (žr. žemiau)
Atlikau keletą testų Scenarijus aukščiau įkelia į žurnalą 21646 blokuojamą adresą.
Blokuojamųjų URI pasiskolinau iš Techtronic scenarijaus http://ix.io/2Uy/sh.
Unbound operatyviosios atminties sąnaudos:244516 KB viso (įkėlus 21646 zoną).
244516 KB / 21646 = ~ 11.3 KB (vienai zonai)
11.3 x 200 / 1024 = ~ 2.21 MB** (2'iems šimtams zonų).
Išvados:
15 MB / 2.21 MB = Unbound sunaudoja beveik 7 kartus mažiau atminties nei sunaudotų Bind su 200 zonų (kaip minėjo Techtronic).
Sėkmės
Kuo tai geriau nei tarkime "hosts file"?
http://www.putorius.net/2012/01/block-u ... ts-on.html
Na čia tas pats principas, tik įgyvendinimas kitas
Truputį turėtų skirtis užklausų laikas. Sakykim man iš sąrašo su minėtais 20K+ įrašų grep norimą adresą ištraukia per ~ 4 ms, dig savo ruožtu trunka 0 ms (realiai turbūt trunka keletą µs, kurių neberodo). Bet tos kelios milisekundės vargu ar turi didesnės įtakos.
Labiausiai skiriasi, manau, pagal pritaikymo galimybes. Naudojant serverį galima apsaugot visą tinklą (10, 100, 1000, ... kompiuterių), naudojant host failą - tik vieną kompiuterį.
Taip pat, pagal mano siūlomą metodą, lengva įkelti bei pašalinti įrašus.
Hosts failas, kita vertus, negyvena kompiuterio atmintyje, tai galima užskaityti kaip privalumą namų vartotojui, bet dėl to, kaip parodžiau aukščiau, truputį nukenčia greitis.
Beje, visi norintieji išgauti blokuotinų adresų sąrašą iš windows nuorodoje naudojamo hosts failo, tai padaryti galite taip
PAPILDYMAS
Atlikau keletą testų.
Įkeliu ubuntu.lt į blokuojamųjų sąrašą:
Tikrinu, kiek laiko užtrunku vykdydamas užklausą:
Pašalinu ubuntu.lt iš blokuojamųjų sąrašo:
Įkeliu ubuntu.lt į hosts failą:
Tikrinu, kiek laiko užtrunku vykdydamas užklausą:
Panašu, kad sistema “kešina” ir hosts failą, tada lieka vienas skirtumas - patogumas naudotis
DAR PAPILDAU
Neįtikino manęs mano išvados po poros bandymų, kad sistema “kešina” host failą, tad truputį rimčiau patestavau
Įkeliu ubuntu.lt į Unbound blokuojamųjų sąrašą:
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
Vidurkis - 2.1ms
Pašalinu ubuntu.lt iš blokuojamųjų sąrašo:
Įkeliu ubuntu.lt į hosts failą:
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
Vidurkis: 2.0ms
Šįkart rezultatai jau hosts failo naudai
3 bandymai po 10K užklausų Unbound:
3 bandymai po 10K užklausų hosts failas:
SULYGINU JĖGAS
Kad jėgos būtų apylygės, eksportuoju Unbound sąrašą į hosts failą:
Įkeliu ubuntu.lt į Unbound blokuojamųjų sąrašą:
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
Atkreipkit dėmesį, kad susidaro įspūdis, jog Unbound dabar užtrunka ilgiau, bet taip nėra
Pakeičiam /etc/nsswitch.conf failo eilutę:
Štai taip (dns atsiduria pirmiau files):
Pakartoju testą:
Pusė sugaišto laiko kažkur dingo Taip yra todėl, kad dabar kreipiamasi tiesiai į dns serverį, ir jei adresatas nerastas - į hosts failą.
Bet Unbound vistiek užtrunka ilgiau nei įprastai, tad pašalinu files direktyvą. Dabar hosts failas fisiškai nebus liečiamas:
Dar kartą kartoju testą:
2.0ms - skaičiai jau kažkur matyti?
Toliau testuosiu hosts failą.
Atkeičiu /etc/nsswitch.conf į:
Pašalinu ubuntu.lt iš blokuojamųjų sąrašo:
Įkeliu ubuntu.lt į hosts failą:
Atlieku 50 užklausų ir skaičiuoju, kiek vidutiniškai užtrunku vykdydamas vieną:
Testą užbaigiu grąžindamas /etc/hosts failą į pirminę sąranką ir pakartoju Unbound testą:
Taigi Unbound sparta tiesiogiai priklauso nuo hosts failo dydžio. Kitaip tariant, apskritai sistemos dns sparta priklauso nuo hosts failo dydžio.
Idomumo dėlei galima net paskaičiuoti:
29.6 + 2.1 = 31.7ms
Tai beveik atitinka pirminę /etc/nsswitch.conf sąranką, kai pirma kreipiamasi į hosts failą, po to į dns serverį, Unbound šiuo atveju užtruko 31.1ms.
Išvadas galite pasidaryti patys
Truputi papiktino mane @Ghost lyginimas BIND su unbound, bet didelis respektas jam uz alternatyvu buda, nes kiekvienam darbui yra tam skirtas instrumentas, ir siuo atveju unbound yra greitesnis ir naudoja maziau resursu nes jis nera skirtas atsakyti uz DNS zonas (non authoritative). Bet ar yra geresniu? TAIP.
Vienas is tokiu yra Dnsmasq, ir forume jau rasiau kaip ji paleisti, bet kad viska laikyti vienoje temoje perkeliu cia. Taigi paprastas how-to setup Dnsmasq caching DNS uzklausom.
Suprantama pirma mums reikia install Dnsmasq:
Sukuriam nauja faila /etc/dnsmasq.conf arba keiciame esama, mus domina sie parametrai:
Toliau paleiskima dnsmasq ir patirkinam ar tinkamai veikia:
Kaip matom 53 portas atviras. Dabar reikia sukurti faila /etc/resolv.conf.head
DHCP atnaujindamas /etc/resolv.conf naudos resolv.conf.head, todel visada
turesim nameserver nustatyta i 127.0.0.1:
Toliau mums reikia sukurti juodaji sarasa kurio sintakse atrodo taip:
address=/vardas.lt/127.0.0.1
Tokiu budu nukreipsim vardas.lt i 127.0.0.1.
Mano atveju failas /home/minde/.dnsmasqrc:
Tikrinam ar veikia:
Isvados:
Atmintis: 250KB (8 kartus maziau nei Unbound 2.21 MB).
Laikas uzklausom: 0 msec (nes grazina viska is caches, tad kad ir 5000 kartu uzklausa bus kartojama laikas nesikeis).
Sudetingumas: Paprasta setup, lengva keisti blacklista ir tam nereikia jokiu spec teisiu.
Na ir kad butu dar paprasciau, sukuriau lietuviska blacklist kuri galit rasti:
https://posix.lt/blacklist.txt
Keiciant faila C:\Windows\System32\Drivers\etc\hosts. Curl, xargs komandos https://github.com/bmatzelle/gow/wiki
Listas bus nuolatos pildomas.
As turiu dar parases how-to PowerDNS setup spargalkese, jis taip pat veikia greitai bei naudoja mazai resursu. Panasiai kaip Unbound, bet zonas saugo i sqlite database. Daugiau sutinkamas BSD tipo OS.
Kartu database editorius (tested su 200 000 records).

Na gražu
sqlite, kaip suprantu, gali užtrukti kažkur 0.2-30ms vienam įrašui ištraukt?
https://www.sqlite.org/speed.html
Šiaip mintis labai gera, turiu galvoj duombazę, taip kompo atmintis nebūtų perkrauta.
Butent taip ir as galvojau, kad SQLite panaudojimas yra puiki ideja.

Su laiku problemu kaip ir jokiu nera, bet rasant ta spargalke klientas nusprende jiems reikia BIND. Tai kaip ir liko numestas, atnaujinsiu kai turesiu daugiau laiko.
Panašus sprendimas naudojant Raspberry Pi:
http://pi-hole.net/
Artimiausiu metu išbandysiu - vis tiek jau turiu suinstaliuotą DietPi(P2P & musicbox: rtorrent, museek(slsk client), mpd+ncmpcpp+webUI)
Labai sunku ji pavadinti panašiu, sprendimas toks pats + nukreipia AD tinklapius i localhost'e veikianti lighttpd.
Toks pastebejimas (nekreipiant demesio i naudojamas sudo komandas), basic-install.sh skriptas atsiuncia index.html faila, kuris bus matomas uzblokavus reklama. Nemanai kad viena diena tame index.html bus ju reklama?
Paprastas sprendimas tiems kas neturi laiko/noro ar sugebejimu paleisti savo dns servisa.
Galima naudoti jau siulomus kuriu tikrai yra ne vienas. Viena is ju naudoju jau kuri laika ir tikrai esu patenkintas kaip jis veikia. Ji pas save paleisti nera sudetinga, tereikia pakeisti ISP duotus DNS i ju. Kaip tai padaryti jie raso taip pat. OpenDNS
Tema perkelta iš https://legacy.ubuntu.lt/forum/viewtopic.php?f=15&t=9437
Kriptovaliutos, mining'as ir panasus "reikalai" jau nieko siais laikais nestebina, bet kai atsiranda budai naudoti kitu resursus mums apie tai nezinant tampa problema. Kas tai yra ar kaip visa tai veikia cia nera geriausia vieta diskutuoti, bet sarasas domenu kurie uzsiima mining'u manau telpa i sios temos remus :)
https://gitlab.com/ZeroDot1/CoinBlockerLists/issues/1
P.S Admins. tai nera pirma paliesta tema saugumo, gal mums laikas sukurti nauja kategorija "saugumas"?
Sukūriau: https://ubuntu.lt/category/17/
Beje, adminas čia tik vienas - @sirex. Kiti yra pagalbinis personalas, nes bosas dažnai būna užsiėmęs