Утилита arpwatch во FreeBSD
Arpwatch – это утилита, предназначенная для мониторинга сети на соответствие IP и MAC-адресов, и при обнаружении аномалий, сообщающая об этом в syslog. Довольно полезная штука, помогающая лично мне отследить, какие устройства подсоединились к сети, возникает ли конфликт ip-адресов, смену ip устройствами и т.д. Используется как один из инструментов для борьбы с ARP-spoofing’ом. Причем утилита шлет данные события на почту root’а, что очень удобно. |
Имя интерфейса, на котором будет выполняется прослушивание (обычно – это внутренняя сеть), задаётся в качестве аргумента командной строки при старте arpwatch. Он указывается там, где в операционной системе принято обозначать ключи для запускаемых демонов. Во FreeBSD — это /etc/rc.conf
.
Но момент написания статьи версия утилиты была: arpwatch-2.1.a15
:
# pkg_info | grep arpwatch arpwatch-2.1.a15_7 Monitor arp & rarp requests
Установка очень проста и не должна вызвать никаких проблем:
# cd /usr/ports/net-mgmt/arpwatch # make install clean
После чего не забудьте внести изменения в ваш /etc/rc.conf
:
# echo 'arpwatch_enable="YES"' >> /etc/rc.conf && echo -n 'arpwatch_interfaces="em0"' >> /etc/rc.conf
Где em0, в моём случае, сетевой интерфейс для внутренней сети, где необходимо вести мониторинг.
В конце установки, утилита предлагает выполнить некоторые действия, призванные обновить базу данных соответствия MAC-адресов вендорам (производителям) сетевого оборудования. Список этих действий вы можете прочитать в файле (не забудьте сделать поправку на актуальную версию arpwatch):
# less /var/db/pkg/arpwatch-2.1.a15_7/+DISPLAY
Вы можете выполнить эту последовательность действий таким образом:
# cd /usr/local/arpwatch # mv ./ethercodes.dat ./ethercodes.dat.orig # fetch http://standards.ieee.org/regauth/oui/oui.txt oui.txt 100% of 3081 kB 424 kBps # ./massagevendor oui.txt > ./ethercodes.dat # rm ./oui.txt
Но, как я выяснил на своем опыте, в итоге вы получите пустую базу ethercodes.dat, видимо в списке команд massagevendor, выполняющих обработку скачиваемый файл oui.txt, вкралась какая-то ошибка…
# ls -Al total 466 -rw-r--r-- 1 root operator 0 15 ноя 09:41 arp.dat -rw-r--r-- 1 root operator 82051 24 дек 11:02 arp.em0.dat -rw-r--r-- 1 root operator 82051 24 дек 10:47 arp.em0.dat- -r-xr-xr-x 1 root wheel 655 15 ноя 09:41 arp2ethers -r--r--r-- 1 root wheel 315 15 ноя 09:41 d.awk -r--r--r-- 1 root wheel 333 15 ноя 09:41 duplicates.awk -r--r--r-- 1 root wheel 219 15 ноя 09:41 e.awk -rw-r--r-- 1 root operator 0 22 дек 11:05 ethercodes.dat -r--r--r-- 1 root wheel 269902 20 дек 15:53 ethercodes.dat.orig -r--r--r-- 1 root wheel 351 15 ноя 09:41 euppertolower.awk -r-xr-xr-x 1 root wheel 671 15 ноя 09:41 massagevendor -r--r--r-- 1 root wheel 99 15 ноя 09:41 p.awk
Так что мне пришлось вернуть файл ethercodes.dat.orig обратно…
Сами сообщения от имени arpwatch выглядят следующим образом:
Тело письма:
hostname: home-pc-an.domain.ru ip address: 192.168.100.80 ethernet address: c:ee:e6:b6:35:f1 ethernet vendor: <unknown> old ethernet address: d0:ae:ec:be:6f:3e old ethernet vendor: <unknown> timestamp: Tuesday, December 17, 2013 16:16:18 +0400 previous timestamp: Thursday, November 14, 2013 17:50:27 +0400 delta: 32 days
Где с заголовке могут указываться следующие события:
- new activity – этот Ethernet/IP был использован впервые;
- new station – этот Ethernet/IP был использована впервые;
- flip flop – замена адреса с одного на другой (оба были в списке);
- changed ethernet address – замена на новый MAC адрес Ethernet.
Возможно приведенная информация окажется кому-то полезной.