Kaip pašalinti Deal Fox?

S
  • 9 Vas '15

Ubuntu ir Firefox naudoju jau aštuntus metus ir pirmą kartą susidūriau su tokia problema. Firefox naršyklėje lenda Deal Fox blokai. Kadangi įjungtas AdBlock, tie blokai tušti. Kas tai ir kaip juos pašalinti?

T
Techtronic
Mindaugas N.
  • 9 Vas '15

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";};

/etc/bind/named.conf konfiguracija:

acl "xfer" {
    none;
};

acl "trusted" {
    127.0.0.0/8;
    ::1/128;
};

options {
    directory "/var/bind";
    pid-file "/run/named/named.pid";
    zone-statistics yes;
    listen-on { 127.0.0.1; };
    listen-on-v6 { none; };
    allow-query {
        trusted;
    };
    allow-query-cache {
        trusted;
    };

    allow-recursion {
        trusted;
    };

    allow-transfer {
        none;
    };

    allow-update {
        none;
    };

    forward first;
    forwarders {
        111.222.333.1;    // ISP NS
        111.222.333.2;    // ISP NS
    //    8.8.8.8;    // Google Open DNS
    //    8.8.4.4;    // Google Open DNS
    };
logging {
    channel default_log {
        file "/var/log/named/named.log" versions 5 size 50M;
        print-time yes;
        print-severity yes;
        print-category yes;
    };
    category default { default_log; };
    category general { default_log; };
};
// include blacklista :-)
include "/etc/namedb/block.zones";

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.

G
  • 9 Vas '15

Siūlau, mano galva, paprastesnį variantą (na serveris tikrai lengvesnis)

# 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:

# invoke-rc.d unbound restart 
Restarting recursive DNS server: unbound.
# netstat -ntulp | grep unbound
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      22272/unbound   
tcp        0      0 127.0.0.1:8953          0.0.0.0:*               LISTEN      22272/unbound   
tcp6       0      0 ::1:53                  :::*                    LISTEN      22272/unbound   
tcp6       0      0 ::1:8953                :::*                    LISTEN      22272/unbound   
udp        0      0 127.0.0.1:53            0.0.0.0:*                           22272/unbound   
udp6       0      0 ::1:53                  :::*                                22272/unbound

Pasitikrinam, ar veikia forward direktyva:

# 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:

# unbound-control local_zone "google.com" static
# 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ą:

# unbound-control local_zone_remove "google.com"
# unbound-control local_data_remove "google.com"

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: 7937
;; 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.216
google.com.             299     IN      A       2.127.252.227
google.com.             299     IN      A       2.127.252.236
<...>

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:

# unbound-control list_local_zones > /etc/unbound/list_local_zones.txt
# unbound-control list_local_data > /etc/unbound/list_local_data.txt

Jei taip atsitiktų, kad prisireikė serverį perkrauti, sąrašus įkelti galima taip:

# while read -r zone; do unbound-control local_zone "$zone"; done < /etc/unbound/list_local_zones.txt
# while read -r zdata; do unbound-control local_data "$zdata"; done < /etc/unbound/list_local_data.txt

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)

Sėkmės

S
  • 10 Vas '15

Išjungiau http://luu.lightquartrate.com/sd/apps/a ... Q9JnJpPQ==

Reklamų neberodo, bet tas velnias dar kompe. Tekste žymi nuorodas, vėrinėja naujus Firefox langus.

S
  • 10 Vas '15

Firefox prieduose radau įdiegtą keistą įskiepį.Išjungiau ir viskas susitvarkė.

T
Techtronic
Mindaugas N.
  • 10 Vas '15

Wooow @Ghost, nuostabus darbas!

G
  • 10 Vas '15
#!/bin/bash

# Domain names
dn_lst=$(/usr/bin/curl -s http://malwaredomains.lehigh.edu/files/justdomains)

cat /dev/null > ./blocked_dn_zones.txt
cat /dev/null > ./blocked_dn_data.txt

function add_lzone() {
  i=0
  /usr/sbin/unbound-control local_zone "$1 static" &> /dev/null && i=$((i+=1))
  /usr/sbin/unbound-control local_data "$1 3600 in A 127.0.0.1" &> /dev/null && i=$((i+=1))
  test "$i" -eq 2 && echo "$1: Atlikta :)" || echo "$1: Nepavyko :/"
}

while read -r domain; do
  echo "$domain static" >> ./blocked_dn_zones.txt
  echo "$domain 3600 in A 127.0.0.1" >> ./blocked_dn_data.txt
  add_lzone "$domain"
done <<< "$dn_lst"

Atlikau keletą testų Scenarijus aukščiau įkelia į žurnalą 21646 blokuojamą adresą. Blokuojamųjų URI pasiskolinau iš Techtronic scenarijaus http://ix.io/2Uy/sh.

Unbound dabar sunaudoja 9.9 MB operatyviosios atminties. Visai neblogai, ką manot?

PATAISYMAS:

Apsimelavau truputį

9.9 - tiek procentų atminties mano serveryje sunaudoja unbound

Tikrieji skaičiai kitokie:
244516 KB viso.
244516 KB / 21646 = 11.3 KB (vienai zonai)
11.3 x 200 / 1024 = 2.21 MB (2'iems šimtams zonų).

Taigi:
15 MB / 2.21 MB = beveik 7 kartus mažiau atminties nei sunaudotų Bind su 200 zonų (kaip minėjo Techtronic).