5 điểm bởi GN⁺ 2025-05-06 | 5 bình luận | Chia sẻ qua WhatsApp
  • Năm 2024, web và phần mềm ngày càng trở nên mệt mỏi vì quảng cáo, theo dõi, widget phân tích, banner cookie và giao tiếp liên tục ra bên ngoài, và Pi-hole là một cách để giảm bớt điều đó ở tầng mạng
  • Pi-hole hoạt động như một DNS sinkhole trong mạng gia đình hoặc văn phòng, chặn trình theo dõi, CDN quảng cáo và các yêu cầu tên miền không mong muốn trên toàn bộ thiết bị
  • Trong môi trường sử dụng thực tế, 66.6% tổng lưu lượng đã bị chặn, và điều này được cho là không gây ảnh hưởng chức năng đến công việc hằng ngày
  • Cấu hình cần Raspberry Pi và thẻ microSD, thiết bị ngoại vi cho thiết lập ban đầu, cài đặt Pi-hole, cùng cấu hình mạng để router gửi yêu cầu DNS tới Pi-hole
  • Chỉ với Pi-hole thì khó chặn mọi quảng cáo, nên với các dịch vụ như YouTube, việc dùng thêm trình chặn quảng cáo trên trình duyệt như uBlock Origin là cấu hình hữu ích

Vì sao dùng Pi-hole

  • Trong khi duyệt web và sử dụng phần mềm, việc thu thập dữ liệu và theo dõi không mong muốn đã tăng mạnh, và người dùng muốn tránh việc máy tính, trình duyệt và các tín hiệu khác bị dùng để lập hồ sơ mà không có sự đồng ý
  • Trải nghiệm trực tuyến điển hình của năm 2024 đầy rẫy quảng cáo, script độc hại, widget phân tích, widget chatbot, banner đồng ý cookie che nội dung trang, và phần mềm gửi dữ liệu ra ngoài sau mỗi cú nhấp
  • Công nghệ quảng cáo đã chuyển biến theo hướng khai thác khách truy cập quá mức, và như một biện pháp đối phó, giải pháp đặt Pi-hole trong mạng gia đình được đề xuất
  • Pi-hole là một dự án đã được biết đến từ lâu, là công cụ mà Jeff Atwood, Troy Hunt, Scott Hanselman và Scott Helme đã nhắc tới trong nhiều năm

Cách nó hoạt động trong mạng

  • Pi-hole thường chạy trên Raspberry Pi, nhưng về mặt kỹ thuật cũng có thể chạy ngoài Pi
  • Nó hoạt động như một DNS proxy/sinkhole trong mạng nội bộ
    • Khi người dùng truy cập https://example.com, yêu cầu trước tiên sẽ đi qua Pi-hole
    • Sau đó luồng xử lý tiếp tục bằng việc hỏi máy chủ DNS có thẩm quyền về thông tin tên miền
  • Mục tiêu là chặn các yêu cầu tên miền mà mạng không muốn truy cập
    • Trình theo dõi
    • CDN phân phối quảng cáo
    • Các tên miền mà bạn không muốn gửi dữ liệu tới từ trong nhà hoặc doanh nghiệp
  • Trong mạng thực tế, 66.6% tổng lưu lượng đã bị chặn, và không có ảnh hưởng chức năng đến các tác vụ người dùng thực hiện

Những gì cần để cài đặt

  • Thiết lập Pi-hole không đòi hỏi khoản đầu tư lớn, và chi phí lớn nhất không phải thiết bị mà là thời gian dành cho cấu hình và kiểm chứng
  • Cấu hình cơ bản như sau
    • Raspberry Pi
    • Bộ khởi động CanaKit giá khoảng 155 USD tại Mỹ
      • Cũng bao gồm thẻ microSD cần cho thiết lập
    • Màn hình, chuột và bàn phím để kết nối trong lần thiết lập Raspberry Pi ban đầu
    • Thời gian để làm theo hướng dẫn cài đặt cơ bản Pi-hole
    • Thời gian để cấu hình router sao cho các yêu cầu DNS của mạng đi qua Pi-hole
  • Nhóm Pi-hole đã cố gắng làm quy trình cài đặt đơn giản nhất có thể

Vận hành danh sách tên miền chặn

  • Sau khi cài phần cứng và phần mềm, cần cấu hình để đích DNS trên router trỏ tới thiết bị Pi-hole
  • Bước tiếp theo là quyết định sẽ chặn những tên miền nào
    • Có thể tự xem các yêu cầu chạy qua mạng để đưa ra quyết định
    • Có thể dùng danh sách chặn từ cộng đồng
  • Firebog được khuyến nghị như một điểm khởi đầu và cung cấp nhiều danh sách tên miền do cộng đồng nghiên cứu, thu thập
  • Không nhất thiết phải áp dụng mọi danh sách một cách vô điều kiện
    • Một số chức năng có thể bị hỏng hoặc không hoạt động
    • Trong nhật ký truy vấn thời gian thực của Pi-hole, có thể kiểm tra client nào đang cố truy cập tên miền nào
    • Có thể chặn hoặc cho phép tên miền một cách động tùy nhu cầu
  • Có thể dùng biểu thức chính quy để chặn các tên miền phù hợp với điều kiện nhất định
    • Có ví dụ chặn các TLD .cn, .ru, .hk vì cho rằng thường thấy nhiều lưu lượng độc hại bắt nguồn từ Nga, Trung Quốc và Hồng Kông
(^|\.)(cn|ru|hk)$
  • Khi áp dụng quy tắc này, miễn là yêu cầu DNS đi qua Pi-hole, giao tiếp tới các máy chủ thuộc những TLD đó sẽ không rời khỏi mạng
  • TLD quốc gia không phải là vector tấn công duy nhất của mã độc, nhưng việc chặn chúng được xem là một bước nhỏ giúp tăng cường tư thế bảo mật tổng thể của mạng

Ngăn chặn việc bỏ qua DNS

  • Một số thiết bị có thể bỏ qua DNS do người dùng cấu hình để phân phối quảng cáo hoặc thu thập dữ liệu phân tích
  • Cách xử lý phụ thuộc vào phần cứng router đang sử dụng
  • Trong môi trường dùng hệ sinh thái UniFi và UDM Pro, có một ví dụ SSH vào UDM và chạy quy tắc iptables
iptables -t nat -A PREROUTING ! -s YOUR_PI_HOLE_IP -p tcp --dport 53 -j DNAT --to YOUR_PI_HOLE_IP
iptables -t nat -A PREROUTING ! -s YOUR_PI_HOLE_IP -p udp --dport 53 -j DNAT --to YOUR_PI_HOLE_IP


# Make sure that we skip 192.168.1.1 since that seems to break UniFi Protect
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.2-192.168.254.254 -j MASQUERADE
  • Script này chuyển hướng mọi lưu lượng DNS trên cổng 53 tới Pi-hole, đồng thời áp dụng network address masquerading bằng quy tắc NAT
  • Lệnh đầu tiên xử lý DNAT đích cho các gói DNS TCP tới IP của Pi-hole
    • -t nat: chỉ định quy tắc trong bảng NAT
    • -A PREROUTING: thêm quy tắc vào chain xử lý gói đến trước khi định tuyến
    • ! -s YOUR_PI_HOLE_IP: loại trừ các gói bắt nguồn từ chính Pi-hole
    • -p tcp: áp dụng cho gói TCP
    • --dport 53: khớp các gói nhắm tới cổng DNS 53
    • -j DNAT: chuyển tới đích DNAT để thay đổi địa chỉ IP đích
    • --to YOUR_PI_HOLE_IP: chuyển hướng gói tới IP của Pi-hole
  • Lệnh thứ hai áp dụng xử lý tương tự cho gói UDP
  • Lệnh thứ ba là quy tắc MASQUERADE đổi IP nguồn của dải IP nội bộ được chỉ định thành IP của router
    • Dải ví dụ là từ 192.168.1.2 đến 192.168.254.254, và có thể điều chỉnh theo mạng của từng người
    • 192.168.1.1 được loại trừ để tránh làm hỏng UniFi Protect
  • Kết quả là mọi yêu cầu DNS TCP và UDP từ các thiết bị trong mạng, trừ các yêu cầu phát ra từ chính Pi-hole, đều bị chuyển hướng tới Pi-hole

Dùng cùng trình chặn quảng cáo trên trình duyệt

  • Dù Pi-hole nằm giữa thiết bị mạng và Internet, một trình chặn quảng cáo đáng tin cậy như uBlock Origin vẫn rất có giá trị
  • Với các dịch vụ như YouTube, nơi muốn tiếp tục sử dụng dịch vụ nhưng không muốn thấy quảng cáo, việc chỉ chặn ở cấp tên miền là khó giải quyết
  • Pi-hole được dùng như một lớp bổ sung bên cạnh trình chặn quảng cáo trên trình duyệt để chặn nội dung và yêu cầu không mong muốn
  • Trình chặn quảng cáo trên trình duyệt cũng có thể chặn các phần tử UI cụ thể như quảng cáo nhúng thủ công hoặc nội dung tài trợ được tải từ tên miền chính của website

Đánh giá sau khi sử dụng

  • Sau khi cài Pi-hole vào mạng, hiệu quả rõ rệt đến mức khó quay lại như trước
  • Cùng cấu hình đó cũng đã được áp dụng cho mạng của bố mẹ và bố mẹ vợ/chồng
  • Tác giả cho biết sẽ tiếp tục khuyến nghị vì nó tạo ra khác biệt lớn cho chất lượng đời sống trực tuyến

5 bình luận

 
techiemann 2025-05-08

Ngay cả khi không nhất thiết phải dùng Pi-hole, thì trong đa số trường hợp chỉ cần dùng DNS đã chặn quảng cáo sẵn cũng là một lựa chọn ổn.

 
winterjung 2025-05-07

http://youtube.com/watch?v=OvfnqFXRybk Cách cài đặt và sử dụng AdGuard như thế này cũng khá hay.

 
ndrgrd 2025-05-07

Tôi đã dùng cả ba: Adguard Home, PiHole và NextDNS, và thấy Adguard Home là tốt nhất.
Nếu bật yêu cầu song song và cấp bộ nhớ đệm đủ rộng, truy vấn DNS sẽ được xử lý trong dưới 10ms.

 
preserde 2025-05-07

Xét từ góc độ chặn quảng cáo thì đây là một dịch vụ khá ổn. Tuy nhiên, như trong bài viết cũng có nói, khi chặn quảng cáo thì có khá nhiều dịch vụ thỉnh thoảng sẽ không hoạt động, nên những lúc như vậy lại phải tắt chặn quảng cáo... Nếu chỉ có một mình tôi thì còn đỡ, nhưng khi vợ tôi dùng mà không chạy được rồi bực bội thì cũng khá đau đầu, nên hiện tại tôi chỉ dùng nó trên máy tính cá nhân thôi. hu hu

 
baeba 2025-05-07

Ồ.. cảm ơn..