Làm cách nào để tìm tất cả tên máy chủ trong DNS được gắn vào một IP?


24

Nếu tôi có nhiều máy chủ được cấu hình trên một máy ( Virtualhosts của a la apache), làm cách nào tôi có thể tra cứu IP và tìm tất cả các tên miền được định cấu hình để tiếp cận nó?

Ví dụ: tôi có một số tên miền web và email được nối với máy chủ của tôi. Làm thế nào tôi có thể tìm thấy tất cả các tên miền trỏ đến nó?

Nó thậm chí có thể?

Tôi có DNS Một mục nhập cho tất cả các tên miền tôi sở hữu, cộng với tôi biết một số tên miền của bạn bè trỏ đến máy chủ của tôi. Những gì tôi muốn thấy là nếu những người tôi không biết cũng đang chỉ vào đó. (Hoặc nếu ai đó đã bổ nhiệm tên miền của họ ở nơi khác và tôi có thể xóa trang web 'cũ' của họ khỏi máy chủ của mình.)

Câu trả lời:


30

Không thực sự, không. Đây là tất cả về sự khác biệt giữa tra cứu DNS thuận và ngược.

Tra cứu về phía trước là tên tiêu chuẩn-> Tra cứu IP. Vì vậy, bạn sẽ phải biết tất cả các tên trước.

Những gì bạn muốn là thực hiện tra cứu IP-> tên, nhưng bằng cách nào đó hãy lấy tất cả các tên bạn đã áp dụng trong cấu hình Apache của bạn và trong DNS dưới dạng bản ghi A (hoặc CNAMES hoặc bất cứ thứ gì).

Những gì bạn có thể sẽ tìm thấy là thực hiện tra cứu ngược (ví dụ: dig @nameserver $ ip -x) sẽ trả lại tên máy chủ được cung cấp cho IP đó bởi những người sở hữu netblock đó, có thể là ISP của bạn. Nó có thể có một cái tên như 45-23-45-231.big-isp.com, điều đó không có nghĩa gì nhiều đối với bạn. Và điều quan trọng là, chỉ có một bản ghi ngược, nhưng có khả năng nhiều bản ghi chuyển tiếp.

Tôi cho rằng nó hiểu rõ câu hỏi - làm thế nào để vùng đảo ngược biết về bất kỳ bản ghi nào trong vùng chuyển tiếp? Trong hầu hết các thiết lập, vùng chuyển tiếp được cung cấp cho khách hàng để thực hiện thay đổi, nhưng vùng đảo ngược được duy trì bởi chủ sở hữu của netblock. Hai hệ thống không cần biết gì về nhau để hoạt động.


2
Âm thanh ngay với tôi.
einstiien

xấu hổ - nó cũng sẽ rất hữu dụng
warren

12

Không thể thực hiện được với chính giao thức DNS, vì thông thường chỉ có một PTRbản ghi cho mỗi địa chỉ IP, mặc dù có thể có nhiều Abản ghi trỏ đến địa chỉ IP đó.

Tuy nhiên, một số công ty (ví dụ: http://www.ip-adress.com/ ) đã quản lý để biên dịch cơ sở dữ liệu chứa những gì bạn đang theo sau bằng cách lưu trữ kết quả của toàn bộ tải tra cứu DNS và sau đó cung cấp truy vấn ngược vào chính họ cơ sở dữ liệu.

Tuy nhiên, những cơ sở dữ liệu đó không thể dứt khoát, họ không thể đảm bảo biết về mọi miền có thể xảy ra để trỏ đến IP đó - họ chỉ có thể ghi lại chi tiết DNS cho tên miền mà họ thực sự đã tìm kiếm.


đó là điều tôi sợ .. chết tiệt: - |
warren

1
Chỉ là một cảnh báo mà tôi chưa bắt gặp một dịch vụ tra cứu như vậy xử lý tất cả các TLD. Trong thực tế, tất cả những người tôi đã cố gắng không thể liệt kê các tên miền .com.au, ngay cả khi được lưu trữ trên cùng một máy chủ với tên miền .com.
John Gardeniers

1
kỳ quặc - không có lý do gì một dịch vụ như thế này thậm chí quan tâm TLD trang web đó đang hoạt động ở đâu. Điều đó nói rằng, như tôi đã đề cập, cơ sở dữ liệu chỉ biết về các trang web mà mọi người hỏi về - tôi đoán không đủ người quan tâm đến tên miền .com.au ;-)
Alnitak

4

Cách duy nhất để làm điều này là có dữ liệu nội dung của tên miền bạn muốn kiểm tra.

Với nội dung này, bạn có thể phát ra một tập lệnh đệ quy để tìm kiếm tên máy chủ liên quan đến IP của bạn (đệ quy vì CNAME cuối cùng để kiểm tra).

Để có được dữ liệu của một số đối tác tên miền, bạn có thể yêu cầu làm phụ và nhận DATA với một axfr đào.


3

Tôi nghĩ rằng bạn đang đến đây từ hướng sai. Ngoài việc a) truy vấn mọi máy chủ DNS tồn tại cho mọi tên miền có thể và sau đó lưu trữ kết quả hoặc b) nhận chuyển vùng từ các máy chủ DNS mà bạn quan tâm, không có cách nào để thực hiện điều này với DNS.

Chà, nếu bạn đang chạy các vhost dựa trên tên Apache, bạn đã có một danh sách các tên miền sẽ đến máy chủ của bạn. Ngoài vhost mặc định, một vhost dựa trên tên sẽ chỉ trả lời cho tên của nó. Vì vậy, nếu tôi trỏ foobar.com vào hộp của mình và không có vhost foobar.com, nó sẽ được phục vụ theo mặc định hoặc không được trả lời (nếu bạn không có máy chủ mặc định).

Apache có một số tính năng ghi nhật ký rất mạnh. Sẽ không thành vấn đề khi xác định định dạng nhật ký tùy chỉnh với các dòng yêu cầu bạn muốn. Ngoài ra, luôn có lĩnh vực giới thiệu.

Thư, mặt khác, là một chút đau đớn. Về điều tốt nhất tôi có thể nghĩ đến là chọn những gì bạn có thể từ nhật ký máy chủ và, nếu bạn thực sự cần biết , hãy thiết lập một gói chụp cho SMTP.


với apache vhosts Tôi chỉ biết những đường dẫn nào tôi đang bàn giao cho các tên miền cụ thể ... không phải tất cả các tên miền được định cấu hình: nếu bạn trỏ mynewdomain.tld đến máy chủ của mình, vì không có mục vhost nào, apache sẽ chỉ trả về webroot mặc định
warren

1
tuy nhiên, việc chọn nhật ký có thể hoạt động - không nghĩ đó là cách thực hiện trên chính máy chủ.
warren

LogFormat %{Host}i hostnamelog, sau đó CustomLog /path/to/log hostnamelogtrong Vhost mặc định của bạn, đảm bảo rằng nó tách biệt với bất kỳ Vhost "thực" nào của bạn. Thỉnh thoảng sort /path/to/log | uniq -c | sort -nđể hiểu thêm về những gì đánh bạn.
BMDan

2

Bạn nên kiểm tra RobTex Không phải là thiết kế web tốt nhất, nhưng rất hữu ích! Bạn có thể tìm ra tất cả DNS liên quan đến IP.

Tất nhiên, như Alnitak đã giải thích,

Không thể làm điều đó với chính giao thức DNS

Điều đó có nghĩa là trang web này chỉ là một cơ sở dữ liệu khổng lồ của hầu hết các máy chủ DNS / IP. Đó là khá hiệu quả nhưng không đầy đủ 100%.


Liên kết dường như bị hỏng hoặc có SSL thực sự xấu
Adam Nofsinger
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.