Jak przekierować do HTTPS za pomocą serwera DNS?

1

Używam serwerów openDNS: 208.67.222.123 / 208.67.220.123 jako dostawcy DNS dla mojego komputera.

Kiedy przechodzę do nieodpowiedniej strony http: // (treści dla dorosłych), przekierowano mnie na https: // open dns site.

Zastanawiam się tylko, jak serwer DNS może przekierowywać z HTTP na zawartość HTTPS?

(i ewentualnie jak to wyłączyć?)

Yarek
źródło

Odpowiedzi:

2

System DNS OpenDNS zwraca numer IP, gdy poprosisz o nieodpowiednią stronę. Twoja przeglądarka łączy się z serwerem znajdującym się pod adresem IP obsługiwanym przez OpenDNS. Wykonują przekierowanie ze swojego serwera za pomocą swojego kodu. Wątpię, czy możesz zmienić to zachowanie.

Daniel K.
źródło
1

Nie można zmienić adresu IP, który zwróci serwer OpenDNS, gdy system wyszukuje adres IP dla nazwy domeny, np. Example.com. Jeśli serwer OpenDNS zwraca adres IP jednego ze swoich serwerów, ten serwer internetowy może wykonać automatyczne przekierowanie na inny adres URL, np. Z http://example.com na https://example.com , jeśli adres IP adres wskazuje na example.com, zwracając kod stanu HTTP 301 do przeglądarki wraz z adresem URL przekierowania. Mogą przekierować twoją przeglądarkę na https://example.com lub http://someothersite.com, o ile example.com rozpozna adres IP swojego własnego serwera.

Możesz jednak zmodyfikować plik hosts w swoim systemie, aby wskazywał poprawny adres IP na przykład.com. W systemach Microsoft Windows plik znajduje się pod adresem C:\Windows\System32\Drivers\etc\hosts. Edytuj plik za pomocą edytora tekstu, takiego jak Notatnik, ale upewnij się, że Notatnik nie dodaje .txt na końcu nazwy pliku, i dodaj następujący wiersz do pliku, zastępując prawdziwy adres IP i pełną nazwę domeny (FQDN) :

10.5.0.25 example.com

Jeśli możesz użyć www.example.com lub example.com, dodaj oba do pliku hosta. Na przykład:

10.5.0.25      example.com
10.5.0.25      www.example.com

Uwaga: jeśli twoje konto nie znajduje się w grupie administratorów w systemie, musisz kliknąć prawym przyciskiem myszy Notatnik lub inny edytor, którego używasz, i wybrać „Uruchom jako administrator”, a następnie podać identyfikator użytkownika i hasło dla konta administratora w celu zapisania wszelkich dokonanych modyfikacji w pliku hosts.

Możesz użyć innego serwera DNS, np. Podanego przez Google w wersji 8.8.8.8, aby znaleźć poprawny adres IP dla www.example.com, wydając następujące polecenie w wierszu polecenia:

nslookup example.com 8.8.8.8

Możesz też uzyskać adres IP na przykład.com, korzystając z internetowej usługi DNS, takiej jak Wyszukiwanie DNS .

Następnie za każdym razem, gdy umieścisz http://example.com w pasku adresu przeglądarki, system powinien najpierw sprawdzić plik hosts pod kątem mapowania adresów FQDN na adresy IP. Jeśli znajdzie tam odpowiedni wpis, nie musi skonsultować się z serwerem DNS, aby uzyskać adres IP.

Ponieważ system jest skonfigurowany do korzystania z serwerów DNS kontroli rodzicielskiej OpenDNS, np. Patrz Instrukcje konfiguracji routera FamilyShield , a nie zwykłych serwerów DNS OpenDNS, następuje przekierowanie do systemu block.opendns.com. To znaczy, ponieważ twój system używa 208,67.222.123 i 208.67.220.123, a nie 208.67.222.222 lub 208.67.220.220 , ponieważ ten drugi zwraca 206.125.164.82 dla sex.com, podobnie jak serwer DNS Google z 8.8.8.8, podczas gdy poprzedni zwraca 146.112 .61.106 jako adres IP sex.com, zostajesz wysłany do block.opendns.com zamiast do serwera WWW dla tej witryny.

$ nslookup sex.com 208.67.222.222
Server:     208.67.222.222
Address:    208.67.222.222#53

Non-authoritative answer:
Name:   sex.com
Address: 206.125.164.82

$ nslookup sex.com 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   sex.com
Address: 206.125.164.82

$ nslookup sex.com 208.67.222.123
Server:     208.67.222.123
Address:    208.67.222.123#53

Non-authoritative answer:
Name:   sex.com
Address: 146.112.61.106

Jeśli połączysz się z portem 80 pod adresem 146.112.61.106 przez telnet i emulujesz zapytanie, które przeglądarka prześle, wprowadzając zapytanie poniżej, możesz zobaczyć odpowiedź ze strony pod tym adresem IP:

GET / HTTP/1.1
Host: sex.com

Odpowiedź jest następująca:

$ telnet 146.112.61.106 80
Trying 146.112.61.106...
Connected to 146.112.61.106.
Escape character is '^]'.
GET / HTTP/1.1
Host: sex.com

HTTP/1.1 403 Forbidden
Server: openresty/1.7.7.2
Date: Sun, 09 Aug 2015 18:05:01 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive

202
<html><head><script type="text/javascript">location.replace("https://block.opendns.com/?url=84708915688078&ablock&server=ash15&prefs=&tagging=&nref");</script></head></html> 

Nie jestem teraz pewien, co tak naprawdę chcesz zrobić. Jeśli chcesz odwiedzić rzeczywistą stronę internetową, jak sugeruje twoje pytanie, wpis hosta powinien na to pozwolić, jeśli dodasz do niej następujące wpisy:

206.125.164.82   sex.com
206.125.164.82   www.sex.com

Jeśli jednak chcesz przekierować przeglądarkę, aby przejść do witryny, którą kontrolujesz, jak sugeruje Twój komentarz, prawdopodobnie będziesz musiał użyć serwera proxy, takiego jak Fiddler, i dodać jego certyfikat bezpieczeństwa do listy zaufanych certyfikatów głównych w systemie , więc może to być man-in-the-middle (MITM), aby przeglądarki w twoim systemie nie zdawały sobie sprawy, że nie otrzymują rzeczywistych certyfikatów bezpieczeństwa dla witryn odwiedzanych za pomocą HTTPS. Niektóre złośliwe oprogramowanie, takie jak Genius Box , wykorzystuje ataki MITM do przechwytywania i modyfikowania ruchu HTTPS.

punkt księżycowy
źródło
Ciekawe ... Kiedy wchodzę na sex.com, zmienia się na block.opendns.com . Używając pliku hosts nie mogę jednak przekierować tego https do mojej domeny: spowoduje to błąd CERTYFIKATU HTTPS. Czy istnieje sposób przekierowania na moją stronę PRZED opendns przekierowaniem do HTTPS?
yarek,
@yarek, myślałem, że chcesz przejść do prawdziwej strony internetowej dla domeny, ale twój komentarz sugeruje, że nie to chcesz robić. Twój komentarz sugeruje, że chcesz przekierować wszelkie próby przejścia do rzeczywistej witryny zamiast własnej nazwy domeny. Twoja przeglądarka oczywiście zgłosi, że certyfikat bezpieczeństwa twojej witryny nie jest prawidłowy dla domeny, chyba że jesteś właścicielem sex.com i jej certyfikatu. Czy zamiast tego próbujesz przekierować zapytania przeglądarki do własnej nazwy domeny? Dodałem kilka dodatkowych informacji powyżej do tego, co robi OpenDNS.
punkt księżycowy
NIESAMOWITY ! W rzeczywistości staram się: gdy opendns zobaczy witrynę dla dorosłych, przekierowuje do 146.112.61.106, gdzie javascript przekierowuje do wersji https. Chcę przekierować na mój serwer 127.0.0.1 zamiast 146.112.61.106: czy można to zrobić? HOSTY 127.0.0.1 block.opendns.com działało przed zmianą przekierowania HTTPS.
yarek,
moim rozwiązaniem byłoby MAP od 146.112.61.106 do 127.0.0.1: czy można to zrobić? Może z poleceniem netsh lub polecenie trasy? (Windows)
Yarek,