Ochráňte si sieť pred škodlivými stránkami
Internet je nebezpečné miesto. A často aj veľmi kontroverzné, minimálne ako nasledujúci článok. Dnes budem popisovať trochu kontroverzný spôsob, ako si svoju sieť ochrániť pred škodlivými stránkami zmenou DNS odpovedí na tieto stránky.
Tento článok nemá za úlohu rozoberať morálne princípy sieťovej neutrality. Ukazje len, ako sa niečo dá docieliť za použitia trochu Linuxových skúseností. Kto chce, môže tento návod použiť a ďalej rozvíjať, kto nie, môže ho klľudne ignorovať.
Situácia je nasledovná. Majme sieť, ktorá používa naše rekurzívne DNS v našej správe. Či už je klientom DNS server prideľovaný cez DHCP alebo ho majú klienti nastavený pevne, nechávam na fantázii čitateľa. Za predpokladu, že ako DNS server používame Bind (Named, či ako sa to vlastne volá) na platforme Linux, vieme ovplyvniť odpovede, ktoré klienti dostanú pri dotazovaní sa to-ktoré doménové meno.
Využijeme pri tom projekt DNS-BH Malware Domain Blocklist. Ten zbiera informácie o podozrivých stránkach a pravidelne aktualizuje vo formáte pre Bind a Microsoft DNS Server. Najprv si však vytvoríme zónový súbor pre takéto domény. Ja osobne používam nasledovný uložený v /etc/bind/db.block.
$TTL 86400 ; one day @ IN SOA ns1.example.com. admin.example.com. ( 2013050201 ; serial number YYMMDDNN 28800 ; refresh 8 hours 7200 ; retry 2 hours 864000 ; expire 10 days 86400 ) ; min ttl 1 day NS ns1.example.com. A 127.0.0.1 AAAA ::1 * IN A 127.0.0.1 * IN AAAA ::1
Samozrejme, informácie v zónovom súbore si môžete upraviť podľa ľubovôle.
Zoznam domén vo forme konfiguračného súboru pre Bind stiahneme z mirroru DNS-BH. Takto poskytovaný konfigurák má jednu nevýhodu a síce cestu k zónovému súboru. Preto si vytvoríme skript na stiahnutie a aktualizáciu konfigurácie, ktorý budeme periodicky spúšťať cronom trebárs v noci.
#!/bin/bash wget -O /etc/bind/named.conf.block http://mirror1.malwaredomains.com/files/spywaredomains.zones sed -i 's/\/etc\/namedb\/blockeddomain.hosts/\/etc\/bind\/db.block/' /etc/bind/named.conf.block awk '{ if($0 !~ /^\/\//) { for(i=1;i< =NF;i++){ if($i ~ /zone/){ print " "$(i+1)" "; } } } }' /etc/bind/named.conf.block | tr -d "\"" > /etc/bind/blockeddomains.txt /usr/sbin/rndc reload
Na koniec súboru /etc/bind/named.conf pridáme nasledujúci riadok
include "/etc/bind/named.conf.block";
a spustíme skript. Tým sa stiahne nový zoznam domén, preparsuje sa do formátu pre naše použitie a znova sa načíta konfigurácia Bindu. Celú funkcionalitu si môžeme otestovať napríklad dig-om. V tomto prípade je 172.17.110.7 IP adresa DNS servera.
lukas@adminstation ~ $ dig @172.17.110.7 yunaks.ru ; < <>> DiG 9.9.2-P2 < <>> @172.17.110.7 yunaks.ru ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 38186 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;yunaks.ru. IN A ;; ANSWER SECTION: yunaks.ru. 86400 IN A 127.0.0.1 ;; AUTHORITY SECTION: yunaks.ru. 86400 IN NS ns1.example.com ;; ADDITIONAL SECTION: ns1.example.com. 3600 IN A 172.17.110.7 ;; Query time: 0 msec ;; SERVER: 172.17.110.7#53(172.17.110.7) ;; WHEN: Tue Nov 12 22:43:57 2013 ;; MSG SIZE rcvd: 145
Pozorný čitateľ si isto všimol, že po update zoznamu blokovaných domén nám pribudol ešte jeden súbor - blockeddomains.txt. Je to zoznam samotných blokovaných domén, ktorý môžeme použiť na vytváranie štatistík o tom, ktorí klienti sa dotazujú na tieto domény. Ak máme zapnutý query logging do súboru /var/cache/bind/bind9-query.log, nie je nič jednoduchšie.
lukas@adminstation ~ $ fgrep -f /etc/bind/blockeddomains.txt /var/cache/bind/bind9-query.log 12-Nov-2013 21:41:53.851 client 1.2.3.4#53859: query: i.txtsrving.info IN A + 12-Nov-2013 21:41:54.084 client 1.2.3.4#51561: query: i.txtsrving.info IN A + 12-Nov-2013 21:42:15.117 client 1.2.3.4#48011: query: www.dhgate.com IN A + 12-Nov-2013 21:42:15.139 client 1.2.3.4#60612: query: www.dhgate.com IN AAAA + ...
Spracovávanie štatistík už nechám na vás 🙂
Verím, že dnešný článok bol prínosný a či už niečo z toho niekto niečo použije v praxi ostáva na vás.
Pridaj komentár