nmap が一部の IP をホスト名に解決できない

nmap が一部の IP をホスト名に解決できない

ここでの私の目的は、--system-dns フラグや --dns-servers オプションを使用せずに、nmap で IP をホスト名に解決できるようにすることです。

--system-dns フラグや --dns-servers オプションなしで次の nmap コマンドを実行すると、192.168.0.16 はホスト名 server1.example.com に解決されます。192.168.0.17 はホスト名に解決されません。これは、https://nmap.org/book/host-discovery-dns.html「Nmap はカスタム スタブリゾルバを使用します」とは、nmap には独自の DNS リゾルバがあり、ローカル DNS サーバーはないことを意味します。興味深いですね。

[root@client1]# nmap -sn 192.168.0.0/24 -vvv

Initiating Parallel DNS resolution of 256 hosts. at 11:22
Completed Parallel DNS resolution of 256 hosts. at 11:22, 0.02s elapsed
DNS resolution of 18 IPs took 0.02s. Mode: Async [#: 2, OK: 5, NX: 13, DR: 0, SF: 0, TR: 18, CN: 0]

Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00063s latency).
Nmap scan report for 192.168.0.17
Host is up (0.00059s latency).

この問題はフラグが使用されている場合には発生しません--system-dns

[root@client1]# nmap -sn 192.168.0.0/24 --system-dns

Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00029s latency).
Nmap scan report for server2.example.com (192.168.0.17)
Host is up (0.00026s latency).

--dns-serversこの問題は、プライマリ DNS サーバー (192.168.0.6) を使用するように宣言するオプションが使用されている場合には発生しません。

[root@client1]# nmap -sn 192.168.0.0/24 --dns-servers 192.168.0.6

Nmap scan report for server1.example.com (192.168.0.16)
Host is up (0.00039s latency).
Nmap scan report for server2.example.com (192.168.0.17)
Host is up (0.00036s latency).

nslookup は、両方の IP が適切なホスト名に解決できることを示しています。

[root@client1]#  nslookup 192.168.0.16
16.0.168.192.in-addr.arpa       name = server1.example.com.

[root@client1]# nslookup 192.168.0.17
17.0.168.192.in-addr.arpa       name = server2.example.com.

オペレーティング システムとして CentOs 7 を使用しています。/etc/resolv.confには次の内容が含まれており、192.168.0.6 がプライマリ DNS サーバーであることを意味します。

[root@client1]# cat /etc/resolv.conf

nameserver 192.168.0.6
nameserver 8.8.8.8

192.168.0.6 (プライマリ DNS サーバー) は、DNS サービスとして Bind バージョン 9 を使用しています。

[root@dns1]# named -v
BIND 9.9.4-RedHat-9.9.4-51.el7 (Extended Support Version)

以下は の関連スニペットです/var/named/forward.example.com

[root@dns1]# cat /var/named/forward.example.com

$ORIGIN example.com.
$TTL 1D
@       IN      SOA     ns1.example.com. hostmaster.example.com. (
                                        2016032200 ; serial
                                        1D         ; refresh
                                        1H         ; retry
                                        1W         ; expire
                                        3H         ; minimum
)

;name used for the nameserver
        IN      NS      ns1.example.com.

;ip address of the nameserver
ns1     IN      A       192.168.0.6

;hostname to ip address resolutions
server1         IN      A       192.168.0.16
server2         IN      A       192.168.0.17

以下は の抜粋です/var/named/reverse.example.com

[root@client1]# cat /var/named/reverse.example.com

$TTL 1D
@       IN      SOA     ns1.example.com. root.example.com. (
                                        0 ; serial
                                        1D ; refresh
                                        1H ; retry
                                        1W ; expire
                                        3H ; minimum
)

0.168.192.in-addr.arpa. IN      NS      ns1.example.com.

@       IN      NS      ns1.example.com.
ns1     IN      A       192.168.0.6
16      IN      PTR     server1.example.com.
17      IN      PTR     server2.example.com.

答え1

問題の根本は、あなた/etc/resolv.confと nmap がそれを解析する方法にあります。

    # /etc/resolv.conf

    nameserver 192.168.0.6
    nameserver 8.8.8.8

ネームサーバー エントリの最初のものだけが、ローカル ドメインとネットワークのクエリに応答する資格があります。

2 番目のネームサーバーはパブリック リゾルバーであり、プライベート IP 範囲の逆 DNS クエリには応答できません。

システムリゾルバとは異なり、デフォルトでは最初のネームサーバエントリを使用し/etc/resolv.conf、最初のネームサーバが応答しない場合にのみ次のネームサーバエントリを使用します。 Nmapは見つかったすべてのネームサーバーエントリ/etc/resolv.conf並行して(それらはすべて同等であるという暗黙の仮定の下で)。

あなたのケースでは、異なるネームサーバーが同等ではないため、逆 DNS クエリの一部のみが成功し、一部の IP アドレスがホスト名に解決され (最初のネームサーバーがクエリされた場合)、他の IP アドレスは解決されません (2 番目のネームサーバーが使用されたとき)。

2番目のネームサーバーを削除またはコメントアウトすると、nmap -sn 192.168.0.0/24 -vvv同じ結果が得られますnmap -sn 192.168.0.0/24 -vvv --system-dnsnmap -sn 192.168.0.0/24 -vvv --dns-servers 192.168.0.6

関連情報