Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« : 31 Января 2011, 18:45:15 » |
|
Всем доброго времени суток, возникла нештатная ситуация и необходимо вести логи по дням какой из пользователей с серым IP каким белым адресом натился и в какое время, есть ли такая возможность и может кто знает как такое реализовать?
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #1 : 31 Января 2011, 18:50:38 » |
|
У меня нат на микротике, создал перед каждым ната (pcc) - правилом еще одно, которое добавляет серый ип юзера в адрес лист. Адрес лист обновляется раз в два дня. Сорри что не про пф но может кому пригодится.
|
|
« Последнее редактирование: 31 Января 2011, 18:52:35 от marcus7 »
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #2 : 31 Января 2011, 19:10:47 » |
|
Ну у меня микротика нет. Нужно что-то типа таблички за день кто из серых каким белым натился. Думал делать выборку из pfctl -ss но представил размер и ужаснулся. Нат идет по правилам типа nat pass on $ext_if inet from 10.0.0.0/8 to ! <no_nat> -> 194.28.38.128/25 source-hash Может как-то можно от хеша оттолкнуться типа создавать директорию за дату в которой будет куча текстовиков с именами белых ипов, в которых будет список серых адресов которые натились этим белым и время. Ну или какой-то вменяемый вариант для вычисления нехороших людей которые гадят из-за ната.
|
|
|
Записан
|
|
|
|
VitalVas
NoDeny
Спец
Карма: 60
Offline
Сообщений: 991
|
|
« Ответ #3 : 31 Января 2011, 19:40:54 » |
|
а не проще ли с колектора снимать инфу?
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #4 : 31 Января 2011, 19:47:07 » |
|
а не проще ли с колектора снимать инфу?
Для этого надо включать подробное логирование? Грубо говоря задача узнать кто неделю назад скажем в 12 дня натился белым ипом таким-то ну может не один человек будет а даже штук 10, не страшно, но я чего-то или на вечер туплю или не знаю как это получить?
|
|
|
Записан
|
|
|
|
VitalVas
NoDeny
Спец
Карма: 60
Offline
Сообщений: 991
|
|
« Ответ #5 : 31 Января 2011, 20:13:37 » |
|
ниче не нужно включать.... только немного переделать ipcad.pl под себя (если у тебя ipcad).... запусти в терминале такую команду (если у тебя ipcad) rsh -t 20 -n 127.0.0.1 sh ip acco
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #6 : 31 Января 2011, 20:26:14 » |
|
Спасибо, уже близко к тому что надо. Вывод есть минуя белые через которые натилось, ну тоже норм. Тогда вопрос как это все логировать скажем по дням и часам? Скажем мне надо хранить эти логи за 2 месяца. Чтоб когда к нам заявится сотрудник в форме и скажет что такого-то числа с вашего белого ипа на адрес Васи Пупкина была произведена атака я мог быстро найти лог за нужное число, отсортировать все обращения по grep на адрес этого самого Васи и выдать вменяемую информацию по тем пользователям которые туда в указанное время ломились, а не разводить руками с демонстрацией глупой улыбки.
|
|
|
Записан
|
|
|
|
VitalVas
NoDeny
Спец
Карма: 60
Offline
Сообщений: 991
|
|
« Ответ #7 : 31 Января 2011, 20:54:21 » |
|
переделай ipcad.pl(или кто-то сделает за вознаграждения) для записи в бд перед обнулением статистики.... но предупреждаю, это сильно нагрузит базу...
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #8 : 31 Января 2011, 21:11:21 » |
|
Да я бы базу совсем грузить не хотел, мне бы в файл все сбрасывать можно и по крону. То есть чтоб в логах была папочка в ней файлик скажем 31.01.2011.log а в нем все записи за это число. Ну и пусть себе хранится таких файлов 60 штук с автоудалением более старых, мне места на винте не жалко, а вот хочется поменьше систему нагружать. То есть например скриптик который в начале каждого часа заносит всю статистику за час в фаил с простановкой времени в начале. Вижу что-то типа rsh -t 20 -n 127.0.0.1 sh ip acco >> {date}.log && date "+TIME: %H:%M:%S" >> {date}.log в кроне но в ключах rsh не силен, может подскажете?
|
|
|
Записан
|
|
|
|
VitalVas
NoDeny
Спец
Карма: 60
Offline
Сообщений: 991
|
|
« Ответ #9 : 31 Января 2011, 21:38:05 » |
|
ну можно и у файл... но прикол в тому, что по крону не пройдет.... так как скрипт который собирает статистику по трафику удаляет статистику из колектора после того как снимет смотри файл ipcad.pl, он как-раз так и пишет..... там всего-то 20 строк, которые обработают колектор и пишет в файлы
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #10 : 01 Февраля 2011, 07:09:30 » |
|
Спасибо за помощь, теперь понял принцип работы, буду реализовывать.
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #11 : 01 Февраля 2011, 10:17:32 » |
|
Начал ковырять ipcad.pl и возник вопрос знатокам перла. Как я понял за запись в фаил отвечает блок $temp_name=$file_name.'_temp'; if( open F,">$temp_name" ) { print F $rez; close(F); } rename $temp_name,$file_name; А что в него нужно добавить чтоб все данные дописывались еще и в {date}.log Пробовал несколько вариантов, переставала считаться статистика вообще, если кому не сложно помогите с кодом.
|
|
|
Записан
|
|
|
|
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
Карма: 116
Offline
Сообщений: 1059
|
|
« Ответ #12 : 01 Февраля 2011, 19:29:48 » |
|
$temp_name1=$file_name.'_temp1'; if( open F,">$temp_name1" ) { print F $rez; close(F); }
Не?
|
|
|
Записан
|
|
|
|
VitalVas
NoDeny
Спец
Карма: 60
Offline
Сообщений: 991
|
|
« Ответ #13 : 01 Февраля 2011, 21:39:01 » |
|
создаем папку iplog перед exit; пишем такое use Time::localtime; $t=localtime(); $mon=$t->mon; $year=$t->year; $day=$t->mday; $hour=$t->hour; $min=$t->min; $sec=$t->sec; $curtime="\n\n# $hour:$min:$sec\n\n"; $mon_now=$mon+1; $year_now=$year+1900; if( open F,">>iplog/$day.$mon_now.$year_now.log" ) { print F $curtime; print F $rez; close(F); }
|
|
« Последнее редактирование: 02 Февраля 2011, 00:13:34 от VitalVas »
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #14 : 02 Февраля 2011, 09:32:42 » |
|
Спасибо, все работает.
|
|
|
Записан
|
|
|
|
|