ArpWatch — демон, который отслеживает соответствие между IP и MAC-адресами, и при обнаружении аномалий, сообщающий об этом в Syslog.
Для мониторинга связок mac-ip используем софтинку под названием arpwatch
Установка:
cd /usr/ports/net-mgmt/arpwatch && make install clean
После установки видим:
You can update the ethercodes.dat file executing the following steps cd /usr/local/arpwatch fetch http://standards.ieee.org/regauth/oui/oui.txt ./massagevendor oui.txt > ethercodes.dat rm oui.txt
Правим rc.conf
arpwatch_enable="YES" # включаем arpwatch arpwatch_dir="/var/db/arpwatch" # в этой директории храним бд arpwatch arpwatch_interfaces="em0" # c какими интерфейсами работаем #arpwatch_interfaces="" #слушать все интерфейсы #arpwatch_em0_options="-m [email protected]" #отправлять лог себе на мыло
Настроим ведение логов с помощью syslog.conf
# ee /etc/syslog.conf
Добавляем:
!arpwatch *.notice /var/log/arpwatch.log
Создать лог-файл:
# touch /var/log/arpwatch.log
и перезагрузить syslogd:
# killall -HUP syslogd
Настроить ротацию лог-файла:
# ee /etc/newsyslog.conf
Добавляем:
/var/log/arpwatch.log 600 7 * $W6D0 JC
Создаём рабочую директорию для arpwatch:
# mkdir /var/db/arpwatch
Запускаем:
# /usr/local/etc/rc.d/arpwatch start
Таблица соответствия адресов находится в файле /usr/local/arpwatch/arp.< интерфейс>.dat и выглядит как обычный текстовый файл, с MAC-адресом, IP-адресом, временем попадения в таблицу, и именем интерфейса, через который пришёл исходный запрос.
arpwatch формирует события следующих типов:
Важные:
new activity - Это Ethernet/IP был использован впервые за 6 месяцев. new station - Это Ethernet/IP был использована впервые flip flop - Замена адреса с одного на другой (оба были в списке). changed ethernet address - Замена на новый MAC адрес Ethernet.
Дополнительные:
ethernet broadcast - MAC-адрес хоста является широковещательным. ip broadcast - IP-адрес хоста является широковещательным. bogon - Адрес отправителя IP-пакета не входит в непосредственно подключённую сеть (directly connected network) для заданного интерфейса. ethernet broadcast - MAC-адрес отправителя состоит из одних нулей или одних единиц. ethernet mismatch - MAC-адрес отправителя пакета не соответствует MAC-адресу, указанному внутри ARP-запроса. reused old ethernet address - Ethernet-адрес изменился с известного адреса на адрес, который был замечен ранее, но не только что. (Похоже на flip flop, но чуть-чуть другое.) suppressed DECnet flip flop - Сообщение "flip flop" подавлено в связи с тем, что как минимум один из двух адресов является адресом DECnet.
если есть необходимость вести журнал всех событий (не только важных), то меняем (*.notice) на (*.*) в syslog.conf
Просмотреть результат можно командой:
cat /var/log/arpwatch.log