Czy można utworzyć własny główny serwer DNS?

14

Jestem ciekawy. Wciąż czytam o tym, jak nasi dostawcy usług internetowych i pośrednicy internetowi rejestrują i śledzą wszystkie żądania DNS, pozostawiając po sobie ślad bułki tartej w wielu logach, a także zezwalają na przejęcie DNS w celach reklamowych (patrzę na ciebie, Cox Communications!).

Niezależnie od innych metod ochrony prywatności / bezpieczeństwa, chciałbym szczególnie wiedzieć, czy możliwe jest uruchomienie serwera DNS we własnej sieci lokalnej, _ faktycznie ma informacje o strefie głównych serwerów DNS (dla .com, .net ,. org) domeny.

Wiem, że możesz skonfigurować DNS, który w zasadzie tylko mapuje maszyny w twojej domenie, ale czy można w zasadzie poprosić o kopię / transfer informacji o głównym DNS, które mają być przechowywane na twoim własnym serwerze DNS, abyś mógł ominąć wychodzenie do Internetu w celu uzyskania DNS w ogóle informacje do przeglądania stron internetowych?

Mam nadzieję, że wszystko jest jasne. Nie chcę, aby mój serwer DNS miał tylko informacje o mojej sieci wewnętrznej - chcę, aby zawierały zduplikowane informacje, które mają duże internetowe serwery DNS, ale chciałbym, aby te informacje były lokalnie na moim serwerze DNS.

Czy istnieje coś takiego jak transfery strefy BGP poza DNS?

Aktualizacja: Czy są jakieś produkty / oprogramowanie OSS, które mogłyby w zasadzie „zeskrobać” te informacje z zewnętrznego łańcucha DNS do lokalnej pamięci podręcznej w dużych ilościach, aby były gotowe, gdy ich potrzebujesz, w przeciwieństwie do buforowania ich, gdy jawnie zażądasz rekordów domeny?

pythonnewbie
źródło

Odpowiedzi:

12

DNS z założenia nie pozwala na posiadanie wiarygodnej kopii wszystkich stref, ponieważ wykorzystuje hierarchiczny system nazewnictwa.

Serwery główne są autorytatywne w identyfikowaniu serwera odpowiedzialnego za daną domenę najwyższego poziomu (TLD). Na przykład www.example.netrozpoznawanie najpierw sprawdzi serwer główny, aby zidentyfikować autorytatywny serwer nazw .net. Serwer .netnazw zidentyfikuje autorytatywny serwer nazw, dla example.netktórego następnie zwróci rekord www.example.net.

Nie można pobrać kopii wszystkich stref. Możesz jednak uruchomić lokalny buforujący serwer nazw. Buforowy serwer nazw zapewni lokalną kopię wszystkich rozstrzygniętych rekordów, które wygasają przy użyciu czasu wygaśnięcia (TTL) określonego dla rekordu. Proszę pamiętać, że moje wyjaśnienie to uproszczony opis protokołu DNS, który można szczegółowo zbadać, czytając definicje w zapytaniu o komentarze .

Podczas gdy przechwytywania NXDOMAIN można uniknąć, uruchamiając lokalną pamięć podręczną, należy pamiętać, że cały ruch związany z rozpoznawaniem DNS będzie nadal przesyłany niezaszyfrowanym przez połączenie internetowe. Twój dostawca usług internetowych może potencjalnie monitorować ten ruch i nadal widzieć komunikację. Umowy, które masz z usługodawcą internetowym, a także lokalne przepisy prawne będą ostatecznymi środkami do ustalenia, w jaki sposób traktowana jest twoja komunikacja. Umowy twojego dostawcy usług internetowych będą zawierać Warunki korzystania z usługi, Politykę prywatności i wszelkie dodatkowe umowy, które możesz mieć ze swoim dostawcą usług internetowych.

Korzystanie z szyfrowanych protokołów jest jedną z najlepszych metod zabezpieczenia danych przed podsłuchem podczas transportu. Jednak nawet to nie gwarantuje anonimowości. Istnieją dodatkowe protokoły, takie jak Tor i Freenet , które próbują wprowadzić anonimowość do Internetu, ponieważ nigdy nie została zaprojektowana tak, aby była naprawdę anonimowa.

Warner
źródło
1
Prosta odpowiedź brzmi: nie, nie możesz. Odpowiedź techniczna znajduje się powyżej w odpowiedzi Warnera. Nie ma jednego zestawu serwerów, który zawiera wszystkie informacje DNS. Serwery root po prostu odsyłają do jednego z serwerów TLD, który kieruje żądanie dalej w dół.
Rex,
1
Niektórzy dostawcy usług internetowych umożliwiają wyłączenie przechwytywania NXDOMAIN. Niektórzy usługodawcy internetowi zapewniają (głupi i fałszywy) mechanizm oparty na plikach cookie, aby „wyłączyć” przejmowanie NXDOMAIN. Istnieją również alternatywne serwery nazw, których można użyć zamiast serwera nazw dostawcy usług internetowych.
Brian
3

Parę rzeczy:

Jeśli skonfigurujesz serwer tak, aby korzystał ze wskazówek dotyczących roota zamiast z usług przesyłania dalej, nie musisz się martwić problemami MITM (przynajmniej od porywaczy ISP i DNS). W przypadku wszystkich zewnętrznych rozpoznawania DNS serwer zapyta o wskazówki dotyczące roota, które skierują cię do serwerów gTLD dla danej domeny najwyższego poziomu (.com, itp.), A następnie skierują cię do serwerów NS dla danej domeny .

Jeśli naprawdę chcesz stworzyć swój własny serwer root, z pewnością możesz, chociaż nie wiem, jak by to Ci zrobiło. Oto jak to zrobić na serwerze DNS systemu Windows:

Pobierz plik strefy głównej DNS i zapisz go jako root.dns w katalogu% systemroot% \ system32 \ dns na serwerze DNS systemu Windows, użyj kreatora tworzenia strefy DNS, aby utworzyć nową podstawową strefę wyszukiwania do przodu o nazwie „.” (bez cudzysłowów), usuń zaznaczenie opcji tworzenia strefy zintegrowanej z AD, wpisz „.” dla nazwy strefy (bez cudzysłowów) wybierz opcję użycia istniejącego pliku, a pole nazwy pliku strefy zostanie automatycznie wypełnione nazwą root.dns (jeśli nie jest wpisane), pozostaw tę opcję, aby nie zezwalaj na aktualizacje dynamiczne bez zmian, kliknij przycisk Zakończ po przejściu przez kolejne kroki kreatora. Masz teraz serwer główny ze strefami i rekordami stref dla wszystkich serwerów gTLD.

Pamiętaj, że spowoduje to wyłączenie opcji przekazywania i wskazówek dotyczących serwerów głównych na serwerze (ponieważ Twój serwer jest teraz serwerem głównym), a także pamiętaj, że jeśli informacje gTLD ulegną zmianie, serwer nie będzie w stanie powiadomić o tych zmianach.

joeqwerty
źródło
Nic nie powstrzymuje ISP przed przejęciem adresów IP serwerów głównych (oprócz DNSsec) ... Poza tym, poprawne.
Chris S
1

Dla ściśle powiązanych serwerów istnieją transfery stref. Działają one podobnie jak ogłoszenia BGP. Ze względów bezpieczeństwa są one zwykle blokowane dla innych serwerów.

Jeśli uruchomisz buforowany serwer nazw, skopiuje on listę serwerów głównych, a wkrótce będą mieć katalogi główne dla domen .com, .net itp. Istnieje bardzo dobry powód, dla którego DNS jest dystrybuowany. W przeciwnym razie wszyscy pracowaliby z przestarzałymi danymi. Rozmiar bazy danych byłby dość duży, a większość danych Cię nie interesuje.

Istnieją opcje, aby zmniejszyć ryzyko zatrucia DNS, a dobre oprogramowanie radzi sobie z problemami, gdy tylko zostaną poznane. Istnieją organizacje, które pracują nad dostarczaniem oczyszczonych danych, które mogą być wykorzystane jako dostawcy usług. Odfiltrują one niektóre próby zatrucia. Spójrz na używanie OpenDNS lub Google jako dostawców usług nadrzędnych.

Główne strefy DNS są teraz podpisane i coraz częściej widzę, że mój serwer pocztowy zgłasza, że ​​dane DNS zostały podpisane. Podpisanie DNS zgłoszono jako wymaganie dla IPV6. Podpisany DNS bardzo utrudnia zatruwanie pamięci podręcznej, ale dodatkowo utrudnia zarządzanie DNS.

BillThor
źródło
1

Z pewnością możesz skonfigurować własny serwer i uczynić go autorytatywnym dla roota, ale nie wiem, w jaki sposób możesz wypełnić go plikami stref serwerów root. Nie możesz po prostu poprosić o transfer strefowy, więc myślę, że będziesz musiał go wypełnić, zachowując swoje pamięci podręczne.

Zmodyfikuj root.hints na innych serwerach nazw, aby wskazywały na prywatny serwer root i pozwól na rozpoczęcie testowania.

Pamiętaj jednak, że serwery root tylko wiedzą, które serwery są autorytatywne dla TLD, nic więcej. Zasadniczo będziesz musiał odtworzyć całą hierarchię serwerów, co wydaje się niemożliwe.

Martijn Heemels
źródło
0

Tak, jedną z funkcji serwerów DNS jest lokalne buforowanie często żądanych zapytań, zbyt często omijanie podanego ttl.

Z pewnością możesz uruchomić własne dns, nie ma problemu. Ale serwery root i serwery domeny najwyższego poziomu, będziesz musiał zapytać wujka Sama.

Rejestrowanie wszystkich żądań dns jest możliwe, ale byłoby szalone.


źródło
Ale poleganie na pamięci podręcznej oznaczałoby, że już wysłałeś żądanie DNS dla danej domeny, co przeczy całemu celowi próby posiadania wyłącznie (lub głównie) lokalnych żądań DNS.
pythonnewbie