Điểm:0

Làm cách nào để đưa vào danh sách đen độ phân giải dns riêng bên trong docker?

lá cờ mm

Vấn đề

Tôi muốn chặn các độ phân giải DNS trả về địa chỉ IP phạm vi riêng tư. Những gì tôi đã tìm thấy cho đến nay là để làm điều đó, bạn cần thiết lập máy chủ DNS bộ nhớ cache/đệ quy. Tuy nhiên, vì tôi muốn sử dụng nó bên trong docker, đó là nơi tôi gặp khó khăn.

Cách đơn giản nhất tôi tìm thấy là sử dụng dnsmasq (như đã giải thích trong phần khác này câu trả lời). Mặt khác, chỉ cần chạy một quy trình duy nhất để tìm hiểu về giám sát giải quyết vấn đề đó. Tuy nhiên, đã tạo một hình ảnh docker mẫu và khi tôi sử dụng máy chủ dns localhost (dnsmasq) bằng cách thêm cờ --dns 127.0.0.1 hoặc thay thế /etc/resolv.conf từ bên trong container tôi gặp lỗi ** máy chủ không thể tìm thấy google.com: TỪ CHỐI , điều này chỉ có ý nghĩa sau cảnh báo tôi nhận được tại thời điểm chạy vùng chứa:

CẢNH BÁO: Cài đặt DNS máy chủ cục bộ (--dns=127.0.0.1) có thể không thành công trong vùng chứa.

Môi trường

Hình ảnh docker mẫu:

TỪ Ubuntu: mới nhất

CHẠY bản cập nhật apt &&\
    nâng cấp apt -y

CHẠY cài đặt apt -y người giám sát \
    dnsmasq \
    dnsutils \
    iputils-ping \
    nano

CHẠY echo "stop-dns-rebind"> /etc/dnsmasq.d/stop-rebinding

SAO CHÉP supervisor.conf /etc/supervisor.conf

ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisor.conf"]

người giám sát.conf:

[giám sát]
gật đầu = đúng
logfile=/dev/stdout
logfile_maxbytes=0

[chương trình:dnsmasq]
lệnh = dnsmasq --no-daemon
thiết bị xuất chuẩn_logfile=/dev/thiết bị xuất chuẩn
thiết bị xuất chuẩn_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

Xây dựng:

xây dựng docker sudo. -t samplednsmasq

Chạy:

Sudo docker run -it --dns 127.0.0.1 --rm samplednsmasq:latest

Nó có khả thi không?

Tôi muốn biết liệu có cách nào để làm cho nó hoạt động không (không sử dụng nhiều vùng chứa như docker-compose) và dnsmasq, tôi cũng sẵn sàng cho các lựa chọn thay thế khác không liên quan đến máy chủ bộ nhớ đệm dns.

Dung dịch: đã thay đổi giám sát viên.conf đến:

[giám sát]
gật đầu = đúng
logfile=/dev/stdout
logfile_maxbytes=0

[chương trình:dnsmasq]
lệnh = dnsmasq --no-daemon --interface=lo --stop-dns-rebind
thiết bị xuất chuẩn_logfile=/dev/thiết bị xuất chuẩn
thiết bị xuất chuẩn_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

Cũng cập nhật Dockerfile

TỪ Ubuntu: mới nhất

CHẠY bản cập nhật apt &&\
    nâng cấp apt -y

CHẠY cài đặt apt -y người giám sát \
    dnsmasq \
    dnsutils \
    iputils-ping \
    nano \
    công cụ mạng

CHẠY echo "listen-address=127.0.0.1\nbind-interfaces\nstop-dns-rebind" > /etc/dnsmasq.d/stop-rebinding &&\
    tiếng vang "\nserver=8.8.8.8\nserver=8.8.4.4\nno-resolv" >> /etc/dnsmasq.conf

SAO CHÉP supervisor.conf /etc/supervisor.conf

ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisor.conf"]

Điểm:1
lá cờ jp

máy chủ không thể tìm thấy google.com: TỪ CHỐI có nghĩa là không có máy chủ DNS nào đang nghe trên địa chỉ đã chỉ định. theo mặc định dnsmasq sẽ không nghe tiếp 127.0.0.1 Địa chỉ.

itasahobby avatar
lá cờ mm
Đó có thể là một lý do, tuy nhiên khi tôi sử dụng `netstat`, nó cho thấy rằng nó thực sự đang lắng nghe (đã chỉnh sửa bài đăng để bao gồm thông tin đó)
lá cờ jp
`0.0.0.0` không giống với `127.0.0.1`.
itasahobby avatar
lá cờ mm
Ôi trời, nghĩ rằng sử dụng 0/0 cũng sẽ bao gồm cả máy chủ cục bộ, tôi sẽ thử buộc máy chủ cục bộ cảm ơn cho đến nay

Đă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.