5 Level cấu hình Adguard Home – Level 3
Loạt bài viết này mình sẽ chia sẻ 5 level thiết lập AdguardHome (AGH) khi self-host từ dễ đến khó. 5 cấp độ này là do mình tự đặt ra trong quá trình mình sử dụng để giải quyết các nhu cầu thực tế, đồng thời đưa ra nhiều giải pháp để ứng dụng trong self-host nói chung và sử dụng AGH nói riêng
Nếu các bạn chưa biết thì AGH là một phần mềm chặn quảng cáo dựa trên DNS, hay AGH chính là một DNS server có chứ năng chặn quảng cáo. Thay vì sử dụng trực tiếp các DNS công cộng như Google (8.8.8.8) hay Cloudflare (1.1.1.1), chúng ta sẽ truy vấn DNS thông qua AGH để áp dụng các bộ lọc quảng cáo.
Tuy nhiên, AGH không chỉ có mỗi chức năng đó, mà còn hỗ trợ thêm một vài tính năng nâng cao rất thú vị mà sẽ phát huy được sức mạnh khi chúng ta self-host và kết hợp với các ứng dụng khác, mình cũng chia sẻ những điều đó thông qua 5 cấp độ, từ cơ bản đến nâng cao tương ứng với từ dễ đến phức tạp.
- Level 1: Cài đặt và cấu hình cơ bản – [cấp độ: dễ]
- Level 2: Host 2 Server AGH và đồng bộ qua AGH Sync – [dễ]
- Level 3: Dùng AGH ở bất cứ đâu – [trung bình]
- Level 4: Dùng AGH với Cloudflare Tunnel cấu hình server DoH https, kích hoạt Encryption Clien Hello cho trình duyệt – [bắt đầu hơi phức tạp]
- Level 5: Kết hợp DNS Rewrite + Reverse Proxy + Cloudflare Tunnel để có hệ thống DoH Split Horizontal DNS – [rất là phức tạp]
Nội dung chính
Video
Level 3: Dùng AdGuard Home ở bất cứ đâu
Thực tế có rất nhiều cách để các bạn dùng chính server AGH vừa tạo ra ở bất cứ đâu, nhưng trong bài này, mình sẽ hướng dẫn cách mình cho là dễ dàng và an toàn (nhất) (theo quan điểm cá nhân), đó là sử dụng VPN, cụ thể là sử dụng Tailscale.
Nếu bạn nào chưa biết về Tailscale thì có thể xem lại bài hướng dẫn chi tiết cùng với chia sẻ sâu hơn về các tính năng của Tailscale tại đây: Sử dụng Tailscale với Synology NAS và Tailscale cho Linux.
Cài đặt Tailscale
Còn trong bài này mình sẽ chỉ chia sẻ rất nhanh về cách cài đặt Tailscale để sử dụng với AGH. Các bạn sử dụng lệnh sau để cài đặt:
curl -fsSL https://tailscale.com/install.sh | sh
Sau khi cài đặt xong, các bạn dùng lệnh:
sudo tailscale up
Trên màn hình sẽ hiện 1 đường link để đăng nhập Tailscale vào tài khoản mà các bạn đang sử dụng. Các bạn truy cập đường link bằng trình duyệt để đăng nhập là thiết bị được đăng kí vào Tailnet.
Sau đó các bạn chạy lệnh sau để quảng bá Exit Node:
sudo tailscale set --advertise-exit-node
Và chạy những lệnh sau để quảng bá Subnet Router, ở lệnh cuối cùng các bạn điền IP subnet của các bạn đang sử dụng:
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale set --advertise-routes=192.0.2.0/24,198.51.100.0/24
Cuối cùng là các bạn vào trang quản lý của Tailscale để chấp nhận Exit Node và Subnet Route cho server của các bạn. Như vậy là đã thiết lập xong Tailscale trên server.
Đối với các thiết bị di động, máy tính, các bạn chỉ cần lên Store hoặc trang chủ của Tailscale để cài đặt ứng dụng Tailscale, sau đó đăng nhập vào tài khoản của các bạn là được.
Cách 1: Tailscale Exit Node
Cách đầu tiên để sử dụng AGH ở bất cứ đâu đó là sử dụng tính năng Exitnode của Tailscale. Các bạn cần cấu hình một server nằm trong mạng nội bộ chạy Tailscale và quảng bá Exit Node, mình đã có hướng dẫn trong bài về Tailscale ở phía trên, server đó có thể chính là thiết bị mà các bạn đang cài AGH hoặc một thiết bị khác mạnh hơn nằm trong mạng nội bộ mà online 24/7.


Khi ra ngoài, trên thiết bị di động của các bạn, các bạn chỉ cần kích hoạt chế độ Exit Node của Tailscale lên, thì toàn bộ traffic mạng của thiết bị di động sẽ vòng về server tại nhà, rồi mới đi ra internet. Đồng nghĩa với việc kể cả truy vấn DNS cũng sẽ đi qua exit node này, đến server DNS trong mạng nội bộ của các bạn, chính là AGH mà chúng ta đã cài đặt.
Từ đó, các bạn cũng được chặn quảng cáo y hệt như khi các bạn đang ở trong mạng nội bộ.
Cách 2: Cài đặt AGH vào Tailscale Magic DNS
Các bạn truy cập vào trang admin của Tailscale, tìm đến mục DNS, kéo xuống mục Nameservers, chọn Add Nameserver và điền IP của AGH, có 2 trường hợp để các bạn điền:
- Nếu server AGH được cài sẵn Tailscale, các bạn có thể dùng IP Tailscale của chính thiết bị đó.
- Nếu server AGH không cài Tailscale mà các bạn cài Tailscale trên một server khác (ví dụ Server A) trong mạng nội bộ. Các bạn cần bật tính năng Subnet Router trên Tailscale ở server A đó, rồi sau đó điền địa chỉ IP Local của AGH
Sau đó các bạn lưu lại, nếu như đã có 2 server AGH như đã cài đặt ở level 2, các bạn có thể điền cả 2 IP của 2 server AGH tại đây.

Sau đó, các bạn gạt bật nút Override DNS server.
Với thiết lập như thế này, chỉ cần các bạn bật Tailscale trên thiết bị di động, Tailscale sẽ tự động chèn bản ghi DNS AGH vào thiết bị di động, và các truy vấn DNS sẽ đi qua Tailscale về server AGH tại nhà của bạn.
Sự khác nhau giữa 2 cấu hình
Với cách 1, khi thiết bị di động sử dụng exit-node, toàn bộ traffic mạng sẽ đi qua Tailscale về Exitnode và sử dụng DNS AGH. Điều này có những ưu nhược điểm sau:
- Ưu điểm: Bảo vệ traffic khỏi các dạng tấn công trên đường truyền mạng công cộng như MiTM. Ngoài chặn quảng cáo, thiết bị di động cũng được bảo mật tốt hơn khi dùng mạng internet, wifi công cộng. Ngoài ra, cấu hình này sẽ chỉ áp dụng khi bạn muốn, trên thiết bị bạn muốn.
- Nhược điểm: Vì toàn bộ traffic đẩy về Exitnode rồi mới ra internet, vì vậy độ trễ có thể cao hơn khi không sử dụng. Ngoài ra, thiết bị làm exitnode cũng phải gánh lưu lượng của các thiết bị khác đổ về, đồng thời phải giải mã hóa bảo mật cho VPN Tailscale, vì thế sẽ tốn cấu hình hơn, hoặc tốc độ mạng sẽ bị suy giảm về mức mà cấu hình của Exit node chịu được.
Nếu như các bạn cấu hình AGH và Tailscale trên thiết bị có cấu hình tốt, các bạn có thể sử dụng cách này sẽ có tính chủ động cao hơn và bảo mật tốt hơn
Với cách 2, khi cấu hình Override DNS server, toàn bộ các thiết bị trong Tailnet đều sẽ sử dụng DNS mà các bạn đã cấu hình, nhưng không buộc phải đẩy toàn bộ traffic về exitnode mà vẫn đi theo route bình thường, có những ưu điểm và nhược điểm sau:
- Ưu điểm: chỉ tác động đến DNS, không chuyển hướng toàn bộ traffic, vì vậy truy cập mạng sẽ ít độ trễ hơn, bản thân thiết bị chạy Tailscale subnet router cũng không phải xử lý traffic nhiều. Áp dụng được đồng loạt cho mọi thiết bị đã cài đặt Tailscale, không cần phải bật tắt thủ công như khi dùng exitnode.
- Nhược điểm: cách này chỉ chuyển hướng truy vấn DNS, còn traffic mạng vẫn đi theo đường mặc định nên vẫn có rủi ro bảo mật nếu dùng mạng công cộng. Ngoài ra, server mà bạn cài vào sẽ gánh truy vấn cho toàn bộ thiết bị trong Tailnet, nếu như bạn cài tailscale cho cả các thành viên trong gia đình mà sống ở nơi khác, toàn bộ truy vấn DNS của họ cũng bị vòng qua nhà bạn trước, vô tình tăng độ trễ không cần thiết cho truy vấn DNS và AGH của bạn lại phải gánh thêm truy vấn của người nhà (mà vốn dĩ ở site của họ nếu có cài AGH rồi thì sẽ không cần chuyển hướng lòng vòng như vậy).
Tóm lại, để dễ dàng sử dụng AGH DNS Server từ bất cứ đâu một cách đơn giản, các bạn có giải pháp kết hợp VPN và DNS như một giải pháp an toàn và dễ dàng thiết lập.
Tuy nhiên, hiện tại khi truy vấn DNS, chúng ta vẫn chỉ đang dùng địa chỉ IP thuần, tức là truy vấn từ thiết bị đến server DNS chưa được mã hóa. Điều đó có thể dẫn đến việc một số cơ chế bảo mật khi dùng DNS bảo mật sẽ chưa được kích hoạt, trong khi AGH có một lợi thế rất lớn đó là có hỗ trợ các cơ chế bảo mật như DoH/DoT/DoQ…
Ví dụ như khi dùng Chrome (hoặc một số trình duyệt khác), nếu không cài đặt một server DNS qua giao thức https (DoH) vào mục DNS bảo mật, trình duyệt sẽ không kích hoạt mã hóa gói tin Client Hello, dẫn đến việc thiếu bảo mật do vẫn để lộ tên miền trong bước bắt tay TLS.
Nếu như các bạn chỉ đang có nhu cầu chặn quảng cáo trong mạng nội bộ, và chặn quảng cáo khi ra ngoài, các bạn đã có thể dừng ở đây.
Nhưng nếu các bạn vẫn muốn nâng cao hơn nữa, tăng tính bảo mật lên mức cao hơn, chúng ta sẽ có Phần 4: Dùng AGH với Cloudflare Tunnel cấu hình server DoH https, đồng thời kích hoạt Encryption Clien Hello cho trình duyệt.
Nếu thấy nội dung bài viết hữu ích, hãy chia sẻ cho bạn bè và người thân. Đừng quên theo dõi Ngon Bổ Xẻ qua Facebook và Youtube để luôn cập nhật các nội dung mới nhất. Ngoài ra, mình cũng có lập Group FB chuyên chia sẻ các deal hời cho anh em về công nghệ, điện từ, gia dụng… các bạn cũng có thể tham gia nha. Một lần nữa, chân thành cám ơn các bạn và hẹn gặp lại trong những nội dung kế tiếp ❤️
Chia sẻ bài viết:
