Làm cách nào tôi có thể chặn tên miền phụ với dnsmasq?


7

Tôi sử dụng dnsmasq như một danh sách trắng trên mạng của tôi. Tệp dnsmasq.conf của tôi trông như thế này:

bogus-priv
domain-needed
no-resolv

server=/stackexchange.com/8.8.8.8
#etc...

Tôi muốn có thể chặn một tên miền phụ, ví dụ:

server=/meta.stackexchange.com/0.0.0.0

Tôi cũng đã thử:

address=/meta.stackexchange.com/0.0.0.0

Và đối với cả hai tôi đã thử thay thế 127.0.0.1 cho 0.0.0.0.

Thật không may, điều này dường như không hoạt động. Làm cách nào tôi có thể chặn một tên miền phụ cụ thể trong khi cho phép phần còn lại của tên miền trong tệp cấu hình?

Câu trả lời:


4

Vui lòng không chiếm quyền điều khiển DNS . Điều này cản trở kiến ​​trúc cấp thấp của Internet. Gần như không có ứng dụng đạo đức nào về việc chiếm quyền điều khiển DNS sẽ không được phục vụ tốt hơn bởi một thiết bị hoặc chương trình tường lửa.

Nếu bạn muốn ngăn độ phân giải của một vùng thành một địa chỉ, bạn có thể dễ dàng chỉnh sửa tệp máy chủ của máy khách .

Mặc dù dnsmasqcó khả năng phục vụ loại kết quả DNS 'giả mạo' mà bạn mô tả, máy chủ dnsmasq có thể dễ dàng bị phá hủy bởi người dùng cuối hoặc kẻ tấn công độc hại truy cập vào máy khách. Do đó, việc chiếm quyền điều khiển DNS này gần như không có khả năng cung cấp bất kỳ lợi ích nào cho bảo mật.

Một lần nữa, một thiết bị tường lửa được cấu hình đúng có thể sẽ phục vụ bạn tốt hơn nhiều nếu mục tiêu ngăn chặn các máy khách truy cập các máy chủ từ xa độc hại hoặc không đáng tin cậy. Một giải pháp hợp thời trang là OpenWRT trên Rasperry Pi, như được mô tả trong bài viết này .


+1 để lọc L7 bằng bộ lọc mạng
Marcel

Chỉnh sửa tập tin máy chủ của khách hàng trong trường hợp này là không thể / thực tế. Làm thế nào máy chủ có thể bị phá vỡ bởi người dùng cuối hoặc kẻ tấn công độc hại? Đối với việc sử dụng iptables / netfilter, tôi đã xem xét điều đó trong quá khứ và vấn đề luôn là sử dụng tên miền trong các quy tắc tường lửa - được giải quyết khi bắt đầu và có thể thay đổi. Tôi có một quy tắc iptables để bỏ các truy vấn DNS mặc dù.
Big McLUNDHuge

6
Thật không may là điều này đã nhận được tiền thưởng tự động, mặc dù nó không trả lời câu hỏi.
Big McLargeHuge

5
Mmh đây là quy tắc vàng nếu máy chủ DNS là công khai, trên Internet. Nếu Dave đang quản lý một máy chủ nội bộ, mạng LAN của họ giống như khu vườn của tôi, với chính sách của tôi, lý do của tôi, ưu tiên của tôi. Tôi nghĩ rằng câu hỏi là hợp pháp như là.
Massimo

Câu hỏi chắc chắn là hợp pháp và do đó, vị trí cấu hình dnsmasq nói dối có nhiều khả năng gây phiền toái trừ khi tường lửa đã chặn các truy vấn DNS tới internet. Giả sử tôi có một tường lửa chặn các gói DNS từ bên ngoài mạng cục bộ, trừ khi tường lửa của tôi cũng chặn các giao thức không xác định và lưu lượng được mã hóa, bạn chỉ có thể thoát VPN. Tường lửa động hiệu quả hơn: tra cứu các địa chỉ IP mà tên miền giải quyết và sau đó loại bỏ tất cả lưu lượng truy cập. Làm cho dnsmasq nói dối chắc chắn là thuận lợi nếu bạn định giả mạo ARP và cố gắng chiếm quyền điều khiển.
Thomas Hughes

3

Với dnsmasqcông việc này thực sự:

address=/meta.stackexchange.com/127.0.0.1

Bạn đã khởi động lại dnsmasqsau khi thay đổi?

Để biết chi tiết về việc thiết lập dnsmasq, hãy xem cái này .


Lưu ý : Như những người khác đã chỉ ra, bạn chỉ có thể sử dụng /etc/hosts

127.0.0.1    meta.stackexchange.com

1
Để thực sự chặn trang web, bạn nên bỏ qua phần địa chỉ IP: address=/example.com/Điều này sẽ khiến dnsmasq trả lại NXDOMAIN như thể tên miền sẽ không tồn tại.
Calmarius

1

Bạn có thể chặn một trang web với hồ sơ lưu trữ:

host-record=meta.stackexchange.com,127.0.0.1

hoặc một tên hiệu:

cname=meta.stackexchange.com,blackhole.com

Nhưng thực sự cả hai đều là những cách khá kém hiệu quả để chặn một trang web. Tôi có thể đi đến /etc/hoststập tin của tôi và khắc phục vấn đề.


"Tôi có thể truy cập tệp / etc / hosts của mình và khắc phục sự cố." Bạn phải lấy địa chỉ IP trước mà bạn không thể truy cập mạng này.
Big McLargeHuge

1
không hoàn toàn ... nslookup meta.stackexchange.com 8.8.8.8sẽ bỏ qua máy chủ DNS mặc định của bạn.
Jonathan S. Fisher

Ah, tôi quên đề cập đến. Tôi có một quy tắc iptables để bỏ các truy vấn DNS.
Big McLUNDHuge

Cả hai công việc này. cname bởi vì There are significant limitations on the target; it must be a DNS name which is known to dnsmasq from /etc/hosts (or additional hosts files), from DHCP, from --interface-name or from another --cname. If the target does not satisfy this criteria, the whole cname is ignored. (người đàn ông) Tôi không chắc tại sao host-recordkhông hoạt động.
Big McLargeHuge

host-recordlàm việc cho tôi ... lạ.
Jonathan S. Fisher
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.