Kami nyayogikeun jasa ti Cloudflare di alamat 1.1.1.1 sareng 1.0.0.1, atanapi "rak DNS umum parantos sumping!"

Kami nyayogikeun jasa ti Cloudflare di alamat 1.1.1.1 sareng 1.0.0.1, atanapi "rak DNS umum parantos sumping!"

Perusahaan Cloudflare ditepikeun DNS umum di alamat:

  • 1.1.1.1
  • 1.0.0.1
  • 2606: 4700: 4700 1111 ::
  • 2606: 4700: 4700 1001 ::

Kabijakan éta nyarios "Privasi heula" supados pangguna tiasa katenangan ngeunaan eusi pamundutana.

Palayanan éta pikaresepeun dina éta, sajaba DNS biasa, éta nyayogikeun kamampuan ngagunakeun téknologi DNS-leuwih-TLS и DNS-leuwih-HTTPS, nu greatly bakal nyegah panyadia tina eavesdropping on requests anjeun sapanjang jalur requests - sarta ngumpulkeun statistik, ngawas, ngatur iklan. Cloudflare nyatakeun yén tanggal pengumumanna (1 April 2018, atanapi 04/01 dina notasi Amérika) henteu dipilih ku kasempetan: naon dinten anu sanés dina taun bakal "opat unit" dibere?

Kusabab panongton Habr sacara téhnisna savvy, bagian tradisional "naha anjeun peryogi DNS?" Kuring bakal nempatkeun éta dina tungtung tulisan, tapi di dieu kuring bakal nyatakeun hal-hal anu langkung praktis:

Kumaha ngagunakeun jasa anyar?

Hal pangbasajanna nyaéta netepkeun alamat pangladén DNS di luhur dina klien DNS anjeun (atanapi salaku hulu dina setélan pangladén DNS lokal anu anjeun anggo). Teu asup akal pikeun ngaganti nilai biasa Google DNS (8.8.8.8, jsb), atawa rada kirang umum Pangladén DNS publik Yandex (77.88.8.8 sareng anu sanésna) ka server Cloudflare - aranjeunna bakal mutuskeun pikeun anjeun, tapi nyarioskeun pikeun pemula. jadwal speed respon, numutkeun nu Cloudflare téh gancang ti sakabeh pesaing (Kuring gé netelakeun: ukuran nu dicokot ku layanan pihak-katilu, sarta speed ka klien husus, tangtosna, bisa jadi béda).

Kami nyayogikeun jasa ti Cloudflare di alamat 1.1.1.1 sareng 1.0.0.1, atanapi "rak DNS umum parantos sumping!"

Éta langkung narik pikeun damel sareng modeu énggal dimana pamenta ngalayang ka server dina sambungan anu énkripsi (saleresna, résponna dipulangkeun deui), anu disebatkeun DNS-over-TLS sareng DNS-over-HTTPS. Hanjakalna, aranjeunna henteu dirojong "out of the box" (panulis yakin yén ieu "acan"), tapi henteu sesah pikeun ngatur karyana dina parangkat lunak anjeun (atanapi dina hardware anjeun):

DNS ngaliwatan HTTPs (DoH)

Sakumaha ngaranna nunjukkeun, komunikasi lumangsung ngaliwatan hiji saluran HTTPS, nu hartina

  1. ayana titik badarat (titik tungtung) - lokasina di alamat https://cloudflare-dns.com/dns-queryjeung
  2. klien nu bisa ngirim requests sarta nampa réspon.

Requests tiasa boh dina format DNS Wireformat didefinisikeun dina RFC1035 (dikirim nganggo metode POST sareng GET HTTP), atanapi dina format JSON (nganggo metode GET HTTP). Pikeun kuring pribadi, pamanggih nyieun requests DNS via requests HTTP sigana teu kaduga, tapi aya séréal rasional di jerona: pamundut misalna bakal lulus loba sistem nyaring lalulintas, réspon parsing cukup basajan, sarta ngahasilkeun requests malah leuwih gampang. Perpustakaan sareng protokol biasa tanggung jawab pikeun kaamanan.

Nyuhunkeun conto, langsung tina dokuméntasi:

GET pamundut dina format DNS Wireformat

$ 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
0000031

POST pamundut dina format DNS Wireformat

$ 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

Sarua tapi nganggo 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"
    }
  ]
}

Jelas, router bumi anu jarang (upami sahenteuna hiji) tiasa dianggo sareng DNS ku cara ieu, tapi ieu sanés hartosna yén dukungan moal némbongan énjing - sareng, anu pikaresepeun, di dieu urang tiasa ngalaksanakeun damel sareng DNS dina aplikasi urang (sapertos anu parantos aya. bade ngadamel Mozilla, ngan dina server Cloudflare).

DNS leuwih TLS

Sacara standar, query DNS dikirimkeun tanpa énkripsi. DNS ngaliwatan TLS mangrupakeun cara pikeun ngirim aranjeunna ngaliwatan sambungan aman. Cloudflare ngarojong DNS leuwih TLS on standar port 853 sakumaha prescribed RFC7858. Ieu nganggo sertipikat anu dikaluarkeun pikeun host cloudflare-dns.com, TLS 1.2 sareng TLS 1.3 dirojong.

Ngadegkeun sambungan sareng damel numutkeun protokol sapertos kieu:

  • Sateuacan ngadamel sambungan DNS, klien nyimpen hash SHA64 anu disandi base256 tina sertipikat TLS cloudflare-dns.com (disebut SPKI)
  • Klien DNS ngadamel sambungan TCP ka cloudflare-dns.com:853
  • Klién DNS ngamimitian sasalaman TLS
  • Salila prosés sasalaman TLS, host cloudflare-dns.com nampilkeun sertipikat TLS na.
  • Sakali sambungan TLS diadegkeun, klien DNS bisa ngirim requests DNS ngaliwatan saluran aman, nu nyegah requests sarta réspon ti keur eavesdropped na spoofed.
  • Kabéh query DNS dikirim ngaliwatan sambungan TLS kudu sasuai jeung ngirim DNS ngaliwatan TCP.

Conto pamundut via DNS liwat 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 ms

Pilihan ieu sigana dianggo pangsaéna pikeun server DNS lokal anu nyayogikeun kabutuhan jaringan lokal atanapi pangguna tunggal. Leres, kalayan dukungan standar henteu saé pisan, tapi - hayu urang ngarepkeun!

Dua kecap katerangan ngeunaan naon paguneman

Singketan DNS nangtung pikeun Layanan Ngaran Domain (jadi nyebutkeun "layanan DNS" rada kaleuleuwihan, singketan geus ngandung kecap "jasa"), sarta dipaké pikeun ngajawab hiji tugas basajan - ngartos naon alamat IP tina ngaran host tinangtu. Unggal waktos aya jalma ngaklik tautan, atanapi ngalebetkeun alamat dina palang alamat browser (sebutkeun, sapertos "https://habrahabr.ru/post/346430/"), komputer manusa nyobian ngartos server mana anu ngirimkeun pamundut pikeun kéngingkeun eusi halaman. Dina kasus habrahabr.ru, réspon ti DNS bakal ngandung indikasi alamat IP pangladén wéb: 178.248.237.68, teras browser bakal nyobian ngahubungi server nganggo alamat IP anu ditangtukeun.

Sabalikna, server DNS, saatos nampi pamundut "naon alamat IP host anu namina habrahabr.ru?", Nangtukeun naha éta terang naon waé ngeunaan host anu ditangtukeun. Lamun henteu, eta ngajadikeun pamundut ka server DNS lianna di dunya, sarta, step by step, nyoba angka kaluar jawaban kana patarosan nanya. Hasilna, nalika mendakan jawaban ahir, data anu dipendakan dikirim ka klien anu masih ngantosan aranjeunna, ditambah deui disimpen dina cache tina server DNS sorangan, anu bakal ngamungkinkeun anjeun pikeun ngajawab patarosan anu sami langkung gancang waktos salajengna.

Masalah umum nyaéta, mimitina, data query DNS dikirimkeun sacara jelas (anu masihan saha waé anu gaduh aksés kana aliran lalu lintas kamampuan pikeun ngasingkeun pamundut DNS sareng réspon anu aranjeunna tampi teras nga-parse aranjeunna pikeun tujuan sorangan; ieu masihan kamampuan pikeun nargétkeun iklan kalayan akurasi pikeun klien DNS, anu lumayan pisan!). Kadua, sababaraha ISP (urang moal nunjuk ramo, tapi sanés anu pangleutikna) condong nampilkeun iklan tibatan hiji halaman anu dipénta (anu dilaksanakeun cukup saderhana: tinimbang alamat IP anu ditangtukeun pikeun pamundut ku habranabr.ru. Ngaran host, jalma acak Ku kituna, alamat server wéb panyadia dipulangkeun, dimana halaman anu ngandung iklan dilayanan). Katilu, aya panyadia aksés Internét anu ngalaksanakeun mékanisme pikeun nyumponan sarat pikeun meungpeuk situs individu ku cara ngagentos réspon DNS anu leres ngeunaan alamat IP sumber wéb anu diblokir sareng alamat IP serverna anu ngandung halaman rintisan (akibatna, aksés ka situs sapertos noticeably leuwih pajeulit), atawa ka alamat server proxy Anjeun nu ngalakukeun nyaring.

Ieu meureun kudu gambar ti loka. http://1.1.1.1/, dipaké pikeun ngajelaskeun sambungan kana jasa. Panulis sigana rada yakin kana kualitas DNS na (tapi, hese ngaharepkeun nanaon deui tina Cloudflare):

Kami nyayogikeun jasa ti Cloudflare di alamat 1.1.1.1 sareng 1.0.0.1, atanapi "rak DNS umum parantos sumping!"

Hiji tiasa pinuh ngartos Cloudflare, panyipta layanan: aranjeunna earn roti maranéhanana ku ngajaga tur ngembangkeun salah sahiji jaringan CDN pang populerna di dunya (anu fungsina ngawengku teu ukur ngadistribusikaeun eusi, tapi ogé hosting zona DNS), sarta, alatan kahayang jelema, anu teu wawuh, ajarkeun jelema anu aranjeunna henteu terang, ka éta kamana atuh dina jaringan global, rada mindeng nalangsara ti blocking alamat tina server maranéhanana hayu urang sebutkeun saha - janten gaduh DNS anu henteu kapangaruhan ku "souts, whistles sareng corat-coret" kanggo perusahaan hartosna kirang cilaka pikeun bisnisna. Sareng kaunggulan téknis (saeutik, tapi saé: khususna, pikeun klien tina DNS Cloudflare gratis, ngamutahirkeun rékaman DNS sumberdaya anu di-host dina server DNS perusahaan bakal sakedapan) ngajantenkeun ngagunakeun jasa anu dijelaskeun dina postingan éta langkung narik.

Ngan pamaké nu kadaptar bisa ilubiung dina survey. Daptar, Punten.

Naha anjeun badé nganggo jasa énggal?

  • Leres, ku ngan saukur netepkeunana dina OS sareng / atanapi dina router

  • Leres, sareng kuring bakal nganggo protokol énggal (DNS ngalangkungan HTTP sareng DNS ngalangkungan TLS)

  • Henteu, kuring gaduh pangladén ayeuna anu cekap (ieu mangrupikeun panyadia umum: Google, Yandex, jsb.)

  • Henteu, kuring henteu terang naon anu kuring anggo ayeuna

  • Kuring make DNS recursive kuring jeung torowongan SSL ka aranjeunna

693 pamaké milih. 191 pamaké abstained.

sumber: www.habr.com

Tambahkeun komentar