DNS รั่วไหล: มันคืออะไรและจะแก้ไขได้อย่างไรโดยใช้ยูทิลิตี้ DNSCrypt บทเรียน Wireshark: ดูการรับส่งข้อมูล DNS ประเมินยูทิลิตี้ DNSCrypt

ปกป้องการเชื่อมต่อ DNS สำหรับผู้หวาดระแวง

เมื่อใช้ VPN คุณคิดว่าไม่มีใครสอดแนมคุณและข้อมูลที่ส่งได้รับการปกป้องหรือไม่? คุณผิด. ตอนนี้ฉันจะพยายามอธิบายว่าทำไม

เกี่ยวกับ DNSCRYPT โดยย่อ

เมื่อใช้ HTTPS หรือ SSL การรับส่งข้อมูล HTTP ของคุณจะถูกเข้ารหัส ซึ่งหมายความว่าได้รับการป้องกัน เมื่อคุณใช้ VPN การรับส่งข้อมูลทั้งหมดของคุณจะถูกเข้ารหัสแล้ว (แน่นอนว่าทุกอย่างขึ้นอยู่กับ การตั้งค่า VPNแต่ตามกฎแล้วจะเป็นเช่นนี้) แต่บางครั้ง แม้ว่าจะใช้ VPN ก็ตาม การสืบค้น DNS ของคุณจะไม่ได้รับการเข้ารหัส แต่จะถูกส่งตามที่เป็นอยู่ ซึ่งเปิดพื้นที่ให้สร้างสรรค์ได้มากมาย รวมถึงการโจมตี MITM การเปลี่ยนเส้นทางการรับส่งข้อมูล และอื่นๆ อีกมากมาย

นี่คือจุดที่ยูทิลิตี้ DNSCrypt โอเพ่นซอร์สมาช่วยเหลือซึ่งพัฒนาโดยผู้สร้าง OpenDNS ที่มีชื่อเสียงซึ่งเป็นโปรแกรมที่ให้คุณเข้ารหัสคำขอ DNS หลังจากติดตั้งลงในคอมพิวเตอร์ของคุณแล้ว การเชื่อมต่อของคุณจะได้รับการปกป้องและคุณจะสามารถท่องอินเทอร์เน็ตได้อย่างปลอดภัยยิ่งขึ้นและดูที่ ออกแบบ โฆษณากลางแจ้ง - แน่นอนว่า DNSCrypt ไม่ใช่ยาครอบจักรวาลสำหรับปัญหาทั้งหมด แต่เป็นเพียงหนึ่งในเครื่องมือรักษาความปลอดภัยเท่านั้น คุณยังคงต้องใช้การเชื่อมต่อ VPN เพื่อเข้ารหัสการรับส่งข้อมูลทั้งหมด แต่การจับคู่กับ DNSCrypt จะปลอดภัยกว่า หากคุณพอใจกับคำอธิบายสั้น ๆ คุณสามารถไปยังส่วนที่ฉันจะอธิบายการติดตั้งและใช้งานโปรแกรมได้ทันที

เพื่อความหวาดระแวงที่แท้จริง

มาลองทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น ส่วนนี้มีไว้สำหรับคนหวาดระแวงอย่างแท้จริง หากคุณให้ความสำคัญกับเวลาของคุณคุณสามารถดำเนินการติดตั้งโปรแกรมได้ทันที

อย่างที่เขาว่ากัน เห็นครั้งเดียว ดีกว่าฟังร้อยครั้ง สมมติว่าลูกค้าพยายามติดต่อ dkws.org.ua สิ่งแรกที่ต้องทำคือแก้ไขชื่อโฮสต์เชิงสัญลักษณ์ให้เป็นที่อยู่ IP หากการกำหนดค่าเครือข่ายใช้เซิร์ฟเวอร์ DNS ของผู้ให้บริการ (การเชื่อมต่อที่ไม่ได้เข้ารหัส เส้นสีแดงในรูป) ดังนั้นการแก้ไขชื่อสัญลักษณ์เป็นที่อยู่ IP จะเกิดขึ้นผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัส

ใช่ จะไม่มีใครรู้ว่าข้อมูลใดที่คุณจะส่งข้อมูลไปยัง dkws.org.ua แต่มีช่วงเวลาที่ไม่พึงประสงค์อยู่บ้าง ประการแรก ผู้ให้บริการจะสามารถตรวจสอบบันทึก DNS ได้ว่าไซต์ใดที่คุณเยี่ยมชม คุณต้องการมันไหม? ประการที่สอง มีความเป็นไปได้ที่จะมีการปลอมแปลง DNS และการโจมตีด้วยการสอดแนม DNS ฉันจะไม่อธิบายอย่างละเอียด มีบทความมากมายที่เขียนเกี่ยวกับเรื่องนี้แล้ว โดยสรุป สถานการณ์อาจเป็นดังนี้: ใครบางคนระหว่างคุณและผู้ให้บริการสามารถสกัดกั้นคำขอ DNS (และเนื่องจากคำขอไม่ได้เข้ารหัส จึงไม่ใช่เรื่องยากในการสกัดกั้นคำขอและอ่านเนื้อหา) และส่ง " คำตอบปลอม” ด้วยเหตุนี้ แทนที่จะไปที่ dkws.org.ua คุณจะไปที่เว็บไซต์ของผู้โจมตีซึ่งเหมือนกับที่คุณต้องการ คุณจะต้องป้อนรหัสผ่านจากฟอรัม จากนั้นฉันคิดว่าการพัฒนากิจกรรมคือ ชัดเจน.

สถานการณ์ที่อธิบายไว้เรียกว่า DNS รั่ว DNS รั่วไหลเกิดขึ้นเมื่อระบบของคุณ แม้จะเชื่อมต่อกับเซิร์ฟเวอร์ VPN หรือ Tor แล้ว ยังคงค้นหาเซิร์ฟเวอร์ DNS ของ ISP เพื่อหาการแก้ไขชื่อโดเมน ทุกครั้งที่คุณเยี่ยมชมไซต์ใหม่ เชื่อมต่อกับเซิร์ฟเวอร์ใหม่ หรือเปิดแอปพลิเคชันเครือข่าย ระบบของคุณจะติดต่อ DNS ของ ISP ของคุณเพื่อแก้ไขชื่อเป็น IP ด้วยเหตุนี้ ผู้ให้บริการของคุณหรือใครก็ตามที่อยู่ใน “ไมล์สุดท้าย” ซึ่งก็คือระหว่างคุณกับผู้ให้บริการ สามารถรับชื่อทั้งหมดของโหนดที่คุณเข้าถึงได้ ตัวเลือกข้างต้นที่มีการทดแทนที่อยู่ IP ค่อนข้างโหดร้าย แต่ในกรณีใด ๆ คุณสามารถติดตามโหนดที่คุณเยี่ยมชมและใช้ข้อมูลนี้เพื่อวัตถุประสงค์ของคุณเองได้

หากคุณ “กลัว” ผู้ให้บริการของคุณหรือเพียงไม่ต้องการให้เขาเห็นว่าคุณเยี่ยมชมเว็บไซต์ใด คุณสามารถ (แน่นอน นอกเหนือจากการใช้ VPN และมาตรการรักษาความปลอดภัยอื่นๆ) กำหนดค่าคอมพิวเตอร์ของคุณเพิ่มเติมให้ใช้เซิร์ฟเวอร์ DNS ของ โครงการ OpenDNS (www.opendns.com) ปัจจุบันมีเซิร์ฟเวอร์ดังต่อไปนี้:

208.67.222.222;

208.67.220.220.

ในกรณีนี้คุณไม่จำเป็นต้องมีสิ่งใดเพิ่มเติมอีก ซอฟต์แวร์- เพียงกำหนดค่าระบบของคุณให้ใช้เซิร์ฟเวอร์ DNS เหล่านี้

แต่ปัญหาการสกัดกั้นการเชื่อมต่อ DNS ยังคงอยู่ ใช่ คุณไม่ได้เข้าถึง DNS ของผู้ให้บริการอีกต่อไป แต่เป็น OpenDNS แต่คุณยังคงสามารถสกัดกั้นแพ็กเก็ตและดูว่ามีอะไรอยู่ในนั้น นั่นคือหากคุณต้องการคุณสามารถค้นหาว่าคุณเข้าถึงโหนดใด

ตอนนี้เรามาถึง DNSCrypt โปรแกรมนี้อนุญาตให้คุณเข้ารหัสการเชื่อมต่อ DNS ของคุณ ตอนนี้ ISP ของคุณ (และทุกคนระหว่างคุณและพวกเขา) จะไม่ทราบแน่ชัดว่าคุณเยี่ยมชมเว็บไซต์ใด! ฉันจะทำซ้ำอีกครั้ง โปรแกรมนี้ไม่สามารถทดแทน Tor หรือ VPN เช่นเคย ข้อมูลที่เหลือที่คุณส่งจะถูกส่งโดยไม่มีการเข้ารหัส หากคุณไม่ได้ใช้ VPN หรือ Tor โปรแกรมเข้ารหัสการรับส่งข้อมูล DNS เท่านั้น

เว็บไซต์ https://www.dnsleaktest.com ช่วยให้คุณระบุการรั่วไหลของ DNS และอธิบายวิธีกำจัดมัน เพียงไปที่เว็บไซต์นี้ เมื่อคลิกปุ่มตรวจสอบการรั่วไหลของ DNS ทันที คุณจะได้รับรายชื่อเซิร์ฟเวอร์ DNS ที่สามารถส่งผ่านคำค้นหาของคุณได้ ดังนั้นคุณจะเห็นได้อย่างชัดเจนว่าใครสามารถค้นหาไซต์ที่คุณเยี่ยมชมได้

ในกรณีของฉัน เจ้าของเซิร์ฟเวอร์ DNS 12 เครื่องสามารถบันทึกเว็บไซต์ทั้งหมดที่ฉันเยี่ยมชมได้ แต่เนื่องจากฉันทำงานผ่าน Tog ปัญหานี้ทำให้ฉันกังวลเล็กน้อย

หน้า bit.lv/1ctmaaJ อธิบายวิธีแก้ไขช่องโหว่นี้ (นั่นคือ สิ่งที่ต้องทำหลังจากเชื่อมต่อกับ VPN แล้ว ระบบของคุณจะใช้เซิร์ฟเวอร์ DNS ของผู้ให้บริการ VPN ไม่ใช่ผู้ให้บริการอินเทอร์เน็ตของคุณ) ฉันไม่เห็นว่ามีประโยชน์อะไรที่ต้องทำซ้ำทั้งหมดนี้ เนื่องจากใครๆ ก็สามารถรับมือกับลำดับการกระทำทีละขั้นตอนได้

การติดตั้งโดยใช้ DNSCRYPT

วิธีที่ง่ายที่สุดในการรักษาความปลอดภัยการเชื่อมต่อ DNS ของคุณคือการใช้ DNSCrypt แน่นอนคุณสามารถทำตามคำแนะนำจาก www. dnsleaktest.com หรือคุณสามารถใช้เส้นทางที่มีการต่อต้านน้อยที่สุดและเพียงติดตั้ง DNSCrypt

ก่อนอื่น ให้ดาวน์โหลด DNSCrypt เอง (https://github.com/QDendns/dnscrypt-win-client) ฉันให้ลิงก์ไปยัง GitHub ทันทีซึ่งคุณสามารถดาวน์โหลดโปรแกรมได้ หากต้องการดาวน์โหลดโปรแกรมจาก GitHub ให้คลิกปุ่มดาวน์โหลด ZIP ไฟล์เก็บถาวรที่มีแหล่งที่มา DNSCrypt จะถูกดาวน์โหลด เวอร์ชันที่คอมไพล์แล้วอยู่ในไดเร็กทอรี DNSCrypt ของไฟล์เก็บถาวร คลายไฟล์ โดยพื้นฐานแล้วคุณต้องการเพียงไฟล์เดียวเท่านั้น - dnscrypt-proxy.exe ตั้งอยู่ในไดเร็กทอรีเดียวกัน ทุกสิ่งทุกอย่าง (แหล่งที่มา) สามารถลบได้

แต่นั่นไม่ใช่ทั้งหมด หากคุณเคยใช้ Googled แล้ว คุณจะเห็นภาพหน้าจอของ DNSCrypt หลังจากเปิดตัว dnscrypt-proxy.exe คุณพบว่ามีบางอย่างผิดปกติ โปรแกรมเริ่มต้นในหน้าต่าง บรรทัดคำสั่ง- ทุกอย่างถูกต้อง คุณดาวน์โหลดพร็อกซีเอง และตอนนี้คุณยังต้องดาวน์โหลดเชลล์สำหรับมัน มีอีกโครงการหนึ่งบน GitHub - เชลล์ที่เราต้องการ

ในทำนองเดียวกัน ให้ดาวน์โหลดไฟล์ ZIP และแตกไฟล์ออกจากที่ใดที่หนึ่ง ในไดเร็กทอรี binaries/Release/ จะมีโปรแกรมชื่อ dnscrypt-winclient.exe คัดลอกไฟล์นี้ไปยังไดเร็กทอรีที่มีไฟล์ dnscrypt-proxy.exe

สิ่งที่เหลืออยู่คือการเรียกใช้ dnscrypt-proxy เอ๊ะ ในหน้าต่างที่ปรากฏขึ้น ให้เลือก อะแดปเตอร์เครือข่ายที่คุณต้องการปกป้องแล้วคลิกปุ่มเริ่ม หากทุกอย่างเรียบร้อยดี ข้อความ DNSCrypt กำลังทำงานอยู่จะปรากฏขึ้นใกล้กับปุ่ม Stop (ปุ่ม Start จะเปลี่ยนเป็นปุ่มนั้น) อย่างไรก็ตาม โปรดทราบว่าอินเทอร์เฟซสำหรับ OS X ดูแตกต่างออกไปเล็กน้อย

เป็นข้อสรุป

บทความนี้มีความยาวไม่มากเนื่องจากตัวโปรแกรมใช้งานง่ายมาก แต่มันจะไม่สมบูรณ์หากฉันไม่พูดถึง VPN หากคุณอ่านบทความนี้และสนใจ แต่คุณยังไม่ได้ใช้บริการของผู้ให้บริการ VPN เพื่อเข้ารหัสข้อมูลของคุณ ก็ถึงเวลาที่ต้องทำเช่นนั้น ผู้ให้บริการ VPN จะให้อุโมงค์ที่ปลอดภัยแก่คุณในการถ่ายโอนข้อมูลของคุณ และ DNSCrypt จะรักษาความปลอดภัยการเชื่อมต่อ DNS ของคุณ แน่นอนว่ามีการจ่ายเงิน SecurityKISS (ฟรี แผนภาษีสามารถใช้เพื่อวัตถุประสงค์ในการให้ข้อมูลเท่านั้น) แต่คุณต้องจ่ายเงินเพื่อความปลอดภัย?

แน่นอนคุณสามารถใช้ Tor ได้ แต่ Tor ทำงานค่อนข้างช้า และไม่ว่าใครจะพูดอะไรก็ตาม มันไม่ใช่ VPN - จะไม่สามารถ "เรียกเก็บภาษี" ปริมาณข้อมูลทั้งหมดได้ ไม่ว่าในกรณีใด (ไม่ว่าคุณจะเลือกตัวเลือกใดก็ตาม) การเชื่อมต่อ DNS ของคุณก็จะปลอดภัยแล้ว สิ่งที่เหลืออยู่คือการตัดสินใจเลือกวิธีการเข้ารหัสการรับส่งข้อมูล (หากคุณยังไม่ได้ดำเนินการ)

4601 ,

เนื่องจากความเชื่อผิดๆ ของการไม่เปิดเผยตัวตนบนอินเทอร์เน็ตถูกขจัดออกไป ปัญหาความเป็นส่วนตัวของผู้ใช้จึงได้รวมอยู่ในรายการปัญหาที่เร่งด่วนที่สุด ไม่เพียงแต่สามารถติดตามกิจกรรมออนไลน์ของคุณเท่านั้น เครื่องมือค้นหาและเว็บไซต์ที่คุณเยี่ยมชม รวมถึงผู้ให้บริการอินเทอร์เน็ตของคุณเองด้วย ในทางเทคนิคแล้วสิ่งนี้ไม่ใช่เรื่องยากหาก DNSผู้ให้บริการออกให้คุณและสิ่งนี้มักเกิดขึ้นบ่อยครั้งทุกสิ่งที่ผ่านไป DNSสามารถติดตามการจราจรได้โดยเฉพาะอย่างยิ่งตั้งแต่นั้นเป็นต้นมา DNS-คำขอจะถูกส่งผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัส

เป็นที่ชัดเจนว่าการเปลี่ยนแพ็กเก็ตที่ดักจับจะไม่ใช่เรื่องยากแม้ว่าคุณจะใช้ก็ตาม วีพีพีเอ็น-บริการ

วิธีเดียวที่จะปิดรูได้คือผ่านการเข้ารหัส DNS- การจราจร แต่สำหรับสิ่งนี้คุณจะต้องมีซอฟต์แวร์พิเศษเนื่องจากไม่มีเลย ระบบปฏิบัติการไม่รองรับการเข้ารหัส DNSออกจากกล่อง เครื่องมือเข้ารหัสที่ง่ายที่สุด DNS- การจราจรมีน้อย ยูทิลิตี้ฟรีซึ่งมีข้อดีคือไม่ต้องตั้งค่าเพิ่มเติม ซึ่งหมายความว่าผู้เริ่มต้นสามารถใช้งานได้ มีเครื่องมือคอนโซล - พร็อกซี DNSCryptแต่คุณต้องแก้ไขมัน - รันชุดคำสั่งใน พาวเวอร์เชลล์,เปลี่ยนที่อยู่ DNSด้วยตนเองและอื่นๆ ใครมีเวลาและความปรารถนาเชิญมาทำความคุ้นเคยในเพจได้เลยนะครับ github.com/jedisct1/dnscrypt-proxy .

เราขอแนะนำให้ใช้เวอร์ชันเดสก์ท็อปที่เรียบง่ายและสะดวกยิ่งขึ้น DNS- ผู้เข้ารหัส ดาวน์โหลดจากเว็บไซต์ของผู้พัฒนา simplednscrypt.orgเวอร์ชันของโปรแกรมที่สอดคล้องกับระดับบิตระบบปฏิบัติการของคุณและติดตั้ง

มันมาพร้อมกับอินเทอร์เฟซที่ใช้งานง่ายและยิ่งกว่านั้นเป็นภาษารัสเซีย คุณจึงสามารถเข้าใจได้อย่างง่ายดายว่าอะไรคืออะไร มีการตั้งค่าพื้นฐานในส่วนนี้ "เมนู"- หากต้องการเริ่มใช้งานโปรแกรมทันทีหลังการติดตั้งให้คลิกปุ่ม "นำมาใช้"จากนั้นเลือกของคุณด้านล่าง การ์ดเครือข่ายควรทำเครื่องหมายตามที่แสดงในภาพหน้าจอ สวิตช์ “บริการดีเอ็นเอสคริปต์”จะต้องใช้งานอยู่

ง่ายต่อการตรวจสอบว่าทุกอย่างใช้งานได้หรือไม่ ดำเนินการในหน้าต่าง วิ่งทีม ncpa.cplให้เปิดคุณสมบัติการเชื่อมต่อของคุณ เลือกจากรายการ IP เวอร์ชัน 4 (TCPIPv4)และเปิดคุณสมบัติของมัน ปุ่มตัวเลือก "ใช้ที่อยู่เซิร์ฟเวอร์ DNS ต่อไปนี้"จะต้องใช้งานอยู่และช่องจะต้องระบุที่ต้องการ DNS-เซิร์ฟเวอร์ เรามีมัน 127.0.0.1 ที่อยู่ของคุณอาจแตกต่างกัน

ตามค่าเริ่มต้น โปรแกรมจะเลือกเซิร์ฟเวอร์ที่เร็วที่สุดโดยอัตโนมัติ แต่คุณสามารถเปลี่ยนการตั้งค่าของคุณได้โดยเลือกด้วยตนเองในส่วนนี้

ไม่จำเป็นต้องเปลี่ยนพารามิเตอร์ส่วน หากคุณไม่ได้ใช้โปรโตคอล IPv4- ใน การตั้งค่าทั่วไปคุณสามารถเปิดใช้งานแท็บเพิ่มเติมได้ "บัญชีดำของโดเมน", "บันทึกการบล็อกโดเมน"แต่นี่จะเป็นอีกครั้งหากคุณกำลังจะทำงานกับฟังก์ชั่นที่พวกเขานำเสนอโดยเฉพาะการเขียน "สีดำ"รายการโดเมน

คุณคิดว่าการไม่เปิดเผยตัวตนของคุณได้รับการปกป้องอย่างน่าเชื่อถือ แต่น่าเสียดายที่ไม่เป็นเช่นนั้น มีช่องทางหนึ่งที่สำคัญมากในการรั่วไหลข้อมูลส่วนตัวของคุณ - บริการ DNS แต่โชคดีที่มีการคิดค้นวิธีแก้ปัญหาสำหรับเรื่องนี้ด้วย วันนี้ฉันจะบอกวิธีเข้ารหัสการรับส่งข้อมูล DNS ของคุณโดยใช้ยูทิลิตี้ DNSCrypt

เมื่อใช้ HTTPS หรือ SSL การรับส่งข้อมูล HTTP ของคุณจะถูกเข้ารหัส กล่าวคือ มีการป้องกัน เมื่อคุณใช้ VPN การรับส่งข้อมูลทั้งหมดของคุณจะถูกเข้ารหัสไว้แล้ว (แน่นอนว่าทุกอย่างขึ้นอยู่กับการตั้งค่า VPN แต่ตามกฎแล้ว เป็นกรณีนี้) แต่บางครั้ง แม้ว่าจะใช้ VPN การสืบค้น DNS ของคุณจะไม่ได้รับการเข้ารหัส แต่จะถูกส่งตามที่เป็นอยู่ ซึ่งเปิดพื้นที่ให้สร้างสรรค์ได้มากมาย รวมถึงการโจมตี MITM การเปลี่ยนเส้นทางการรับส่งข้อมูล และอื่นๆ อีกมากมาย

นี่คือจุดที่ยูทิลิตี้ DNSCrypt โอเพ่นซอร์สมาช่วยเหลือซึ่งพัฒนาโดยผู้สร้าง OpenDNS ที่มีชื่อเสียงซึ่งเป็นโปรแกรมที่ให้คุณเข้ารหัสคำขอ DNS หลังจากติดตั้งบนคอมพิวเตอร์ของคุณ การเชื่อมต่อของคุณจะได้รับการปกป้องและคุณจะสามารถท่องอินเทอร์เน็ตได้อย่างปลอดภัยมากขึ้น แน่นอนว่า DNSCrypt ไม่ใช่ยาครอบจักรวาลสำหรับปัญหาทั้งหมด แต่เป็นเพียงหนึ่งในเครื่องมือรักษาความปลอดภัยเท่านั้น คุณยังคงต้องใช้การเชื่อมต่อ VPN เพื่อเข้ารหัสการรับส่งข้อมูลทั้งหมด แต่การจับคู่กับ DNSCrypt จะปลอดภัยกว่า หากคุณพอใจกับคำอธิบายสั้น ๆ คุณสามารถไปยังส่วนที่ฉันจะอธิบายการติดตั้งและใช้งานโปรแกรมได้ทันที

มาลองทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น ส่วนนี้มีไว้สำหรับคนหวาดระแวงอย่างแท้จริง หากคุณให้ความสำคัญกับเวลาของคุณคุณสามารถดำเนินการติดตั้งโปรแกรมได้ทันที
อย่างที่เขาว่ากัน เห็นครั้งเดียว ดีกว่าฟังร้อยครั้ง ดูภาพ.


สมมติว่าลูกค้า (แล็ปท็อปในภาพ) พยายามเข้าถึง google.com ก่อนอื่น เขาควรจะเข้าถึง
แก้ไขชื่อโฮสต์สัญลักษณ์เป็นที่อยู่ IP หากการกำหนดค่าเครือข่ายใช้เซิร์ฟเวอร์ DNS ของผู้ให้บริการ (การเชื่อมต่อที่ไม่ได้เข้ารหัส เส้นสีแดงในรูป) ดังนั้นการแก้ไขชื่อสัญลักษณ์เป็นที่อยู่ IP จะเกิดขึ้นผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัส

ใช่ จะไม่มีใครรู้ว่าข้อมูลใดที่คุณจะส่งข้อมูลไปยัง dkws.org.ua แต่มีช่วงเวลาที่ไม่พึงประสงค์อยู่บ้าง ประการแรก ผู้ให้บริการจะสามารถตรวจสอบบันทึก DNS ได้ว่าไซต์ใดที่คุณเยี่ยมชม คุณต้องการมันไหม? ประการที่สอง มีความเป็นไปได้ที่จะมีการปลอมแปลง DNS และการโจมตีด้วยการสอดแนม DNS ฉันจะไม่อธิบายอย่างละเอียด มีบทความมากมายที่เขียนเกี่ยวกับเรื่องนี้แล้ว โดยสรุป สถานการณ์อาจเป็นดังนี้: ใครบางคนระหว่างคุณและผู้ให้บริการสามารถสกัดกั้นคำขอ DNS (และเนื่องจากคำขอไม่ได้เข้ารหัส จึงไม่ใช่เรื่องยากในการสกัดกั้นคำขอและอ่านเนื้อหา) และส่ง " คำตอบปลอม” ด้วยเหตุนี้ แทนที่จะไปที่ google.com คุณจะไปที่เว็บไซต์ของผู้โจมตีซึ่งเหมือนกับที่คุณต้องการ คุณจะต้องป้อนรหัสผ่านจากฟอรัม จากนั้นฉันคิดว่าการพัฒนากิจกรรมก็ชัดเจน

สถานการณ์ที่อธิบายไว้เรียกว่า DNS รั่ว DNS รั่วเกิดขึ้นเมื่อระบบของคุณ แม้หลังจากเชื่อมต่อแล้วก็ตาม เซิร์ฟเวอร์วีพีเอ็นหรือ Tor ยังคงค้นหาเซิร์ฟเวอร์ DNS ของ ISP เพื่อแก้ไขชื่อโดเมน ทุกครั้งที่คุณเยี่ยมชมไซต์ใหม่ เชื่อมต่อกับเซิร์ฟเวอร์ใหม่ หรือเปิดแอปพลิเคชันเครือข่าย ระบบของคุณจะติดต่อ DNS ของ ISP ของคุณเพื่อแก้ไขชื่อเป็น IP ด้วยเหตุนี้ ผู้ให้บริการของคุณหรือใครก็ตามที่อยู่ใน “ไมล์สุดท้าย” ซึ่งก็คือระหว่างคุณกับผู้ให้บริการ สามารถรับชื่อทั้งหมดของโหนดที่คุณเข้าถึงได้ ตัวเลือกข้างต้นที่มีการทดแทนที่อยู่ IP ค่อนข้างโหดร้าย แต่ในกรณีใด ๆ คุณสามารถติดตามโหนดที่คุณเยี่ยมชมและใช้ข้อมูลนี้เพื่อวัตถุประสงค์ของคุณเองได้

หากคุณ “กลัว” ผู้ให้บริการของคุณหรือเพียงไม่ต้องการให้เขาเห็นว่าคุณเยี่ยมชมเว็บไซต์ใด คุณสามารถ (แน่นอน นอกเหนือจากการใช้ VPN และมาตรการรักษาความปลอดภัยอื่นๆ) กำหนดค่าคอมพิวเตอร์ของคุณเพิ่มเติมให้ใช้เซิร์ฟเวอร์ DNS ของ โครงการ OpenDNS (www.opendns.com) ปัจจุบันมีเซิร์ฟเวอร์ดังต่อไปนี้:

208.67.222.222
208.67.220.220

คุณไม่จำเป็นต้องมีซอฟต์แวร์เพิ่มเติมอื่นใด เพียงกำหนดค่าระบบของคุณให้ใช้เซิร์ฟเวอร์ DNS เหล่านี้

แต่ปัญหาการสกัดกั้นการเชื่อมต่อ DNS ยังคงอยู่ ใช่ คุณไม่ได้เข้าถึง DNS ของผู้ให้บริการอีกต่อไป แต่เป็น OpenDNS แต่คุณยังคงสามารถสกัดกั้นแพ็กเก็ตและดูว่ามีอะไรอยู่ในนั้น นั่นคือหากคุณต้องการคุณสามารถค้นหาว่าคุณเข้าถึงโหนดใด

ตอนนี้เรามาถึง DNSCrypt โปรแกรมนี้อนุญาตให้คุณเข้ารหัสการเชื่อมต่อ DNS ของคุณ ตอนนี้ ISP ของคุณ (และทุกคนระหว่างคุณและพวกเขา) จะไม่ทราบแน่ชัดว่าคุณเยี่ยมชมเว็บไซต์ใด! ฉันจะทำซ้ำอีกครั้ง โปรแกรมนี้ไม่สามารถทดแทน Tor หรือ VPN เช่นเคย ข้อมูลที่เหลือที่คุณส่งจะถูกส่งโดยไม่มีการเข้ารหัส หากคุณไม่ได้ใช้ VPN หรือ Tor โปรแกรมเข้ารหัสการรับส่งข้อมูล DNS เท่านั้น


เป็นข้อสรุป

บทความนี้มีความยาวไม่มากเนื่องจากตัวโปรแกรมใช้งานง่ายมาก แต่มันจะไม่สมบูรณ์หากฉันไม่พูดถึง VPN หากคุณอ่านบทความนี้และสนใจ แต่คุณยังไม่ได้ใช้บริการของผู้ให้บริการ VPN เพื่อเข้ารหัสข้อมูลของคุณ ก็ถึงเวลาที่ต้องทำเช่นนั้น
ผู้ให้บริการ VPN จะให้อุโมงค์ที่ปลอดภัยแก่คุณในการถ่ายโอนข้อมูลของคุณ และ DNSCrypt จะรักษาความปลอดภัยการเชื่อมต่อ DNS ของคุณ แน่นอนว่ามีการชำระค่าบริการของผู้ให้บริการ VPN แต่คุณต้องจ่ายค่ารักษาความปลอดภัยใช่ไหม?

แน่นอนคุณสามารถใช้ Tor ได้ แต่ Tor ทำงานค่อนข้างช้า และไม่ว่าใครจะพูดอะไรก็ตาม มันไม่ใช่ VPN - จะไม่สามารถ "ทรมาน" การรับส่งข้อมูลทั้งหมดได้ ไม่ว่าในกรณีใด (ไม่ว่าคุณจะเลือกตัวเลือกใดก็ตาม) การเชื่อมต่อ DNS ของคุณก็จะปลอดภัยแล้ว สิ่งที่เหลืออยู่คือการตัดสินใจเลือกวิธีการเข้ารหัสการรับส่งข้อมูล (หากคุณยังไม่ได้ดำเนินการ)

คุณอาจกำหนดค่าอุปกรณ์เครือข่ายปลายทางอย่างเหมาะสม เรียงลำดับคลัสเตอร์ของคุณให้เสร็จสิ้น ทรังก์ว่าง และอุปกรณ์หลักเครือข่ายที่ไม่ได้โหลด แต่หาก DNS ของคุณทำงานได้ไม่ดี ลูกค้าของคุณก็จะไม่พึงพอใจ

สิ่งนี้นำไปสู่ข้อสรุปง่ายๆ - เซิร์ฟเวอร์ DNS แบบเรียกซ้ำของคุณต้องพร้อมใช้งานอยู่เสมอและสามารถให้บริการตามคำขอของไคลเอ็นต์ได้

บทความทั้งหมดเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์ DNS ที่มีประสิทธิผลเริ่มต้นดังนี้: “มาเปรียบเทียบพารามิเตอร์ต่างๆ ของเซิร์ฟเวอร์ DNS แบบเรียกซ้ำที่แตกต่างกัน และเลือกอันที่ดีที่สุดจากนั้นเราจะมีความสุข” บอกล่วงหน้าได้เลยว่าความสุขจะมาพร้อมกับวิธีนี้แต่ไม่นาน

ขั้นตอนต่อไปคือการเพิ่มความจุของเซิร์ฟเวอร์เอง วิธีนี้ยังให้ความสุข แต่เมื่อฐานสมาชิกเติบโตอย่างมั่นคง มันก็จะจบลงอย่างรวดเร็ว

คุณอาจถามว่ามีวิธีแก้ไขปัญหาที่มีอยู่หรือแม่นยำกว่านั้นว่าต้องทำอย่างไรในสถานการณ์นี้

คำตอบนั้นง่ายมาก - เราจำเป็นต้องจำกัดจำนวนคำขอแบบเรียกซ้ำบางประเภทจากลูกค้าของเราแต่ละราย ขออภัย ไม่มีเซิร์ฟเวอร์ DNS ที่มีอยู่ในปัจจุบันมีวิธีใดในการจำกัดจำนวนคำขอบางประเภทสำหรับไคลเอนต์แบบเรียกซ้ำแต่ละเครื่อง เราจะใส่ งานนี้ไปยังตัวกรองแพ็คเก็ต ตัวอย่างด้านล่างใช้ iptables

ในกรณีส่วนใหญ่ คำขอ DNS จำนวนมากมาจากไคลเอนต์ที่ติดไวรัส ประเภทต่างๆซึ่งเป็นคำขอ MX จำนวนมากที่มุ่งค้นหาที่อยู่ IP เมลเซิร์ฟเวอร์, พิมพ์ข้อความค้นหา A สำหรับโดเมนแปลกใหม่ เช่น kljhajlhfqweqwe.com หรือ ioweurtisdvfso.org

ตามการประมาณการคร่าวๆ ของเรา 3% ของเครื่องไคลเอนต์สร้างมากกว่า 90% ของคำขอ DNS ทั้งหมด

การโทรหาลูกค้ามักจะไม่สามารถแก้ปัญหาได้ เนื่องจากลูกค้าอาจไม่อยู่ที่บ้าน ลูกค้าไม่มีคุณสมบัติ หรือลูกค้าไม่ต้องการได้รับการปฏิบัติ (ทุกอย่างได้ผลสำหรับฉันอยู่แล้ว) นอกจากนี้ บ่อยครั้งเมื่อพอร์ตไคลเอ็นต์ถูกปิดใช้งาน ผู้ให้บริการจะปล่อยให้การรับส่งข้อมูลแบบเปิดไปยังเซิร์ฟเวอร์ DNS เพื่อให้ไคลเอ็นต์สามารถเข้าสู่ระบบได้ บัญชีส่วนตัวโดยชื่อของเขาและเห็นเหตุผลในการบล็อก แต่เพราะ... คอมพิวเตอร์ไคลเอนต์เป็นเซิร์ฟเวอร์ DNS ที่ล้มเหลว ดังนั้นเพื่อแก้ไขปัญหานี้คุณต้องหาทางออกอื่น

ดังนั้นเราจึงต้องแก้ปัญหาง่ายๆ สองข้อ
1.กำหนดประเภทคำขอ DNS ที่ถูกต้องทั้งหมดที่เราจะดำเนินการ
2. ค้นหาช่วงเวลาที่เหมาะสมในการรับคำขอแต่ละประเภทจากลูกค้าแต่ละราย

มาดูกันว่าคำขอประเภทใดที่มาจากลูกค้าของเราได้ และเราควรทำอย่างไรกับคำขอเหล่านั้น

บันทึก A (บันทึกที่อยู่) เชื่อมโยงชื่อโฮสต์กับที่อยู่ IP คำขอประเภทที่ “มีประโยชน์ที่สุด” ที่สุด ค่าของคำขอ 100 รายการใน 10 วินาทีนั้นค่อนข้างยอมรับได้แม้กับลูกค้าที่ท่องเว็บ "เร็วมาก" :)

AAAA (บันทึกที่อยู่ IPv6) เชื่อมโยงชื่อโฮสต์กับที่อยู่โปรโตคอล IPv6 แม้ว่า IPv6 จะไม่แพร่หลายมากนัก แต่เราสามารถฝากคำขอประเภทนี้ไว้ที่เซิร์ฟเวอร์ DNS ของเราได้ โดยจำกัดคำขอไว้เพียง 2 คำขอต่อ 10 วินาทีจากไคลเอ็นต์แต่ละเครื่อง เพื่อให้คำขอว่างเช่น AAAA localhost ไม่ส่งผลกระทบต่อการทำงานของเซิร์ฟเวอร์ DNS

บันทึก CNAME (บันทึกชื่อตามรูปแบบบัญญัติ) หรือบันทึกชื่อตามรูปแบบบัญญัติ ประเภทคำขอมีประโยชน์ การบล็อกควรเป็นแบบ soft เพื่อให้คำขอประเภทนี้จำนวนน้อยถูกบล็อกให้ได้มากที่สุด เช่นเดียวกับคำขอประเภท A คำขอ 100 รายการใน 10 วินาทีถือเป็นค่าที่ยอมรับได้อย่างสมบูรณ์

บันทึก MX (การแลกเปลี่ยนจดหมาย) หรือตัวแลกเปลี่ยนจดหมายระบุเซิร์ฟเวอร์การแลกเปลี่ยนจดหมายสำหรับโดเมนที่ระบุ สำหรับไคลเอนต์ตามบ้าน การร้องขอบันทึกประเภทนี้อย่างเข้มงวดบ่งชี้อย่างชัดเจนว่าคอมพิวเตอร์ของลูกค้าติดไวรัสที่ส่งสแปม 5 คำขอใน 60 วินาทีเพียงพอที่จะเรียกใช้ยูทิลิตี้การวินิจฉัย

ระเบียน NS (เนมเซิร์ฟเวอร์) ชี้ไปที่เซิร์ฟเวอร์ DNS สำหรับโดเมนที่ระบุ ผู้ใช้บริการอินเทอร์เน็ตที่บ้านไม่ได้สร้างคำขอดังกล่าวโดยตรง ในกรณีส่วนใหญ่ คำขอดังกล่าวจะถูกสร้างขึ้นด้วยตนเองผ่านยูทิลิตี้การวินิจฉัย เช่น nslookup เพื่อที่จะดีบักประสิทธิภาพของโดเมน ฯลฯ คำขอประเภทนี้ 10 รายการใน 60 วินาทีจะเสร็จสมบูรณ์ มูลค่าที่ยอมรับได้

บันทึก PTR (ตัวชี้) หรือบันทึกตัวชี้เชื่อมโยง IP ของโฮสต์กับชื่อมาตรฐาน ใช้ได้กับผู้ใช้บริการ อินเทอร์เน็ตที่บ้านและคำขอประเภทนี้เกิดขึ้นค่อนข้างบ่อยในระหว่างการทำงานของไคลเอนต์ทอร์เรนต์หรือ p2p เพื่อแก้ไขชื่อโฮสต์ที่คุณดาวน์โหลดและที่คุณแจกจ่าย ตัวอย่างเช่น คำขอ 50 รายการใน 10 วินาทีเป็นค่าที่ยอมรับได้อย่างสมบูรณ์ ซึ่งโดยส่วนใหญ่ก็เพียงพอสำหรับผู้ใช้ทุกคน

บันทึก SOA (Start of Authority) หรือบันทึกโซนเริ่มต้นจะระบุว่าเซิร์ฟเวอร์ใดที่เก็บข้อมูลอ้างอิงเกี่ยวกับโดเมนที่กำหนด ประกอบด้วยข้อมูลติดต่อของบุคคลที่รับผิดชอบโซนนี้ เวลา (พารามิเตอร์เวลา) สำหรับข้อมูลโซนแคช และการโต้ตอบระหว่าง เซิร์ฟเวอร์ DNS ประเภทนี้ผู้ใช้อินเทอร์เน็ตที่บ้านสามารถใช้คำขอได้เพื่อวัตถุประสงค์ในการแก้ไขจุดบกพร่องเท่านั้น เราจะอนุญาตให้ลูกค้าแต่ละรายส่งคำขอ 5 รายการใน 60 วินาที

บันทึก SRV (การเลือกเซิร์ฟเวอร์) ระบุเซิร์ฟเวอร์สำหรับบริการ ผู้ใช้อินเทอร์เน็ตที่บ้านสามารถใช้คำขอประเภทนี้เพื่อวัตถุประสงค์ในการแก้ไขจุดบกพร่องเท่านั้น เราจะอนุญาตให้ไคลเอนต์แต่ละรายส่งคำขอ 5 รายการใน 60 วินาที

สามารถดูรายการประเภทบันทึก DNS ทั้งหมดได้

เพื่อให้เข้าใจว่าลายเซ็นใดที่เราสามารถจัดประเภทคำขอ DNS นี้หรือคำขอนั้นได้ เราจำเป็นต้อง "จับ" แพ็กเก็ตประเภทหนึ่งด้วย tcpdump ดูในช่อง Type ของเนื้อหาคำขอ และตรวจสอบให้แน่ใจว่า:

คำขอประเภท MX มีอยู่ในฟิลด์ประเภท - 00 0F
คำขอประเภท AAAA มีอยู่ในฟิลด์ประเภท - 00 1C
คำขอประเภท A มีอยู่ในฟิลด์ประเภท - 00 01
คำขอประเภท PTR มีอยู่ในฟิลด์ประเภท - 00 0C
คำขอประเภท CNAME มีอยู่ในฟิลด์ประเภท - 00 05
คำขอประเภท NS มีอยู่ในฟิลด์ประเภท - 00 02
คำขอประเภท SOA มีอยู่ในฟิลด์ประเภท - 00 06
คำขอประเภท SRV มีอยู่ในฟิลด์ประเภท - 00 21

โปรดทราบว่าในคำขอ DNS หลังจากฟิลด์ Type จะมีฟิลด์ Class ซึ่งจะเท่ากับ 00 01 เสมอสำหรับคำขอ DNS มาเพิ่มฟิลด์นี้ให้กับลายเซ็นทั้งหมดเพื่อลดจำนวนผลบวกลวง

ดังนั้น เพื่อบล็อกคำขอ DNS เช่น MX เราจำเป็นต้องเพิ่มกฎ iptables บนเซิร์ฟเวอร์ DNS:
-A INPUT -p udp --dport 53 -m string --algo kmp --hex-string "|00 0F 00 01|" -เจดรอป

เนื่องจากเราจำเป็นต้องปิดคำขอเหล่านี้ไม่สมบูรณ์ แต่เพียงจำกัดจำนวนต่อหน่วยเวลาเพื่อไม่ให้คำขอเหล่านี้ "ล้มเหลว" เซิร์ฟเวอร์ของเรา เราเพียงแต่เพิ่มโมดูลล่าสุดลงในกฎ

ตัวอย่างเช่น กฎที่จำกัดการรับคำขอ DNS ประเภท MX ไว้ที่ 5 คำขอใน 60 วินาทีจะมีลักษณะดังนี้:
-A INPUT -p udp --dport 53 -m state --state NEW -m string --algo kmp --hex-string "|00 0F 00 01|" -m ล่าสุด --set -- ชื่อ MXFLOOD --rsource

อินพุต -p udp --dport 53 -m state --state NEW -m string --algo kmp --hex-string "|00 0F 00 01|" -m ล่าสุด --update --วินาที 60 --hitcount 5 --rttl --ชื่อ MXFLOOD -j DROP

อินพุต -p udp --dport 53 -m string --algo kmp --hex-string "|00 0F 00 01|" -j ยอมรับ

การสืบค้น DNS ประเภทอื่นๆ ก็มีข้อจำกัดเช่นเดียวกัน

เนื่องจากมี DNS หลายประเภทและเราอนุญาตให้มีการสืบค้น DNS ทุกประเภทที่เราต้องการ จึงเป็นความคิดที่ดีที่จะปิดการใช้งานการสืบค้นอื่น ๆ ทั้งหมดเพื่อไม่ให้เซิร์ฟเวอร์ DNS ของคุณประมวลผลการสืบค้นเหล่านั้น

อินพุต -p udp --dport 53 -j DROP

กฎง่ายๆ เหล่านี้ช่วยให้เราสามารถลดจำนวนคำขอ DNS ที่เกิดซ้ำพร้อมกันมายังเราได้ เซิร์ฟเวอร์ DNSมากกว่า 20 ครั้ง (จาก 10,000 เป็น 400) โดยไม่มีการร้องเรียนเกี่ยวกับประสิทธิภาพ DNS จากผู้ใช้ของเรา