ProHoster > Blog > uprava > Uslugu iz Cloudflarea susrećemo na adresama 1.1.1.1 i 1.0.0.1, ili “javna DNS polica je stigla!”
Uslugu iz Cloudflarea susrećemo na adresama 1.1.1.1 i 1.0.0.1, ili “javna DNS polica je stigla!”
Tvrtka Cloudflare predstavio javni DNS na adresama:
1.1.1.1
1.0.0.1
2606: 4700: 4700 :: 1111
2606: 4700: 4700 :: 1001
Kaže se da je politika "Privatnost na prvom mjestu" kako bi korisnici mogli biti mirni oko sadržaja svojih zahtjeva.
Usluga je zanimljiva po tome što, osim uobičajenog DNS-a, pruža mogućnost korištenja tehnologija DNS-over-TLS и DNS-over-HTTPS, što će uvelike spriječiti pružatelje da prisluškuju vaše zahtjeve na putu zahtjeva – te prikupljati statistiku, pratiti, upravljati oglašavanjem. Cloudflare tvrdi da datum objave (1. travnja 2018. ili 04. travnja u američkoj notaciji) nije odabran slučajno: koji drugi dan u godini će biti predstavljene "četiri jedinice"?
Budući da je Habrova publika tehnički potkovana, tradicionalni odjeljak "zašto vam je potreban DNS?" Stavit ću ga na kraj posta, ali ovdje ću navesti više praktično korisnih stvari:
Kako koristiti novu uslugu?
Najjednostavnije je navesti gore navedene adrese DNS poslužitelja u vašem DNS klijentu (ili kao uzvodno u postavkama lokalnog DNS poslužitelja koji koristite). Ima li smisla zamijeniti uobičajene vrijednosti Google DNS (8.8.8.8 itd.), ili nešto rjeđe Yandex javni DNS poslužitelji (77.88.8.8 i njima slični) poslužiteljima iz Cloudflarea - oni će odlučiti umjesto vas, ali govori u ime početnika raspored brzina odziva, prema kojoj je Cloudflare brži od svih konkurenata (pojasnit ću: mjerenja je izvršio servis treće strane, a brzina do određenog klijenta, naravno, može se razlikovati).
Puno je zanimljivije raditi s novim modovima u kojima zahtjev leti prema poslužitelju preko šifrirane veze (zapravo, preko nje se vraća odgovor), spomenutim DNS-over-TLS i DNS-over-HTTPS. Nažalost, nisu podržani "iz kutije" (autori vjeruju da je to "još"), ali nije teško organizirati njihov rad u vašem softveru (pa čak ni na hardveru):
DNS preko HTTP-a (DoH)
Kao što naziv govori, komunikacija se odvija preko HTTPS kanala, što znači
prisutnost točke slijetanja (krajnja točka) - nalazi se na adresi https://cloudflare-dns.com/dns-queryI
klijent koji može slati zahtjeve i primati odgovore.
Zahtjevi mogu biti u DNS Wireformat formatu definiranom u RFC1035 (poslano metodama POST i GET HTTP), ili u JSON formatu (metodom GET HTTP). Za mene osobno, ideja postavljanja DNS zahtjeva putem HTTP zahtjeva činila se neočekivanom, ali u njoj postoji racionalno zrno: takav zahtjev će proći mnoge sustave za filtriranje prometa, raščlanjivanje odgovora je prilično jednostavno, a generiranje zahtjeva još lakše. Za sigurnost su odgovorne uobičajene knjižnice i protokoli.
Očito, rijetki (ako barem jedan) kućni usmjerivač može raditi s DNS-om na ovaj način, ali to ne znači da se podrška neće pojaviti sutra - i, zanimljivo, ovdje možemo prilično implementirati rad s DNS-om u našoj aplikaciji (kao što je već napravit će Mozillu, samo na Cloudflare poslužiteljima).
DNS preko TLS-a
Prema zadanim postavkama, DNS upiti se prenose bez enkripcije. DNS preko TLS-a način je da ih pošaljete putem sigurne veze. Cloudflare podržava DNS preko TLS-a na standardnom priključku 853 kako je propisano RFC7858. Ovo koristi certifikat izdan za cloudflare-dns.com host, TLS 1.2 i TLS 1.3 su podržani.
Uspostavljanje veze i rad prema protokolu ide otprilike ovako:
Prije uspostavljanja DNS veze, klijent pohranjuje base64 kodiran SHA256 hash TLS certifikata cloudflare-dns.com (zvan SPKI)
DNS klijent uspostavlja TCP vezu na cloudflare-dns.com:853
DNS klijent inicira TLS rukovanje
Tijekom procesa TLS rukovanja, cloudflare-dns.com host predstavlja svoj TLS certifikat.
Nakon što se uspostavi TLS veza, DNS klijent može slati DNS zahtjeve preko sigurnog kanala, što sprječava prisluškivanje i lažiranje zahtjeva i odgovora.
$ 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 ms
Čini se da ova opcija najbolje funkcionira za lokalne DNS poslužitelje koji služe potrebama lokalne mreže ili jednog korisnika. Istina, s podrškom standarda nije baš dobro, ali - nadajmo se!
Dvije riječi objašnjenja o čemu se razgovara
Skraćenica DNS je kratica za Domain Name Service (tako da je reći "DNS usluga" donekle suvišno, kratica već sadrži riječ "usluga"), a koristi se za rješavanje jednostavnog zadatka - razumjeti koju IP adresu ima određeno ime hosta. Svaki put kada osoba klikne vezu ili unese adresu u adresnu traku preglednika (recimo nešto poput "https://habrahabr.ru/post/346430/"), ljudsko računalo pokušava otkriti kojem poslužitelju poslati zahtjev za preuzimanje sadržaja stranice. U slučaju habrahabr.ru, odgovor DNS-a sadržavat će naznaku IP adrese web poslužitelja: 178.248.237.68, a zatim će preglednik već pokušati kontaktirati poslužitelj s navedenom IP adresom.
Zauzvrat, DNS poslužitelj, primivši zahtjev "koja je IP adresa hosta pod nazivom habrahabr.ru?", utvrđuje zna li nešto o navedenom hostu. Ako nije, postavlja zahtjev drugim DNS poslužiteljima u svijetu i, korak po korak, pokušava otkriti odgovor na postavljeno pitanje. Kao rezultat toga, nakon pronalaska konačnog odgovora, pronađeni podaci se šalju klijentu koji ih još čeka, plus se pohranjuju u predmemoriju samog DNS poslužitelja, što će vam omogućiti da sljedeći put puno brže odgovorite na slično pitanje.
Čest problem je da se, prvo, podaci o DNS upitu prenose u čistom obliku (što svakome tko ima pristup protoku prometa daje mogućnost da izolira DNS upite i odgovore koje prima, a zatim ih analizira za vlastite potrebe; to daje mogućnost preciznog ciljanja oglasa za DNS klijenta, što je dosta!). Drugo, neki ISP-ovi (nećemo upirati prstom, ali ne oni najmanji) skloni su prikazivati oglase umjesto jedne ili druge tražene stranice (što se vrlo jednostavno implementira: umjesto navedene IP adrese za upit habranabr.ru ime hosta, slučajna osoba. Dakle, vraća se adresa web poslužitelja pružatelja usluga, gdje se poslužuje stranica koja sadrži oglas). Treće, postoje davatelji pristupa internetu koji implementiraju mehanizam za ispunjavanje zahtjeva za blokiranje pojedinačnih stranica zamjenom ispravnih DNS odgovora o IP adresama blokiranih web resursa s IP adresom njihovog poslužitelja koji sadrži stub stranice (kao rezultat, pristup takve stranice osjetno kompliciranije), ili na adresu vašeg proxy poslužitelja koji vrši filtriranje.
Ovo bi vjerojatno trebala biti slika sa stranice. http://1.1.1.1/, koristi se za opisivanje veze s uslugom. Čini se da su autori prilično sigurni u kvalitetu svog DNS-a (međutim, teško je očekivati nešto drugo od Cloudflarea):
Cloudflare, tvorca usluge, možemo u potpunosti razumjeti: oni zarađuju svoj kruh održavajući i razvijajući jednu od najpopularnijih CDN mreža na svijetu (čije funkcije uključuju ne samo distribuciju sadržaja, već i hosting DNS zona), a zbog želja onih, koji nije dobro upućen, pouči one koga ne poznaju, za to gdje ići u globalnoj mreži, često pate od blokiranja adresa svojih poslužitelja nemojmo reći tko - dakle imati DNS na koji ne utječu "vici, zvižduci i škrabotine" za tvrtku znači manje štete za njihovo poslovanje. A tehničke prednosti (sitnica, ali lijepo: posebno za klijente besplatnog DNS Cloudflarea, ažuriranje DNS zapisa resursa koji se nalaze na DNS poslužiteljima tvrtke bit će trenutno) čine korištenje usluge opisane u postu još zanimljivijom.
U anketi mogu sudjelovati samo registrirani korisnici. Prijaviti se, molim.
Hoćete li koristiti novu uslugu?
Da, jednostavnim navođenjem u OS-u i/ili na usmjerivaču
Da, i koristit ću nove protokole (DNS preko HTTP-a i DNS preko TLS-a)
Ne, imam dovoljno trenutnih poslužitelja (ovo je javni pružatelj: Google, Yandex itd.)
Ne, ne znam ni što trenutno koristim
Koristim svoj rekurzivni DNS sa SSL tunelom do njih
693 korisnika je glasalo. 191 korisnik je bio suzdržan.