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 서버)은 Bind 버전 9를 DNS 서비스로 사용하고 있습니다.

[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

네임서버 항목 중 첫 번째 항목만 로컬 도메인 및 네트워크에 대한 쿼리에 응답할 수 있습니다.

두 번째 네임서버는 개인 IP 범위에 대한 역방향 DNS 쿼리에 응답할 수 없는 공용 확인자입니다.

/etc/resolv.conf기본적으로 첫 번째 네임서버 항목을 사용 하고 첫 번째 네임서버가 응답하지 않을 때만 다음 항목을 사용하는 시스템 확인자와 달리,Nmap 사용다음에서 발견된 모든 네임서버 항목/etc/resolv.conf병행하여(모두 동일하다는 가정하에).

귀하의 경우에는 서로 다른 네임서버가 동일하지 않기 때문에 역방향 DNS 쿼리 중 일부만 성공하고 일부 IP 주소는 호스트 이름으로 확인되고(첫 번째 이름 서버가 쿼리된 경우) 나머지는 그렇지 않은 경우(두 번째 이름 서버가 사용된 경우) ).

두 번째 네임서버를 제거하거나 주석 처리하면 nmap -sn 192.168.0.0/24 -vvv및와 동일한 결과를 얻게 됩니다 nmap -sn 192.168.0.0/24 -vvv --system-dns.nmap -sn 192.168.0.0/24 -vvv --dns-servers 192.168.0.6

관련 정보