Додаткові інструменти для журналирования і статистики PF

Ще одна важлива складова постійного контролю вашої мережі – наявність можливості зберігати актуальний статус системи У цьому розділі ми розглянемо, як вибрати інструменти моніторингу які можуть виявитися дуже корисними Всі інструменти представлені тут доступні або в базовій системі, або в системі пакетів OpenBSD і FreeBSD (за виключення NetBSD)

Погляд на речі за допомогою systatЯкщо ви зацікавлені в тому, щоб отримати миттєвий знімок трафіку (снапшот), що проходить через вашу систему в поточний момент часу, програма systat в OpenBSD пропонує кілька корисних можливостей У главі 7, ми в кратце розглядали черги systat для перегляду трафіку призначеного черг в нашому наборі правил ALTQ Тут ми розглянемо Декотора додаткові корисні опції

Програма systat доступна на всіх операційних системах BSD, в декількох різних варіантах На всіх системах, systat дозволяє працювати зі статистикою системи, незначно розрізняючи в синтаксисі і результуючому виведенні Наприклад, на момент написання книги, кілька видів перегляду queues доступно в systat на OpenBSD, але не на FreeBSD або NetBSD

Для більш загального погляду на таблицю станів, відмінного від того, який надає queues, спробуйте використовувати systat states, яка дає список дуже схожий на список процесів top (1) Далі представлений типовий висновок systat states:

2 users Load 024 028 027 (1-16 of 895)  Fri Apr 1 14:00:04 2011

PR    D    SRC                                   DEST                        STATE AGE    EXP    PKTS BYTES RATE   PEAK     AVG RU G udp   O  1921681031:56729    1921681039:12345 1:0     8340m 25     372K 542M  1492    4774    1137 *

tcp   I   1016810315:47185    213187179198:22   4:4     62377 86398 2954 613K 13264  23654   10     18 tcp   I   1016810315:2796      213187179198:22   4:4     62368 86219 4014  679K 0          0          11     18 tcp   I   1016810315:15599    1292406410:6667   4:4     61998 86375 9266 849K 0          58        14      *

tcp   O   213187179198:1559  1292406410:6667   4:4     61998 86375 9266 849K 0          58         14       *  1

Якщо стани не вміщаються на одному екрані, можна перегорнути зображення

Аналогічно, systat rules відображає живий вигляд пакетів, байтів і іншу статистику для завантаженого набору правил, наприклад так:

2 users     Load 125 087 052 (1-16 of 239) Fri Apr 1 14:01:59 2011

RUL  ANCHOR  A       DIR   L  Q IF            PR    K      PKTS        BYTES      STATE       MAX          INFO

0

M

In

26M

12G

4946K

all max-mss 1440

1

M

Out

nfe0

4853K

3162M

94858

inet from 10000/8 to any queue(q_def

2

M

Out

nfe0

3318K

2430M

61672

inet from 1921681030/24 to any queue

3

M

Out

nfe0

tcp

6404K

4341M

134K

from any to any port = www queue(q_web,

4

M

Out

nfe0

tcp

84298

43M

1594

from any to any port = https queue(q_we

5

M

Out

nfe0

tcp

502

34677

63

from any to any port = domain queue(q_d

6

M

Out

nfe0

udp

512K

64M

257K

from any to any port = domain queue(q_d

7

M

Out

nfe0

icmp

11

1008

3

all queue(q_dns, q_pri)

8

B

Any

L

14638

1346K

0

return all

9

B

Any

Q

95

5628

0

return from &ltbruteforce&gt to any

10

P

Any

1139K

1005M

757

all flags any

11

P

In

Q

tcp

K

18538

1350K

708

inet from any to any port = ftp

12

P

Out

tcp

K

0

0

0

inet from 127001/32 to any port = ftp

13

P

Any

L

1421

128K

134

all flags any

14

P

In

L

egres

tcp

K

1830K

87M

18933

inet from any to any port = smtp queue

15

P

In

L

egres

tcp

K

31

5240

2

from &ltnospamd&gt to any port = smtp

Огляд правил systat особливо корисний, оскільки він пропонує живе уявлення повністю розгорнутого завантаженого набору правил Наприклад, якщо ваш набір правил поводиться трохи дещо дивно, даний вид може направити вас в правильному напрямку пошуку і показати фактичний потік пакетів Програма systat так само пропонує вид представлення даних які ви можете отримати за допомогою команди pfctl-s status Наступний приклад показує частину виведення systat pf Вид systat pf пропонує більше інформації ніж може поміститися на екран, але її можна бачити наживо

2 users Load 034 064 047 (1-16 of 51) Fri Apr 1 14:04:04 2011

TYPE pf

pf pf pf

NAME Status Since Debug Hostid

VALUE Enabled 139:05:08 err 0x82aea702

RATE

NOTES

nfe0

Bytes In

6217042900

IPv4

nfe0

Bytes In

0

IPv6

nfe0

Bytes Out

5993394114

IPv4

nfe0

Bytes Out

64

IPv6

nfe0

Packets In

12782504

IPv4,

Passed

nfe0

Packets In

0

IPv6,

Passed

nfe0

Packets In

11096

IPv4,

Blocked

nfe0

Packets In

0

IPv6,

Blocked

nfe0

Packets Out

12551463

IPv4,

Passed

nfe0

Packets Out

1

IPv6,

Passed

nfe0

Packets Out

167

IPv4,

Blocked

Програма systat пропонує кілька інших видів, у тому числі повязаних з мережею, таких як NetStat, vmstat для статистики віртуальної памяті, iostat для статистики пристроїв введення / виводу Ви можете циклічно перемикатися між усіма видами systat використовуючи ліву та праву клавіші управління курсором (Смортіте man systat для отримання докладної інформації)

Погляд на речі за допомогою pftopЯкщо ваша система не має версії systat з підтримкою виду PF, ви можете відстежувати активність вашої мережі в режимі реального часу використовуючи pftop Ця команда відображає знімки вашого трафіку pftop не включена в базову систему, але доступна в якості пакету, і в системі портів OpenBSD і FreeBSD як / sysutils / pftop, а так само в NetBSD допомогою pkgsrc як sysutils / pftop Ось приклад її виведення:

pfTop: Up State 1-17/771, View: default, Order: none, Cache: 10000                   14:05:42

PR   DIR

SRC

DEST                              STATE

AGE

EXP

PKTS

BYTES

udp Out

1921681031:56729

1921681039:12345 SINGLE:NO_TRAFFIC

8346m

22

373K

543M

tcp

In

1016810315:47185    213187179198:22

ESTABLISHED:ESTABLISHED

62715

86395

3232

667K

tcp

In

1016810315:2796      213187179198:22

ESTABLISHED:ESTABLISHED

62706

86369

4071

686K

tcp

In

1016810315:15599    1292406410:6667

ESTABLISHED:ESTABLISHED

62336

86379

9318

854K

tcp

Out

213187179198:15599 1292406410:6667

ESTABLISHED:ESTABLISHED

62336

86379

9318

854K

tcp

In

1016810315:8923      1402111664:6667

ESTABLISHED:ESTABLISHED

62181

86380

15755

4821K

tcp

Out

213187179198:8923   1402111664:6667

ESTABLISHED:ESTABLISHED

62181

86380

15755

4821K

..

Ви можете використовувати pftop для сортування ваших підключень за різними критеріями, в тому числі правилам PF, обсягом, віком та адресами джерела і призначення

Візуалізація вашого трафіку за допомогою pfstatЯкщо ваша система піднята, працює і обробляє дані, графічне представлення даних про рух інформації стане корисною можливістю для перегляду та аналізу даних Один із способів графічного відображення даних PF – програма pfstat, розроблена Даніелем Хартмеером з метою добування і подання статистичних даних, автоматично генеруються PF Інструмент pfstat доступний через систему пакетів OpenBSD або як порту net / pfstat, через систему

портів FreeBSD як sysutils / pfstat, і через pkgsrc в NetBSD, як sysutils / pfstat

Програма pfstat збирає дані, які ви визначаєте в файлі конфігурації і подає ці дані як файли формату JPG або PNG джерелом даних може бути або PF працює на локальній системі, через пристрій / dev / pf, або дані зібрані з віддаленого компютера під управлінням демона pfstatd

Для налаштування pfstat, в повинні вирішити, які частини даних PF потрібно візуалізувати і яким чином, а потім написати конфігураційний файл і запустити завдання cron для збору даних і генерації ваших графіків Програма поставляється з докладно коментованим файлом конфігурації і корисною man-сторінкою Приклад конфігурації може бути корисною відправною точкою для написання власного конфігураційного файлу Наприклад, наступний фрагмент pfstatconf вельми близький до

первісним наприклад конфігурації {1}:

collect 8 = global states inserts diff collect 9 = global states removals diff collect 10 = global states searches diff

image &quot/var/www/users/peter/bsdlynet/pfstat-statesjpg&quot { from 1 days to now

width 980 height 300 left

graph 8 &quotinserts&quot &quotstates/s&quot color 0 192 0 filled, graph 9 &quotremovals&quot &quotstates/s&quot color 0 0 255 right

graph 10 &quotsearches&quot &quotstates/s&quot color 255 0 0

}

Конфігурація починається з трьома оголошеннями collect, де кожному з даних присвоюється унікальний цифровий ідентифікатор В даному випадку, ми захоплюємо число вставок (insertions), вилучень (removals) і пошуків (searches) у таблиці станів Далі визначаються параметри зображення, яке відображає зазначені дані У рядку зазначається період відображення (from 1 days to now, означає, що будуть відображатися тільки дані зібрані протягом останніх 24 годин) width (ширина) і height (висота) вказують на розмір зображення вимірюваний в пікселях для кожного напрямку Оголошення graph вказує, як відображаються ряди даних і легенди графіків Збір станів вставки, видалення та пошуку проводиться один раз на хвилину, а потім дані графіка збираються в добове відображення приблизно так, як показано на малюнку 8-1

Малюнок 8-1 Статистика таблиці станів по 24-годинною шкалою часу

Графік може бути змінений, з метою більш детального представлення одних і тих же даних Наприклад, щоб побачити дані за останню годину з великою роздільною здатністю, змініть період на from 1 hours to now і розмірність на width 600 height 300 Приблизний результат повинен бути подібний малюнку 8-2

Малюнок 8-2 Статистика таблиці станів, 1-годинна шкала часу

Домашня сторінка pfstat http://wwwbenzedrinecx/pfstathtml містить кілька прикладів, з демонстраціями у вигляді живих графічних даних з доменного шлюзу benzedrinecx Читаючи приклади і використовуючи знання свого трафіку, ви повинні зуміти створити конфігурацію pfstat, яка добре підійде до потреб вашого сайту (розгортання)

Збір даних NetFlow за допомогою pflow (4)NetFlow – метод збору та аналізу мережевих даних, який породив безліч допоміжних інструментів для запису і аналізу даних про TCP / IP зєднаннях NetFlow спочатку зявився в Cisco, і з плином часу став важливою особливістю

різного мережевого обладнання, як інструмент управління та аналізу мережі

Модель даних NetFlow визначає мережевий потік як односпрямовану послідовність пакетів з одними і тими ж IP адресами джерела і призначення і протоколами Наприклад, TCP зєднання визначаються в даних NetFlow у вигляді двох потоків: по одному в кожному напрямку

Дані PF можуть бути доступні для інструментів NetFlow допомогою псевдоінтерфейса pflow (4), який вперше зявився в OpenBSD 45 з опцією pflow state По суті, всю інформацію яку ви очікуєте знайти в запису потоку NetFlow стилю легко виводиться з даних PF збережених в таблиці станів, а інтерфейс pflow надає простий спосіб експорту даних таблиці станів PF в очищеному і добре документированном форматі Як і при іншому журналированием, ви повинні забезпечити отримання даних NetFlow з набору правил PF базуючись на основі правил

Система моніторингу мережі заснована на NetFlow складається з декількох окремих частин Дані NetFlow виходять від одного або декількох сенсорів генеруючих дані про мережевий трафік Сенсори передають дані про потоки в колектор який зберігає одержувані дані Нарешті система аналізу та звітності витягує і обробляє дані {2}

Установка сенсора NetFlowДля установки сенсора NetFlow потрібно два компоненти: одне або декілька налаштуваних пристроїв pflow (4), і, принаймні, одне правило passв наборі правил з включеною опцією pflow state Інтерфейси pflow створюються з двома обовязковими параметрами: IP адресою джерела і IP адресою призначення потоку і номером порту Ось

приклад команди ifconfig для файлу / etc/hostnamepflow0:

flowsrc 192021 flowdst 19202105:3001

З командного рядка можете зробити так:

$ sudo ifconfig pflow0 create flowsrc 192021 flowdst 19202105:3001

В обох випадках, ця команда встановлює хоств для відправки даних NetFlow з адреси джерела 192021 на колектор, який слухає дані NetFlow на адресі 19202105, на порту UDP 3001

Можна налаштувати декілька пристроїв pflow з окремими напрямками потоку Тим не менш, у даний час неможливо вказати, грунтуючись на правилах, який пристрій pflow повинно отримувати генеруються дані

Після включення пристрою pflow, вкажіть в / etc / pfconf правила pass які повинні надавати дані NetFlow сенсору Наприклад, якщо ваше основне завдання полягає в зборі даних про поштовому трафіку клієнтів хостів IPv4, наступне правило встановить необхідний сенсор:

pass out log inet proto tcp from &ltclient&gt to port $email \ label client-email keep state (pflow)

Коли pflow вперше зявився в PF, негайною реакцією ранніх користувачів стало те, що вони хотіли додати pflow до всіх правил pass з ранніх наборів правил Це призвело розробника PF, Брауера Хеннінга, до введення ще однієї корисної можливості PF – установці стану за замовчуванням яке застосовується для всіх правил, якщо не вказано інше Наприклад, якщо ви додасте наступну рядок на початку вашого набору правил, всі правила pass в конфігурації будуть генерувати дані NetFlow, які будуть експортуватися через пристрої pflow:

set state-defaults pflow

Створивши принаймні один пристрій pflow і одне правило в pfconf, що генерує дані для експорту через пристрій pflow, ви практично закінчите настроювання сенсора Однак, можливо, вам знадобиться додати правило, яке дозволить передачу UDP даних в потік з IP адреси який ви вказали як джерело потоку даних в IP адреса колектора та цільової порт для призначення потоку Після того, як ви завершите цей останній крок, вам слід переключити увагу на збір даних для подальшої обробки

Збір, звітність і аналіз даних NetFlowЯкщо ваша система має інфраструктуру збору та аналізу даних засновану на NetFlow, можливо, ви вже додали всі необхідні налаштування конфігурації для системи збору та аналізу даних PF Якщо середу аналізу даних потоку у вас ще не

налаштована, вам доступні кілька варіантів

Система пакетів OpenBSD предлает три колектори і аналізатора пакетів NetFlow: flow-tools, flowd і nfdump3 Всі три системи розроблені відданими ії компетентними розробниками та спільнотами, і мають безліч доповнень, у тому числі графічних web-інтерфейсів flow-tools – є основнм інструментом аналізу потоку в багатьох розгортання Фанати nfdump вказують на аналізатор пакетів nfsen який обєднує інструменти nfdump в потужний і гнучкий фронтенд з web інтерфейсом

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

Незалежно від вашого вибору колектора NetFlow, журналирование повинно виконуватися з таким застереженням: докладна інформація журналирования трафіку вимагає зберігання У разі NetFlow, кожен потік буде генерувати запис фіксованого розміру, і за неофіційними даними, навіть скромний набір профілів на завантажених системах може генерувати гігабайт даних NetFlow в день Обєм памяті, необхідний вам, прямо пропорційний кількості зєднань і тому як довго ви зберігаєте вихідні дані NetFlow Нарешті слід памятати про правові аспекти

Колектори зазвичай пропонують деякі можливості фільтрації, що дозволяють відкинути дані про специфічні хостах або мережах, або навіть відкинути деякі частини записів NetFlow, глобально або для зазначених хостів і мереж

Щоб проілюструвати деякі основи збору даних NetFlow і те, як витягати підмножина зібраних даних для подальшого аналізу, ми будемо використовувати flowd, досить тривалий час розробляється Дамєну Міллером (Damien Miller), одним з разработчівков OpenBSD та доступному допомогою системи пакетів (на OpenBSD як net / flowd, а на FreeBSD як net-mgmt/flowd) Я вирішив використати flowd в основному тому, що вона була розроблена як маленька, проста і безпечна система Як ви побачите далі, flowd по раніше вдається бути вельми корисним і гнучким інструментом Оперування з потоком даних за допомогою інших інструментів будуть олічается тільки в деяких деталях, проте основні принципи залишаються тими ж

У порівнянні з іншими пакетами колекторів NetFlow, flowd дуже компактний і складається тільки з двох виконуваних програм (демона колектора flowd і програми фільтрації та подання потоку flowd-reader), бібліотеки підтримки та файлу конфігурації Документація програми вельми коротка але адекватна, зразок файлу / etc / flowdconf містить велику кількість докладних коментарів Грунтуючись на сторінці керівництва і коментарях у зразку конфігураційного файлу ви витратите зовсім

трохи часу на створення корисної конфігурації колектора

Після видалення рядків коментарів (використовуємо команду grep-v \ # / etc / flowdconf або аналогічну), базовий файл конфігурації flowd може виглядати наступним чином:

logfile &quot/var/log/flowd&quot listen on 19202105:3001 flow source 192021

store ALL

Хоча ця конфігурація містить не більше інформації ніж конфігурація інтерфейсу pflow при налаштуванні сенсора, вона включає два важливих пункти:

• Рядок logfile повідомляє нам, де зберігатимуться зібрані дані (і показує, що flowd прагне зберігати всі дані в одному файлі)

• Останній рядок говорить нам, що flowd буде зберігати всі поля в даних отриманих від призначеного потоку джерела

Запустивши демон flowd з цією конфігурацією, практично відразу ви побачите зростання файлу

/ Var / log / flowd, що показує, що мережевий трафік проходить через шлюз і запису потоків збираються колектором Через деякий час ви зможете подивитися на дані

використовуючи програму flowd-reader Для прикладу із збереженням всіх полів, дані для

одного пошуку імені з хоста в NAT локальної мережі виглядають в flowd-reader приблизно так:

$ sudo flowd-reader /var/log/flowd

FLOW recv_time 2011-04-01T21:15:53607179 proto 17 tcpflags 00 tos 00 agent [213187179198] src [192168103254]:55108 dst [1921681031]:53 packets 1 octets 62

FLOW recv_time 2011-04-01T21:15:53607179 proto 17 tcpflags 00 tos 00 agent [213187179198] src [1921681031]:53 dst [192168103254]:55108 packets 1 octets 129

Зверніть увагу, що пошук генерує два потоки: по одному в кожному напрямку Перший потік визначається головним чином за часом отримання, далі йде використовуваний протокол (протокол 17 це UDP, як вам може підказати / etc / protocols) Обидва прапора зєднання TCP і TOS зняті, і колектор отримує дані від нашого шлюзу 192021 Адреса джерела потоку 192168103254, порт джерела 55108, адресу призначення 1921681031 і порт 53, тобто порт DNS Потік складався з одного пакета з корисним навантаженням в 62 октету Водночас колектором був отриманий зворотний потік, і ми бачимо, що цей потік має зворотні значення джерела і призначення, з трохи більшою корисною завантаженням в 129 октетів Вихідний формат flowd-reader піддається розбору за допомогою регулярних виразів для подальшої обробки інструментами звітності чи графопостроителями

Ви можете подумати, що ці дані – все що можна дізнатися про набір мережевих потоків, однак реально можна витягти і більш докладну інформацію Наприклад, за допомогою опції-v програми flowd-reader можна отримати докладніший висновок, який виглядає приблизно так:

FLOW recv_time 2011-04-01T21:15:53607179 proto 17 tcpflags 00 tos 00 agent [213187179198] src [192168103254]:55108 dst [1921681031]:53 gateway [0000] packets 1 octets 62 in_if 0 out_if 0 sys_uptime_ms 1w5d19m59s000 time_sec 2011-04-01T21:15:53 time_nanosec 103798508 netflow ver 5 flow_start 1w5d19m24s000 flow_finish 1w5d19m29s000 src_AS 0 src_masklen 0 dst_AS 0 dst_masklen 0 engine_type 10752 engine_id 10752 seq 5184351 source 0 crc32 759adcbd

FLOW recv_time 2011-04-01T21:15:53607179 proto 17 tcpflags 00 tos 00 agent [213187179198] src [1921681031]:53 dst [192168103254]:55108 gateway [0000] packets 1 octets 129 in_if 0 out_if 0 sys_uptime_ms 1w5d19m59s000 time_sec 2011-04-01T21:15:53 time_nanosec 103798508 netflow ver 5 flow_start 1w5d19m24s000 flow_finish 1w5d19m29s000 src_AS 0 src_masklen 0 dst_AS 0 dst_masklen 0 engine_type 10752 engine_id 10752 seq 5184351 source 0 crc32 f43cbb22

Поле gateway вказує, що сенсор сам служить шлюзом для цього зєднання Ви побачите список учавствующих інтерфейсів (in_if і out_if), час безперервної роботи сенсора (sys_uptime_ms), а так само безліч інших параметрів, таких як AS номера (src_as і dst_as – як я розумію мова йде про номери автономних систем джерела і

призначення пп), які можуть бути корисні для статистики або фільтрації цілей в різних контекстах І знову слід зазначити, що виведення дуже підходить для фільтрації за допомогою регулярних виразів

Вам не слід покладатися на зовнішні програми для початкової фільтрації даних зібраних з вашого датчика pflow flowd пропонує широкий спектр фільтрів, які дозволяють зберігати тільки необхідні дані Один з підходів – ввести вираження фільтрації в flowdconf, як показано в наступному прикладі:

logfile &quot/var/log/flowdcompact&quot listen on 19202105:3001

flow source 192021 store SRC_ADDR

store DST_ADDR store SRCDST_PORT store PACKETS

store OCTETS

internalnet = &quot1921681030/24&quot unwired = &quot101681030/24&quot discard src $internalnet

discard dst $internalnet discard src $unwired discard dst $unwired

Ви можете зберігати тільки деякі поля в записах потоку Для прикладу, в конфігурації яка містить тільки один колектор або агент, поле agent не містить ніякої корисної інформації і зберігатися не повинно У цій конфігурації ми будемо зберігати тільки адресу джерела, одержувача, порт, число пакетів і число октетів

Ви можете обмежити збережені дані ще більше Макроси internaknet і unwired розширюються для двох натірованних локальних мереж, а чотири рядки discard наступні за визначенням макросів означають, що flowd відкидає всі дані, одержувані про потоках з будь-яких джерел і призначень у будь-який з цих мереж Результатом стане більш компактний набір даних, що враховує ваші конкретні потреби, і ви будете бачити тільки маршрутизовані адреси та адреси сенсорів зовнішнього інтерфейсу шлюзу:

$ sudo flowd-reader /var/log/flowdcompact | head

FLOW src [19321311271]:38468 dst [192021]:53 packets 1 octets 79

FLOW src [192021]:53 dst [19321311271]:38468 packets 1 octets 126

FLOW src [20091755]:33773 dst [192021]:53 packets 1 octets 66

FLOW src [192021]:53 dst [20091755]:33773 packets 1 octets 245

FLOW src [20091755]:3310 dst [192021]:53 packets 1 octets 75

FLOW src [192021]:53 dst [20091755]:3310 packets 1 octets 199

FLOW src [20091755]:2874 dst [192021]:53 packets 1 octets 75

FLOW src [192021]:53 dst [20091755]:2874 packets 1 octets 122

FLOW src [192021]:15393 dst [1583791134]:123 packets 1 octets 76

FLOW src [1583791134]:123 dst [192021]:15393 packets 1 octets 76

Навіть з опцією-v, висновок flowd-reader показує тільки те, що явно вказано в налаштуванні фільтрації:

$ sudo flowd-reader -v /var/log/flowdcompact | head LOGFILE /var/log/flowdcompact

FLOW src [19321311271]:38468 dst [192021]:53 packets 1 octets 79

FLOW src [192021]:53 dst [19321311271]:38468 packets 1 octets 126

FLOW src [20091755]:33773 dst [192021]:53 packets 1 octets 66

FLOW src [192021]:53 dst [20091755]:33773 packets 1 octets 245

FLOW src [20091755]:3310 dst [192021]:53 packets 1 octets 75

FLOW src [192021]:53 dst [20091755]:3310 packets 1 octets 199

FLOW src [20091755]:2874 dst [192021]:53 packets 1 octets 75

FLOW src [192021]:53 dst [20091755]:2874 packets 1 octets 122

FLOW src [192021]:15393 dst [1583791134]:123 packets 1 octets 76

На щастя, flowd не примушує вас робити застосовувати всі ваші рішення фільтрації в той момент коли колектор отримує потік даних від сенсорів Використання прапора-f дозволить вказати окремий файл із заявами фільтрації на витяг певних даних з великого набору зібраних даних потоку Наприклад, щоб побачити HTTP трафік нашого web-сервера, ви можете написати фільтр, який зберігає

тільки потоки з адреси вашого web-сервера і TCP порту призначення з номером 80, або адреси web-сервера і TCP порту 80 як джерела:

webserver = 19202227 discard all

accept dst $webserver port 80 proto tcp accept src $webserver port 80 proto tcp store RECV_TIME

store SRC_ADDR store DST_ADDR store PACKETS store OCTETS

Припустивши, що ви зберігаєте фільтр в towebserverflowdfilter, ви можете витягти трафік, відповідний вашим критеріям фільтрації з / var / log / flowd:

$ sudo flowd-reader -v -f towebserverflowdfilter /var/log/flowd | tail FLOW recv_time 2011-04-01T21:13:15505524 src [89250115174] dst [19202227] packets 6 octets 414

FLOW recv_time 2011-04-01T21:13:15505524 src [19202227] dst [89250115174] packets 4 octets 725

FLOW recv_time 2011-04-01T21:13:49605833 src [216999653] dst [19202227] packets 141 octets 7481

FLOW recv_time 2011-04-01T21:13:49605833 src [19202227] dst [216999653] packets 212 octets 308264

FLOW recv_time 2011-04-01T21:14:04606002 src [911219414] dst [19202227] packets 125 octets 6634

FLOW recv_time 2011-04-01T21:14:04606002 src [19202227] dst [911219414] packets 213 octets 308316

FLOW recv_time 2011-04-01T21:14:38606384 src [2074619944] dst [19202227] packets 10 octets 642

FLOW recv_time 2011-04-01T21:14:38606384 src [19202227] dst [2074619944] packets 13 octets 16438

FLOW recv_time 2011-04-01T21:15:14606768 src [21318717694] dst [19202227] packets 141 octets 7469

FLOW recv_time 2011-04-01T21:15:14606768 src [19202227] dst [21318717694] packets 213 octets 308278

На додаток до фільтрації продемонстрованої тут, функції фільтрації flowd мають кілька інших варіантів Деякі з цих варіантів здадуться знайомими з інших контекстів фільтрації, таких як PF, включаючи діапазон мережевих параметрів, а інші більше орієнтовані на вилучення даних про потоки відбуваються в певний час або періоди часу Повний опис можна знайти в man flowdconf

Після вилучення необхідних даних, ви можете використовувати деякі інструменти, доступні для обробки і представлення даних

Джерело: Книга про PF, by Peter NM Hansteen, Переклад виконав Михайлов Олексій aka iboxjo

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*