Моя цель здесь - заставить Nmap преобразовывать IP-адреса в имена хостов без флага --system-dns или опции --dns-servers.
Когда я запускаю следующую команду nmap без флага --system-dns или параметра --dns-servers, 192.168.0.16 разрешается как hostname 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-сервер) использует версию 9 Bind в качестве службы 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.
Корень вашей проблемы - это ваш /etc/resolv.conf
и как Nmap это разбирает.
# /etc/resolv.conf nameserver 192.168.0.6 nameserver 8.8.8.8
Только первая из записей вашего сервера имен может отвечать на запросы для вашего локального домена и сети.
Второй сервер имен - это общедоступный преобразователь, который не сможет отвечать на обратные DNS-запросы для частных IP-диапазонов.
В отличие от системного преобразователя, который по умолчанию использует первую запись сервера имен в /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