Computer >> Máy Tính >  >> Kết nối mạng >> Internet

Pi-Hole - Tam giác DNS

Internet hiện đại là một nơi khá khó chịu. Khá thường xuyên, các hoạt động bình thường như đọc văn bản hoặc xem video bị gián đoạn bởi các thông báo quảng cáo hay còn gọi là quảng cáo. Đây sẽ không phải là vấn đề nếu quảng cáo có liên quan, đúng lúc hoặc không xâm phạm, nhưng mặc dù có nhiều "tiến bộ" về trí tuệ nhân tạo, học sâu và các từ thông dụng khác, nhưng chúng không phải là những thứ đó. Sau đó, chúng tôi có quyền riêng tư và không có gì.

Cuộc chiến giữa những người cho quảng cáo và những người chặn quảng cáo vẫn diễn ra ác liệt. Nó cũng đang dần leo thang, khi ngày càng có nhiều người quay lưng lại với mô hình quảng cáo trực diện tích cực. Đối với hầu hết các phần, nếu bạn sử dụng tiện ích mở rộng chặn quảng cáo trong trình duyệt của mình, thì bạn đã hoàn tất. Nhưng sau đó, bạn phụ thuộc vào công ty trình duyệt và những gì họ cho phép, cộng với điều này không phải lúc nào cũng hoạt động trong mọi trình duyệt và/hoặc hệ điều hành. Giải pháp là hoàn thành các yêu cầu mạng chặn đến các máy chủ quảng cáo và đây là những gì Pi-Hole thực hiện. Hãy xem lại.

Pi-Hole - Tam giác DNS

Bắt đầu

Pi-Hole là một lỗ đen dành cho các nhà quảng cáo trên Internet. Đó là một bộ công cụ phần mềm sẽ chặn các yêu cầu DNS đối với các miền được xác định là phân phối quảng cáo để các phiên duyệt web của bạn - hoặc bất kỳ hoạt động nào trên Internet đối với vấn đề đó - không bao giờ bao gồm bất kỳ quảng cáo nào. Đây là giải pháp cấp độ mạng và do đó, giải pháp này sẽ hoạt động trong mọi tình huống. Các lợi ích, ngoài việc giảm tiếng ồn, còn bao gồm giảm lưu lượng truy cập, cải thiện quyền riêng tư, v.v.

Điều này khiến tôi tò mò và tôi quyết định thiết lập Pi-Hole. Nói chung, Pi-Hole được thiết kế để sử dụng như một thiết bị. Đúng như tên gọi của nó, bạn có thể muốn sử dụng một thiết bị Raspberry Pi giá rẻ, cài đặt Pi-Hole trên đó, sau đó sử dụng nó làm bộ lọc mạng của mình. Trong đó có vấn đề số một - bạn cần có một số hiểu biết về mạng để có thể định cấu hình Pi-Hole một cách chính xác. Nhìn chung, một giải pháp Pi-Hole hoàn chỉnh bao gồm:

  • Thiết lập thiết bị sẽ chạy phần mềm Pi-Hole - đây có thể là một hệ thống chuyên dụng trên mạng của bạn hoặc bạn có thể định cấu hình Pi-hole trên bất kỳ máy nào chạy Linux. Ví dụ:nếu bạn có một vài máy tính xách tay hoặc máy tính để bàn chạy Linux, thì mỗi chiếc có thể là bộ lọc mạng riêng.
  • Bước tiếp theo là định cấu hình Pi-Hole làm máy chủ DNS - Về bản chất, chúng tôi duyệt bằng tên miền thay vì địa chỉ IP. Con người thấy việc ghi nhớ những thứ như dedoimedo.com hoặc example.com dễ dàng hơn nhiều so với một dãy số như 1.2.3.4 hoặc tương tự. Điều này được thực hiện thông qua dịch vụ phân giải Hệ thống tên miền (DNS), dịch vụ này thực hiện chuyển đổi từ các tên con người có thể đọc được sang các số. Pi-Hole có thể áp dụng các quy tắc lọc của nó vào thời điểm này - nếu nó xác định một yêu cầu đến một địa chỉ mà nó cho là thuộc về một trong những nhà quảng cáo trên Internet, thì nó có thể bỏ yêu cầu này và do đó, nội dung đó sẽ không bao giờ được phục vụ. Tất nhiên, điều này cũng có thể bao gồm cả kết quả dương tính giả.
  • Bước cuối cùng là định cấu hình các hệ thống khác để sử dụng Pi-Hole làm máy chủ DNS của chúng - Một lần nữa, điều này đòi hỏi một số kiến ​​thức về kết nối mạng. Nhưng điều này thực sự áp dụng cho bất kỳ hệ điều hành nào. Mặc dù thiết bị Pi-Hole cần phải là Linux, nhưng bất kỳ máy nào cũng có thể thay đổi cấu hình DNS để sử dụng thiết bị và từ thời điểm đó trở đi, Pi-Hole sẽ là người trung gian, lọc các yêu cầu mạng.

Vì vậy, bạn cần nhớ rằng tất cả những điều trên đều cần có chuyên môn. Bạn không thể tùy tiện cắm 'n' chơi một giải pháp có tính chất này trong thiết lập của mình. Nhưng nếu bạn có một người bạn mọt sách, họ có thể làm điều này cho bạn. Việc này đơn giản hay phức tạp, chúng ta hãy tiếp tục.

Trình hướng dẫn cài đặt

Tôi đã tải xuống tập lệnh và chạy nó. Bạn nhận được một trình hướng dẫn dựa trên văn bản tương đối đơn giản để làm theo. Tôi đã chạy ứng dụng này trên KDE neon và nó chỉ cài đặt phần mềm từ kho lưu trữ hệ thống, ngoài các thành phần của chính nó đến từ GitHub.

Pi-Hole - Tam giác DNS

Pi-Hole - Tam giác DNS

Pi-Hole - Tam giác DNS

Bạn cần cho Pi-Hole biết DNS nào sẽ sử dụng. Ví dụ:bạn có thể sử dụng bộ định tuyến của riêng mình, thường là những gì hệ thống Linux sẽ sử dụng, chẳng hạn như 192.168.1.1 hoặc 192.168.2.1 hoặc tương tự. Mọi thứ khó hiểu hơn một chút với systemd hiện tại, nhưng chúng ta sẽ đạt được điều đó. Bạn cũng có tùy chọn sử dụng một số DNS Internet hiện có (như Google hoặc CloudFlare). Tôi quyết định bắt đầu với thiết lập tùy chỉnh của mình.

Pi-Hole - Tam giác DNS

Giống như bất kỳ trình chặn quảng cáo nào, Pi-Hole sử dụng danh sách để chặn quảng cáo. Đây là liên kết mạnh nhất và cũng là liên kết yếu nhất của giải pháp, bởi vì nếu danh sách không cập nhật, không chính xác hoặc được thực hiện kém, thì bạn có thể có lỗ hổng hoặc thông báo sai khiến các miền hợp pháp bị từ chối. Nhưng đối với vấn đề đó, điều này không khác gì việc chặn quảng cáo thông qua các tiện ích mở rộng của trình duyệt, ngoại trừ việc nó kỹ lưỡng hơn một chút, do đó rất tích cực. Hầu hết các tiện ích mở rộng của trình duyệt chỉ áp dụng các quy tắc cho miền của bên thứ ba, vì vậy khả năng miền dự kiến ​​không hoạt động là tương đối thấp. Pi-Hole có nghĩa là không thể đánh lừa được và điều đó có nghĩa là nó có thể ngăn tải các trang web hợp pháp.

Pi-Hole - Tam giác DNS

Giao diện người dùng web nghe có vẻ là một điều tốt đẹp. Tôi đã định cấu hình nó.

Pi-Hole - Tam giác DNS

Và đó là nó. Giả sử Pi-Hole đã được cài đặt và định cấu hình, và tôi có thể sử dụng nó ngay bây giờ.

Nó có hoạt động không?

Không. Tôi không có kết nối Internet - lỗi phân giải tên. Hệ thống cục bộ của tôi - neon - đang sử dụng chính nó làm DNS (hay đúng hơn là Pi-Hole đã cài đặt đang sử dụng bộ định tuyến), nhưng có vẻ như Pi-Hole không cung cấp dịch vụ phân giải của nó.

Vấn đề tại thời điểm này là - bạn không thể truy cập trực tuyến vì không có Internet, vì vậy nếu bạn muốn tìm kiếm câu trả lời, bạn cần một máy khác. Tôi đã thử gỡ cài đặt Pi-Hole và đây là một giải pháp đơn giản và sạch sẽ, đồng thời kết nối được khôi phục ngay lập tức. Tôi đã cài đặt lại và nhận được kết quả tương tự.

Tôi quyết định thử một số kiểm tra dòng lệnh. Pi-Hole đi kèm với một số lệnh cho phép bạn bật, tắt nó, bắt đầu dịch vụ phân giải tên, kiểm tra trạng thái, v.v. Hóa ra tôi đang gặp sự cố với một thứ gọi là pihole-FTL. Chà, được rồi.

pihole enable
[i] Kích hoạt tính năng chặn
[✗] pihole-FTL:không tìm thấy quy trình nào
[✓] Pi-hole Enabled

Tôi đã cố chạy pihole-FTL, nhưng nó không khởi động. Hóa ra, tôi cần sudo. Nhìn vào tài liệu trực tuyến, các lỗi thiết lập không được ghi lại rõ ràng. Vì vậy, có vẻ như tôi đã vượt qua rào cản đầu tiên trong cấu hình.

pihole-FTL
FATAL:Mở nhật ký FTL (/var/log/pihole-FTL.log) không thành công!
Đảm bảo rằng nó tồn tại và có thể ghi được bởi người dùng neon

Sudo pihole-FTL
FTL đã bắt đầu!

Nhưng tôi vẫn không có Internet. Tôi cho rằng dịch vụ DNS vẫn chưa hoạt động nên tôi đã thử khởi động lại dịch vụ này.

pihole restartdns
[✗] Không khởi động được pihole-FTL.service:Không tìm thấy đơn vị pihole-FTL.service.

Từ lỗi, tôi cho rằng không có tệp đơn vị nào để khởi động dịch vụ FTL hoặc nó đã bị hỏng. Tìm kiếm trực tuyến, tôi biết rằng tệp dịch vụ cần được thay đổi. Cụ thể, trong /etc/init.d/pihole-FTL, tôi phải chỉnh sửa một dòng gọi FTL từ:

su -s /bin/sh -c "/usr/bin/pihole-FTL" "$FTLUSER"

Đến dòng này:

/usr/bin/pihole-FTL

Sau đó, Pi-Hole bắt đầu không có lỗi.

sudo pihole restartdns
[✓] Bắt đầu dịch vụ DNS

Pi-Hole không chặn quảng cáo

Tôi đã có kết nối, nhưng các quảng cáo đã ở đó. Pi-Hole không thực hiện bất kỳ quá trình lọc nào. Vì vậy, tôi quyết định truy cập Giao diện người dùng web và xem liệu tôi có thể thực hiện bất kỳ thay đổi và chỉnh sửa nào ở đó không. Nhưng khi tôi cố gắng truy cập địa chỉ Pi-Hole, không có máy chủ Web nào lắng nghe. https://ip-address/admin và https://pi-hole/admin không làm gì cả.

Tôi đã thực hiện thêm một số thử nghiệm trên dòng lệnh và hóa ra dịch vụ lighttpd không chạy, điều này giải thích tại sao tôi không có Giao diện người dùng web. Vì vậy, đã đến lúc thực hiện thêm một số thủ thuật, và một lần nữa, tài liệu về chủ đề này hơi ít. Tôi gặp nhiều lỗi hơn:

Sudo systemctl restart lighttpd.service
Việc cho lighttpd.service không thành công do quá trình kiểm soát đã thoát với mã lỗi. Xem "systemctl status lighttpd.service" và "journalctl -xe" để biết chi tiết.

Tuy nhiên, lần này, vì tôi có Internet, tôi có thể tìm kiếm trực tuyến và nhanh chóng tìm ra lý do của vấn đề. Chủ đề sau đây đã dẫn tôi đến câu trả lời đúng - mặc dù KHÔNG CÓ GÌ trong nhật ký lỗi sẽ chỉ ra giải pháp. Và ở đây, một lần nữa tôi muốn chỉ ra sự phức tạp không giải mã được của systemd. Tôi đã phải tìm kiếm thông tin trong nhật ký nhị phân và thậm chí sau đó, thông tin đó cũng vô dụng.

Tôi thực sự đã thiếu một gói - gamin - tại sao nó không được cài đặt như một phần phụ thuộc ngay lập tức, không biết. Nhưng sau khi tôi đã cài đặt ứng dụng này, lighttpd bắt đầu hoạt động tốt và giao diện người dùng web ở đó để tôi khám phá.

sudo apt-get cài đặt gamin

trạng thái systemctl lighttpd.service
● lighttpd.service - Lighttpd Daemon
Đã tải:đã tải (/lib/systemd/system/lighttpd.service; đã bật; cài đặt sẵn của nhà cung cấp:đã bật)
Đang hoạt động:đang hoạt động ( running) kể từ Thứ Năm 2019-05-09 15:34:03 CEST; 2 giây trước
Quá trình:19060 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS)
PID chính:19069 (lighttpd )
Nhiệm vụ:6 (giới hạn:4915)
CGroup:/system.slice/lighttpd.service
├─19069 /usr/sbin/lighttd -D -f /etc/lighttpd/lighttpd .conf
├─19078 /usr/bin/php-cgi
├─19079 /usr/bin/php-cgi
├─19080 /usr/bin/php-cgi
> ├─19081 /usr/bin/php-cgi
└─19082 /usr/bin/php-cgi

Pi-Hole - Tam giác DNS

Đăng nhập và mật khẩu giao diện người dùng web

Nhưng tôi vẫn không có quảng cáo nào bị chặn. Vì vậy, tôi đã cố gắng đăng nhập và nhận ra rằng mình gặp phải một vấn đề khác - tôi không thể truy cập trang quản trị nơi tôi thực sự có thể kiểm tra tất cả nhật ký và thông tin chi tiết cũng như thực hiện các thay đổi. Một lần nữa, tìm kiếm trên mạng, tôi phát hiện ra rằng tôi phải đặt lại mật khẩu mặc định từ dòng lệnh:

lỗ thủng -a -p

Sau đó tôi có quyền truy cập vào cài đặt giao diện người dùng web. Đó là một giao diện thực sự đẹp và mạnh mẽ. Bạn có rất nhiều tùy chọn, bao gồm khả năng tạm dừng Pi-Hole, vì vậy nếu gặp sự cố, thay vì thay đổi mọi thứ, bạn chỉ có thể tạm dừng quá trình lọc. Không cần chơi với cài đặt DNS.

Điền danh sách chặn

Và xem qua giao diện, tôi nhận ra rằng tất cả các danh sách chặn của mình đều trống. Vâng, điều này là hiển nhiên từ trang chính, nhưng bạn cần biết những gì bạn đang tìm kiếm. Tại sao Pi-Hole không nhắc bạn cập nhật danh sách hoặc thực sự làm điều này như một phần của quá trình thiết lập? Tôi đã chạy cập nhật thủ công từ dòng lệnh và các danh sách đã được tạo.

lỗ thủng -g -f

Pi-Hole - Tam giác DNS

Được rồi, nó hoạt động chứ?

Vâng, bây giờ, nó cuối cùng đã hoạt động! Pi-Hole hiện đang thực hiện nhiệm vụ DNS của mình và cũng đang lọc lưu lượng. Tôi phải nói rằng nó hiệu quả và không xâm phạm. Và nếu tôi không nhầm, thậm chí còn có một sự gia tăng hiệu suất nhẹ ở phía mạng, vì hệ thống phải xử lý ít truy vấn hơn và cung cấp ít nội dung hơn. Thật vậy, ngay cả với một số trình duyệt vô tội, 20% của tất cả các truy vấn đã bị chặn. Đó là rất nhiều âm thanh. Nhưng nó cũng làm nổi bật tình hình hiện tại của Internet hiện đại. Thực tế là có hơn 100.000 tên miền trong danh sách chặn cũng nói lên một phần của câu chuyện buồn này. Nó cũng giải thích sự cải thiện nhẹ về độ trễ.

Pi-Hole - Tam giác DNS

Kết luận

Vào cuối ngày, tôi đã chạy Pi-hole, nhưng thiết lập không hề tầm thường. Có bốn hoặc năm vấn đề cơ bản, và lẽ ra không có vấn đề nào trong số này xảy ra, bởi vì trình hướng dẫn cài đặt có thể đã trải qua các bước kiểm tra riêng biệt để đảm bảo mọi thứ đang hoạt động. Một phần của lần chạy đầu tiên có thể là kiểm tra dịch vụ và nếu có sự cố ở đó, một số loại tự chẩn đoán để đảm bảo FTL được thiết lập và chạy. Điều tương tự cũng áp dụng cho dịch vụ Web. Sau đó, có đặt lại mật khẩu và cập nhật danh sách. Tất cả những điều này sẽ làm cho trải nghiệm trở nên hợp lý hơn nhiều.

Là một sản phẩm, Pi-Hole là một công cụ rất hay và mạnh mẽ. Nó thực hiện công việc của mình rất tốt, nhanh, hiệu quả và mạnh mẽ, và giao diện người dùng web được thiết kế đẹp mắt. Bạn cũng đạt được một số lợi ích về mặt lưu lượng truy cập, vì có ít nội dung cần được phục vụ hơn và ít truy vấn cần giải quyết hơn, do đó cải thiện hiệu suất cho những nội dung quan trọng. Việc thiết lập không đơn giản nhưng có thể thực hiện được và bạn có rất nhiều sự linh hoạt trong cách kết nối mạng của mình. Bạn có thể có Pi-Hole như một hệ thống độc lập hoặc nó có thể phục vụ tất cả các thiết bị khác nhau trong nhà của bạn. Nói chung, đây là vũ khí của ngày tận thế nếu và khi Internet trở thành kẻ lừa đảo đối với bạn. Rất đáng để thử nghiệm, nhưng hãy nhớ quy tắc thứ hai của nhiệt động lực học. Bạn không thể vừa tầm thường vừa phức tạp.

Chúc mừng.