
Cloudflare-Unternehmen öffentliches DNS unter Adressen:
- 1.1.1.1
- 1.0.0.1
- 2606: 4700: 4700 :: 1111
- 2606: 4700: 4700 :: 1001
Die Richtlinie soll âDatenschutz an erster Stelleâ lauten, damit Benutzer beruhigt ĂŒber den Inhalt ihrer Anfragen informiert sein können.
Der Dienst ist insofern interessant, als er zusĂ€tzlich zum ĂŒblichen DNS die Möglichkeit bietet, Technologien zu nutzen DNS ĂŒber TLS Đž DNS ĂŒber HTTPS, wodurch Anbieter erheblich daran gehindert werden, Ihre Anfragen auf dem Weg der Anfragen abzuhören â und Statistiken zu sammeln, Werbung zu ĂŒberwachen und zu verwalten. Cloudflare behauptet, dass das Datum der AnkĂŒndigung (1. April 2018 oder 04. in amerikanischer Schreibweise) nicht zufĂ€llig gewĂ€hlt wurde: An welchem ââanderen Tag im Jahr werden die âvier Einheitenâ vorgestellt?
Da das Publikum von Habr technisch versiert ist, ist der traditionelle Abschnitt âWarum brauchen Sie DNS?â nicht ausreichend. Ich werde es am Ende des Beitrags platzieren, aber hier werde ich praktisch nĂŒtzlichere Dinge erwĂ€hnen:
Wie nutzt man den neuen Service?
Am einfachsten ist es, die oben genannten DNS-Serveradressen in Ihrem DNS-Client anzugeben (oder als Upstream in den Einstellungen des von Ihnen verwendeten lokalen DNS-Servers). Ist es sinnvoll, die ĂŒblichen Werte zu ersetzen? (8.8.8.8 usw.) oder etwas seltener (77.88.8.8 und Ă€hnliche) bis hin zu den Servern von Cloudflare â die entscheiden fĂŒr Sie, sprechen aber fĂŒr einen AnfĂ€nger Reaktionsgeschwindigkeit, wonach Cloudflare schneller ist als alle Konkurrenten (ich möchte es klarstellen: Die Messungen wurden von einem Drittanbieter durchgefĂŒhrt und die Geschwindigkeit fĂŒr einen bestimmten Kunden kann natĂŒrlich unterschiedlich sein).

Es ist viel interessanter, mit neuen Modi zu arbeiten, bei denen die Anfrage ĂŒber eine verschlĂŒsselte Verbindung zum Server fliegt (tatsĂ€chlich wird die Antwort darĂŒber zurĂŒckgegeben), dem erwĂ€hnten DNS-over-TLS und DNS-over-HTTPS. Leider werden sie nicht âout of the boxâ unterstĂŒtzt (die Autoren glauben, dass dies ânochâ der Fall ist), aber es ist nicht schwierig, ihre Arbeit in Ihrer Software (oder sogar auf Ihrer Hardware) zu organisieren:
DNS ĂŒber HTTPs (DoH)
Wie der Name schon sagt, erfolgt die Kommunikation ĂŒber einen HTTPS-Kanal, d.h
- das Vorhandensein eines Landepunkts (Endpunkt) â er befindet sich an der Adresse Und
- ein Client, der Anfragen senden und Antworten empfangen kann.
Anfragen können entweder im DNS-Wireformat-Format vorliegen, das in definiert ist (gesendet mit den HTTP-Methoden POST und GET) oder im JSON-Format (mit der HTTP-Methode GET). FĂŒr mich persönlich schien die Idee, DNS-Anfragen ĂŒber HTTP-Anfragen zu stellen, unerwartet, aber sie hat einen rationalen Kern: Eine solche Anfrage passiert viele Verkehrsfiltersysteme, das Parsen von Antworten ist recht einfach und das Generieren von Anfragen ist noch einfacher. FĂŒr die Sicherheit sind die ĂŒblichen Bibliotheken und Protokolle verantwortlich.
Fordern Sie Beispiele direkt aus der Dokumentation an:
GET-Anfrage im DNS-Wireformat-Format
$ curl -v "https://cloudflare-dns.com/dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB" | hexdump
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f968700a400)
GET /dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB HTTP/2
Host: cloudflare-dns.com
User-Agent: curl/7.54.0
Accept: */*
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
HTTP/2 200
date: Fri, 23 Mar 2018 05:14:02 GMT
content-type: application/dns-udpwireformat
content-length: 49
cache-control: max-age=0
set-cookie: __cfduid=dd1fb65f0185fadf50bbb6cd14ecbc5b01521782042; expires=Sat, 23-Mar-19 05:14:02 GMT; path=/; domain=.cloudflare.com; HttpOnly
server: cloudflare-nginx
cf-ray: 3ffe69838a418c4c-SFO-DOG
{ [49 bytes data]
100 49 100 49 0 0 493 0 --:--:-- --:--:-- --:--:-- 494
* Connection #0 to host cloudflare-dns.com left intact
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031POST-Anfrage im DNS-Wireformat-Format
$ echo -n 'q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB' | base64 -D | curl -H 'Content-Type: application/dns-udpwireformat' --data-binary @- https://cloudflare-dns.com/dns-query -o - | hexdump
{ [49 bytes data]
100 49 100 49 0 0 493 0 --:--:-- --:--:-- --:--:-- 494
* Connection #0 to host cloudflare-dns.com left intact
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031
Das Gleiche, aber mit JSON
$ curl 'https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=example.com&type=AAAA'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "example.com.",
"type": 1
}
],
"Answer": [
{
"name": "example.com.",
"type": 1,
"TTL": 1069,
"data": "93.184.216.34"
}
]
}Offensichtlich kann ein seltener (wenn mindestens einer) Heimrouter auf diese Weise mit DNS arbeiten, aber das bedeutet nicht, dass es morgen keine UnterstĂŒtzung geben wird â und interessanterweise können wir hier die Arbeit mit DNS durchaus in unserer Anwendung implementieren (wie bereits). , nur auf Cloudflare-Servern).
DNS ĂŒber TLS
StandardmĂ€Ăig werden DNS-Anfragen unverschlĂŒsselt ĂŒbertragen. DNS ĂŒber TLS ist eine Möglichkeit, sie ĂŒber eine sichere Verbindung zu senden. Cloudflare unterstĂŒtzt wie vorgeschrieben DNS ĂŒber TLS auf dem Standardport 853 . Dabei wird ein fĂŒr den cloudflare-dns.com-Host ausgestelltes Zertifikat verwendet, TLS 1.2 und TLS 1.3 werden unterstĂŒtzt.
Das Herstellen einer Verbindung und das Arbeiten gemÀà dem Protokoll lÀuft in etwa so ab:
- Bevor eine DNS-Verbindung hergestellt wird, speichert der Client einen Base64-codierten SHA256-Hash des TLS-Zertifikats von cloudflare-dns.com (genannt SPKI).
- Der DNS-Client stellt eine TCP-Verbindung zu cloudflare-dns.com:853 her
- Der DNS-Client initiiert den TLS-Handshake
- WÀhrend des TLS-Handshake-Prozesses prÀsentiert der cloudflare-dns.com-Host sein TLS-Zertifikat.
- Sobald eine TLS-Verbindung hergestellt ist, kann der DNS-Client DNS-Anfragen ĂŒber einen sicheren Kanal senden, wodurch verhindert wird, dass Anfragen und Antworten abgehört und gefĂ€lscht werden.
- Alle ĂŒber eine TLS-Verbindung gesendeten DNS-Anfragen mĂŒssen den Anforderungen entsprechen .
Ein Beispiel fĂŒr eine Anfrage per DNS ĂŒber TLS:
$ kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com example.com
;; DEBUG: Querying for owner(example.com.), class(1), type(1), server(1.1.1.1), port(853), protocol(TCP)
;; DEBUG: TLS, imported 170 system certificates
;; DEBUG: TLS, received certificate hierarchy:
;; DEBUG: #1, C=US,ST=CA,L=San Francisco,O=Cloudflare, Inc.,CN=*.cloudflare-dns.com
;; DEBUG: SHA-256 PIN: yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc=
;; DEBUG: #2, C=US,O=DigiCert Inc,CN=DigiCert ECC Secure Server CA
;; DEBUG: SHA-256 PIN: PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=
;; DEBUG: TLS, skipping certificate PIN check
;; DEBUG: TLS, The certificate is trusted.
;; TLS session (TLS1.2)-(ECDHE-ECDSA-SECP256R1)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 58548
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 1536 B; ext-rcode: NOERROR
;; PADDING: 408 B
;; QUESTION SECTION:
;; example.com. IN A
;; ANSWER SECTION:
example.com. 2347 IN A 93.184.216.34
;; Received 468 B
;; Time 2018-03-31 15:20:57 PDT
;; From 1.1.1.1@853(TCP) in 12.6 msDiese Option scheint am besten fĂŒr lokale DNS-Server zu funktionieren, die die Anforderungen eines lokalen Netzwerks oder eines einzelnen Benutzers erfĂŒllen. Stimmt, mit der UnterstĂŒtzung des Standards ist das nicht sehr gut, aber â hoffen wir!
Zwei Worte zur ErlÀuterung, worum es in dem GesprÀch geht
Die AbkĂŒrzung DNS steht fĂŒr Domain Name Service (die Aussage âDNS-Dienstâ ist also etwas ĂŒberflĂŒssig, da die AbkĂŒrzung bereits das Wort âDienstâ enthĂ€lt) und wird verwendet, um eine einfache Aufgabe zu lösen â herauszufinden, welche IP-Adresse ein bestimmter Hostname hat. Jedes Mal, wenn eine Person auf einen Link klickt oder eine Adresse in die Adressleiste des Browsers eingibt (z. B. â") versucht der menschliche Computer herauszufinden, an welchen Server er eine Anfrage senden soll, um den Inhalt der Seite abzurufen. Im Fall von habrahabr.ru enthĂ€lt die Antwort von DNS einen Hinweis auf die IP-Adresse des Webservers: 178.248.237.68, und dann versucht der Browser bereits, den Server mit der angegebenen IP-Adresse zu kontaktieren.
Nachdem der DNS-Server wiederum die Anfrage âWie lautet die IP-Adresse des Hosts namens habrahabr.ru?â erhalten hat, stellt er fest, ob er etwas ĂŒber den angegebenen Host weiĂ. Wenn nicht, stellt es eine Anfrage an andere DNS-Server auf der Welt und versucht Schritt fĂŒr Schritt, die Antwort auf die gestellte Frage herauszufinden. Als Ergebnis werden die gefundenen Daten nach dem Finden der endgĂŒltigen Antwort an den noch auf sie wartenden Client gesendet und im Cache des DNS-Servers selbst gespeichert, sodass Sie eine Ă€hnliche Frage beim nĂ€chsten Mal viel schneller beantworten können.
Ein hĂ€ufiges Problem besteht darin, dass die DNS-Abfragedaten zunĂ€chst im Klartext ĂŒbertragen werden (was jedem mit Zugriff auf den Datenverkehrsfluss die Möglichkeit gibt, die DNS-Anfragen und die Antworten, die er erhĂ€lt, zu isolieren und sie dann fĂŒr seine eigenen Zwecke zu analysieren; dies gibt die Möglichkeit, Anzeigen fĂŒr einen DNS-Client prĂ€zise auszurichten, was ziemlich viel ist!). Zweitens neigen einige ISPs (wir zeigen nicht mit dem Finger darauf, aber nicht die kleinsten) dazu, Anzeigen anstelle der einen oder anderen angeforderten Seite anzuzeigen (was ganz einfach umgesetzt wird: anstelle der angegebenen IP-Adresse fĂŒr eine Abfrage durch habranabr.ru). Hostname, eine zufĂ€llige Person. Somit wird die Adresse des Webservers des Anbieters zurĂŒckgegeben, auf dem die Seite mit der Werbung bereitgestellt wird. Drittens gibt es Internet-Zugangsanbieter, die einen Mechanismus zur ErfĂŒllung der Anforderungen zum Blockieren einzelner Websites implementieren, indem sie die korrekten DNS-Antworten zu den IP-Adressen blockierter Webressourcen durch die IP-Adresse ihres Servers ersetzen, der Stub-Seiten enthĂ€lt (und damit den Zugriff auf solche Seiten deutlich komplizierter) oder an die Adresse Ihres Proxy-Servers, der die Filterung durchfĂŒhrt.
Dies sollte wahrscheinlich ein Bild von der Website sein. , wird verwendet, um die Verbindung zum Dienst zu beschreiben. Die Autoren scheinen von der QualitĂ€t ihres DNS recht ĂŒberzeugt zu sein (allerdings kann man von Cloudflare kaum etwas anderes erwarten):

Man kann Cloudflare, den Erfinder des Dienstes, voll und ganz verstehen: Sie verdienen ihren Lebensunterhalt mit der Pflege und Entwicklung eines der beliebtesten CDN-Netzwerke der Welt (zu dessen Funktionen nicht nur die Verteilung von Inhalten, sondern auch das Hosten von DNS-Zonen gehört) und, aufgrund von der Wunsch derjenigen, der sich nicht so gut auskennt, lehre diese wen sie nicht kennen, dazu wo hin im globalen Netzwerk leiden hĂ€ufig unter der Blockierung der Adressen ihrer Server Sagen wir nicht wer - Ein DNS, das fĂŒr das Unternehmen nicht durch âRufe, Pfiffe und Gekritzelâ beeintrĂ€chtigt wird, bedeutet also weniger Schaden fĂŒr sein Unternehmen. Und technische Vorteile (eine Kleinigkeit, aber nett: Insbesondere fĂŒr Kunden des kostenlosen DNS Cloudflare erfolgt die Aktualisierung der DNS-EintrĂ€ge der auf den DNS-Servern des Unternehmens gehosteten Ressourcen sofort) machen die Nutzung des im Beitrag beschriebenen Dienstes noch interessanter.
An der Umfrage können nur registrierte Benutzer teilnehmen. bitte.
Werden Sie den neuen Service nutzen?
Ja, indem Sie es einfach im Betriebssystem und/oder am Router angeben
Ja, und ich werde neue Protokolle verwenden (DNS ĂŒber HTTPs und DNS ĂŒber TLS).
Nein, ich habe genĂŒgend aktuelle Server (dies ist ein öffentlicher Anbieter: Google, Yandex usw.)
Nein, ich weiĂ nicht einmal, was ich gerade verwende
Ich verwende mein rekursives DNS mit einem SSL-Tunnel zu ihnen
693 Benutzer haben abgestimmt. 191 Benutzer enthielt sich der Stimme.
Source: habr.com
