Arpwatch – мониторим ARP таблицу локальной сети

Материал статьи ориентирован для администраторов сети

arpwatchARP таблица предоставляет динамическое сопоставление IP адресов и соответствующих этим ip mac адресa. Изменение одного из компонентов этой таблицы мы и будем мониторить с помощью программы arpwatch. Как следствие этого мониторинга мы сможем фактически в реальном времени (на ваш email сразу же придет письмо) отслеживать

  • появление нового компьютера в сети (new station)
  • смену mac адреса (changed ethernet address)
  • конфликт ip адресов (flip flop)
  • возобновление активности компьютера после 6 месяцев сетевого бездействия (new activity)
  • какие ip 100% свободны и никогда не использовались


Как следствие из всех вышеперечисленных возможностей программы arpwatch мы также имеем “пассивную” защиту сети. Т.к. мы всегда в курсе появления какой-либо компьютерной активности или аномалии 🙂

Установка программы

Программу можно устанавливать на любой компьютер или сервер сети. Не важно что этот компьютер не является шлюзом или еще каким-либо значимым узлом в сети предприятия. Важно только то, чтобы компьютер с установленной arpwatch программой был виден из всех локальных сетей/подсетей предприятия. Если у вас на предприятии сетей много, то имеет смысл настроить VLAN-ы на сетевой карте или установить несколько сетевых, чтобы каждая сетевая смотрела в свою сеть.

Ubuntu

Как обычно устанавливаем из репозиториев


apt-get install arpwatch

и далее правим /etc/arpwatch.conf. Файл конфигурации должен содержать столько строк, сколько вы хотите мониторить сетевых интерфейсов. Пример arpwatch.conf для одной сетевой карты – eth1.


eth1 -t <user>@localhost

Вместо <user> впишите имя пользователя, кому должна отправляться почта от arpwatch. Само-собой на компьютере где стоит arpwatch должна быть настроена почтовая программа типа sendmail или postfix.
Рестартим демона от sudo


#sudo /etc/init.d/arpwatch restart

Можно уже проверять почту насчет новых компьютеров 🙂

Установка из исходников или портов

Качаем последние исходники с сайта программы.
Никаких специфических опций можно не указывать


#./configure
#make
от root или sudo
#make install

Для freebsd


#cd /usr/ports/net-mgmt/arpwatch/
#make install

Настройка конфигурации и запуск arpwatch

На различных системах unix начинается самое интересное :). Файла конфигурации у arpwatch нет и все его интерфейсы или дополнительные функции указываются в стартовом скрипте запуска. А стартовый скрипт запуска на разных сборках и системах отличается путями и настройками. На данный момент какого-либо унифицированного решения для настроек arpwatch и его запуска не существует.
Я приведу свой скрипт запуска, который успешно работает во freebsd и в дистрибутиве slackware.

Сначала создаем текстовый файл интерфейсов с произвольным именем (я назвал его int), например в каталоге /usr/local/etc/
Структура файла, по 1 интерфейсу на каждой строке


eth0
eth1

Затем модифицируем мой скрипт (rc.arpwatch) под свои пути и внутри скрипта вместо <user>@localhost пропишем имя получателя email.
Скрипт показать

При первом запуске этого скрипта “rc.arpwatch start“по пути /var/db/arpwatch создадутся файлы arp.<имя интерфейса>.dat. и буквально сразу же на почту должны начать приходить сообщения о новых компьютерах в сети.
Если email сообщений нет, то проверьте, что скрипт запустился через команду ps. Должно быть что-то наподобие этого.


#ps aux | grep arp
root     13313  0.0  0.0   3696  1988 ?        S    19:15   0:00 \
 /usr/sbin/arpwatch -t mik@localhost -N -i eth0 -f arp.eth0.dat
root     13316  0.0  0.0   3696  1988 ?        S    19:15   0:00  \
/usr/sbin/arpwatch -t mik@localhost -N -i eth1 -f arp.eth1.dat

Через некоторое время рядом с dat файлами появятся аналогичные файлы с расширением dat-. Это временные файлы, куда сначала заносится информация о произошедших изменениях в сети, а потом эта информация уже попадает в dat файлы.

В своем скрипте ключем -N я отключил получение информации о bogon записях. (bogon – адрес отправителя IP-пакета не входит в непосредственно подключённую сеть (directly connected network) для заданного интерфейса). Если вам это требуется, то просто уберите эту опцию из скрипта.

Единственный момент, который не может уловить эта программа, если пользователь одновременно сменит ip и mac на какой-нибудь, которые уже были в сети (например на значения соседнего компьютера). В таком случае надо уже подыскивать программы, которые смотрят за привязкой mac адресов к портам коммутаторов или включать port-security на комутаторах.

Запись опубликована в рубрике Monitoring, Программы с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *