Własny, bezpieczny serwer DNS
: 08 sty 2016, 17:50
Z pozdrowieniami dla Ziemian.
Artykuł Krang tłumaczy, pisze na temat Domain Name System, bo Ziemianie mało o nim wiedzą, o DNS w Cebuli a zarazem dlatego, że Krang tworząc PinkOS sam potrzebował dodatkowych informacji.
Zacznijmy konfigurację własnego serwera DNS.
Aby sobie taki postawić, nie musisz wiedzieć jak DNS działa, tak jak Krang. Wystarczy, że przeczytasz od początku do końca. Jupikajej motherfucker!
Co daje Ci ten Tut?
-Stworzysz własny serwer DNS (cached – dobry przeciw atakom DNS Hijacking)
-Zapobiegniesz wyciekom DNS dla adresów .onion i .i2p
Wymagania:
Nie za dużo:
-Dystrybucja Linuksa np. Fedora. (dla innych np. Debian etc. będzie to samo tylko trochę gdzie indziej będą pliki i minimalnie inne komendy)
-Znajomość podstawowych poleceń systemu Linuks.
Rozdział 1: Instalacja niezbędnego oprogramowania
Krang proponuje zainstalować DNS serwer o nazwie BIND.
Rozdział 2: Konfiguracja BIND
Konfiguracja BIND znajduje się w: /etc/named.conf
Musisz edytowac ten plik jako root i wkleić do niego to co poniżej krang wklepał.
To zmodyfikowana wersja konfiguracji w porównaniu co do domyślnej z Fedory.
Najważniejsze w tym wszystkim jest to aby pozwolić tylko na zapytania z localhost (IPv4 127.0.0.1 or IPv6 ::1)
Plik dump-file może wskazywać na /dev/null ponieważ tworzy się tylko wtedy gdy wykonasz polecenie rndc dumpdb to samo ma się do statistics-file (rndc stats). Powinny nie istnieć i nie zostaną utworzone jeśli nie uruchomisz powyższej komendy.
Opcja directory ustawia główny katalog dla wszystkich plików konfiguracji. Dla przykładu plik “named.ca jest w directory+”named.ca” = “/var/named/named.ca” i zawiera listę serwerów root o które zapytasz. Jeśli chcesz zobaczyć nową listę wpisz:
Uaktualniaj plik named.ca ręcznie. Krang nie poleca aktualizować te listy zbyt często. Wystarczy raz na rok!
Rozdział 3: Startujemy serwer
Aby uruchomić serwer wpisz:
skrypt dostepny dla Redhato-pochodnych dystrybucji, w innym wypadku użyj
Jeśli tak jak Krangowi pojawi się Twoim ludzkim oczom napis:
to znaczy, że jesteś mądrą ludzką kreaturą i wszystko działa.
Rozdział 4: Testowanie serwera
Aby sprawdzić czy serwer działa poprawnie wejdź do terminala jako zwykły user i uruchom kilka zapytań o rozwiązanie nazwy DNS.
dostaniesz odpowiedź:
Ważne aby upewnić się, że wartość SERVER w odpowiedzi DNS jest ustawiona na 127.0.0.1
Ponownie wykonaj zapytanie a powinieneś otrzymać odpowiedź:
Teraz widzisz, że “Query time” wynosi 0 a to dlatego, bo pierwszy wynik zapytania DNS został wrzucony do cache.
Rozdział 5
Jeśli masz zamiar wykorzystać swój komputer jako TOR EXIT NODE przeczytaj sekcję A; jeśli jako TOR CLIENT to i A i B hahahaha!
Sekcja A: Tor Exit Node
Wklepujemy:
Jeśli BIND ustawiony jest jako usługa i kilka innych programów nadpisuje plik resolve.conf na starcie (tak jak np. klient DHCP) to musisz dopisać powyższą linijkę na samym dole w pliku skryptu: /etc/rc.d/rc.local aby zawsze podmieniał plik resolv.conf podczas uruchamiania systemu. Inna opcja to rekonfiguracja klienta DHCP (jeśli go używasz).
Sekcja B: Klient TOR.
Konfiguracja NetworkManagera lub czegokolwiek co tam używasz człowieku aby wskazać serwer DNS na 127.0.0.1. Wystarczy adres serwera DNS pozostałe pola mogą pozostać puste.
Możesz też ręcznie edytować plik /etc/resolv.conf
Graficzny interfejs odpala się:
i wybiera Network Card (np. eth0) klika edit.
Wprowadza Primary DNS i Secondary DNS na 127.0.0.1
OK
File->Save and close the Network Configuration Tool.
Restart usługi:
lub dla Debiana np.
Rozdział 6: Zwalczanie przecieków DNS
Nawet przy zwykłej instalacji serwera BIND może dojść do wycieków DNS.
Wpisz:
Otrzymamy error NXDOMAIN (czyli taki 404 haha, że niby nie znaleziono)
jednak zapytanie o adres zostało rozesłane do całego internetu. Tylko po to by dowiedzieć się, że taki adres nie istnieje.
Jeśli dokonałeś jakiejś pomyłki w konfiguracji oprogramowania, przy wysłaniu zapytania DNS serwer BIND pozwoli wyciec adresowi o który pytałeś.
Aby uniknąć takiej sytuacji, możesz skonfigurować BIND tak aby blokował wszystkie zapytania DNS wysłane dla stron .onion.
Idziemy do /var/named/named.empty i musi on wyglądać tak:
a dzięki 2 wpisom w konfiguracji, którą skopiowałeś na początku tego artykułu:
czyli końcówka /etc/named.conf
wszystko będzie dobrze.
Wklep:
W WireShark możesz zobaczyć:
że żaden pakiet nie został wysłany. “rname.invalid” – jak w pliku konfiguracyjnym.
Rozdział 7: limity pamięci
Informacje “cache” jakie przetrzymuje BIND, trzyma w pamięci RAM a nie na dysku. To wszystko dla podwyższenia prywatności.
Zkaszowane elementy zostają usunięte gdy wygasną, jednak domyślnie nie ma, żadnego ograniczenia dla limitu do jakiego może się rozrosnąć nasz cache.
Jeśli chcesz ustawić limit pamięci dla cache zapytań DNS w BIND musisz dodać do konfiguracji opcję:
Opcja ta przydatna jest tylko dla TOR EXIT NODE. Do zastosowań prywatnych nie ma znaczenia.
Powyższy tutorial jest częścią książki, którą pisze Krang o anonimowości w sieci!
Joł joł joł moi czarni bracia. Miłego popołudnia.
steo uznał, że po co ma się produkować, skoro to już jest? Ale! Żeby wszystko było elegalnco i legalnie, steo podaje link (taki dla kumatych):
Wchodzimy w cebulę i na technodrome Kranga i doklepujemy: blog/index.php/wlasny-bezpieczny-serwer-dns/ i tak oto otrzymujemy oryginał.
Odpowiedzialność prawną za ten artykuł ponosi administrator forum.haker.edu.pl/![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Artykuł Krang tłumaczy, pisze na temat Domain Name System, bo Ziemianie mało o nim wiedzą, o DNS w Cebuli a zarazem dlatego, że Krang tworząc PinkOS sam potrzebował dodatkowych informacji.
Zacznijmy konfigurację własnego serwera DNS.
Aby sobie taki postawić, nie musisz wiedzieć jak DNS działa, tak jak Krang. Wystarczy, że przeczytasz od początku do końca. Jupikajej motherfucker!
Co daje Ci ten Tut?
-Stworzysz własny serwer DNS (cached – dobry przeciw atakom DNS Hijacking)
-Zapobiegniesz wyciekom DNS dla adresów .onion i .i2p
Wymagania:
Nie za dużo:
-Dystrybucja Linuksa np. Fedora. (dla innych np. Debian etc. będzie to samo tylko trochę gdzie indziej będą pliki i minimalnie inne komendy)
-Znajomość podstawowych poleceń systemu Linuks.
Rozdział 1: Instalacja niezbędnego oprogramowania
Krang proponuje zainstalować DNS serwer o nazwie BIND.
Kod: Zaznacz cały
# yum install bind bind-utils
Konfiguracja BIND znajduje się w: /etc/named.conf
Musisz edytowac ten plik jako root i wkleić do niego to co poniżej krang wklepał.
Kod: Zaznacz cały
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "/dev/null";
severity dynamic;
};
channel default_stderr {
file "/dev/null";
severity dynamic;
};
channel default_syslog {
file "/dev/null";
severity dynamic;
};
channel null {
file "/dev/null";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
zone "onion" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "i2p" IN {
type master;
file "named.empty";
allow-update { none; };
};
Najważniejsze w tym wszystkim jest to aby pozwolić tylko na zapytania z localhost (IPv4 127.0.0.1 or IPv6 ::1)
Plik dump-file może wskazywać na /dev/null ponieważ tworzy się tylko wtedy gdy wykonasz polecenie rndc dumpdb to samo ma się do statistics-file (rndc stats). Powinny nie istnieć i nie zostaną utworzone jeśli nie uruchomisz powyższej komendy.
Opcja directory ustawia główny katalog dla wszystkich plików konfiguracji. Dla przykładu plik “named.ca jest w directory+”named.ca” = “/var/named/named.ca” i zawiera listę serwerów root o które zapytasz. Jeśli chcesz zobaczyć nową listę wpisz:
Kod: Zaznacz cały
$ dig @e.root-servers.net . ns
Rozdział 3: Startujemy serwer
Aby uruchomić serwer wpisz:
Kod: Zaznacz cały
# service named start
Kod: Zaznacz cały
/etc/init.d/named start
Kod: Zaznacz cały
Starting named: [ OK ]
Rozdział 4: Testowanie serwera
Aby sprawdzić czy serwer działa poprawnie wejdź do terminala jako zwykły user i uruchom kilka zapytań o rozwiązanie nazwy DNS.
Kod: Zaznacz cały
$ dig @127.0.0.1 thepiratebay.org
Kod: Zaznacz cały
;; Query time: 767 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 22 21:47:09 2010
;; MSG SIZE rcvd: 122
Ponownie wykonaj zapytanie a powinieneś otrzymać odpowiedź:
Kod: Zaznacz cały
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 22 21:47:39 2010
;; MSG SIZE rcvd: 122
Rozdział 5
Jeśli masz zamiar wykorzystać swój komputer jako TOR EXIT NODE przeczytaj sekcję A; jeśli jako TOR CLIENT to i A i B hahahaha!
Sekcja A: Tor Exit Node
Wklepujemy:
Kod: Zaznacz cały
# echo -ne "nameserver 127.0.0.1\n" > /etc/resolv.conf
Sekcja B: Klient TOR.
Konfiguracja NetworkManagera lub czegokolwiek co tam używasz człowieku aby wskazać serwer DNS na 127.0.0.1. Wystarczy adres serwera DNS pozostałe pola mogą pozostać puste.
Możesz też ręcznie edytować plik /etc/resolv.conf
Graficzny interfejs odpala się:
Kod: Zaznacz cały
$ system-config-network
Wprowadza Primary DNS i Secondary DNS na 127.0.0.1
OK
File->Save and close the Network Configuration Tool.
Restart usługi:
Kod: Zaznacz cały
# service network restart
Kod: Zaznacz cały
/etc/init.d/network restart
Nawet przy zwykłej instalacji serwera BIND może dojść do wycieków DNS.
Wpisz:
Kod: Zaznacz cały
$ dig @127.0.0.1 jakikolwiek-cebulowy-adres.onion
jednak zapytanie o adres zostało rozesłane do całego internetu. Tylko po to by dowiedzieć się, że taki adres nie istnieje.
Jeśli dokonałeś jakiejś pomyłki w konfiguracji oprogramowania, przy wysłaniu zapytania DNS serwer BIND pozwoli wyciec adresowi o który pytałeś.
Aby uniknąć takiej sytuacji, możesz skonfigurować BIND tak aby blokował wszystkie zapytania DNS wysłane dla stron .onion.
Idziemy do /var/named/named.empty i musi on wyglądać tak:
Kod: Zaznacz cały
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
czyli końcówka /etc/named.conf
Kod: Zaznacz cały
zone "onion" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "i2p" IN {
type master;
file "named.empty";
allow-update { none; };
};
Wklep:
Kod: Zaznacz cały
# service named restart
Kod: Zaznacz cały
$ dig honeybee.onion
...
onion. 10800 IN SOA onion. rname.invalid. 0 86400 3600 604800 10800
...
Rozdział 7: limity pamięci
Informacje “cache” jakie przetrzymuje BIND, trzyma w pamięci RAM a nie na dysku. To wszystko dla podwyższenia prywatności.
Zkaszowane elementy zostają usunięte gdy wygasną, jednak domyślnie nie ma, żadnego ograniczenia dla limitu do jakiego może się rozrosnąć nasz cache.
Jeśli chcesz ustawić limit pamięci dla cache zapytań DNS w BIND musisz dodać do konfiguracji opcję:
Kod: Zaznacz cały
options {
...
max-cache-size 16M;
...
}
Powyższy tutorial jest częścią książki, którą pisze Krang o anonimowości w sieci!
Joł joł joł moi czarni bracia. Miłego popołudnia.
steo uznał, że po co ma się produkować, skoro to już jest? Ale! Żeby wszystko było elegalnco i legalnie, steo podaje link (taki dla kumatych):
Wchodzimy w cebulę i na technodrome Kranga i doklepujemy: blog/index.php/wlasny-bezpieczny-serwer-dns/ i tak oto otrzymujemy oryginał.
Odpowiedzialność prawną za ten artykuł ponosi administrator forum.haker.edu.pl/
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)