4601 ,

Dahil ang mitolohiya ng anonymity sa Internet ay naalis, ang isyu ng privacy ng user ay sumali sa listahan ng mga pinakapindot. Hindi lamang masusubaybayan ang iyong mga aktibidad sa online mga search engine at ang mga website na binibisita mo, kundi pati na rin ang sarili mong mga internet service provider. Sa teknikal, hindi ito napakahirap kung DNS ay ibinibigay sa iyo ng provider, at ito ang kadalasang nangyayari, lahat ay dumadaan DNS masusubaybayan nito ang trapiko, lalo na dahil DNS-Ang mga kahilingan ay ipinadala sa isang hindi naka-encrypt na koneksyon.

Ito ay malinaw na ang pagpapalit ng mga naharang na packet ay hindi magiging mahirap kahit na gumamit ka VPN-mga serbisyo.

Ang tanging paraan upang isara ang butas ay sa pamamagitan ng pag-encrypt. DNS-trapiko, ngunit para dito kakailanganin mo ng isang espesyal software, dahil wala sa mga operating system ay hindi sumusuporta sa pag-encrypt DNS sa labas ng kahon. Ang pinakasimpleng tool sa pag-encrypt DNS- ang trapiko ay - maliit libreng utility, advantageously nakikilala sa pamamagitan ng ang katunayan na ito ay hindi nangangailangan karagdagang mga setting, na nangangahulugang maaari itong gamitin ng mga nagsisimula. Mayroong isang console tool - DNSCrypt Proxy, ngunit kailangan mong pag-isipan ito - magsagawa ng isang serye ng mga utos sa PowerShell, baguhin ang address DNS mano-mano at iba pa. Ang sinumang may oras at pagnanais, mangyaring, ay maaaring maging pamilyar dito sa pahina github.com/jedisct1/dnscrypt-proxy .

Iminumungkahi namin ang paggamit ng mas simple at mas maginhawang bersyon ng desktop DNS- cryptographer. Mag-download mula sa website ng developer simplednscrypt.org Ang bersyon ng program na tumutugma sa iyong OS bit level at install.

Ito ay nilagyan ng isang madaling, madaling gamitin na interface at, bukod dito, sa Russian, upang madali mong malaman kung ano. Ang mga pangunahing setting ay ginawa sa seksyon "Menu". Upang simulan ang paggamit ng programa, kaagad pagkatapos ng pag-install, i-click ang pindutan "Mag-apply", at pagkatapos ay piliin ang sa iyo sa ibaba network card, dapat itong mamarkahan tulad ng ipinapakita sa screenshot. Lumipat "Serbisyo ng DNSCrypt" dapat active.

Madaling suriin kung gumagana ang lahat. Ipatupad sa bintana Takbo pangkat ncpa.cpl, buksan ang mga katangian ng iyong koneksyon, pumili mula sa listahan IP bersyon 4 (TCPIPv4) at buksan ang mga katangian nito. Button ng radyo "Gamitin ang mga sumusunod na DNS server address" dapat na aktibo, at dapat ipahiwatig ng field ang gusto DNS-server. meron tayo 127.0.0.1 , maaaring iba ang iyong address.

Bilang default, awtomatikong pinipili ng program ang pinakamabilis na server, ngunit maaari mong baguhin ang iyong mga kagustuhan sa pamamagitan ng pagpili nito sa iyong sarili sa seksyon.

Ang mga parameter ng seksyon ay hindi kailangang baguhin kung hindi mo ginagamit ang protocol IPv4. SA pangkalahatang mga setting maaari mong paganahin ang mga karagdagang tab "Itim na listahan ng mga domain", "Log ng Pag-block ng Domain", ngunit ito ay muli kung gagawin mo ang mga pag-andar na inaalok nila, lalo na, ang pagbuo "itim" mga listahan ng domain.

Gamit ang nstx posible na lumikha ng isang IP tunnel sa loob ng DNS. Ang protocol ng parehong pangalan na nagpapahintulot sa iyo na makamit ito ay tinatawag na "" at nangangahulugang " NameServer Transfer Protocol».

Kaya, ipagpalagay na ang provider ay nag-isyu at pinapayagan kang gamitin ang DNS server nito. Isipin natin ang isang regular na kahilingan sa DNS: humihiling kami ng impormasyon sa name server ng provider, ipinapasa ng server ng provider ang kahilingan sa isa pang name server, na responsable para sa zone na kailangan namin. At ang huling DNS server sa chain ay nagpapadala ng natanggap na tugon pabalik sa parehong ruta.

Ngayon isipin na maaari mong i-format ang mga IP packet sa mga DNS query mula sa isang name server at "hugis" ang papasok na trapiko sa mga packet na kailangan namin. At ngayon mayroon na kaming lahat para makabuo ng isang ganap na "IP over DNS" - aming sarili nakatagong lagusan para sa pagpapasa ng trapiko sa pamamagitan ng halos anumang third-party na firewall!

Ngayon ang natitira na lang ay i-configure ang pekeng nameserver at kliyente, ngunit sa pagsasagawa hindi ito palaging napakadali.

Ang maximum na laki ng packet na maaaring maipadala ay isang maximum na 512 bytes sa UDP. Samakatuwid, kakailanganin namin ng mekanismo ng assembler/disassembler na mangongolekta at magdidisassemble ng mga pira-pirasong packet at susuriin ang mga ito para sa kawastuhan. Sa pamamaraang ito, ang aming pekeng DNS client ay maaaring makipag-ugnayan sa aming pekeng DNS server palagi, ngunit ang aming DNS server ay makakatugon lamang. Samakatuwid, ang kliyente ay magiging responsable para sa pagkakasundo at pagpapanatili ng two-way na komunikasyon.

Ang unang pagkakataon na sinubukan kong gawin ito ay noong 2008. Sa loob ng dalawang linggo, dahan-dahan kong pinagsikapan ang package na ito, inayos ang source code upang umangkop sa aking sarili, muling binasa ang mga manual, at bilang resulta, nakatanggap ako ng gumaganang tunnel na matagumpay na binuo sa pamamagitan ng ultra-secure na firewall ng aming corporate network. Pagkatapos ito ay simpleng hindi kapani-paniwala para sa akin!

Sa pangkalahatan, na may kaunting pagnanais at oras, maaari kang mag-isa na maglunsad ng isang pekeng server ng pangalan ng kliyente upang lumikha ng isang "IP-over-DNS" tunnel.

Maglaro, subukan. Maghanap ng mga paraan upang maprotektahan ang iyong sarili mula dito. Binabalaan kita nang maaga na mayroong maraming mga teknikal na nuances dito.

Sa tingin mo ay mapagkakatiwalaan na protektado ang iyong pagiging hindi nagpapakilala. Ngunit sa kasamaang-palad ay hindi ito ang kaso. Mayroong isang napakahalagang channel para sa pagtagas ng iyong pribadong impormasyon - ang serbisyo ng DNS. Ngunit sa kabutihang palad, may naimbentong solusyon din para dito. Ngayon sasabihin ko sa iyo kung paano i-encrypt ang iyong trapiko sa DNS gamit ang DNSCrypt utility.

Kapag gumagamit ng HTTPS o SSL, ang iyong trapiko sa HTTP ay naka-encrypt, ibig sabihin, protektado. Kapag gumamit ka ng VPN, ang lahat ng iyong trapiko ay naka-encrypt na (siyempre, ang lahat ay nakasalalay sa Mga setting ng VPN, ngunit, bilang panuntunan, ito ang kaso). Ngunit kung minsan, kahit na gumagamit ng VPN, ang iyong mga query sa DNS ay hindi naka-encrypt, ipinapadala ang mga ito kung ano man, na nagbubukas ng maraming puwang para sa pagkamalikhain, kabilang ang mga pag-atake ng MITM, pag-redirect ng trapiko at marami pa.

Dito sumasagip ang open source DNSCrypt utility, na binuo ng mga kilalang tagalikha ng OpenDNS - isang program na nagbibigay-daan sa iyong i-encrypt ang mga query sa DNS. Pagkatapos i-install ito sa iyong computer, mapoprotektahan din ang iyong mga koneksyon at mas ligtas kang makakapag-surf sa Internet. Siyempre, ang DNSCrypt ay hindi isang panlunas sa lahat para sa lahat ng mga problema, ngunit isa lamang sa mga tool sa seguridad. Kailangan mo pa ring gumamit ng koneksyon sa VPN upang i-encrypt ang lahat ng trapiko, ngunit ang pagpapares nito sa DNSCrypt ay magiging mas secure. Kung nasiyahan ka sa ganoong maikling paliwanag, maaari kang agad na lumipat sa seksyon kung saan ilalarawan ko ang pag-install at paggamit ng programa.

Subukan nating maunawaan nang mas malalim. Ang seksyong ito ay para sa tunay na paranoid. Kung pinahahalagahan mo ang iyong oras, maaari kang magpatuloy kaagad sa pag-install ng programa.
Kaya, tulad ng sinasabi nila, mas mahusay na makakita ng isang beses kaysa marinig ng isang daang beses. Tingnan mo ang larawan.


Sabihin nating sinusubukan ng isang kliyente (ang laptop sa larawan) na i-access ang google.com Una sa lahat, dapat niya
lutasin ang simbolikong hostname sa IP address. Kung ang configuration ng network ay tulad na ginagamit ang DNS server ng provider (isang hindi naka-encrypt na koneksyon, pulang linya sa figure), kung gayon ang paglutas ng simbolikong pangalan sa IP address ay nangyayari sa isang hindi naka-encrypt na koneksyon.

Oo, walang makakaalam kung anong data ang ipapadala mo sa dkws.org.ua. Ngunit may ilang mga hindi kasiya-siyang sandali. Una, ang provider, sa pamamagitan ng pagtingin sa mga DNS log, ay malalaman kung aling mga site ang iyong binisita. Kailangan mo ba ito? Pangalawa, malamang ang posibilidad ng DNS spoofing at DNS snooping attacks. Hindi ko na sila ilalarawan nang detalyado; Sa madaling sabi, ang sitwasyon ay maaaring ang mga sumusunod: maaaring hadlangan ng isang tao sa pagitan mo at ng provider ang kahilingan ng DNS (at dahil hindi naka-encrypt ang mga kahilingan, hindi magiging mahirap na harangin ang kahilingan at basahin ang mga nilalaman nito) at padalhan ka ng " pekeng” tugon. Bilang resulta, sa halip na bisitahin ang google.com, pupunta ka sa website ng umaatake, na eksaktong katulad ng kailangan mo, ilalagay mo ang iyong password mula sa forum, at pagkatapos ay ang pagbuo ng mga kaganapan, sa palagay ko, ay malinaw.

Ang sitwasyong inilarawan ay tinatawag na DNS leaking. Nagaganap ang pagtagas ng DNS kapag ang iyong system, kahit na pagkatapos kumonekta sa isang VPN server o Tor, ay patuloy na nagtatanong sa mga DNS server ng provider upang malutas ang mga pangalan ng domain. Sa tuwing bibisita ka sa isang bagong site, kumonekta sa isang bagong server, o maglunsad ng isang bagay aplikasyon sa network, nakikipag-ugnayan ang iyong system sa DNS ng ISP upang malutas ang pangalan sa IP. Bilang resulta, ang iyong provider o sinumang matatagpuan sa "huling milya," ibig sabihin, sa pagitan mo at ng provider, ay makakatanggap ng lahat ng pangalan ng mga node na iyong ina-access. Ang opsyon sa itaas na may pagpapalit ng IP address ay medyo malupit, ngunit sa anumang kaso posible na subaybayan ang mga node na iyong binisita at gamitin ang impormasyong ito para sa iyong sariling mga layunin.

Kung "natatakot" ka sa iyong provider o ayaw lang niyang makita kung anong mga site ang binibisita mo, maaari mong (siyempre, bilang karagdagan sa paggamit ng VPN at iba pang mga hakbang sa seguridad) na i-configure ang iyong computer na gagamitin. Mga DNS server Proyekto ng OpenDNS (www.opendns.com). Naka-on sa ngayon ito ang mga sumusunod na server:

208.67.222.222
208.67.220.220

Hindi mo kailangan ng anumang karagdagang software. I-configure lang ang iyong system para gamitin ang mga DNS server na ito.

Ngunit nananatili pa rin ang problema ng pagharang sa mga koneksyon sa DNS. Oo, hindi mo na ina-access ang DNS ng provider, kundi ang OpenDNS, ngunit maaari mo pa ring harangin ang mga packet at makita kung ano ang nasa mga ito. Iyon ay, kung nais mo, maaari mong malaman kung aling mga node ang iyong na-access.

Ngayon ay dumating kami sa DNSCrypt. Pinapayagan ka ng program na ito na i-encrypt ang iyong koneksyon sa DNS. Ngayon ang iyong ISP (at lahat ng nasa pagitan mo at nila) ay hindi na alam kung anong mga site ang binibisita mo! Uulitin ko ulit. Ang program na ito ay hindi isang kapalit para sa Tor o VPN. Tulad ng dati, ang natitirang data na iyong ipinadala ay ipinapadala nang walang pag-encrypt kung hindi ka gumagamit ng alinman sa isang VPN o Tor. Ang programa ay nag-encrypt lamang ng trapiko ng DNS.


BILANG KONKLUSYON

Ang artikulo ay hindi masyadong mahaba, dahil ang programa mismo ay napakadaling gamitin. Ngunit hindi ito magiging kumpleto kung hindi ko babanggitin ang VPN. Kung nabasa mo ang artikulong ito at interesado dito, ngunit hindi mo pa ginagamit ang mga serbisyo ng isang VPN provider upang i-encrypt ang iyong data, oras na para gawin ito.
Bibigyan ka ng VPN provider ng secure na tunnel para ilipat ang iyong data, at ise-secure ng DNSCrypt ang iyong mga koneksyon sa DNS. Siyempre, ang mga serbisyo ng mga tagapagbigay ng VPN ay binabayaran, ngunit kailangan mong magbayad para sa seguridad, tama?

Maaari mong, siyempre, gumamit ng Tor, ngunit gumagana ang Tor nang medyo mabagal, at, anuman ang maaaring sabihin ng isa, hindi ito isang VPN - hindi posible na "i-torify" ang lahat ng trapiko. Sa anumang kaso (alinmang opsyon ang pipiliin mo), secure na ang iyong mga koneksyon sa DNS. Ang natitira na lang ay magpasya sa isang paraan ng pag-encrypt ng trapiko (kung hindi mo pa nagagawa).

Ini-scan ng programa ang mga tugon ng DNS ng mga server (ito ay sapat na, may mga query sa loob ng mga tugon), at kung ang domain name ay tumutugma sa isang regular na expression, ito ay nagpi-print ng address mula sa A record (kung ano ang nakuha bilang resulta ng paglutas).

Gamit ang utility na ito, maaari mong kolektahin ang halos lahat ng mga istatistika - kung aling pangalan ng domain ang nalutas sa isang IP address, at kapag nangyari ito. Siyempre, maaaring itago ng isang sinanay na user ang impormasyong ito (sa pamamagitan ng pagsulat ng node sa file ng mga host, o paggamit ng isa pang channel para sa mga query sa DNS, halimbawa), ngunit para sa karamihan ng mga node makakakuha tayo ng isang kasiya-siyang larawan.

Paano ito gumagana:

$ sudo ./sidmat eth0 "." iu
nakikita natin mga domain name at kung ano ang kanilang lutasin (eth0 ay ang interface kung saan pumasa ang trapiko ng DNS).

$ sudo ./sidmat eth0 "." iu | habang ang IFS= read -r line; gawin printf "%s\t%s\n" "$(petsa "+%Y-%m-%d %H:%M:%S")" "$line"; tapos na
Inaayos namin ang oras. Ang natitira lang ay i-redirect ang resulta sa isang file, at maaari mong gamitin ang talahanayan ng pagsusulatan. Maaaring makuha ng utility ang mga tugon ng DNS gamit ang pcap (sa Linux/BSD) o gamit ang mekanismo ng nflog sa Linux.

Ang parehong pamamaraan ay maaaring gamitin upang kontrolin ang trapiko. I-filter ayon sa domain, kumuha ng mga address ng domain mula sa mga keyword sa mga pangalan, atbp.

Kailangan mong tandaan na ang kontrol ay maaaring hindi masyadong tumpak. Kung sa oras na maabot ng tugon ng DNS ang user at nagsimula siyang magpadala ng trapiko sa node na ito, wala kaming oras upang idagdag ang address sa ipset/iptables/routing table/sa ibang lugar, pagkatapos ay mapupunta ang trapiko sa "normal" na paraan .

Bilang karagdagan, ang isang kwalipikadong user ay maaaring makabuo ng mga maling tugon sa DNS, ibig sabihin, mas mahusay na gamitin ito nang may pag-iingat para sa mga paghihiganti.

Ilang halimbawa:

Paano makakuha ng isang listahan ng mga IP address kung saan naresolba ang vk.com at ang mga subdomain nito? (Kung wala ang opsyong "u", tanging mga natatanging IP address ang ipi-print)

$ sudo ./sidmat eth0 "^vk.com$|\.vk.com$" d
Sa mga opsyon na “d” o “i” makikita mo kung aling domain ang naresolba sa IP address, ini-print ng “d” ang domain name sa stderr.

Paano harangan ang mga address na nagpapahintulot sa vk.com, mga subdomain nito at lahat ng domain na may salitang odnoklassniki? (Ang mga domain tulad ng avk.com ay hindi mapapailalim sa panuntunan, gagawin ng odnoklassnikii.com).

$ sudo sh -c "/sidmat eth0 "^vk\.com$|\.vk\.com$|odnoklassniki" | /usr/bin/xargs -I () /sbin/iptables -A INPUT -s () - j DROP"
Bilang karagdagan sa maliliit na regular na expression, maaari kang gumamit ng mga listahan sa isang file (opsyon "f", ang pangalawang argumento ay binibigyang kahulugan bilang pangalan ng file, ang mga nilalaman nito bilang isang malaking regular na expression). Ang mga listahan ay maaaring masyadong malaki, tiningnan namin ang pagganap sa listahan ng domain ng RKN (ang trapiko sa mga ipinagbabawal na domain ay na-redirect sa VPN), ang isang regular na PC router ay nakayanan ito nang mahinahon.

Maaari kang tumulong at maglipat ng ilang pondo para sa pagpapaunlad ng site