Здравствуйте!Вводит вот в ступор такая проблема: есть сетка на обычных свитчах за 20 баксов и есть сильное подозрение на некоего человека, что тот повинен в смене и IP-адреса, и MAC-адреса. Поскольку умных свитчей в арсенале не нашлось, решено было сделать вот что:
- Взять машинку с двумя сетевухами
- Поставить на нее FreeBSD
- Сконфигурировать ее мостом. Прописать IP-адрес на одну сетевуху для управления через SSH.
- Поставить прямо перед свитчом того подозрительного человека - так, чтобы шнурок из его компьютера входил в одну сетевуху, а выходил из другой и шел в свитч.По задумке, на первой сетевухе (той, что смотрит только на клиента) может быть всегда только один мак. Как только на той же сетевухе ловится входящий ARP-ответ с иным IP/MAC адресом, мы имеем 100%-е доказательство вины человека.
Так вот, я не нашел ни одного снифера (ну или по крайней мере не понял man и не смог настроить), чтобы можно было задать простое правило - "ловить все _входящие_ арп-ответы только на этой сетевухе". К тому же сниферы отказываются работать на карточке без IP-адреса.
Было предложение смотреть вывод arp -an и раз в минуту по крону сбрасиывать его в лог - по идее листинг команды содержит указание, на каком интерфейсе был замечен мак. Однако затея с треском проваливается, т.к. все маки видятся исключительно на сетевухе, которой приписан IP-шник. Вне зависимости даже от того, воткнут ли в нее сетевой шнурок вообще.
В общем, запутался окончательно. Может быть, ищу не там.
Подскажите, гуру!
>Здравствуйте!
>
>Вводит вот в ступор такая проблема: есть сетка на обычных свитчах за
>20 баксов и есть сильное подозрение на некоего человека, что тот
>повинен в смене и IP-адреса, и MAC-адреса. Поскольку умных свитчей в
>арсенале не нашлось, решено было сделать вот что:
>
>- Взять машинку с двумя сетевухами
>- Поставить на нее FreeBSD
>- Сконфигурировать ее мостом. Прописать IP-адрес на одну сетевуху для управления через
>SSH.
>- Поставить прямо перед свитчом того подозрительного человека - так, чтобы шнурок
>из его компьютера входил в одну сетевуху, а выходил из другой
>и шел в свитч.
>
>По задумке, на первой сетевухе (той, что смотрит только на клиента) может
>быть всегда только один мак. Как только на той же сетевухе
>ловится входящий ARP-ответ с иным IP/MAC адресом, мы имеем 100%-е доказательство
>вины человека.
>
>Так вот, я не нашел ни одного снифера (ну или по крайней
>мере не понял man и не смог настроить), чтобы можно было
>задать простое правило - "ловить все _входящие_ арп-ответы только на этой
>сетевухе". К тому же сниферы отказываются работать на карточке без IP-адреса.
>
>
>Было предложение смотреть вывод arp -an и раз в минуту по крону
>сбрасиывать его в лог - по идее листинг команды содержит указание,
>на каком интерфейсе был замечен мак. Однако затея с треском проваливается,
>т.к. все маки видятся исключительно на сетевухе, которой приписан IP-шник. Вне
>зависимости даже от того, воткнут ли в нее сетевой шнурок вообще.
>
>
>В общем, запутался окончательно. Может быть, ищу не там.
>Подскажите, гуру!Я незнаю как в BSD но в linux был да наверное и есть пакет arpwatch. http://www.securitylab.ru/tools/?ID=28910
В портах например
http://ftp.tomsknet.ru/unix/FreeBSD/ports/net/arpwatch/
>В портах например
>http://ftp.tomsknet.ru/unix/FreeBSD/ports/net/arpwatch/
Про arpwatch я знаю. Только, если я не ошибаюсь, он будет ловить арп-ответы от всех хостов в сегменте - независимо от того, на какую сетевуху его повесить. Что проблемы в общем-то не решает (
Извините, если скажу фигню, городить такую схему для проверки своего варианта лениво. Может поможет банальноеnet.link.ether.ipfw=1 и там уже правила count такое-то in via ifaceX. И ipacctd (/usr/ports/net-mgmt/ipacctd), имхо, таким же макаром (divert ip from any to any in via ifaceX).
ifaceX - сетевуха со стороны редиски.
p.s. в этих count проверять MAC, раз-ся!
>p.s. в этих count проверять MAC, раз-ся!
Не пойму, откуда там МАС-и вытаскивать :)
Можешь чуточку поподробней описать схему?
Жалко что гейт почта->форум всё ещё в ТоДо..Wednesday, December 8, 2004, 7:35:33 PM, Вы писали:
i> В общем, запутался окончательно. Может быть, ищу не там.
i> Подскажите, гуру!
Если вам необходимо самому себе доказать факт нарушений, можно сделать
так:
# ipfw add 1 allow ip from "IP нарушите" to any mac any "MAC \
нарушителя" in recv "интерфейс со стороны нарушителя"
/* так мы разрешим всем пакетам с его МАС-ом проходить, чтобы не
обращать на них внимания */
# ipfw add 2 allow log ip from any to any mac any any in recv \
"интерфейс со стороны нарушителя"
/* так мы будем записывать в лог факт получения с его стороны пакетов
не удовлетворяющих первому правилу*/
Предварительно надо ещё сделать:
# sysctl net.link.ether.ipfw=1
# sysctl net.inet.ip.fw.verbose=1
# sysctl net.inet.ip.fw.verbose_limit=100
В принципе, можно написать скрипт который будет парсить вывод
tail -f /var/log/security и появлении там соответсвующих записей
запустит tcpdump -i "интерфейс со стороны нарушителя" и сохранить в
файлик его трафик..
>Жалко что гейт почта->форум всё ещё в ТоДо..
>
>Wednesday, December 8, 2004, 7:35:33 PM, Вы писали:
>i> В общем, запутался окончательно. Может быть, ищу не там.
>i> Подскажите, гуру!
>Если вам необходимо самому себе доказать факт нарушений, можно сделать
>так:
># ipfw add 1 allow ip from "IP нарушите" to any mac
>any "MAC \
>нарушителя" in recv "интерфейс со стороны нарушителя"
>/* так мы разрешим всем пакетам с его МАС-ом проходить, чтобы не
>
>обращать на них внимания */
># ipfw add 2 allow log ip from any to any mac
>any any in recv \
>"интерфейс со стороны нарушителя"
>/* так мы будем записывать в лог факт получения с его стороны
>пакетов
>не удовлетворяющих первому правилу*/
>Предварительно надо ещё сделать:
># sysctl net.link.ether.ipfw=1
># sysctl net.inet.ip.fw.verbose=1
># sysctl net.inet.ip.fw.verbose_limit=100
>В принципе, можно написать скрипт который будет парсить вывод
>tail -f /var/log/security и появлении там соответсвующих записей
>запустит tcpdump -i "интерфейс со стороны нарушителя" и сохранить в
>файлик его трафик..Сделал по этой схеме. В /var/log/security валятся только сообщения вроде Dec 11 17:02:16 spoof kernel: ipfw: 2 Accept MAC in via rl1
ну, плюс, ко всему - сообщения на весь остальной трафик.. так что счетчик забьется почти мгновенно.
>Сделал по этой схеме. В /var/log/security валятся только сообщения вроде Dec 11
>17:02:16 spoof kernel: ipfw: 2 Accept MAC in via rl1
>ну, плюс, ко всему - сообщения на весь остальной трафик.. так что
>счетчик забьется почти мгновенно.Похоже что вы не поняли меня. Нужно сделать так:
сначала разместить разрешающие правила файрвола, которые в нормальной ситуации (если нет подмены MAC-адреса) не должны пропускать пакет на проверку по следующим правилам, например allow правила. После этих правил нужно разместить правила, сответствие пакетов которым будет записываться в лог. Скрипт, который парсит лог при появлении соответсвующих записей будет запускать tcpdump. Можно например, запустить на принятие определённого кол-ва пакетов и сохранить их в файл (чтобы было чем помохать перед носом нарушителя :) , хотя по делу - это не доказательство, нужны свидетели).
Привет.
А зачем вообще столько всего городить. Может быть я неправильно
что-то понимаю, но мне кажется можно было бы между спуфером и ближайшим свитчом поставить хаб, а к хабу можно и свой комп подключить. В результате все, что он передает в сетку будет приходить и на твою сетевую карточку. Далее ставишь себе ethereal и указываешь ему каптурить только arp.
И в твоей системе ethereal сработает. Устанавливаешь фильтр (только arp) перед стартом и указываешь с какого интерфейса.
ну, видимо, на крыше где-то комп поставили, рядом с клиентом. предлагаете переехать на чердак и неделю пялиться в монитор на ethereal? :o)
Ну и лажанулся я вчера. А именно: конечно хаб ставить нельзя, на него ломанутся все арп пакеты и со свитча. Познай же что такое стыд. Отвечать надо не позже 4 вечера (мне по крайней мере), бо позже голова дурная.
>Так вот, я не нашел ни одного снифера (ну или по крайней
>мере не понял man и не смог настроить), чтобы можно было
>задать простое правило - "ловить все _входящие_ арп-ответы только на этой
>сетевухе". К тому же сниферы отказываются работать на карточке без IP-адреса.Эээ. А "tcpdump -ni <interface> arp >> logfile" не устраивает?
>>Так вот, я не нашел ни одного снифера (ну или по крайней
>>мере не понял man и не смог настроить), чтобы можно было
>>задать простое правило - "ловить все _входящие_ арп-ответы только на этой
>>сетевухе". К тому же сниферы отказываются работать на карточке без IP-адреса.
>
>Эээ. А "tcpdump -ni <interface> arp >> logfile" не устраивает?
Не устраивает. Причина в следующем: через указанный интерфейс будут идти арп-ответы как от той тачки, которая к нему подключена, так и от всех остальных. И установить, с какой именно стороны пришел пакет по логам невозможно. А задать направление пакета и тип (только входящие на данный интерфейс арп-ответы, которые не являются пакетами, прошедшими через бридж) нельзя (точнее, я не знаю, как).
>>Так вот, я не нашел ни одного снифера (ну или по крайней
>>мере не понял man и не смог настроить), чтобы можно было
>>задать простое правило - "ловить все _входящие_ арп-ответы только на этой
>>сетевухе". К тому же сниферы отказываются работать на карточке без IP-адреса.
>
>Эээ. А "tcpdump -ni <interface> arp >> logfile" не устраивает?
В варианте tcpdump -vvveni rl1 arp
можно сделать косвенный вывод о том, какой IP/MAC находится за мостом:В условиях (!) _незафлуженного_свитча_ (!) через мост будут проходить только широковещательные пакеты, пакеты, сгенеренные или адресованные самому мосту и пакеты от/для злоумышленника. Следовательно по попадающим в лог арп-ответам от других IP-адресов можно сделать вывод, что именно запросивший ответа адрес и сидит на сетевухе...
но вариант во-первых с оговоркой, во-вторых явно кривоватый :)
pppoe
>pppoe
ты был невероятно полезен и информативен :)
посылать через каждые n минут один пинг на нужный ИП НО через интерфейс, который "торчит" в сторону "подозреваемого", если ответ придет - зафиксировать мак, вывод - доказательства налицо!
В линуксе выглядит так
ping -I <int> ip
>посылать через каждые n минут один пинг на нужный ИП НО через
>интерфейс, который "торчит" в сторону "подозреваемого", если ответ придет - зафиксировать
>мак, вывод - доказательства налицо!
>В линуксе выглядит так
>ping -I <int> ip
Дык неизвестно, чей именно IP и MAC цепляет подозреваемый человек. Простор выбора - целый сегмент, адресов из 70-ти. Плюс, ничего не мешает ему отбить ICMP файрволом.
Можно, конечно, воспользоваться arping - той пофигу. Но вешать в крон пинговалку сразу 70-ти адресов через интерфейс - не самое красивое решение. К тому же не факт, что рабочее...Блин, знать нету нормального решения под фрей..
Как насчет виндовз?
>>посылать через каждые n минут один пинг на нужный ИП НО через
>>интерфейс, который "торчит" в сторону "подозреваемого", если ответ придет - зафиксировать
>>мак, вывод - доказательства налицо!
>>В линуксе выглядит так
>>ping -I <int> ip
>
>
>Дык неизвестно, чей именно IP и MAC цепляет подозреваемый человек. Простор выбора
>- целый сегмент, адресов из 70-ти. Плюс, ничего не мешает ему
>отбить ICMP файрволом.
>Можно, конечно, воспользоваться arping - той пофигу. Но вешать в крон пинговалку
>сразу 70-ти адресов через интерфейс - не самое красивое решение. К
>тому же не факт, что рабочее...
>
>Блин, знать нету нормального решения под фрей..
>Как насчет виндовз?У меня на linux команда arp -a показывает и интерфейс на котором появился MAC, и есть там
arp -i <int>
показывает MAC-и на этом интерфейсе....кстати во фре - тоже показывает...
>У меня на linux команда arp -a показывает и интерфейс на котором
>появился MAC, и есть там
>arp -i <int>
>показывает MAC-и на этом интерфейсе....
>
>кстати во фре - тоже показывает...
Все там есть. И все работает. Только не в режиме моста :(
Так он показывает все маки на одном интерфейсе... Это я проверил почти сразу.
вы люди странные явно тут :) с энтузиазмом-хотите на корове спорткар обогнать(я про 20-баксовые свичи)когдато я ловил таких любителей просто натравив на него пинг и шел дергать провода из портов,2-й сисадмин по телефону говорил пропал пинг или нет. :)
>про 20-баксовые свичи)когдато я ловил таких любителей просто натравив на него
>пинг и шел дергать провода из портов,2-й сисадмин по телефону говорил
>пропал пинг или нет. :)Аналогично :)
Центральные свичи - управляемые, через WEB интерфейс смотришь с какого порта валит ARP-флуд, один идёт и выдёргивает провода из свича, который к нему подключен, второй смотрит в сниффер и поддверждает..Так же помогает установка статических MAC-адресов, хотя бы на сервере и на своей машине для конкретных адресов.