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.
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:
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 hsd
và Adguard 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.