Материал статьи ориентирован для администраторов сети
ARP таблица предоставляет динамическое сопоставление 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 на комутаторах.