powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите со скриптом.
16 сообщений из 41, страница 2 из 2
Помогите со скриптом.
    #33702986
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
циклов в седе нету

если нужен последний айпи, то явно задать ,что находится справа.

например пробел минус пробел минус
\( - -\).*
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702987
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другими словами в логе типа

Код: plaintext
дата запрос айпи код - - принято отправлено

надо игнорировать поле запрос даже если оно содержит айпишники.

Иначе недохакер саожет прислав запрос с айпишнико постороннего человека - тем самым забанить его..

Мои експерименты пока показывают что сед итак выдает самый правый айпи, но хотелось бы иметь некую уверенность, что недохакеры не получат инструмент управления доступом к сайту...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702990
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну может так описать явно конец строки лога

пробел минус пробел минус пробел хоть_одна_цифра пробел хоть_одна_цифра пробе хоть_одна_цифра все_что_угодно
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702991
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению правая часть непостоянна, минусы там просто из за того что я неудачный пример лога привел. В эти же поля веб сервер логгирует цифры...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33702994
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого (опустив на время проблемы с самым правым ip)что мы получили.

Механизм выборки списка уникальных айпишников для конкретной подстроки в логе.

Осталось научиться производить поиск по всем критериям и засовывать полученные ip в ipfw например.

Пусть критерии хранятся в файле string
Код: plaintext
1.
2.
3.
4.
cmd.exe
sumthin
thisdoesnotexist 
{...}

Код: plaintext
1.
cat /var/log/my.log | grep [Сюда надо строки из фала включить] | sed -e  "s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\( -.*\)/\2/" | sort -u

И кстати получается что для каждого критерия надо весь лог просматривать, может grep неудачно выбран?
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703000
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про правую часть.

можно сказать, что справа будут только пробелы, минусы и цифры?
тоесть не ".*", а " [ \-0-9]"
хотя я про минус внутри квадратных скобок не уверен.

можно сказать все, что угодно кроме точек?
"[^.]*"
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703006
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про греп - нуда.

седом можно выбрать нужные строчки за один проход.

foo.sed
Код: plaintext
1.
2.
3.
4.
5.
/str1/p
/str2/p
/str3/p
....
/strN/p


sed -nf foo.sed
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703009
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да - совершенно верно, обидно что сам не догадался, справа не может быть например точек - этим можно воспользоваться

Итого процедура отбора уникальных айпи по одному критерию
Код: plaintext
cat /var/log/my.log | grep cmd.exe | sed -e  "s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\([^\.]*\)/\2/" | sort -u
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703014
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, раз кавычки появились можно попробовать вернуть как цифру \d вместо [0-9]

\d\d* , возможно, с современными выражениями -E
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703022
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую

файл criteries.sed
Код: plaintext
1.
/cmd.exe/p

команда
Код: plaintext
1.
sed -f criteries.sed -e  "s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\([^\.]*\)/\2/" /var/log/my.log | sort -u 

Неожиданно выдает все подряд, изредка ip
изредка строки в которых нет шаблона из критерив
Код: plaintext
1.
2.
3.
#Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(User-Agent) cs(Referer) sc-status sc-bytes cs-bytes
  82 . 78 . 108 . 160 
{...}
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703025
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
cat /var/log/my.log | sed -nf criteries.sed| sed -e  "s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\([^\.]*\)/\2/" | sort -u

sed -nf criteries.sed | sed blablabla
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703028
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый сед выбирает строчки лога. -n важно
второй - удаляет все кроме последних айпей

--
если выполнять два скрипта в одном седе, я не знаю что будет.
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703035
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заработало!

Добавил в критерии
Код: plaintext
1.
2.
3.
/cmd.exe/p
/somethin/p
/thisdoes/p
Код: plaintext
1.
 cat /var/log/my.log | sed -nf criteries.sed |sed -e  "s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\([^\.]*\)/\2/" | sort -u

Результат

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 192 . 38 . 188 . 30 
 195 . 225 . 169 . 92 . 0 
 200 . 234 . 199 . 163 . 0 
 216 . 180 . 251 . 58 . 0 
 216 . 35 . 177 . 235 . 0 
 216 . 65 . 11 . 137 . 0 
 60 . 12 . 81 . 52 
 62 . 23 . 146 . 125 
{..}

Чудно, осталось догадаться как это щас пихать файрволу...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703048
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага догадался
в конец команды
добавить
Код: plaintext
1.
 | xargs -I % ipfw add  1  deny all from % to any
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703052
Фотография APM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого целиком рецепт

1. Создаем файл с неугодными построками
criteries.sed
Код: plaintext
1.
2.
3.
/cmd.exe/p
/somethin/p
/thisdoes/p

2. Выполняем команду, ну или шедулим крону
Код: plaintext
1.
cat /var/log/my.log | sed -nf criteries.sed |sed -e  "s/\(.*\)\( [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)\([^\.]*\)/\2/" | sort -u | xargs -I % ipfw add  1  deny all from % to any

Минусы:
1. По правилу файрвола на каждый ip
2. Я бы не поболся банить подсетями провайдера даже, ибо анализ лично моего лога показывает что там сплошь китайцы и прочие азиаты которые как клиенты моего сайта мне не нужны, но как прикрутить к скрипту вывод команды whois не знаю, да и побаиваюсь сложностей
3. Неудобно правила файрвола будет удалять, так как номер у всех "1" удаляться будут последовательно, как сделать их с разными номерами но в начале списка правил еще не придумал.


Ну и вообще покритикуйте, подскажите чего-нить...
...
Рейтинг: 0 / 0
Помогите со скриптом.
    #33703053
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эта. у тебя было правильнее раньше
сат не нужен

не так,
Код: plaintext
 cat /var/log/my.log | sed -nf criteries.sed |sed -e ......

а так
Код: plaintext
 sed -nf criteries.sed /var/log/my.log |sed -e .....
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Помогите со скриптом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]