การติดตั้งและการกำหนดค่า dnscrypt-proxy + dnsmasq ใน Archlinux

บทนำ: 
  

dnscrypt-proxy คืออะไร?
- DNSCrypt เข้ารหัสและตรวจสอบการรับส่งข้อมูล DNS ระหว่างผู้ใช้และตัวแก้ไข DNS ป้องกันการปลอมแปลงแบบสอบถาม DNS ในเครื่องทำให้มั่นใจได้ว่าการตอบกลับ DNS จะถูกส่งโดยเซิร์ฟเวอร์ที่เลือก (วิกิพีเดีย)

dnsmasq คืออะไร?
- dnsmasq ให้บริการเช่นแคช DNS และเซิร์ฟเวอร์ DHCP ในฐานะเซิร์ฟเวอร์ชื่อโดเมน (DNS) สามารถแคชแบบสอบถาม DNS เพื่อปรับปรุงความเร็วในการเชื่อมต่อไปยังไซต์ที่เยี่ยมชมก่อนหน้านี้และในฐานะเซิร์ฟเวอร์ DHCP สามารถใช้ dnsmasq เพื่อระบุที่อยู่ IP ภายในและเส้นทางไปยัง คอมพิวเตอร์บน LAN สามารถใช้บริการใดบริการหนึ่งหรือทั้งสองอย่างได้ dnsmasq ถือว่ามีน้ำหนักเบาและง่ายต่อการกำหนดค่า ออกแบบมาเพื่อใช้กับคอมพิวเตอร์ส่วนบุคคลหรือใช้กับเครือข่ายที่มีคอมพิวเตอร์น้อยกว่า 50 เครื่อง นอกจากนี้ยังมาพร้อมกับเซิร์ฟเวอร์ PXE (วิกิพีเดีย)

ฉันใช้อะไร:
- เพื่อแก้ไขไฟล์กำหนดค่าที่ฉันใช้ นาโน.
- ตลอดเวลาฉันทำกับบัญชีรูทของฉัน แต่ถ้าพวกเขากำหนดค่าไว้ sudoพวกเขาสามารถใช้งานได้อย่างเงียบ ๆ
- ในการตรวจสอบแคชด้วยคำสั่ง dig พบได้ในเครื่องมือผูก
ภายในที่เก็บอย่างเป็นทางการ pacman -S เครื่องมือผูก 🙂

การติดตั้ง:

  • ในฐานะรูทหรือใช้ sudo ในเทอร์มินัลหรือ tty เราติดตั้งแพ็คเกจ dnscrypt-proxy และ dnsmasq ดังนี้:
  • ข้อความเตือนเป็นเพราะฉันได้ติดตั้งไว้แล้วคุณเพียงแค่ต้องยืนยันโดยกด Enter:

การตั้งค่า:

1 - มาเปิดใช้งาน dnscrypt-proxy (จำไว้ว่าเป็นรูทหรือใช้ sudo):


2 - ตอนนี้เราแก้ไขไฟล์ / etc / resolv.conf และในเนมเซิร์ฟเวอร์เราจะลบสิ่งที่มีอยู่และใส่ 127.0.0.1 (หากต้องการให้สามารถสำรองไฟล์ได้) และควรมีลักษณะดังนี้:

  • เมื่อพิจารณาว่า NetworkManager เขียนไฟล์ resolv.conf สิ่งที่เราจะทำคือป้องกันไม่ให้เขียนด้วยคำสั่งต่อไปนี้:


    3 - ตอนนี้สิ่งที่เรากำลังจะทำคือมองหาเซิร์ฟเวอร์ที่ใกล้กับตำแหน่งของเรามากที่สุด แต่คุณสามารถใช้เซิร์ฟเวอร์ที่มาตามค่าเริ่มต้นซึ่งเป็น dnscrypt.eu-nl รายการสามารถเปิดด้วย localc ได้ที่นี่: / usr / share / dnscrypt-proxy / dnscrypt-resolvers.csv เช่นนี้:

  • หากเราต้องการแก้ไขเซิร์ฟเวอร์ที่แก้ไข DNS เริ่มต้นเราสามารถแก้ไขได้ดังนี้:
  • ในตอนท้ายของไฟล์ในส่วน [บริการ] เราแก้ไขสิ่งที่เลือกเป็นสีเทาและเราวางเซิร์ฟเวอร์ที่เราเลือกไว้แล้วในรายการ:


    4 - โดยค่าเริ่มต้น dnscrypt-proxy จะใช้พอร์ต 53 เนื่องจาก dnsmasq ก็ทำเช่นกันดังนั้นสิ่งที่เราจะทำคือเปลี่ยนใหม่โดยใช้:
    systemctl แก้ไข dnscrypt-proxy.service –full และในส่วน [Socket] เราปล่อยไว้ดังนี้:

เราบันทึกการเปลี่ยนแปลงและปิด

5 - ตอนนี้เรากำหนดค่า dnsmasq เรากำลังจะแก้ไขไฟล์ /etc/dnsmasq.conf และเพิ่มสามบรรทัดนี้ในตอนท้าย:

ไม่ได้รับการแก้ไข
เซิร์ฟเวอร์ = 127.0.0.1 # 40
ฟังที่อยู่ = 127.0.0.1

เราบันทึกการเปลี่ยนแปลงและปิด

6 - ตอนนี้เราทำสิ่งต่อไปนี้:
- เรารีสตาร์ท dnscrypt-proxy:
systemctl รีสตาร์ท dnscrypt-proxy
- เราเปิดใช้งาน dnsmasq:
systemctl เปิดใช้งาน dnsmasq
- เราดำเนินการ dnsmasq:
systemctl เริ่ม dnsmasq
- เราเริ่มการเชื่อมต่ออินเทอร์เน็ตของเราใหม่:
systemctl รีสตาร์ท NetworkManager

7 - ตอนนี้เราทดสอบว่ามันใช้งานได้จริงกับ ping หรือไม่เช่นไปที่ google.com.ar:

8 - เราตรวจสอบว่าแคช DNS ทำงานร่วมกับคำสั่ง dig หรือไม่:

- ที่นี่เราพิจารณาว่าการขุดครั้งแรกที่ฉันทำมีความล่าช้า 349 มิลลิวินาทีและเมื่อฉันค้นหาอีกครั้งด้วยการขุดจะเกิดอะไรขึ้น 0 msec จึงแคชถูกต้อง

9 - พร้อม dnscrypt-proxy และ dnsmasq กำหนดค่าและทำงานอย่างถูกต้อง!

หมายเหตุ: ฉันต้องการชี้แจงหลังจากค้นหาในหลาย ๆ ที่แล้วมันไม่ได้ผลสำหรับฉันในลักษณะที่พวกเขาแสดงใน arch wiki เวอร์ชันภาษาสเปนแปลได้ไม่ดี (จะเป็นคำถามว่ามีใครแปลได้ดีหรือฉันจะทำในบางจุด) ดังนั้นฉันจึงใช้เวอร์ชันนี้ใน ภาษาอังกฤษ. ดังนั้นฉันจึงพึ่งพาวิกิที่กล่าวโดยทั่วไปแล้วให้เครดิตกับพวกเขาทั้งหมด ในกรณีนี้เป็นขั้นตอนที่ฉันใช้และได้ผลสำหรับฉัน
คำถามหรือความไม่สะดวกใด ๆ โปรดแจ้งให้เราทราบและเราจะพูดคุยกันจนกว่าจะได้ผล!

กอดเป้าหมาย! 😀


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   นิรนาม dijo

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

    เวลาขุดที่มีและไม่มี dnsmasq ยังคงเหมือนเดิมอาจมีคนรู้เกี่ยวกับวิธีการอื่นและแบ่งปัน
    ความนับถือ

    1.    น้ำแข็ง dijo

      ตามที่เห็นบนหน้าจอคุณจะเห็นความแตกต่างมากมายฉันคิดว่ามันจะขึ้นอยู่กับแบนด์วิดท์ด้วย ... 🙂

  2.   นิรนาม dijo

    ภาพที่แนบมา:
    imgur .com / 9RQ7yhF.png

  3.   แดเนียลSc3 dijo

    ที่อยู่ DNS อยู่ในแคชด้วย dnsmasq นานเท่าใด ฉันจำได้ว่าเคยลองมาแล้วและหลังจากนั้นไม่กี่นาที 10 หรือ 5 dnsmasq ก็ลืมทุกอย่าง

    1.    น้ำแข็ง dijo

      ฉันไม่ได้เห็นสิ่งนั้นจริงๆ ... จุดที่ดี จะมีการปรึกษาหารืออาจมีนักวิชาการบางคนรู้และจะตอบเรา🙂

  4.   ฉลาด dijo

    สวัสดีเมื่อฉันให้เป็น root "systemctl start dnsmasq" ฉันได้รับข้อผิดพลาดเมื่อให้คำสั่ง "systemctl status dnsmasq.service" นี่คือสิ่งที่ฉันได้รับ:

    ● dnsmasq.service - DHCP ที่มีน้ำหนักเบาและแคชเซิร์ฟเวอร์ DNS
    โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/dnsmasq.service; เปิดใช้งานค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน)
    ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่จันทร์ 2016-03-07 11:41:41 ART; 18s ที่แล้ว
    เอกสาร: man: dnsmasq (8)
    กระบวนการ: 7747 ExecStart = / usr / bin / dnsmasq -k –enable-dbus –user = dnsmasq –pid-file (code = exited, status = 2)
    กระบวนการ: 7742 ExecStartPre = / usr / bin / dnsmasq –test (code = exited สถานะ = 0 / SUCCESS)
    PID หลัก: 7747 (รหัส = ออกสถานะ = 2)

    อ. 07 11:41:41 Wisdom systemd [1]: การเริ่มต้น DHCP ที่มีน้ำหนักเบาและแคชเซิร์ฟเวอร์ DNS ...
    อ. 07 11:41:41 Wisdom dnsmasq [7742]: dnsmasq: ไวยากรณ์ตรวจสอบตกลง
    อังคาร 07 11:41:41 Wisdom dnsmasq [7747]: dnsmasq: ไม่สามารถสร้างซ็อกเก็ตการฟังสำหรับพอร์ต 53: แอดเดรสถูกใช้งานแล้ว
    อังคาร 07 11:41:41 Wisdom systemd [1]: dnsmasq.service: ออกจากกระบวนการหลัก code = exited สถานะ = 2 / INVALIDARGUMENT
    อ. 07 11:41:41 Wisdom systemd [1]: ล้มเหลวในการเริ่ม DHCP ที่มีน้ำหนักเบาและแคชเซิร์ฟเวอร์ DNS
    อ. 07 11:41:41 Wisdom systemd [1]: dnsmasq.service: หน่วยเข้าสู่สถานะล้มเหลว
    อ. 07 11:41:41 Wisdom systemd [1]: dnsmasq.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'

    ฉันควรทำอย่างไรดี? ขอขอบคุณ.

    1.    น้ำแข็ง dijo

      ฉันทำตามขั้นตอนของจดหมายตรวจสอบบทแนะนำต้นฉบับในบล็อกของฉัน ฉันฝากวิดีโอไว้ด้วย

  5.   Gonza dijo

    @ice ice เปรียบเทียบโพสต์นี้กับวิดีโอของคุณฉันเห็นว่ามีข้อผิดพลาดในขั้นตอนที่ 4 เขียนไว้ที่นี่ และข้อผิดพลาดคือไฟล์ที่จะแก้ไขไม่ใช่ "systemctl edit dnscrypt-proxy.service –full" แต่ต้องแก้ไข "systemctl edit dnscrypt-proxy.socket –full" (โปรดทราบว่าแทนที่จะเป็น. service คุณต้องเขียน. socket)

    นั่นเป็นเหตุผลที่ @wisse wisse ได้รับข้อความแสดงข้อผิดพลาดเมื่อต้องการเริ่มบริการ dnsmasq (เนื่องจากสิ่งเดียวกันนี้เกิดขึ้นกับฉันด้วย)

    ทักทาย!