URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7347
[ Назад ]

Исходное сообщение
"Помогите написать SHELL поиск в терминале, передача в термин..."

Отправлено rk , 03-Май-08 00:50 
Доброе время суток.
Помогите написать скрипт, который будет читать данные выводимые в терминал, искать данные,
и переносить в другой терминал (запуск с параметрами),очень нужно.

для примера

Fri May  2 01:19:55 2008
TCP  92.113.8.127:44370 --> 204.9.163.158:80 | FA

Fri May  2 01:19:55 2008
UDP  192.168.10.2:8765 --> 192.168.10.255:8765 | A
-----------------------------------------------------------------
Fri May  2 01:19:55 2008
TCP  92.113.8.127:44370 --> 204.9.163.158:80 | A

поиск по порту (8765)
запуск в терминале       ettercap -Ti eth0 -P isolate /192.168.10.2/ //

рад любому совету .


Содержание

Сообщения в этом обсуждении
"Помогите написать SHELL поиск в терминале, передача в термин..."
Отправлено L0n3R4ng3r , 03-Май-08 22:44 
>[оверквотинг удален]
>UDP  192.168.10.2:8765 --> 192.168.10.255:8765 | A
>-----------------------------------------------------------------
>Fri May  2 01:19:55 2008
>TCP  92.113.8.127:44370 --> 204.9.163.158:80 | A
>
>поиск по порту (8765)
>запуск в терминале       ettercap -Ti eth0
>-P isolate /192.168.10.2/ //
>
>рад любому совету .

как решение предлагаю с помощью файервола сделать редирект такого траффика на syslog(iptables и ipfw точно умеют остальное не проверял, но думаю умеют), через него
ложить его в какой-нибуть файл. Потом парсить его построчно запуская цикл скрипта каждые 30 секунда например.
Сам скрипт:
1. Проверить был ли файл изменен(если нет заканчиваем цикл)
2. Распарсить все строчки и на основе этого сформировать команду.
3. Выполнить команду.
4. Обновить лог-файл.

Как пример для распарсировки тех строк что ты привел, можно сделать след.:

#!/bin/bash

while true; do
size=$(ls -l firewall.log | awk '{print $5}')
if [ $size -gt 1 ]; then
cat firewall.log | while read line; do
echo $line | grep "UDP"
if [ $? -eq 0 ];then
cmd_addr=$(echo $line | awk 'split($2,d,":"); print d[2]')
ettercap -Ti eth0 -P isolate /$cmd_addr/ //
fi
done
echo > firewall.log
sleep 30
fi
done


Вообщем такая фигня должна работать, хотя возможно прийдеться доработать напильником.
Желаю удачи .


"Помогите написать SHELL поиск в терминале, передача в термин..."
Отправлено L0n3R4ng3r , 03-Май-08 22:46 
исправь
echo $line | grep "UDP"
на
echo $line | grep "UDP" | grep "8765"

"Помогите написать SHELL поиск в терминале, передача в термин..."
Отправлено rk , 04-Май-08 01:09 
Файервол в данной ситуации не подходит, так-как необходимо забанить чат (сетевая аська), в сети на основе сичей .  Типа чтоб в рабочее время не базарили в чате, за основу взят ettercap.
Попробую доработать напильником.
За пример спасибо!!!!

"Помогите написать SHELL поиск в терминале, передача в термин..."
Отправлено angra , 04-Май-08 02:28 
А как эта задача связана с оригинальным вопросом? Действительно любопытно узнать цепочку умозаключений, приведших к такому.

"Помогите написать SHELL поиск в терминале, передача в термин..."
Отправлено rk , 04-Май-08 03:51 
>А как эта задача связана с оригинальным вопросом? Действительно любопытно узнать цепочку
>умозаключений, приведших к такому.

я основывался на: снифер > поиск > блокировка.
в качестве примера указана работа снифера, лог iptables тоже подходит, извиняюсь !!!
просто устал тяжелый день.