Доброго дня. Вопрос следующий.
Имеется лог фаервола. Точнее, фильтра пакетов. В нём - много строк, каждая отвечает за одно соединение. Строки примерно следующего вида:
<time> <Source_IP> <Destination_IP> <левая инфа> <action[dropped|accepted]>
Требуется следующее:
Составить список следующего вида:
Подсписок_1:
<Source_ip_1> <Destination_IP_1> <Destination_IP_1_resolved_name> <connections_count>
<Source_ip_1> <Destination_IP_2> <Destination_IP_2_resolved_name> <connections_count>
<Source_ip_1> <Destination_IP_n> <Destination_IP_n_resolved_name> <connections_count>
Подсписок_2:
<Source_ip_2> <Destination_IP_1> <Destination_IP_1_resolved_name> <connections_count>
<Source_ip_2> <Destination_IP_2> <Destination_IP_2_resolved_name> <connections_count>
<Source_ip_2> <Destination_IP_n> <Destination_IP_n_resolved_name> <connections_count>
То есть нужно составить список того, кто куда сколько раз подключался, и при этом отрезолвить по возможности эти адреса, чтобы не искать нслукапом соответствия вручную. При этом должны попадать только те пакеты, которые были accepted. Также требуется отсортировать данные внутри подсписков по количеству подключений (столбец <connections_count>) по убывающей, чтобы сразу, глянув на список, можно было сказать: Марья Ивановна больше всего заходила на одноклассники.ру. Я понимаю, что это ни в коей мере не даёт возможности понять, сколько трафика было потрачено, но в данном случае интересует именно количество попыток соединения.
Пример двух реальных строк:
2011:07:11-00:00:02 DesheliGateway ulogd[4137]: id=«2001» severity=«info» sys=«SecureNet» sub=«packetfilter» name=«Packet dropped» action=«drop» fwrule=«60002» initf=«eth1» outitf=«eth0» srcmac=«48:5b:39:3:42:50» dstmac=«0:26:5a:70:45:83» srcip=«192.168.0.11» dstip=«213.170.92.166» proto=«17» length=«429» tos=«0x00» prec=«0x00» ttl=«63» srcport=«5060» dstport=«5068»
2011:07:11-00:00:02 DesheliGateway ulogd[4137]: id=«2001» severity=«info» sys=«SecureNet» sub=«packetfilter» name=«Packet dropped» action=«drop» fwrule=«60002» initf=«eth1» outitf=«eth0» srcmac=«48:5b:39:3:42:50» dstmac=«0:26:5a:70:45:83» srcip=«192.168.0.11» dstip=«91.195.170.37» proto=«17» length=«416» tos=«0x00» prec=«0x00» ttl=«63» srcport=«5060» dstport=«5060»
Кстати, если length - это длина пакета, то в каких единицах, есть идеи? Они бывают совершенно произвольными. Возможно, стоит также добавлять это поле, так как это предположительно даст представление о потраченном трафике в байтах.
Насколько я понимаю, для решения этой задачи потребуются следующие утилиты:
cat, grep, wc, nslookup, sed, а также операторы цикла и знания в области программирования на bash, которыми я не обладаю совершенно.
Если найдутся желающие помочь мне решить эту задачу, буду благодарен. Единственная просьба: не надо предлагать «копать в сторону...». Этой информации мне недостаточно, иначе и сам бы мог написать нужный скрипт. Думаю, что помочь мне может только приблизительный текст программы.




Ответ на:
комментарий
от MKuznetsov


Ответ на:
комментарий
от dgeliko

Ответ на:
комментарий
от Drevoborod

Ответ на:
комментарий
от adriano32

Ответ на:
комментарий
от madcore

Ответ на:
комментарий
от Drevoborod

Ответ на:
комментарий
от madcore

Ответ на:
комментарий
от Drevoborod

Ответ на:
комментарий
от sdio

Ответ на:
комментарий
от Drevoborod

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум real ip + дешёвый роутер + DDOS (2012)
- Форум Броадкасты (2004)
- Форум што за пакетики (2005)
- Форум related, established (2007)
- Форум проблема с TCP-соединением (2005)
- Форум iptables: В логи пишется «спам» и ещё один вопрос (2005)
- Форум iptables: В логи пишется «спам» и ещё один вопрос (2005)
- Форум Проблемы с форматом времени в логах ядра (syslog-ng). (2010)
- Форум Два VPN-а на одном сервере (2022)
- Форум iptables - почему часть пакетов не попадает в nat PREROUTING (2019)