Làm cách nào để thiết lập máy chủ bộ đệm DNS cục bộ trên Linux?

Tra cứu DNS thường không phải là điều mà bạn cần phải lo lắng. Đôi khi bạn nên!


Nếu ISP ISP tại nhà hoặc văn phòng của bạn có máy chủ tên chậm hoặc máy chủ của bạn đang thực hiện nhiều tra cứu, thì bạn cần một máy chủ DNS lưu trữ cục bộ.

Máy chủ DNS lưu trữ sẽ giúp tôi như thế nào?

Máy chủ DNS lưu trữ hoạt động bằng cách thực hiện tất cả các truy vấn DNS mà hệ thống của bạn thực hiện và sau đó lưu hoặc lưu vào bộ nhớ cache các kết quả trong bộ nhớ. Khi kết quả được lưu trong bộ nhớ bất cứ khi nào bạn thực hiện yêu cầu trùng lặp cho tên miền, kết quả sẽ được cung cấp gần như ngay lập tức từ bộ nhớ.

Điều này có vẻ không quá quan trọng, nhưng nếu các máy chủ ISP ISP DNS của bạn đang dành thời gian để phản hồi, nó sẽ làm chậm đáng kể việc duyệt internet của bạn. Ví dụ: trang chủ của kênh tin tức Mỹ MSNBC cần liên hệ với hơn 100 tên miền duy nhất để tải chính xác. Nếu các máy chủ tên ISP của bạn mất nhiều thời gian hơn 10 giây so với bình thường để phản hồi, điều đó có nghĩa là trang sẽ mất 10 giây nữa để hoàn tất tải.

Một máy chủ DNS bộ nhớ đệm cục bộ sẽ không chỉ giúp tại nhà hoặc văn phòng của bạn, nó cũng sẽ giúp trên máy chủ của bạn. Ví dụ: nếu bạn có một ứng dụng thực hiện nhiều tra cứu DNS, một máy chủ email bận rộn chạy phần mềm chống thư rác, nó sẽ nhận được sự tăng tốc từ máy chủ DNS lưu trữ cục bộ.

Cuối cùng, systemd-phân giải hỗ trợ các tiêu chuẩn DNS an toàn, mới nhất DNSSEC và DNSoverTLS hoặc DoT. Những điều này giúp giữ an toàn cho bạn và giữ quyền riêng tư trực tuyến.

Chúng tôi sẽ sử dụng DNS bộ nhớ đệm cục bộ nào?

Máy chủ DNS bộ đệm cục bộ mà chúng tôi sẽ kích hoạt và định cấu hình trong hướng dẫn này là giải quyết hệ thống. Công cụ này là một phần của hệ thống bộ công cụ quản lý hệ thống. Nếu hệ thống của bạn đang sử dụng systemd và hầu hết tất cả các bản phân phối Linux chính, thì bạn đã cài đặt được phân giải systemd nhưng không chạy. Hầu hết các bản phân phối không sử dụng phân giải systemd mặc dù nó có mặt.

giải quyết hệ thống hoạt động bằng cách chạy một máy chủ DNS bộ nhớ đệm cục bộ nhỏ mà chúng tôi sẽ cấu hình để bắt đầu khởi động. Sau đó, chúng tôi sẽ định cấu hình lại phần còn lại của hệ thống để chuyển các truy vấn DNS của chúng sang DNS được giải quyết bộ nhớ cache hệ thống cục bộ.

Cách kiểm tra xem bạn đã sử dụng systemd-Nghị quyết chưa?

Một số bản phân phối Linux đã sử dụng systemd được phân giải theo mặc định, chẳng hạn như Ubuntu 19.04.

Nếu bạn đang chạy systemd-phân giải thì bạn không cần kích hoạt nó hoặc cấu hình hệ thống của bạn để sử dụng nó. Tuy nhiên, bạn có thể cần đảm bảo rằng các công cụ quản lý mạng như NetworkManager được cấu hình đúng vì chúng có thể bỏ qua cấu hình mạng hệ thống.

Trước khi tiếp tục phần tiếp theo, hãy chạy lệnh sau để kiểm tra xem bạn đã chạy systemd -olve chưa:

$ trạng thái độ phân giải

Nếu bạn nhận được tin nhắn:

$ trạng thái độ phân giải
Không thể lấy dữ liệu toàn cầu: Không tìm thấy đơn vị dbus-org.freedesktop.resolve1.service.

Bạn là không phải chạy systemd-giải quyết và nên chuyển sang phần tiếp theo. Thay vào đó, nếu bạn thấy đầu ra bắt đầu bằng thứ gì đó như sau:

Toàn cầu
Cài đặt LLMNR: có
Cài đặt MulticastDNS: có
Cài đặt DNSOverTLS: cơ hội
Cài đặt DNSSEC: cho phép hạ cấp
Hỗ trợ DNSSEC: không
Máy chủ DNS hiện tại: 1.1.1.1
Máy chủ DNS: 1.1.1.1
1.0.0.1

Sau đó, bạn đã chạy systemd-phân giải và không cần kích hoạt nó.

Kích hoạt và cấu hình systemd-phân giải

Chúng tôi không cần phải cài đặt systemd-phân giải như đã là một phần của systemd. Tất cả những gì chúng ta cần làm là khởi động nó để máy chủ bộ đệm DNS chạy và sau đó kích hoạt nó để khởi động nó khi khởi động.

Chạy lệnh sau từ dấu nhắc shell khi sudo kích hoạt người dùng không root để bắt đầu giải quyết systemd:

$ sudo systemctl bắt đầu systemd-yet.service

Tiếp theo, chạy lệnh sau để bắt đầu giải quyết systemd khi khởi động hệ thống:

$ sudo systemctl kích hoạt systemd-yet.service

Mục cuối cùng của cấu hình còn lại là đặt các máy chủ DNS mà hệ thống đã phân giải sẽ truy vấn đến các miền được giải quyết. Có nhiều tùy chọn ở đây, nhưng một trong hai cặp sau đây là miễn phí, nhanh chóng và cả hai đều hỗ trợ DNSSEC và DoT:

DNS công cộng của Google

  • 8.8.8.8
  • 8.8.4.4

Đám mây công cộng DNS

  • 1.1.1.1
  • 1.0.0.1

Mở tệp cấu hình được phân giải hệ thống chính bằng trình soạn thảo văn bản yêu thích của bạn, ở đây tôi đã sử dụng nano:

$ sudo nano /etc/systemd/resolve.conf

Chỉnh sửa dòng bắt đầu

# DNS =

Vì vậy, một cặp địa chỉ IP được liệt kê. Tại đây, các máy chủ DNS của Cloudflare được hiển thị:

DNS = 1.1.1.1 1.0.0.1

Lưu và thoát khỏi trình soạn thảo văn bản. Bây giờ chúng ta cần khởi động lại hệ thống đã phân giải để nó bắt đầu sử dụng máy chủ tên:

$ sudo systemctl khởi động lại systemd-yet.service

systemd-yet hiện đang chạy và sẵn sàng bắt đầu tăng tốc và bảo mật các truy vấn DNS ngay khi chúng tôi định cấu hình hệ thống để bắt đầu sử dụng nó.

Cấu hình hệ thống để sử dụng phân giải systemd

Hệ thống của bạn có thể được cấu hình theo nhiều cách để sử dụng phân giải systemd, nhưng chúng tôi sẽ xem xét hai cấu hình bao gồm hầu hết các trường hợp sử dụng. Đầu tiên là cấu hình được khuyến nghị và thứ hai là cấu hình tương thích. Sự khác biệt giữa hai là cách quản lý tệp /etc/resolv.conf.

Tệp /etc/resolv.conf chứa địa chỉ IP của máy chủ tên mà các chương trình trên hệ thống nên truy vấn. Các chương trình cần thực hiện truy vấn DNS sẽ tham khảo tệp này để tìm ra máy chủ nào họ nên liên hệ để thực hiện các truy vấn đó.

Hai chế độ của trung tâm phân giải systemd xung quanh cách quản lý nội dung của tệp này. Trong chế độ được đề xuất, /etc/resolv.conf được tạo một liên kết tượng trưng đến /run/systemd/resolve/stub-resolv.conf. Tệp này được quản lý bởi systemd-phân giải và do đó systemd phân giải quản lý thông tin cấu hình DNS cho tất cả các chương trình khác trên hệ thống.

Điều này có thể gây ra sự cố khi các chương trình khác cố gắng quản lý nội dung của /etc/resolv.conf. Chế độ tương thích để lại /etc/resolv.conf cho phép các chương trình khác quản lý nó trong khi phân giải systemd sử dụng thông tin DNS đó. Trong chế độ này, các chương trình khác quản lý /etc/resolv.conf phải được cấu hình để đặt 127.0.0.53 làm máy chủ tên hệ thống trong /etc/resolv.conf.

Cấu hình chế độ đề xuất

Khi chúng tôi định cấu hình chế độ này, systemd-phân giải sẽ quản lý /etc/resolv.conf bằng cách biến nó thành một liên kết tượng trưng đến /run/systemd/resolve/stub-resolv.conf. Chúng tôi sẽ cần phải làm điều này bằng tay vì nó không được cấu hình tự động.

Đầu tiên, xóa hoặc đổi tên tệp /etc/resolv.conf hiện có. Đổi tên là một tùy chọn tốt hơn để xóa nó vì nó sẽ có tác dụng tương tự nhưng bạn luôn có thể tham khảo bản gốc nếu bạn cần thông tin chứa trong đó. Ở đây, chúng tôi đổi tên /etc/resolv.conf bằng lệnh mv:

$ sudo mv /etc/resolv.conf /etc/resolv.conf.origen

Tiếp theo, tạo liên kết tượng trưng:

$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Cuối cùng, khởi động lại hệ thống đã giải quyết:

$ sudo systemctl khởi động lại systemd-yet.service

Cấu hình chế độ tương thích

Trong chế độ này, bạn cần đảm bảo rằng máy chủ tên cục bộ đã phân giải hệ thống đã bắt đầu được truy vấn bởi các dịch vụ hệ thống. Mở /etc/resolv.conf trong trình soạn thảo văn bản, ở đây trình chỉnh sửa nano được sử dụng:

$ sudo nano /etc/resolv.conf

Xóa bất kỳ dòng nào bạn gặp bắt đầu bằng máy chủ tên miền tên lửa và thêm dòng này:

máy chủ tên 127.0.0.53

Chỉnh sửa này có thể được thay đổi bởi bất kỳ chương trình nào khác đang quản lý /etc/resolv.conf. Nếu đây là trường hợp thì bạn sẽ cần phải cấu hình các chương trình đó để sử dụng máy chủ tên này để chỉnh sửa vĩnh viễn.

Gỡ lỗi systemd-giải quyết

Khám phá chính xác cách hệ thống của bạn thực hiện các truy vấn DNS sau khi bạn thực hiện những thay đổi này có thể khó khăn. Phương pháp hiệu quả nhất để quan sát những gì đang xảy ra là đưa hệ thống được giải quyết vào chế độ gỡ lỗi và xem tệp nhật ký.

systemd-yet là một dịch vụ systemd, có nghĩa là nó có thể dễ dàng được đưa vào chế độ gỡ lỗi bằng cách tạo một tệp dịch vụ thả xuống có chứa cài đặt gỡ lỗi. Lệnh sau sẽ tạo tệp đúng ở vị trí chính xác:

$ sudo systemctl chỉnh sửa systemd-yet.service

Dán các dòng sau vào trình chỉnh sửa, sau đó lưu và thoát:

[Dịch vụ]
Môi trường = HỆ THỐNG_LOG_LEVEL = gỡ lỗi

Dịch vụ được giải quyết bởi systemd sẽ được tự động tải lại khi lưu và thoát thành công.

Mở một thiết bị đầu cuối thứ hai đến cùng một máy chủ và theo dõi nhật ký journald cho dịch vụ được giải quyết bởi systemd:

$ sudo Tạp chí -f -u systemd-giải quyết

Một dòng bắt đầu sử dụng máy chủ DNS, ví dụ:

Sử dụng máy chủ DNS 1.1.1.1 cho giao dịch 19995.

Cho bạn biết chính xác máy chủ DNS nào đang được sử dụng cho các truy vấn DNS. Trong trường hợp này, máy chủ DNS Cloudflare tại 1.1.1.1 đã được truy vấn.

Các dòng đang bị lỗi Cache Cache cho thấy tên miền chưa được lưu trong bộ nhớ cache. Ví dụ.:

Lỗi bộ nhớ cache cho example.com IN SOA

Các dòng bắt đầu bộ nhớ cache Tích cực tấn công vào mạng e.g.:

Lượt truy cập bộ đệm tích cực ví dụ.com IN A

Cho biết rằng đã giải quyết systemd đã truy vấn tên miền này trước đó và câu trả lời đã được cung cấp từ bộ đệm trong bộ nhớ cục bộ.

Bạn nên tắt chế độ gỡ lỗi khi bạn đã hoàn thành việc giải quyết systemd vì nó sẽ tạo một tệp nhật ký rất lớn trên một hệ thống bận rộn. Bạn có thể vô hiệu hóa ghi nhật ký gỡ lỗi bằng cách chạy:

$ sudo systemctl chỉnh sửa systemd-yet.service

và xóa hai dòng, bạn đã thêm sau đó lưu và thoát khỏi trình chỉnh sửa.

Sử dụng truy vấn DNS an toàn

systemd-giải quyết là một trong số ít các máy chủ DNS hiện có hỗ trợ cả DNSSEC và DNSoverTLS. Cả hai điều này đều giúp đảm bảo rằng bạn đang nhận được thông tin DNS chính hãng (DNSSEC) và không ai có thể rình mò lưu lượng DNS của bạn khi truyền qua internet. (DoT).

Các tùy chọn này có thể dễ dàng được kích hoạt bằng cách mở tệp cấu hình chính được giải quyết bằng systemd bằng trình soạn thảo văn bản:

$ sudo nano /etc/systemd/resolve.conf

Và chỉnh sửa tệp sao cho hai dòng sau được đặt:

DNSSEC = cho phép hạ cấp
DNSOverTLS = cơ hội

Lưu và thoát trình chỉnh sửa sau đó tải lại systemd-phân giải:

$ sudo systemctl khởi động lại systemd-yet.service

Miễn là máy chủ DNS bạn đã đặt hỗ trợ DNSSEC và DoT các truy vấn DNS của bạn sẽ được bảo vệ. Cả máy chủ DNS công cộng của Google và Cloudflare đều hỗ trợ các giao thức này.

Phần kết luận

Hệ thống của bạn hiện được cấu hình để thực hiện nhanh chóng và hiệu quả các truy vấn DNS ngay cả khi máy chủ DNS ISP ISP của bạn không phản hồi nhanh như mong muốn. Hơn nữa, cuộc sống số của bạn an toàn hơn khi bạn đang sử dụng các giao thức DNS an toàn, mới nhất để bảo vệ các truy vấn DNS của bạn.

Nếu bạn là người đam mê Linux và muốn tìm hiểu thêm, thì hãy xem điều tuyệt vời này khóa học trực tuyến.

THẺ

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map