Điểm:1

Đặt cài đặt địa chỉ MAC + DNS chung trên bản phân phối Linux dựa trên Debian với systemd-resolved + NetworkManager

lá cờ in

Tôi đang chạy bản phân phối Linux dựa trên Debian, cụ thể là Pop!_OS 22.04 (Ubuntu gây nhiễu). Tôi muốn đặt cài đặt địa chỉ MAC + DNS tùy chỉnh trên toàn cầu - nghĩa là được áp dụng tự động cho tất cả các kết nối mạng, mới và có sẵn.

Cụ thể, tôi muốn thay đổi các cài đặt sau:

  • Bật DNSSEC
  • Bật DNS qua TLS
  • Thay đổi máy chủ DNS của tôi thành AdGuard DNS
  • Kích hoạt ngẫu nhiên địa chỉ MAC

Hiện tại, tôi đã tạo ba tệp Nên thực hiện những thay đổi này.

/etc/systemd/resolved.conf.d/dns.conf:

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

/etc/NetworkManager/dns.conf:

# chỉ định máy chủ dns
# bỏ qua do dhcp cung cấp

[ipv4]
dns=94.140.14.14;94.140.15.15;
bỏ qua-auto-dns=true

[ipv6]
dns=2a10:50c0::ad1:ff;2a10:50c0::ad2:ff;
bỏ qua-auto-dns=true

/etc/NetworkManager/mac.conf:

[thiết bị]
# ngẫu nhiên hóa địa chỉ mac khi quét mạng wifi
wifi.scan-rand-mac-address=yes

[sự liên quan]
# ngẫu nhiên hóa địa chỉ mac khi kết nối mạng ban đầu
# giữ lại địa chỉ mac đã tạo cho tất cả các kết nối lại trong tương lai
# (mỗi mạng)
ethernet.cloned-mac-address=ổn định
wifi.cloned-mac-address=ổn định

Sau khi tạo các tệp này và khởi động lại, không có dấu hiệu nào cho thấy bất kỳ thay đổi nào liên quan đến kết nối mạng đã được thực hiện.

Trang thử nghiệm của AdGuard cho thấy DNS của nó "Không chạy".

$ nmcli nhà phát triển hiển thị wlp0s20f3 (Thẻ Wi-Fi):

CHUNG.THIẾT BỊ: wlp0s20f3
CHUNG.TYPE: wifi
CHUNG.HWADDR: C6:F5:1A:8E:84:4D
TỔNG HỢP.MTU: 1500
CHUNG.STATE: 100 (đã kết nối)
CHUNG.CONNECTION: NotYourWiFi
CHUNG.CON-PATH: /org/freedesktop/NetworkManager/ActiveC>
IP4.ADDRESS[1]: 192.168.0.153/24
IP4.GATEWAY: 192.168.0.1
IP4.ROUTE[1]: dst = 192.168.0.0/24, nh = 0.0.0.0, mt >
IP4.ROUTE[2]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt >
IP4.ROUTE[3]: dst = 0.0.0.0/0, nh = 192.168.0.1, mt =>
IP4.DNS[1]: 192.168.0.1
IP4.DOMAIN[1]: mbfamily.localdomain
IP6.ADDRESS[1]: fe80::70e0:14db:aeb6:b6be/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024

$ trạng thái giải quyết:

Toàn cầu
       Giao thức: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
chế độ giải quyết.conf: sơ khai

Liên kết 2 (enp0s31f6)
Phạm vi hiện tại: không có
     Giao thức: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Liên kết 3 (wlp0s20f3)
    Phạm vi hiện tại: DNS
         Giao thức: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Máy chủ DNS hiện tại: 192.168.0.1
       Máy chủ DNS: 192.168.0.1
        Tên miền DNS: mbfamily.localdomain

/etc/resolv.conf:

# Đây là /run/systemd/resolve/stub-resolv.conf được quản lý bởi man:systemd-resolved(8).
# Không chỉnh sửa.
#
# Tệp này có thể được liên kết tượng trưng dưới dạng /etc/resolv.conf. Nếu bạn đang xem
# /etc/resolv.conf và nhìn thấy dòng chữ này, bạn đã đi theo liên kết tượng trưng.
#
# Đây là tệp độ phân giải động.conf để kết nối máy khách cục bộ với
# trình phân giải sơ khai DNS nội bộ của systemd-resolved. Tập tin này liệt kê tất cả
# miền tìm kiếm được định cấu hình.
#
# Chạy "resolvectl status" để xem chi tiết về các máy chủ DNS đường lên
# Đang được dùng.
#
# Các chương trình của bên thứ ba thường không truy cập trực tiếp vào tệp này mà chỉ
# thông qua liên kết tượng trưng tại /etc/resolv.conf. Để quản lý man:resolv.conf(5) trong một
# cách khác, thay thế liên kết tượng trưng này bằng một tệp tĩnh hoặc một liên kết tượng trưng khác.
#
# Xem man:systemd-resolved.service(8) để biết chi tiết về các chế độ được hỗ trợ của
# hoạt động cho /etc/resolv.conf.

máy chủ định danh 127.0.0.53
tùy chọn quảng cáo tin cậy edns0
tìm kiếm mbfamily.localdomain

/run/systemd/resolve/resolv.conf:

# Đây là /run/systemd/resolve/resolv.conf được quản lý bởi man:systemd-resolved(8).
# Không chỉnh sửa.
#
# Tệp này có thể được liên kết tượng trưng dưới dạng /etc/resolv.conf. Nếu bạn đang xem
# /etc/resolv.conf và nhìn thấy dòng chữ này, bạn đã đi theo liên kết tượng trưng.
#
# Đây là tệp độ phân giải động.conf để kết nối trực tiếp các máy khách cục bộ với
# tất cả các máy chủ DNS đường lên đã biết. Tệp này liệt kê tất cả các miền tìm kiếm được định cấu hình.
#
# Các chương trình của bên thứ ba thường không truy cập trực tiếp vào tệp này mà chỉ
# thông qua liên kết tượng trưng tại /etc/resolv.conf. Để quản lý man:resolv.conf(5) trong một
# cách khác, thay thế liên kết tượng trưng này bằng một tệp tĩnh hoặc một liên kết tượng trưng khác.
#
# Xem man:systemd-resolved.service(8) để biết chi tiết về các chế độ được hỗ trợ của
# hoạt động cho /etc/resolv.conf.

máy chủ định danh 192.168.0.1
tìm kiếm mbfamily.localdomain

$ phân tích hệ thống cat-config systemd/resolved.conf chỉ ra rằng giải quyết.conf.d/dns.conf được đọc, tuy nhiên:

# /etc/systemd/resolved.conf
# Tập tin này là một phần của systemd.
#
# systemd là phần mềm miễn phí; bạn có thể phân phối lại và/hoặc sửa đổi nó dưới
# điều khoản của Giấy phép Công cộng Ít hơn GNU được xuất bản bởi Free
# Nền tảng phần mềm; phiên bản 2.1 của Giấy phép hoặc (tùy chọn của bạn)
# bất kỳ phiên bản nào sau này.
#
# Các mục trong tệp này hiển thị mặc định thời gian biên dịch. Cấu hình cục bộ
# phải được tạo bằng cách sửa đổi tệp này hoặc bằng cách tạo "trình đơn thả xuống" trong
# thư mục con resolve.conf.d/. Cái sau thường được khuyến khích.
# Mặc định có thể được khôi phục bằng cách xóa tệp này và tất cả các trình duyệt thả xuống.
#
# Sử dụng 'systemd-analyze cat-config systemd/resolved.conf' để hiển thị toàn bộ co>
#
# Xem giải quyết.conf(5) để biết chi tiết.

[Giải quyết]
# Một số ví dụ về máy chủ DNS có thể được sử dụng cho DNS= và FallbackDNS=:
# Đám mây: 1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4>
# Google: 8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.go>
# Quad9: 9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#d>
#DNS=
# Dự phòngDNS=
#Miền=
#DNSSEC=không
#DNSOverTLS=không
#MulticastDNS=không
#LLMNR=không
#Cache=no-negative
#CacheFromLocalhost=không
#DNSStubListener=có
#DNSStubListenerExtra=
#ReadEtcHosts=có
#ResolveUnicastSingleLabel=không

# /etc/systemd/resolved.conf.d/dns.conf
DNSSEC=cho phép hạ cấp
DNSOverTLS=cơ hội
paladin avatar
lá cờ id
ResolveD ưu tiên cài đặt DNS từ các giao diện, khi không bị hủy kích hoạt rõ ràng. Còn bạn, hãy thiết lập DNS toàn cầu thông qua `resolved.conf` thay vì sử dụng Trình quản lý mạng.
unilock avatar
lá cờ in
@paladin Cài đặt `DNSSEC` và `DNSOverTLS`, trong khi được đọc bởi `systemd` (theo báo cáo của `systemd-analyze`), dường như không được áp dụng chính xác, như được báo cáo bởi `resolvectl` và `nmcli dev show`. Vì vậy, tôi không tin việc chỉnh sửa cấu hình của `đã giải quyết` sẽ giúp ích ở đây. Bất chấp điều đó, tôi không tin `systemd-resolved` cho phép ngẫu nhiên hóa MAC.
paladin avatar
lá cờ id
Trình phân giải có liên quan gì đến việc ngẫu nhiên hóa MAC?
unilock avatar
lá cờ in
@paladin Tôi muốn bật ngẫu nhiên MAC, như tôi đã nói trong bài viết gốc của mình. Có vẻ như bạn không thể làm điều đó với `systemd-resolved`. Vì vậy, sử dụng nó một mình sẽ không hoạt động.
paladin avatar
lá cờ id
Tôi vừa nhận thấy rằng `wlp0s20f3` của bạn sử dụng LLMNR, có thể do Trình quản lý mạng của bạn được định cấu hình sai. Tôi sẽ lặp lại câu hỏi khác của mình, trình phân giải có liên quan gì đến việc ngẫu nhiên hóa MAC? Tôi đoán, không có gì. PS Tôi sử dụng systemd-networkd để cấu hình mạng.
unilock avatar
lá cờ in
@paladin Cấu hình của Trình quản lý mạng vẫn chưa được xử lý ngoài những sửa đổi mà tôi đã đề cập, mặc dù có thể cấu hình mặc định của Pop!_OS có thể bị lỗi. Đối với câu hỏi của bạn, tôi cho rằng trình phân giải không liên quan gì đến ngẫu nhiên hóa MAC. Tôi không chắc tại sao bạn lại hỏi điều này.
Điểm:0
lá cờ id

Đây là cấu hình được giải quyết bằng hệ thống của tôi cho DNSSEC và cấu hình này hoạt động.

/etc/systemd/resolved.conf

DNS=9.9.9.9#dns9.quad9.net 2620:fe::fe#dns9.quad9.net 2620:fe::9#dns9.quad9.net
Dự phòngDNS=149.112.112.112#rpz-public-resolver1.rrdns.pch.net
Tên miền=home.arpa
DNSSEC=có
DNSOverTLS=có
MulticastDNS=không
LLMNR=không
Bộ nhớ cache = có
DNSStubListener=có
ReadEtcHosts=có
Giải quyếtUnicastSingleLabel=không

điều đặc biệt quan trọng là các tùy chọn sau bị vô hiệu hóa, như vậy:

MulticastDNS=không
LLMNR=không

Bạn cần sử dụng trình giải quyết sơ khai từ systemd-resolved hoặc systemd-socket để điều này hoạt động.

cd /etc/ && ln -sf /run/systemd/resolve/stub-resolv.conf resolv.conf

unilock avatar
lá cờ in
`MulticastDNS` và `LLMNR` mặc định là `no`, ít nhất là trên hệ thống của tôi. Ngoài ra, `/etc/resolv.conf` đã được liên kết tượng trưng với `run/systemd/resolve/stub-resolv.conf`, như đã thấy trong bài viết gốc của tôi.Trong mọi trường hợp, việc sử dụng các giá trị chính xác mà bạn đã cung cấp cho `DNS` và `FallbackDNS` không thay đổi bất kỳ điều gì.
unilock avatar
lá cờ in
OK, có vẻ như `LLMNR` *không* mặc định là `no`; Tôi cho rằng các giá trị nhận xét trong `/etc/systemd/resolved.conf` là giá trị mặc định. Mặc dù tôi không chắc nó được thay đổi thành `yes` ở đâu, xét về tệp conf.
paladin avatar
lá cờ id
@unilock Các giá trị mặc định được biên dịch vào chương trình/thư viện. Bạn sẽ cần đọc mã nguồn để kiểm tra lại. Debian gốc thường mặc định các giá trị LLMNR và MulticastDNS là `có`.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.