Logo CNTTShop.vn

Hotline:

Hà Nội: NTT03, Line 1, Thống Nhất Complex, 82 Nguyễn Tuân, Thanh Xuân, Hà Nội. ● HCM: Số 13, đường 7C, phường Bình Trưng, Thành phố Hồ Chí Minh. ===> Đơn Vị Hàng Đầu Trong Lĩnh Vực Cung Cấp Thiết Bị Security - Network - Wifi - CCTV - Conference - Máy chủ Server - Lưu trữ Storge.
Thiết bị mạng: 0862 158 859 Máy chủ Server: 0866 176 188 - 0968 498 887 Nvidia GPU-AI: 0906 051 599
Danh mục sản phẩm

Hướng dẫn cài đặt Pi-Hole trên Router Mikrotik

 

Trong bài viết trước chúng ta đã cùng tìm hiểu cách triển khai AdGuard Home trên hệ điều hành RouterOS v7, các bạn có thể tham khảo tại bài viết: Hướng dẫn cài đặt AdGuard Home trên Mikrotik để Chặn quảng cáo, tên miền. Để tiếp tục chuỗi chủ đề về giải pháp DNS Sinkhole giúp chặn quảng cáo và kiểm soát truy cập toàn mạng, hôm nay mình sẽ hướng dẫn chi tiết các bước cài đặt hệ thống Pi-hole chạy trực tiếp trên Container của router MikroTik.

Mục Lục

So sánh Adguard Home và Pi-hole

Trước khi đi vào cấu hình thực tế, chúng ta sẽ cùng điểm qua một vài tiêu chí so sánh nhanh giữa Pi-hole và AdGuard Home để các bạn có thể lựa chọn được giải pháp phù hợp nhất với hạ tầng mạng của mình.

Tiêu chí

AdGuard Home

Pi-hole

Kiến trúc & Nền tảng

Viết bằng Go, chạy dạng nguyên khối (single binary), rất nhẹ và tối ưu cho Container.

Dựa trên DNSmasq (FTL), yêu cầu nhiều thành phần (PHP, Lighttpd web server).

Hỗ trợ DNS mã hóa (DoH, DoT, DoQ)

Tích hợp sẵn mặc định, chỉ cần nhập link DNS vào giao diện là chạy.

Không có sẵn, bắt buộc cài thêm phần mềm phụ trợ (như Unbound, Cloudflared).

Cơ chế danh sách chặn (Blocklist)

Hỗ trợ định dạng Hosts và cú pháp Adblock-style (lọc sâu và mạnh như uBlock Origin).

Chủ yếu hỗ trợ định dạng Hosts cơ bản (chặn theo IP/Domain 1-1).

Kiểm soát dịch vụ (App/Website)

Có sẵn menu Blocked Services (Chặn nhanh Facebook, TikTok, YouTube... bằng 1 click).

Không có sẵn, phải tự viết và thêm thủ công bằng Regex (Biểu thức chính quy).

Tính năng an toàn (Parental Control)

Tích hợp sẵn bộ lọc web người lớn và tính năng SafeSearch cho công cụ tìm kiếm.

Không tích hợp, phải mượn bộ lọc của Upstream DNS (như FamilyShield).

Giao diện quản trị (Web UI)

Hiện đại, trực quan, thân thiện với người dùng cuối.

Tập trung vào thống kê chi tiết, hiển thị log cực kỳ sâu và chuyên nghiệp.

Cộng đồng & Tuổi đời

Là giải pháp mới nổi, cập nhật tính năng liên tục.

Cộng đồng mã nguồn mở khổng lồ, tuổi đời lâu năm, nhiều tài liệu fix lỗi.

Như các bạn có thể thấy trên bảng so sánh, Pi-hole và AdGuard Home hướng tới hai triết lý sử dụng có đôi chút khác biệt. Pi-hole là một giải pháp mã nguồn mở được phát triển từ lâu, cung cấp hệ thống log truy vấn cực kỳ chi tiết, rất phù hợp cho những bạn làm mạng thích phân tích dữ liệu chuyên sâu.

Tuy nhiên, mình nhận thấy AdGuard Home lại đang chiếm ưu thế vượt trội về mặt tiện dụng. Nhờ được viết bằng ngôn ngữ Go, nền tảng này hoạt động cực kỳ nhẹ nhàng trên các thiết bị router, nên có thể cài được nên các Router cấu hình thấp. Điểm ăn tiền nhất của AdGuard Home là hỗ trợ sẵn các giao thức DNS mã hóa bảo mật, đồng thời cho phép bạn chặn nhanh các ứng dụng như TikTok, YouTube hay bật tính năng bảo vệ trẻ em chỉ bằng một click chuột mà không cần đụng đến những dòng code cấu hình phức tạp.

Tóm lại, nếu cần sự chi tiết và hệ sinh thái tài liệu khổng lồ, hãy chọn Pi-hole; còn nếu bạn muốn một giải pháp nhanh, gọn, nhẹ, nhưng vẫn sở hữu công nghệ lọc quảng cáo mạnh mẽ nhất hiện nay, AdGuard Home sẽ là sự lựa chọn hoàn hảo.

Download và cài đặt Container

Cả AdGuard và Pi-hole đều được cài đặt trên Container, nên toàn bộ quá trình cài đặt sẽ tương đương nhau, chỉ khác nhau ở phần thiết lập cho Container, chúng ta sẽ download Pi-hole thay vì Adguard. Còn các phần active container, hay cài đặt phần network thì giống hệt nhau.

Đầu tiên thì chúng ta cần phải vào trang chủ Mikrotik để download gói mở rộng Container cho Router. Các bạn vào mikrotik.com, Chọn Software > Download.

truy cập vào website mikrotik.com

Chúng ta sẽ cần download đúng file dựa theo kiến trúc Router đang sử dụng. Router mình đang sử dụng là mã CCR2004, sử dụng kiến trúc là ARM64, phiên bản Router OS mình đang sử dụng là bản 7.20.7. Các bạn chọn đúng kiến trúc và phiên bản Router OS, sau đó download file container về.

download file container cho Router

Sau khi tải xong, các bạn truy cập vào Winbox, vào menu Files và upload file container vừa tải về lên Router.

upload file container lên router

Sau đó reboot lại Router để cài đặt package này. Sau khi Router khởi động lại thì chúng ta sẽ có thêm menu Container ở thanh menu bên trái.

menu container trên mikrotik

Tiếp theo chúng ta cần kích hoạt Container. Container chỉ có thể kích hoạt qua giao diện dòng lệnh, do vậy các bạn vào Terminal của Winbox và nhập lệnh /system/device-mode/update container=yes.

Sau khi nhập lệnh xong, thì chúng ta sẽ cần phải rút nguồn ra cắm lại, hoặc nhấn nút reset trong vòng 30 giây để khởi động lại Router, không thể reboot lại router bằng winbox, vì Mikrotik yêu cầu thao tác vật lý với Router. và nó có hiệu lực trong 5 phút, nếu quá thời gian thì các bạn cần gõ lại lệnh này. Thao tác này là bắt buộc để xác nhận chúng ta có toàn quyền với Router.

nhập lệnh /system/device-mode/update container=yes để kích hoạt container

Sau khi Router khởi động xong, Các bạn có thể kiểm tra bằng lệnh /system/device-mode/print. Container là yes thì lệnh đã thành công.

kiểm tra trạng thái container bằng lệnh /system/device-mode/print

Cấu hình Network cho Pi-Hole

Tiếp theo chúng ta sẽ thiết lập network cho Container và cài đặt Pihole lên container này.

Các bạn vào menu Interfaces, trong tab Interface, nhấn dấu + và chọn VETH.

  • Name: mình sẽ nhập là VETH-Pihole.
  • Cổng này sẽ cần 1 dải IP để giao tiếp với mạng. Chúng ta sẽ cần sử dụng 1 dải mạng private chưa sử dụng trong LAN. Mình sẽ sử dụng dải 172.16.0.0/24. IP Address cho cổng này là 172.16.0.2, Gateway172.16.0.1.
  • Nhấn ApplyOK để tạo.

tạo VETH interface

Tiếp theo vào menu Bridge, nhấn dấu + để tạo 1 bridge mới cho Container.

  • Name: mình sẽ đặt là Pihole-BR.
  • Nhấn ApplyOK để tạo.

tạo bridge cho pihole

Chuyển sang tab Ports, nhấn dấu + và Add cổng VETH-Pihole vừa tạo vào bridge này.

add cổng VETH vào bridge

Tiếp theo cấu hình 1 địa chỉ IP cho bridge này. Các bạn vào menu IP > Addresses, nhấn dấu + để tạo mới

  • Address: chúng ta sẽ nhập dải vừa sử dụng cho cổng VETH, và IP này sẽ là gateway của dải này. Vừa rồi mình nhập IP Gateway trong cổng VETH là 172.16.0.1, nên mình sẽ cần sử dụng đúng IP này.
  • Interface: chon bridge Pihole-BR vừa tạo cho Container.

cấu hình IP cho cổng bridge

Tiếp theo các bạn vào menu IP > Firewall, chuyển sang tab NAT. Chúng ta sẽ cần cấu hình thêm 1 Source NAT rule để dải mạng của Container có thể giao tiếp được với internet. Nêu các bạn đã có rule srcnat bao gồm cả rule bên dưới rồi thì chúng ta có thể bỏ qua bước này.

  • Chain: là srcnat.
  • Src. Address: nhập dải 172.16.0.0/24.
  • Action chọn masquerade.
  • Nhấn ApplyOK để tạo.

tạo NAT rule cho dải mạng của Pihole ra internet

Khi sử dụng Container để tải Pi-Hole về thì chúng ta sẽ cần có thêm cấu hình DNS trên Router nữa. Nếu chưa cấu hình thì các bạn cần phải cấu hình thêm. Vào menu IP > DNS.

  • Cấu hình DNS Server, DNS này sẽ được sử dụng cho các traffic bắt nguồn từ Router.
  • Khi sử dụng Pi-hole trên Router, thì Router sẽ là DNS Server trung gian của người dùng trong LAN, do vậy các bạn cần phải tích chọn vào Allow Remote Requests, nếu không thì các yêu cầu DNS từ trong LAN sẽ bị từ chối và các client sẽ không truy cập được internet.

cấu hình DNS Server

Tuy nhiên khi chọn Allow Remote Requests thì Router rất dễ bị sử dụng để tấn công DNS, do vậy các bạn nên tạo thêm các firewall rule để chặn các Request DNS từ ngoài Internet vào, chỉ cho phép request từ trong LAN.

Các bạn vào menu IP > Firewall, chọn tab Filter Rules, nhấn dấu + để tạo rule mới.

  • Chain: chọn Input.
  • In. Interface chọn các cổng wan, nếu có nhiều cổng wan thì các bạn nên tạo 1 interface List và add vào, hoặc tạo nhiều rule, mỗi rule cho 1 cổng cũng được.
  • Protocol: chọn 6 (tcp).
  • Dst. Port: nhập port 53 của DNS.
  • Chuyển sang tab Action và chọn action là drop.

tạo firewall rule block dns port 53 từ ngoài internet vào

Tương tự tạo thêm 1 rule cho udp port 53.

tạo firewall rule block DNS UDP port 53 từ ngoài internet

Để sử dụng Pi-Hole trên Mikrotik, thì client trong LAN phải sử dụng Router Mikrotik làm DNS Server. Nếu Router cấp DHCP thì các bạn sửa lại thông tin DHCP Server trên Router.

Vào menu IP > DHCP Server, chuyển sang tab Networks. Kích đúp vào Network đang sử dụng, trong phần DNS Servers, các bạn nhập IP của cổng VETH, trong mô hình của mình là IP 172.16.0.2. Nhấn ApplyOK.

đổi DNS trong DHCP Server về IP của VETH Interface

Sau khi sửa DNS thì các bạn cần tắt card mạng của máy client trong LAN đi, hoặc reboot lại máy tính để nhận lại DNS mới. khi đó thì AdGuard mới có tác dụng với máy Clients.

Như vậy là dải mạng của Container đã đủ thông tin để có thể truy cập được Internet.

Cấu hình Pi-Hole trên Container

Sau khi cài đặt xong phần Network cho Container, chúng ta sẽ tiến hành cài đặt các tham số cho Container.

Các thiết bị Mikrotik thường có bộ nhớ flash khá nhỏ, các bạn không nên cài trực tiếp Pi-Hole lên ổ flash mà nên cài vào ổ USB. Các bạn chỉ cần 1 USB thông thường và cắm vào cổng USB trên Router.

cắm usb vào router mikrotik

Trên Router thì chúng ta sẽ vào menu System > Disks

Trong này sẽ hiển thị các ổ USB mà chúng ta kết nối vào Router, trên Router của mình đang nhận là ổ USB1, các bạn cần nhớ tên ổ này cho phần cấu hình sau.

Chọn Format Drive để định dạng lại USB.

  • Slot: chọn ổ USB.
  • File System: chọn ext4.
  • Nhấn Start để format.

format cổng usb về định dạng ext4

Phần cài đặt Pi-Hole trên Container này sẽ khá phức tạp khi sử dụng giao diện đồ họa của Winbox, do vậy các bạn nên sử dụng terminal để cấu hình. Các bạn copy về và sửa theo đúng thông số của mình.

/container/envs/add list="pihole_envs" key="TZ" value="Asia/Ho_Chi_Minh"

/container/envs/add list="pihole_envs" key="WEBPASSWORD" value="admin123"

/container/mounts/add name="pihole_etc" src="usb1/pihole/etc" dst="/etc/pihole"

/container/mounts/add name="pihole_dnsmasq" src="usb1/pihole/dnsmasq" dst="/etc/dnsmasq.d"

/container/config/set registry-url="https://registry-1.docker.io" tmpdir="usb1/pull"

/container/add remote-image="pihole/pihole:latest" interface="VETH-Pihole" envlist="pihole_envs" mounts="pihole_etc,pihole_dnsmasq" root-dir="usb1/pihole/root" logging=yes

Trong các lệnh này thì sẽ có 1 số tham số màu đỏ, các bạn cần sửa đổi theo đúng cấu hình trên Router của mình.

  • admin123: đây là mật khẩu cấu hình để truy cập vào giao diện quản trị của Pi-Hole, các bạn thay đổi về mật khẩu mong muốn.
  • usb1: đây là tên ổ USB đang nhận trong menu Disks, các bạn thay bằng tên thực tế trên Router.
  • Interface này là tên cổng VETH mà chúng ta đã tạo ở bước trước, các bạn copy tên cổng vào là được.

Sau đó copy và dán toàn bộ lệnh này vào terminal của Mikrotik.

Các cấu hình trên sẽ hiển thị trong menu Container, các bạn có thể vào trong menu này để kiểm tra hoặc thay đổi lại cấu hình trên. Các bạn chờ cho Container Pi-Hole tải xong thì nhấn Start để bật dịch vụ lên.

start container của pihole

Trạng thái chuyển sang running là OK, lúc này các bạn có thể truy cập vào Pi-Hole bằng IP đã cài trên cổng VETH là 172.16.0.2. Đăng nhập với mật khẩu admin123 đã nhập trong đoạn lệnh trên.

truy cập vào pihole bằng ip của cổng veth

Đây là giao diện quản trị của Pi-Hole.

giao diện dashboard của pihole trên mikrotik

Cấu hình Pi-Hole Web Admin

Ở lần truy cập đầu tiên thì các bạn sẽ cần cấu hình các thông số DNS. Các bạn vào menu Settings > DNS.

  • Phần Upstream DNS Server là danh sách các Server mà Pi-Hole sẽ sử dụng để truy vấn, các bạn tích vào các server muốn sử dụng, đây đều là các Server uy tín.
  • Trong phần Potentially dangerous options, tích chọn Permit all origins để cho phép mạng LAN có thể sử dụng Pi-Hole làm DNS Server. Nếu chọn các mục trên thì chỉ các IP cùng subnet với pihole mới có thể sử dụng được.
  • Nhấn Save & Apply để lưu.

cấu hình dns cho pihole

Phần cấu hình chặn lọc thì chúng ta sẽ có 4 menu là Groups, Clients, DomainsLists.

Phần Group và Client để các bạn tạo ra các nhóm, và gom các client khác nhau vào chúng 1 nhóm, nếu chúng ta muốn chia chính sách chặn lọc khác nhau cho từng nhóm Client. Nếu không cấu hình phần này thì mặc định sẽ có 1 Group là default, sẽ áp dụng cho toàn bộ client. Các bạn có thể tạo tùy nhu cầu.

menu group và clients

Menu Domain để chặn thủ công tên miền. Các bạn nhập tên miền cần chặn vào đây và chọn Add to denied domains là được. Nếu chỉ nhập chung chung, ví dụ 24h.com.vn thì các bạn cần chọn Add domain as wildcard để áp dụng cho cả subdomain, và các phần mở rộng cho tên miền đó, ví dụ: www.24h.com.vn, https://24h.com.vn... Pihole sẽ tự viết lại tên miền bằng Regex với định dạng, các bạn có thể tìm hiểu thêm về Regex để chặn lọc domain chính xác hơn.

menu domains để block các website mong muốn

Menu Lists là menu để các bạn cài đặt các danh sách chặn web xấu hoặc quảng cáo. Lists là 1 file chứa các url được xác định là quảng cáo hoặc web xấu, do tổ chức hoặc cá nhân tự tổng hợp và chia sẻ. Mặc định thì chỉ có 1 danh sách ở đây. Tuy nhiên thì danh sách này chủ yếu cho quốc tế thôi, nên hầu như sẽ không có tác dụng với quảng cáo tại Việt Nam. Các bạn có thể tìm thêm các lists trên mạng và add vào theo blocklist hoặc allowlist, trên diễn đàn của Pi-hole có chia sẻ rất nhiều list uy tín, các bạn chỉ cần tìm kiếm pi-hole blocklist là sẽ có.

menu lists để block quảng cáo hoặc các website xấu được định nghĩa sẵn.

Sau khi add lists vào thì chúng ta sẽ cần phải update lại. Các bạn vào menu Tools > Update Gravity, nhấn Update.

nhấn update để cập nhật các lists mới add vào

Sau đó chờ Pi-hole update và build lại các domain theo list mới là ok.

Kết luận

Như vậy là chúng ta đã hoàn tất quá trình cài đặt và cấu hình Pi-hole trên nền tảng Container của router MikroTik. Chúc các bạn thao tác thành công và trải nghiệm một môi trường mạng sạch, không quảng cáo.

Nếu các bạn có nhu cầu trang bị phần cứng hoặc cần hỗ trợ dự án chuyên sâu, hãy liên hệ ngay với Việt Thái Dương - nhà phân phối chính thức và đơn vị tư vấn giải pháp router MikroTik chuyên nghiệp tại Việt Nam. Cảm ơn các bạn đã theo dõi video, hẹn gặp lại ở những chủ đề công nghệ tiếp theo!

Lê Văn Tuấn

Là chuyên gia trong lĩnh vực Network System, Security, Server.. Có kinh nghiệm nhiều năm tư vấn giải pháp mạng, triển khai các giải pháp CNTT và phân phối thiết bị mạng Switch, Wifi, Router, Máy chủ Server, Lưu trữ Storage, Tường lửa Firewall, Video Conferencing, Module quang, Load Balancing. Hiện tại tôi là Founder và Managing Director công ty TNHH Công Nghệ Việt Thái Dương (CNTTShop.vn).

Bình luận bài viết!

Có 0 bình luận:
Chuyên mục chính
Bài viết cùng danh mục
Sản phẩm liên quan