0336 | การตั้งค่า Pi-Hole ให้ใช้งาน DNS-over-HTTPS (DoH)

สวัสดีครับ วันนี้จะมาแนะนำวิธีตั้งค่า pi-hole ให้ใช้งาน DoH หรือ DNS-over-HTTPS จาก Cloudflare กัน โดยวิธีทำนั้นง่ายมาก เพียงแค่ copy, paste เท่านั้น โดยในบทความนี้ผมได้ติดตั้ง pi-hole ลงบน Centos 7 ครับ สำหรับ OS อื่นๆลองดูวิธีได้จากที่นี่ครับ https://docs.pi-hole.net/guides/dns/cloudflared/

ก่อนอื่น เราทดสอบก่อนว่า การเชื่อมต่อ DNS ของเรา ได้ใช้งานผ่าน DoH แล้วหรือยัง โดยเข้าไปที่ https://1.1.1.1/help โดยในรูปด้านล่างนี้เป็นตัวอย่างการเชื่อมต่อที่ยังไม่เปิดใช้งาน DoH ครับ ซึ่งในส่วนของ Using DNS over HTTPS (DoH) จะขึ้นเป็น No

เริ่มการติดตั้ง

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo yum install cloudflared-linux-x86_64.rpm

จากนั้นตรวจสอบเวอร์ชั่นดูว่าเราได้ติดตั้งเรียบร้อยหรือไม่

cloudflared -v

หากติดตั้งเรียบร้อยก็จะขึ้นเวอร์ชั่นดังรูปตัวอย่าง

ต่อไป สร้าง user cloudflared

sudo useradd -s /usr/sbin/nologin -r -M cloudflared

สร้างไฟล์ configuration ของ cloudflared

nano /etc/default/cloudflared

คัดลอกข้อความด้านล่างไปใส่ในไฟล์ configuration

# Commandline args for cloudflared, using Cloudflare DNS
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query

กำหนด Permission ของไฟล์ configuration

sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared

สร้างไฟล์ systemd script เพื่อเอาไว้ start, stop, restart service cloudflared


sudo nano /etc/systemd/system/cloudflared.service

นำ Code ด้านล่างไปใส่

[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target

[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

จากนั้น Enable service cloudflared แล้วลอง start และเช็คสถานะการทำงานดู

sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared

หากทุกอย่างทำงานปกติ จะขึ้นดังรูปตัวอย่างครับ

ต่อไปทดสอบการทำงานด้วยคำสั่ง dig หากมีการตอบกลับ ip มา แสดงว่าทุกอย่างทำงานได้ตามปกติครับ

dig @127.0.0.1 -p 5053 google.com

ต่อมา ให้ไปหน้า settings ของ Pi-hole โดยไปที่เมนู Settings จากนั้นกดที่ tab DNS ในส่วนของ Upstream DNS Servers ให้ติ๊กออกให้หมด แล้วไปกำหนดค่า DNS ที่ส่วน Custom โดยเพิ่ม 127.0.0.1#5053 ลงไปดังรูป

จากนั้นลองเข้าเว็บไซต์ https://1.1.1.1/help เพื่อตรวจสอบสถานะอีกครั้บ หากใช้งานได้แล้ว ในส่วนของ Using DNS over HTTPS (DoH) จะเปลี่ยนจาก No เป็น Yes ดังรูป

เพียงเท่านี้ก็เป็นอันเรียบร้อยครับ โดยวิธีนี้จะทำให้ Device ภายในบ้านสามารถใช้งาน DNS over HTTPS (DoH) ได้ทุกเครื่องโดยไม่ต้องไปตั้งค่ารายเครื่อง แต่จะต้องชี้ DNS ให้มาที่ Pi-hole โดยวิธีที่ผมใช้ จะกำหนดค่าใน DHCP Server ให้ใช้ DNS ของ pi-hole ครับ

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *