Назад | Перейти на главную страницу

Несогласованные результаты nmap и arp-scan IP-MAC

Похоже, я получаю переменные и непоследовательные результаты для IP / MAC-адресов с определенной машины с помощью nmap или arp-scan.

У машины 3 интерфейса, и вот что он показывает:

$ uname -a
Linux showstore-81 2.6.35.13 #1 SMP PREEMPT Thu Feb 9 12:20:36 PST 2012 i686 GNU/Linux

$ LC_ALL=C /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1b:21:ac:17:19
          inet addr:192.168.81.54  Bcast:192.168.81.255  Mask:255.255.255.0
          ...

eth1      Link encap:Ethernet  HWaddr 00:25:90:25:d0:4e
          inet addr:192.168.81.129  Bcast:192.168.81.255  Mask:255.255.255.128
          ...

eth2      Link encap:Ethernet  HWaddr 00:25:90:25:d0:4f
          inet addr:169.254.1.1  Bcast:169.254.255.255  Mask:255.255.0.0
          ...

Итак, какие бы инструменты и опции я ни использовал, я ожидал:

Но nmap -n -sP 192.168.81.0/24 (Nmap v. 5.00) сообщает об этом перевернутый:

Host 192.168.81.54 is up (0.000078s latency).
MAC Address: 00:25:90:25:D0:4E (Super Micro Computer)

Host 192.168.81.129 is up (0.000058s latency).
MAC Address: 00:1B:21:AC:17:19 (Intel Corporate)

И nmap -n -sP -PR 192.168.81/24 только отчеты один из MAC-адресов на обоих IP-адресах:

Host 192.168.81.54 is up (0.000081s latency).
MAC Address: 00:1B:21:AC:17:19 (Intel Corporate)

Host 192.168.81.129 is up (0.00011s latency).
MAC Address: 00:1B:21:AC:17:19 (Intel Corporate)

В заключение, arp-scan -l (v. 1.8.1) отчеты оба IP-адреса дважды с обоими MAC-адресами:

192.168.81.54      00:1b:21:ac:17:19    Intel Corporate
192.168.81.54      00:25:90:25:d0:4e    Super Micro Computer, Inc.

192.168.81.129     00:1b:21:ac:17:19    Intel Corporate
192.168.81.129     00:25:90:25:d0:4e    Super Micro Computer, Inc.

Как сделать сканирование, которое даст правильные результаты? (Мне нужны только IP и MAC. Без сканирования портов.)

Ну, во-первых, вы используете несовместимые / перекрывающиеся подсети. 192.168.81.129/25 является частью 192.168.81.54/24. Итак, сначала выполните ifconfig eth0 netmask 255.255.255.128. Далее, поскольку я могу только представить, что eth0 подключен к той же сети, что и eth1, вы захотите ограничить, насколько быстро ваш компьютер будет реагировать на ARP.

Вам нужно установить следующие записи sysctl вручную или в /etc/sysctl.conf:

net.ipv4.conf.all.rp_filter=1 net.ipv4.conf.all.arp_filter=1 net.ipv4.conf.all.arp_announce=1 net.ipv4.conf.all.arp_ignore=2 net.ipv4.conf.all.shared_media=0

Обновление, чтобы включить дополнительную информацию. Обычно Linux отвечает на запрос ARP для IP-адреса, назначенного компьютеру, с MAC-адресом сетевой карты, на которой он получил запрос, независимо от того, был ли запрошенный IP настроен на отвечающем сетевом адаптере или нет. Кроме того, Linux по умолчанию принимает IP-пакет на любой сетевой карте, предназначенной для IP-адреса, настроенного локально на компьютере. Так,

Приведенные выше параметры sysctl ограничивают такое поведение, так что Linux будет отвечать на запрос ARP для IP только в том случае, если он получен на сетевом адаптере, которому назначен IP, и если запрос поступает с IP-адреса, доступного через этот сетевой адаптер. Перестройки задокументированы в файле ip-sysctl.txt в исходном коде ядра.

То, что вы видите, является предполагаемым поведением, и то, что я предлагаю, меняет вещи, чтобы действовать в большей степени по вашему желанию. Удачи.