Kết hợp DNS Handshake và Adguard Home

Handshake là một blockchain mã nguồn mở cho phép bạn đăng kí tên miền phi tập trung và xây dựng website với tên miền đó.

AdGuard Home là một phần mềm miễn phí, mạnh mẽ cho phép bạn chặn quảng cáo và chương trình theo dõi trên toàn bộ mạng của mình. Phần mềm còn có thêm chức năng tuyệt vời dành cho gia đình, cho phép bạn dễ dàng chặn truy cập vào các trang web mà bạn không muốn. Nó giống phần mềm Pi-Hole ở chỗ nó hoạt động như một máy chủ DNS, cho phép nó dễ dàng lọc và chặn các máy chủ quảng cáo. AdGuard Home có hỗ trợ tích hợp DNS tùy chỉnh và HTTPS được mã hóa.

Do có thể tùy chỉnh DNS trong Adguard Home nên bài viết này sẽ hướng dẫn cách kết hợp giữa Adguard Home để chặn quảng cáo và tùy chỉnh DNS để có thể dễ dàng truy cập tên miền Handshake. Với sự kết hợp này bạn vẫn sẽ sử dụng Internet theo cách thông thường, kết hợp việc chặn quảng cáo không mong muốn và truy cập được cả tên miền trên blockchain Handshake.

Kết hợp Handshake DNS và Adguard Home

Kết hợp Handshake DNS và Adguard Home

Bài viết này sử dụng Docker để triển khai. Nếu bạn cảm thấy khó khăn trong việc cài đặt và muốn thử ngay lập tức DNS vui lòng tham gia nhóm Telegram để nhận được thêm thông tin hỗ trợ.

Yêu cầu trước khi cài đặt

  • VPS có cài sẵn Docker
  • Mở sẵn các cổng trên VPS

Cài đặt Handshake Daemon (hsd)

Đầu tiên, bạn cần cài đặt một hệ thống phân giải tên miền (DNS resovler) Handshake như là hsd hoặc light node hnsd. Hệ thống phân giải tên miền có nhiệm vụ phân giải tên miền bạn gõ ở trình duyệt web thành IP nơi chứa trang web cần truy cập. HSD là full node của blockchain Handshake, HNSD là light node của blockchain đó. Tùy theo nhu cầu mà bạn có thể sử dụng full node hoặc light node. Full node sẽ tải toàn bộ blockchain về máy, do đó hiện tại bạn cần một ổ đĩa có dung lượng tầm 20Gb để cài full node. Light node tốn ít tài nguyên hệ thống hơn.

Sử dụng lệnh docker sau để tải và cài đặt full node hsd

sudo docker create \
    --name hsd \
    --net=host \
    -v ~/.hsd:/root/.hsd \
    --restart=unless-stopped \
  handshakeorg/hsd:latest --rs-host=0.0.0.0 --rs-port=5353 --no-wallet

Hoặc light node hnsd

docker create \
    --name=hnsd \
    --net=host \
    --restart=unless-stopped \
  skywirex/hnsd:v1.0.0-x86_64 --rs-host 0.0.0.0:5353

Chạy hsd

docker start hsd

Hoặc hnsd

docker start hsnd

Ở đây bạn sử dụng cổng 5353 cho hệ thống phân giải tên miền. Để kiểm tra sự làm việc của DNS sau khi cài đặt bằng cách sử dụng lệnh dig cho một tên miền Handshake nào đó:

dig @<LAN-VPS-IP> -p 5353 proofofconcept

Ví dụ:

dig @10.0.0.162 -p 5353 proofofconcept

Lưu ý nếu bạn cài đặt full node bạn phải đợi khoảng một vài giờ đồng hồ để đồng bộ blockchain trước khi thực hiện lện dig

Kết quả trả về tương tự như sau:

; <<>> DiG 9.16.1-Ubuntu <<>> @10.0.0.162 -p 5353 proofofconcept
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14484
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: cb3bbe3e9c167b9b (echoed)
;; QUESTION SECTION:
;proofofconcept.                        IN      A

;; ANSWER SECTION:
proofofconcept.         21600   IN      A       142.93.115.133

;; SIG0 PSEUDOSECTION:
.                       0       ANY     SIG     0 253 0 0 20210615061009 20210614181009 10523 . GSgebwzheF5behdvxGiu8knCDuRvN/nkYys6lgfPyCFSFXUWrC00ErhY 2lfk7Fk8OZXpnj8AJBWeul5XDzMMYw==

;; Query time: 224 msec
;; SERVER: 10.0.0.162#5353(10.0.0.162)
;; WHEN: Tue Jun 15 00:09:09 UTC 2021
;; MSG SIZE  rcvd: 165

Cài đặt Adguard Home

Sử dụng lệnh Docker sau để tải và cài đặt Adguard Home

sudo docker create \
  --name adguardhome \
  -p 53:53/udp \
  -p 53:53/tcp \
  -p 80:80/tcp \
  -p 3000:3000 \
  -v ~/docker_data/adguardhome:/opt/AdGuardHome/data \
  --restart=unless-stopped \
adguard/adguardhome:latest

Chạy Adguard Home

sudo docker start adguardhome

Sau khi chạy Adguard bạn tiến hành truy cập trang cấu hình của Adguard Home ở cổng <IP>:3000 để tiến hành cấu hình ban đầu cho Adguard.

Cấu hình Adguard Home để làm việc với blockchain Handshake

Để cấu hình Adguard ngoài việc chặn quảng cáo và phân giải tên miền Handshake, bạn cần thêm các thông tin Upstream DNS servers như hình bên dưới, lưu ý thay <PUBLIC-VPS-IP> của bạn:

Thông tin Upstream DNS servers

Thông tin Upstream DNS servers

Truy cập thử một số trang web được xây dựng với tên miền mà bạn biết để kiểm tra sự làm việc của DNS.

http://hnssearch./
http://nb./
http://gregosuri./
Bộ lọc khuyến nghị cho Adguard Home

Để chặn quảng cáo hiệu quả thì bạn cần thêm vào một số bộ lọc trong Adguard Home. skywirex đề xuất thêm vào một số bộ lọc bên dưới:

https://easylist.to/easylist/easyprivacy.txt
https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt
https://raw.githubusercontent.com/bigdargon/hostsVN/master/option/domain.txt

Sau khi truy cập thành công các trang web trên bạn thay đổi DNS trên các thiết bị hoặc đổi DNS ở router để sử dụng DNS vừa cài đặt.

Tường lửa ufw

Nếu bạn cài hsd và Adguard Home trên VPS thì tưởng lửa là không thể thiếu để chặn những truy cập không mong muốn. Việc cài đặt và sử dụng tường lửa ufw chi tiết có thể xem thêm tại đây.

Những câu lệnh bên dưới minh họa cho việc cài đặt ufw trên Ubuntu

sudo apt install ufw

Sau khi cài đặt bạn chỉ nên cho phép mở một số cổng cần thiết, đầu tiên là ssh

sudo ufw allow ssh

Tiếp theo bạn chỉ cho phép chính public IP của VPS bạn cài Adguard truy vấn DNS thông qua cổng 5353

sudo ufw allow from <PUBLIC-VPS-IP>

Kết hợp Handshake Daemon và Adguard Home

Dùng docker compose để kết hợp Handshake Daemon và Adguard Home. Tạo file docker-compose tương tự như bên dưới với các thông số phù hợp với bạn để chạy hsdAdguard Home

Sau khi xong bạn chạy nó bằng lệnh.

docker-compose up -d

Thực hiện cấu hình như hướng dẫn ở trên. Chúc các bạn thành công.