บล็อกนอก DNS, แก้ไข DNS รั่วไหลอูบุนตู 18.04


10

การใช้การทดสอบการรั่วไหลของ DNSในขณะที่อยู่ภายใต้ VPN ของฉันฉันพบว่ามันรั่ว ฉันตั้งค่า VPN ผ่าน NetworkManager แล้วและทำงานได้อย่างถูกต้องยกเว้นการรั่วไหล

ครั้งแรกฉันได้พยายามเพิ่มลงblock-outside-vpnในไฟล์การกำหนดค่ายกเว้นว่า/etc/NetworkManager/system-connectionsมันไม่เป็นไปตามรูปแบบเดียวกัน ฉันไม่พบเอกสารเกี่ยวกับวิธีเขียนหนึ่งอย่างเหมาะสมสำหรับการรั่วไหลของ DNS

นอกจากนี้การใช้ Ubuntu 18.04 resolv.conf ไม่ทำงานเหมือนก่อนทุกคำตอบอื่น ๆ จะขึ้นอยู่กับว่า

สั้น ๆ วิธีการบล็อกนอก DNS (รั่วไหล) โดยใช้ไฟล์การกำหนดค่าผู้จัดการเครือข่ายหรือ GUI?


block-outside-vpnโดยทั่วไปเป็นเพียงตัวเลือกการเชื่อมต่อ Windows OpenVPN การแก้ไข DNS "การรั่วไหล" จะเป็นการใช้เซิร์ฟเวอร์ DNS เฉพาะที่มีอยู่ในอีกด้านหนึ่งของ VPN ผลการทดสอบ DNS Leak ที่คุณเห็นคืออะไร (เกี่ยวข้องกับพวกเขา)
Thomas Ward

คำตอบ:


3

dnscryptผมขอแนะนำให้ใช้

ก่อนติดตั้ง:

sudo apt install dnscrypt-proxy

โดยค่าเริ่มต้นมันจะฟังพอร์ต127.0.2.153

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

nmcli connection modify [CONNECTION-NAME] ipv4.dns 127.0.2.1

และในกรณีที่ปิดกั้นคำขอ DNS ที่กำลังดำเนินการอยู่:

sudo ufw deny out 53

และตรวจสอบให้แน่ใจว่าเปิดใช้งานไฟร์วอลล์แล้ว:

sudo ufw enable

DNS ของฉันยังคงมีการรั่วไหลตามการทดสอบการรั่วไหลของ DNS เป็นสิ่งสำคัญที่จะกล่าวถึงว่าการปิดใช้งาน VPN ในขณะที่เปิดใช้งาน ufw จะทำให้อินเทอร์เน็ตไม่สามารถใช้งานได้ (บล็อกพอร์ต 53)
Pobe

เรียกใช้คำสั่งนี้: nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yesดูว่าช่วยได้หรือไม่
Ravexina

3

ในการแก้ไขปัญหาการรั่วไหลของ DNS บน Ubuntu 18.04 /etc/dhcp/dhclient.confคุณสามารถแก้ไขไฟล์ที่เรียกว่า ตามหน้าคู่มือไฟล์นี้ "ให้หมายถึงการกำหนดค่าเครือข่ายหนึ่งอินเตอร์เฟสขึ้นไปโดยใช้โปรโตคอลการกำหนดค่าโฮสต์แบบไดนามิกโปรโตคอล BOOTP หรือหากโปรโตคอลเหล่านี้ล้มเหลวโดยการกำหนดที่อยู่แบบคงที่"

สำหรับการแก้ไขการรั่วไหลของ DNS เราจะแก้ไขไฟล์นี้ เมื่อเปิดด้วยสิทธิ์ที่เหมาะสมคุณจะเห็นบรรทัดแสดงความคิดเห็นที่มีลักษณะดังนี้:

#prepend domain-name-servers 127.0.0.53;

ยกเลิกหมายเหตุบรรทัดนี้และเปลี่ยน domain-name-server เป็นอันอื่นเช่น OpenDNS: 208.67.222.222 ใช้ที่อยู่ OpenDNS นี้บรรทัดนี้จะมีลักษณะเช่นนี้:

prepend domain-name-servers 208.67.222.222;

หลังจากบันทึกไฟล์และรีบูตระบบของคุณสิ่งนี้ควรแก้ไขการรั่วไหลของ DNS บน Ubuntu 18.04


หรือคุณสามารถแก้ไขการเชื่อมต่อของคุณใน GUI และรับผลลัพธ์เดียวกัน: เปิดหน้าต่างแก้ไขสำหรับการเชื่อมต่อของคุณ => การตั้งค่า IPv4 / IPv6 เปลี่ยน "วิธีการ" เป็น "อัตโนมัติที่อยู่เท่านั้น" และเพิ่ม "เซิร์ฟเวอร์ DNS" ของคุณ
GoodGuyNick

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

3

หากคุณมีการรั่วไหลของ DNS ตามที่ระบุโดยการตรวจสอบใน browserleaks.comหรือdnsleaktest.com ,

  1. ปิดการเชื่อมต่อ VPN ของคุณ

  2. พยายามเลิกทำการแก้ไขไฟล์. conf ใด ๆ ที่คุณเสียเวลาไปแล้ว หากคุณได้ลองใช้คำแนะนำต่าง ๆ มากมายโอกาสที่ดีที่สุดของคุณอาจจะทำการติดตั้งใหม่และตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง networkmanager-openvpn-gnome เนื่องจาก Ubuntu ไม่มีการนำเข้าการกำหนดค่า VPN ที่ให้ไว้ตามค่าเริ่มต้น

  3. ติดตั้ง dnsmasq

    sudo apt update
    sudo apt install dnsmasq  
    
  4. ปิดใช้งานการแก้ไข

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service 
    
  5. ลบ / etc/resolv.confและสร้างใหม่:

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf  
    
  6. ใส่ลงใน.confไฟล์เปล่าของคุณ:

    nameserver 127.0.0.1`         that's all!
    
  7. กดCtrl+ x เพื่อออกจากตัวแก้ไข ป้อน yเพื่อบันทึกจากนั้นกดEnterเพื่อเขียนทับresolv.confไฟล์ใหม่ของคุณ

  8. แก้ไขไฟล์ NetworkManager.conf ของคุณ

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    และเพิ่มรายการต่อไปนี้:

    dns=dnsmasq 
    

    ใต้เส้น (นำทางโดยใช้ปุ่มลูกศร), [main] และ plugins = ifupdown, keyfile แบบนี้เหมือนกับที่มีการเพิ่มบรรทัดใหม่

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

    กดCtrl+ xเพื่อออกจากตัวแก้ไข ป้อนy เพื่อบันทึกจากนั้นกดEnterเพื่อเขียนทับไฟล์

  9. กลับไปที่เทอร์มินัลแล้วรีบูทระบบและตรวจสอบผลการทดสอบไซต์ dnsleak ของคุณ

ด้วยVPN ที่ไม่เปิดเผยตัวซึ่งโซลูชั่นของ Leaks บน Ubuntu / Network Manager นั้นได้รับการค้นคว้าและประสบความสำเร็จเป็นอย่างดี พวกเขาทำงานและเมื่อไม่มีวิธีแก้ปัญหาอื่นที่เหมาะกับฉัน ดังกล่าวข้างต้นแสดงให้เห็นว่าการทำงานของโซลูชั่นสำหรับอูบุนตู17.x และ 18.04 LTS ดูวิธีการแก้ปัญหาอื่น ๆ ของเขาสำหรับ16.04 LTS


ฉันได้ทดสอบโซลูชันนี้บน VM และทำงานได้ดี จากนั้นฉันก็ลองบนเครื่องหลักและเห็น DNS จาก VPN และ DNS รั่วไหล ใน VM nameserverเปลี่ยนจาก127.0.2.1ไป192.168.122.1และเมื่อฉันเชื่อมต่อ VPN ในresolv.confผมเห็นสองnameserverเส้นหนึ่งที่มี192.168.122.1และอื่น ๆ ที่มี VPNs DNS search lan nameserver 127.0.1.1แต่บนเครื่องหลักที่ผมมักจะเห็นทั้งสองสาย
GoodGuyNick

ฉันจะทำสิ่งที่ไม่มีผู้จัดการเครือข่ายได้อย่างไร เพียงใส่ dns ใน / etc / network / interfaces?
เมห์

1

ฉันได้รับการดิ้นรนกับปัญหาที่แน่นอนนี้เป็นเวลา 2 วันก่อนที่จะหาทางออกที่เหมาะกับฉันที่นี่: https://unix.stackexchange.com/a/470940

TL; DR

$ cd /etc/NetworkManager/system-connections

นี่คือที่จัดเก็บการเชื่อมต่อที่สร้างด้วยตัวจัดการเครือข่าย

$ sudo nmcli connection modify <vpn-connection-name> ipv4.dns-priority -42

คำสั่งง่าย ๆ ในการแก้ไขไฟล์กำหนดค่าการเชื่อมต่อ สามารถทำได้ด้วยตนเองเช่นกัน แต่วิธีนี้ฉันเชื่อว่าง่ายกว่า

$ sudo service network-manager restart

ทำการเปลี่ยนแปลงที่ใช้กับระบบของคุณ

โดยทั่วไปคัดลอกวางจากลิงค์ด้านบนเครดิตไปยังผู้เขียนต้นฉบับ

หากระบบของคุณไม่รู้จัก nmcli หรือเพิ่มการเชื่อมต่อโดยใช้ Network Manager GUI เกิดข้อผิดพลาดฉันแนะนำลิงค์นี้

ทีนี้สำหรับคำอธิบายที่น้อยลงและมีความคิดเห็นเพิ่มขึ้น

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

ถัดไป, block-outside-dns, ดังที่ได้กล่าวไว้ในที่นี้มาก่อน, เป็นวิธีการแก้ปัญหาอย่างเดียวของ Windows และโยนข้อผิดพลาดตัวเลือกที่ไม่รู้จักในระบบ Ubuntu ของฉัน

การใช้คำสั่ง ovpn cli ไม่ได้แก้ปัญหาการรั่วไหลทั้งสำหรับฉัน

ลิงก์ที่ฉันให้ไว้อธิบายถึงคำอธิบาย ( ที่นี่ ) เกี่ยวกับความไม่สอดคล้องกันของรุ่นบางรุ่นที่ได้รับการแก้ไขใน Ubuntu 18.10 อาจมีบางคนที่มีความเชี่ยวชาญมากขึ้นในหัวข้อนี้สนใจที่จะอธิบายเพิ่มเติม หากเป็นจริงผู้ใช้ LTS จะต้องรอเมษายนปีหน้า afaik

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

หวังว่านี่จะช่วยได้


0

ลองใช้update-systemd-resolvedสคริปต์ที่ไม่ได้ทำการเปลี่ยนแปลงresolv.confและใช้systemd-resolvedบริการแทนมันคือ DBus API

รับจาก git และติดตั้งโดย:

git clone https://github.com/aghorler/update-systemd-resolved.git
cd update-systemd-resolved
make

ตอนนี้แก้ไขnsswitch.confโดย:

sudo nano /etc/nsswitch.conf

จากนั้นเปลี่ยนบรรทัดที่ขึ้นต้นด้วยhosts:พูด

hosts: files resolve dns myhostname

เปิดใช้งานบริการและตรวจสอบว่ามันทำงานโดยอัตโนมัติ:

sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service

หมายเหตุ:หากคุณไม่ต้องการทำตามขั้นตอนข้างต้นและคุณใช้งานเทอร์มินัลได้การรั่วไหลของ DNS จะเกิดขึ้นเมื่อใช้ NetworkManager เท่านั้นประสบการณ์ของฉันจะไม่เกิดขึ้นเมื่อคุณใช้ openvpn จากเทอร์มินัลด้วยsudo openvpn --config config.ovpn


สิ่งที่จะเป็นบรรทัดใน config.ovpn ที่จะป้องกันการรั่วไหล? คุณมีตัวอย่างของสิ่งนั้นหรือไม่? (วิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน)
Pobe

0

ฉันลองทุกวิธีที่ฉันสามารถหาทางออนไลน์เพื่อแก้ไขปัญหาการรั่วไหลของ DNS Openvpn เริ่มต้นได้ดี แต่แสดงว่ามันรั่วเมื่อฉันไปที่ไซต์ทดสอบ หลังจากที่ฉันไม่มีความสุขที่ได้ลองวิธีแก้ปัญหาทั้งหมดฉันเข้าสู่การตั้งค่า wifi และอีเธอร์เน็ตและใช้เซิร์ฟเวอร์ DNS ของ openvpn แทน ISP ของฉันและทุกอย่างก็ดีจากนั้น ฉันแน่ใจว่าคุณเห็นที่อยู่ IP ทั่วทุกแห่ง แต่ที่นี่เป็นที่หากคุณไม่ได้: 208.67.222.222 และ 208.67.220.220


0

สิ่งที่คุณต้องทำคือ

  1. ใช้ IP Tables เพื่อบังคับให้ทุกอย่างผ่าน VPN Tunnel ของคุณ
  2. กำหนดค่าพีซีของคุณให้มีที่อยู่ IP แบบคงที่กับเซิร์ฟเวอร์ DNS ที่คุณเลือก (DHCP ไม่ใช่เพื่อนของคุณ)

รายละเอียดเพิ่มเติม: https://github.com/OrangeReaper/abStartupManager/wiki/Some-notes-on-Ubuntu-Desktop-Security

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.