ProHoster > Блог > Administracija > Uslugu Cloudflarea srećemo na adresama 1.1.1.1 i 1.0.0.1, ili „javna DNS polica je stigla!“
Uslugu Cloudflarea srećemo na adresama 1.1.1.1 i 1.0.0.1, ili „javna DNS polica je stigla!“
Cloudflare Company predstavljen javni DNS na adresama:
1.1.1.1
1.0.0.1
2606: 4700: 4700 1111 ::
2606: 4700: 4700 1001 ::
Za ovu politiku se kaže da je "Privatnost na prvom mjestu" kako bi korisnici mogli biti mirni u vezi sa sadržajem svojih zahtjeva.
Usluga je zanimljiva po tome što, pored uobičajenog DNS-a, pruža mogućnost korištenja tehnologija DNS-over-TLS и DNS preko HTTPS-a, što će u velikoj mjeri spriječiti provajdere da prisluškuju vaše zahtjeve na putu zahtjeva - i prikupljaju statistiku, prate, upravljaju oglašavanjem. Cloudflare tvrdi da datum objave (1. april 2018. ili 04/01 u američkoj notaciji) nije izabran slučajno: koji drugi dan u godini će biti predstavljene „četiri jedinice“?
Budući da je Habrova publika tehnički potkovana, tradicionalna rubrika "zašto vam treba DNS?" Staviću to na kraj posta, ali ovde ću navesti više praktičnih stvari:
Kako koristiti novu uslugu?
Najjednostavnije je da navedete gore navedene adrese DNS servera u vašem DNS klijentu (ili kao upstream u postavkama lokalnog DNS servera koji koristite). Ima li smisla zamijeniti uobičajene vrijednosti Google DNS (8.8.8.8, itd.), ili nešto rjeđe Yandex javni DNS serveri (77.88.8.8 i njima slični) serverima 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šila usluga treće strane, a brzina do određenog klijenta, naravno, može se razlikovati).
Mnogo je interesantnije raditi s novim modovima u kojima zahtjev leti do servera preko šifrovane veze (u stvari, odgovor se vraća preko nje), pomenutim 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 i na vašem hardveru):
DNS preko HTTPs (DoH)
Kao što ime govori, komunikacija se odvija preko HTTPS kanala, što znači
prisustvo tačke sletanja (krajnje tačke) - nalazi se na adresi https://cloudflare-dns.com/dns-queryi
klijent koji može slati zahtjeve i primati odgovore.
Zahtjevi mogu biti u formatu DNS Wireformat definiranom u RFC1035 (poslano korištenjem POST i GET HTTP metoda) ili u JSON formatu (pomoću GET HTTP metode). Za mene lično, ideja o upućivanju DNS zahtjeva putem HTTP zahtjeva činila se neočekivanom, ali u tome postoji racionalno zrno: takav zahtjev će proći mnoge sisteme za filtriranje prometa, raščlanjivanje odgovora je prilično jednostavno, a generiranje zahtjeva još lakše. Uobičajene biblioteke i protokoli su odgovorni za sigurnost.
Očigledno, rijedak (ako barem jedan) kućni ruter može raditi sa 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 sa DNS-om u našoj aplikaciji (kao što je već napravit ću Mozilu, samo na Cloudflare serverima).
DNS preko TLS-a
Podrazumevano, DNS upiti se prenose bez enkripcije. DNS preko TLS-a je način da ih pošaljete preko sigurne veze. Cloudflare podržava DNS preko TLS-a na standardnom portu 853 kako je propisano RFC7858. Ovo koristi certifikat izdat za cloudflare-dns.com host, podržani su TLS 1.2 i TLS 1.3.
Uspostavljanje veze i rad po protokolu ide otprilike ovako:
Prije uspostavljanja DNS veze, klijent pohranjuje base64 kodiran SHA256 hash TLS certifikata cloudflare-dns.com (nazvan SPKI)
DNS klijent uspostavlja TCP vezu sa cloudflare-dns.com:853
DNS klijent pokreće TLS rukovanje
Tokom TLS procesa rukovanja, cloudflare-dns.com domaćin predstavlja svoj TLS sertifikat.
Jednom kada 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 servere koji služe potrebama lokalne mreže ili jednog korisnika. Istina, uz podršku standarda nije baš dobro, ali - nadajmo se!
Dvije riječi objašnjenja o čemu je razgovor
Skraćenica DNS je skraćenica od Domain Name Service (tako da je izgovor "DNS service" donekle suvišan, skraćenica već sadrži riječ "service"), a koristi se za rješavanje jednostavnog zadatka - da se shvati koju IP adresu ima određeno ime hosta. Svaki put kada osoba klikne na link, ili unese adresu u adresnu traku pretraživača (recimo, nešto poput "https://habrahabr.ru/post/346430/"), ljudski računar pokušava otkriti kojem serveru da pošalje zahtjev da dobije sadržaj stranice. U slučaju habrahabr.ru, odgovor DNS-a će sadržavati indikaciju IP adrese web servera: 178.248.237.68, a zatim će pretraživač već pokušati da kontaktira server sa navedenom IP adresom.
Zauzvrat, DNS server, nakon što je primio zahtjev „koja je IP adresa hosta po imenu habrahabr.ru?“, utvrđuje da li zna išta o navedenom hostu. Ako ne, postavlja zahtjev drugim DNS serverima u svijetu i, korak po korak, pokušava pronaći odgovor na postavljeno pitanje. Kao rezultat toga, po pronalaženju konačnog odgovora, pronađeni podaci se šalju klijentu koji ih još čeka, plus se pohranjuju u keš samog DNS servera, što će vam omogućiti da sljedeći put odgovorite na slično pitanje mnogo brže.
Uobičajeni problem je taj što se, prvo, podaci DNS upita prenose u čistom obliku (što svakome ko ima pristup protoku saobraćaja daje mogućnost da izoluje DNS upite i odgovore koje prima, a zatim ih raščlani za vlastite svrhe; ovo daje mogućnost preciznog ciljanja oglasa za DNS klijenta, što je dosta!). Drugo, neki ISP-ovi (nećemo upirati prstom, ali ne i najmanji) imaju tendenciju da prikazuju oglase umjesto jedne ili druge tražene stranice (što se implementira vrlo jednostavno: umjesto navedene IP adrese za upit od strane habranabr.ru ime hosta, nasumična osoba. Dakle, vraća se adresa web servera provajdera na kojem se servira stranica koja sadrži oglas). Treće, postoje provajderi pristupa Internetu koji implementiraju mehanizam za ispunjavanje zahtjeva za blokiranje pojedinačnih stranica zamjenom ispravnih DNS odgovora o IP adresama blokiranih web resursa IP adresom svog servera koji sadrži stub stranice (kao rezultat toga, pristup do takve stranice znatno složenije) ili na adresu vašeg proxy servera koji vrši filtriranje.
Ovo bi vjerovatno trebala biti slika sa stranice. http://1.1.1.1/, koji se koristi za opisivanje veze sa 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):
U potpunosti se može razumjeti Cloudflare, kreator servisa: oni zarađuju za kruh održavajući i razvijajući jednu od najpopularnijih CDN mreža na svijetu (koje funkcije uključuju ne samo distribuciju sadržaja, već i hostovanje DNS zona), a zbog želja onih, koji nije dobro upućen, nauči ih koga ne poznaju, za to gdje ići u globalnoj mreži, često pati od blokiranja adresa svojih servera da ne kažemo ko - pa imati DNS na koji ne utiču "vici, zvižduci i škrabotine" za kompaniju znači manje štete za njihovo poslovanje. A tehničke prednosti (sitnica, ali zgodna: posebno za klijente besplatnog DNS Cloudflarea, ažuriranje DNS zapisa resursa koji se nalaze na DNS serverima kompanije će biti trenutno) čine korištenje usluge opisane u postu još zanimljivijom.
Samo registrovani korisnici mogu učestvovati u anketi. Prijavite semolim.
Hoćete li koristiti novu uslugu?
Da, jednostavnim navođenjem u OS-u i/ili na ruteru
Da, i ja ću koristiti nove protokole (DNS preko HTTPs-a i DNS preko TLS-a)
Ne, imam dovoljno trenutnih servera (ovo je javni provajder: Google, Yandex, itd.)
Ne, čak ni ne znam šta trenutno koristim
Koristim svoj rekurzivni DNS sa SSL tunelom do njih
693 korisnika je glasalo. 191 korisnik je bio uzdržan.