ARP dog
Посмотреть screenshot web интерфейса.
Скачать ARP dog.
Обсудить на форуме.

#cat ReadMe.txt
Для чего я задумал этот проектик. Есть такая утилита - arpwatch - "смотрит" arp пакеты, ведёт свой "лог". Заносит в базу "новые" компьютеры, если такой mac ещё не встречался. Если встречается arp пакет, с mac адресом, но другим ip, то программа "фиксирует" этот факт... В основном используется в домашних сетях, для того чтобы узнать, что "Вася" занимается нехорошим делом, - меняет свой ip. Такое происходит в основном в домашних сетях, где стоят не управляемые свитчи. Иначе таких действий просто не было бы, они бы пресекались железкой на самом порту при определённой настройке. Но, к сожалению, такие железки стоят денег... Поэтому и сидят многие на неуправляемых свитчах... Мне нужна функциональность наподобие. Только список машин с определёнными комбинациями ip/mac фиксирован. Любой компьютер с комбинацией ip/mac, не найденный в базе, считается "чужым", а не новым. Как возможный вариант противодействия этой "новой" машине, есть возможность запуска внешней программы - arpoison (http://arpoison.sourceforge.net/). Этой программой посылается поддельный arp пакет с сообщением, что такой ip адрес уже занят "кем-то". У машины под Windows в этой ситуации возникает конфликт ip адресов, и сетевой интерфейс не поднимается. Если вариант с arpoison не нужен, его можно отключить и просто мониторить проходящие широковещательные arp пакеты. Что тоже полезно! Все данные хранятся в mysql базе (не нравится мне "лопатить" "килограммы" лог файла... Лучше запрос написать :). В принципе можно "прикрутить" любую другую базу, т.к. всё работает через ADODB (http://adodb.sourceforge.net/). С другими СУБД я не тестил. Рад буду если кто возьмется. ------ Минусы ------ Этот проект не поможет вам избавиться от такого явления, как смена ip/mac адреса пользователями сети на не управляемых свитчах! Arpoison можно обойти. Сразу скажу как. Пользователь выдёргивает ethernet кабель. "Поднимает" сетевой интерфейс. Windows говорит, что сетевой кабель не подключен. Пользователь вставляет ethernet кабель обратно. В этом случае Windows не отправляет arp запроса в сеть! При первой попытке "что-то сделать в сети" посылается ложный пакет от arpoison и у винды появляется сообщение о конфликте адресов. Но интерфейс не опускается. С Linux машинами всё "не всё так просто" :), им всё равно до этих фальшивых arp пакетов, хотя я думаю дело где-то в настройках. Но у меня под Linux`ом сразу было именно так. Дистриб - ALT Linux Master 2.4. ---------------- Как это работает ---------------- Запускается tcpdump, который свой вывод передаёт в скрипт. Скрипт "разбирает" приходящие данные. Данные пишутся в базу. По приходящим данным, исходя из таблицы соответствия ip/mac запускается или нет arpoison. Всё довольно просто. Для детального изучения - загляните в php исходники. --------- Установка --------- - Установить tcpdump - Установить ADODB - Установить arpoison (если он нужен) - Изменить config.inc.php на своё усмотрение - Создать базу данных - Создать пользователя БД - Сделать дамп arp_dog_mysql.sql (пока только mysql). Кстати там есть немного данных (оставил специально для "изучения") - На файлах read_tcpdump.cgi.php и run_tcpdump.cgi.php должен быть атрибут "выполнения". Посмотреть где установлен php и если путь другой, то изменить его в этих файлах - Попробовать запустить run_tcpdump.cgi.php... - Удалить каталог db и doc ---- TODO ---- Доработать web интерфейс: - Доделать просмотр лога за период. Нужны фильтрация для типов arp пакетов и действий arp_dog. - Нужна админка таблицы компьютеров. Есть небольшой глюк, при "опускании" интерфейса - tcpdump выходит. Как с этим бороться, я не знаю... Поэтому я и запускаю tcpdump с задержкой всё снова и снова :). Перебрал все возможные опции... Думаю, что только правка исходников поможет. Если всё таки дойти до "этого", то, наверное, лучше делать отдельный проект, - 100% binary и никакого тормозного php... А может взять исходники arpwatch и доработать?! Кто займётся?! --- Идеи?! Дерзайте! Email: djapex [Dogg] mail.ru?subject=arp_dog --- PS: Сильно меня не дёргайте, т.к. я "этим" проектом занимаюсь ТОЛЬКО В СВОБОДНОЕ ВРЕМЯ и если у меня его нет или просто лень, я делать ничего не буду, если только речь не идёт о какой-то материальной стороне ;).
 
Pekлamкa