Dzisiaj drogie dzieci, nauczymy się jak uprzykrzyć życie reklamodawcom, a sobie oszczędzić łącza, zasobów systemowych i nerwów.

Sposób nie jest doskonały. Niektóre serwisy zawierają własne repozytoria reklam, także wciąż jesteśmy skazani na 'bezpłatną analizę muskulatury' i inne pierdoły tego pokroju.

You've been warned.

W trakcie pierwszej implementacji tegoż systemu okazało się, że w sieci istnieje poradnik [1] ogarniający całe zagadnienie. Chciałem jednak przybliżyć jego treść osobom mniej obeznanym z językiem angielskim i podzielić się wrażeniami, których sam doświadczyłem.


Dnsmasq jest to mikroserwer dhcp i dns. Przeznaczony jest dla małych sieci takich jak domowe lany [2], ale w konfiguracji gdzie komputer jest podłączony bezpośrednio do Internetu (przez router czy modem) sprawuje się równie dobrze.

Wujek taki ma i bardzo sobie chwali, ale skupię się na instalacji lokalnej.

RTFM, a nie powinno ;)

Zaczynajmy. Na dobry początek instalujemy dnsmasq

apt-get install dnsmasq

W moim przypadku jest to wersja 2.55 (repozytorium unstable). Na prototypowym Gentoo mam 2.52 i korzystam z tego samego konfiga. W wersji z Lenny'ego (ktoś tego używa ?) również nie powinno być problemów.

Do /etc/dnsmasq.conf wpisujemy następującą treść:

strict-order
conf-file=/etc/badhosts.conf
log-queries
log-facility=daemon

Nie zagłębiając się w szczegóły konfiguracji (więcej w man dnsmasq), w kolejnym kroku pobieramy listę reklamiarzy,

wget lis6502.sh.dug.net.pl/bads.template -O /etc/badhosts.conf

oraz konfigurujemy dodatkowy wirtualny interfejs na potrzeby pixelserva.

Dopisz do /etc/network/interfaces:

auto lo:0
iface lo:0 inet static
      address 127.0.250
      netmask 255.0.0.0

Uruchom świeżo skonfigurowany interfejs:

ifup lo:0

75% roboty za nami ;) Pozostała rzecz kluczowa, czyli PixelServer.

PixelServer to mały perlowy skrypt, którego życiową misją jest wysłanie protokołem http, małego, przezroczystego GIF'a o wymiarach 1x1 piksel.

wget lis6502.sh.dug.net.pl/pixelserv.pl -O /usr/local/sbin/pixelserv.pl
wget lis6502.sh.dug.net.pl/rcskrypt.sh  -O /etc/init.d/ps
chmod u+x /etc/init.d/ps
chmod u+x /usr/local/sbin/pixelserv.pl

Uruchom

/etc/init.d/ps start

Wejdź na http://127.0.0.250 ;przeglądarka zmienia tytuł na Obrazek GIF 1x1. O to nam chodziło. Teraz czas na zmianę najważniejszego dla naszego systemu serwera DNS. W tym celu jako pierwszą linię w /etc/resolv.conf wpisz

 nameserver 127.0.0.1

Zrestartuj dnsmasq przez

 /etc/init.d/dnsmasq restart

i wejdź na nk.pl, wrzuta.pl, czy inne zareklamione miejsce.

Dodaj do autostartu wszystkie usługi

ln -s /etc/init.d/ps /etc/rc2.d/S30pixelserv
ln -s /etc/init.d/dnsmasq /etc/rc2.d/S30dnsmasq

Gotowe.

Założę się że korzystasz z DHCP. W tym celu przygotujemy naszego DNS'a.

W pliku /etc/dhcp/dhclient.conf zmień linię

#prepend domain-name-servers 127.0.0.1;

na

prepend domain-name-servers 127.0.0.1;

Edytuj /etc/badhosts.conf z zachowaniem składni

address=/adres.reklamiarza/127.0.0.250

-A skąd mam wziąć adresy reklamiarzy?

To już temat na osobny artykuł ;) W miarę możliwości będę uaktualniał listę.

Uwaga: Do reklamiarzy zaliczam również Google z ich adsensem, doubleclickiem i innymi programami partnerskimi.


Przypisy:

  1. http://wiki.flexion.org/SettingUpDNSMasq.html#1.3
  2. http://pl.wikipedia.org/wiki/DHCP