План нмв 2004 р. Укладачі

Вид материалаДокументы

Содержание


2.5 Програма netstat
3 Контрольні запитання
4 Домашнє завдання
5 Лабораторне завдання
6 Зміст протоколу
Створення системи обліку трафіка
2.1 Принципи обліку трафіка
2.2 Мова програмування Shell
2.3 Брандмауер firewall
Подобный материал:
1   2   3   4   5

2.5 Програма netstat


Програма netstat надає можливість отримувати інформацію про статистику щодо об’єктів у мережі, яку веде ядро операційної системи. Програма netstat подає відомості про активні сокети, зокрема сокети з доменів inet (AF_INET) та UNIX (AF_LOCAL чи AF_UNIX). Сім’ю протоколів можна зазначити за допомогою опції -d. За умовчанням сервери, сокети яких пов’язано з адресою INADDR_ANY, не виводяться, але цей режим можна вимкнути за допомогою опції -а. Наприклад, команда

$ netstat -f inet

викличе TCP/UDP-сокети; команда

$ netstat -af inet

викличе усі сервери.

Внаслідок цього буде виведено такий рядок:

$ netstat -af inet

Active Internet connections

Proto Recv-Q Send-Q Local Address Foreign Address (State)

tcp 0 0 *.6000 *.* LISTEN

tcp 0 0 *.Smtp *.* LISTEN

·

·

·

udp 0 0 *.udpecho *.*

·

·

·

“LISTEN” в останній колонці означає, що сервер очікує на запит на з’єднання від клієнта.

За допомогою netstat -i можна одержати інформацію про інтерфейси:

$ netstat -i

Name MTU Network Address Ipkts Jerrs Opkts Ocrrs Coll

cd0 1500 00.00.c0.54.5373 40841 0 5793 0 0

cd0 1500 172.30 bsd 40841 0 5793 0 0

tun0* 1500 397 0 451 0 0

tun0* 1500 205.184.142 205.184.142.171 397 0 451 0 0

sl0* 552 0 0 0 0 0

lo0 16384 353 0 353 0 0

lo0 16384 127 local host 353 0 353 0 0


Вочевидь, що в машині bsd сконфігуровано чотири інтерфейси. Перший — ed0 — адаптер мережі Еthernet, який входить до приватної мережі 172.30.0.0. Адреса 00.00.с0.54 73 — перша з МАС-адрес (media access control — контроль доступу до носія) даного мережного адаптера. Через цей інтерфейс пройшов 40841 вхідний пакет та 5793 вихідних. Не було зареєстровано ані помилок, ані колізій. MTU становить 1500 байтів — максимальне значення для мереж Ethernet.

Інтерфейс tun0 — телефонний канал, яким зв’язок здійснюється за протоколом РРР. Він належить до мережі 205.184.142.0. MTU для цього інтерфейсу також становить 1500 байтів.

Інтерфейс sl0 – це телефонний канал, яким зв’язок здійснюється за протоколом SLIP (Serial Line Internet Protocol), котрий використовується надто рідко.


Зворотний інтерфейс — lo0; якщо задати опції -і, -b, -d, то виведеться кількість байтів, які пройшли через інтерфейс в обидва боки, або кількість відкинутих пакетів.

Програма netstat може вивести маршрутну таблицю. Для цього треба призначити опцію -n, щоб отримати ІР-адреси замість символічних імен, наприклад:

$ netstat -rn

Routing tables

Internet:

Destination Gateway Flags Refs Use Netif Expire

Default 163.179.44.41 U6Sc 2 0 tun0

127.0.0.1 127.0.0.1 UH 1 34 lo0

163.179.44.41 205.184.142.171 UH 3 0 tun0

172.30 link#1 UC 0 0 ed

172.30.0.1 0:0:c0:54:53:73 UHLW 0 132 lo0


У першій колонці розміщено пункт призначення маршрута; це може бути конкретний хост, мережа чи то маршрут за умовчанням.

У колонці Flags виводяться різні прапорці, більша частка з яких залежить від реалізації:

U – маршрут задіяно (“UP”);

H – маршрут до хосту; якщо цей прапорець відсутній, йдеться про маршрут до мережі (чи підмережі);

G – непрямий маршрут, тобто пункт призначення не позв’язано безпосередньо з даним хостом, до нього треба діставатися через шлюз.

Прапорець Н зазначає, що адреса у першій колонці є повною ІР-адресою хосту; якщо прапорець Н відсутній, то ідентифікатор хосту в цій колонці відсутній, а отже, він – адреса мережі. Прапорець G позначає, чи можна досягти адреси, зазначеної в першій колонці, безпосередньо з даного хосту чи необхідно пройти через проміжний маршрутизатор. Можливо, що в певному випадку водночас буде проставлено обидва прапорці, це означатиме, що один з хостів виступає в ролі шлюзу щодо іншого. Вміст колонки Gateway залежить від того, чи є в ній прапорець G. Якщо маршрут є непрямий (прапорець G є), то в колонці Gateway міститься ІР-адреса наступного шлюзу. Якщо прапорця G немає, то виводиться інформація про те, як досягти безпосередньо під’єднаного пункту призначення. У більшості реалізацій це є завжди ІР-адреса інтерфейсу, до якого під’єднано пункт призначення; це може бути також МАС-адреса: в такому разі встановлюється прапорець L.

Колонка Refs вміщує лічильник надсилань на маршрут, тобто кількість активних користувачів цього маршруту.


Колонка Use зазначає, скільки пакетів було передано цим маршрутом, а колонка Netif вміщує ім’я асоційованого мережного інтерфейсу.

Перший рядок у видаванні програми описує маршрут за умовчанням. Саме ним передаються дейтаграми, коли в маршрутній таблиці немає більш точного маршрута. Шлюз для цього маршрута має адресу 163.179.44.41, куди й надсилається дейтаграма. Рядок 3 зазначає, що є прямий маршрут до хосту 163.179.44.41, а надсилати йому дейтаграми слід через інтерфейс з ІР-адресою 205.184.142.171. Рядок 2 у видаванні — це маршрут для зворотньої адреси (127.0.0.1). Оскільки це адреса хосту, — встановлюється прапорець Н. Оскільки хост під’єднано безпосередньо, то встановлено й прапорець G. У колонці Gateway присутня адреса інтерфейсу lo0. У рядку 4 зазначено маршрут до локальної мережі Ethernet. У колонці Gateway розміщено рядок Link#1, що свідчить про те, що на машині bsd встановлено ОС BSD. У решті систем було б зазначено ІР-адресу інтерфейсу, підімкненого до локальної мережі (172.30.0.1).

За допомогою програми netstat можна отримати статистику протоколів (рис. 2.8). За наявності опції -i netstat видає статистичні дані за протоколами IP, ICMP, IGMP, UDP та ТСР. За допомогою опції -p протокол можна обрати. Наприклад, для отримання статистики за протоколом UDP треба ввести команду:


# netstat -sp udp

udp:

82 дейтаграми отримано

0 з неповним заголовком

0 з помилковим значенням у полі довжини даних

0 з помилковою контрольною сумою

1 відкинуто через відсутність сокета

0 відкинуто широкомовних/групових дейтаграм через відсутність сокетів

0 відкинуто через переповнення буфера сокета

0 не для хешованого блока керування протоколом

81 доставлено

82 відправлено дейтаграм

Нижче наведено результати видавання 45 покажчиків при запусканні netstat -ssp tcp:


tcp:

446 пакетів надіслано

190 пакетів даних (40474 байти)

213 пакетів, що вміщують лише ack (166 відкладених)

18 пакетів з оновленням вікна

32 контрольних пакети

405 пакетів прийнято

195 ack (на 40488 байтів)

12 повторних ack

302 пакети (211353 байти) отримано по порядку

10 пакетів – повних дублікатів (4380 байтів)

22 пакети не за порядком (16114 байтів)

2 пакети з оновленням вікна

20 запитів на з’єднання

2 приймання з’єднання

13 з’єднань встановлено (разом з прийнятими)

22 з’єднання закрито (разом 0 скинутих)

3 з’єднання за вимкнення оновили RTT в кешу

3 з’єднання за вимкнення оновили дисперсію RTT в кешу

2 ембріональних з’єднання скинуто

193 сегменти оновили rtt (з 201 спроб)

31 правильне передбачення заголовка ack

180 правильних передбачень заголовка пакета з даними


Рисунок 2.8 — Інформація про статистику протоколів


Ця статистика отримана після перезавантаження машини bsd і наступного надсилання та отримання кількох повідомлень електронною поштою, а також читання кількох телеконференцій; з 405 отриманих пакетів 10 – дублікати, а 22 надійшли поза чергою.


3 Контрольні запитання


1 За яким принципом перевіряє утиліта ping наявність зв’язку поміж двома хостами?

2 На рівні якого протоколу працює утиліта ping?

3 Яку інформацію про стан мережі виводить ping?

4 Які дослідження в мережі можна виконувати за допомогою програми traceroute?

5 За яким алгоритмом працює програма traceroute?

6 За допомогою якої функції програма traceroute виявляє ім’я маршрутизатора?

7 Для яких цілей використовується програма ttcp?

8 Які опції програми ttcp можна встановлювати та з якою метою?

9 Як залежить час передавання даних від розміру буфера?

10 З якою метою використовується програма tcpdump?

11 Які права доступу треба мати, щоби запустити програму tcpdump?

12 Яку інформацію виводить tсpdump при трасуванні за протоколами DNS та TCP?

13 Про які логічні об’єкти в мережі надає інформацію програма netstat?

14 Як побудувати схему маршрута за маршрутною таблицею?

15 Як оцінити продуктивність мережі за допомогою програми ttcp?


4 Домашнє завдання


1 Дайте короткі письмові відповіді на контрольні запитання.

2 Складіть план моніторингу мережі за допомогою програм ping, traceroute, ttcp, tсpdump, netstat за максимумом параметрів.


5 Лабораторне завдання


1 За допомогою утиліти ping перевірте наявність зв’язку поміж Вашим хостом та хостами в мережах з адресами, які задає викладач.

2 Наведіть результати “пінгування”, зробіть висновки щодо завантаження мережі та втрачання пакетів.

3 Запустіть програму traceroute, без опцій та з опцією -s. Наведіть результати, відзначте різницю поміж маршрутами для обох випадків.

4 Наведіть структуру мережі академії за результатами виконання програми traceroute.

5 Запустіть програму ttcp з необхідними опціями для оцінювання продуктивності мережі:

$ ttcp -rsv на першому терміналі

$ ttcp -tsv bsd на другому терміналі

6 Наведіть результати щодо продуктивності мережі та видавання програми.

7 Отримайте у викладача права на доступ на запускання програми tcpdump й запустіть її.

8 Оцініть розмір сегментів, які надсилає TCP.

9 Запустіть приймач без змін, а в джерелі на другому терміналі змініть розмір буфера передавання сегмента на той, що його було отримано в пункті 8, наприклад

$ ttcp -tsvb 1448 bsd

10 Наведіть видавання програми та результати вимірювання часу на передавання. З’ясуйте можливі причини зростання цього часу.

11 Виконайте програму tcpdump й зверніть увагу на час поміж послідовними сегментами.

12 Вимкніть алгоритм Нейгла за допомогою опції -D та повторіть експеримент:

$ ttcp -tsvDb 1448 bsd

13 Переконайтесь у причинах зростання часу передавання та зробіть висновки щодо цього.

14 Запустіть програму netstat з різними опціями:

-f, -a, -i.

15 Для кожного випадку наведіть приклад видавання програми й надайте пояснення даним у колонках та ситуації в цілому.

16 Вдруге перевірте за результатом виконання пункту 15 правильність побудованої Вами структурної схеми мережі академії.

17 За допомогою програми netstat з опціями -ssp, наприклад для протоколу UDP, оцініть статистику та зробіть висновки щодо надісланих та прийнятих пакетів.

18 Повторіть пункт 5.17 для протоколу TCP та зробіть висновки.


6 Зміст протоколу


Протокол лабораторної роботи “Інструменти та ресурси налагодження мереж та мережних додатків” має містити назву лабораторної роботи та її мету: результати виконання домашнього завдання згідно з вимогами розділу 4; результати виконання пунктів 1...18 розділу 5; висновки; структурну схему мережі академії.


7 Список рекомендованої літератури


1 Робачевский А. М. Операционная система UNIX. — СПб.: БХВ-Петербург, 2002.

2 Ивановский С. Операционная система UNIX. — М.: Познавательная книга плюс, 2000.

3 Дегтярев Е. К. Введение в UNIX. — М.: МП "Память", 1991.

4 Снейдер И. Эффективное программирование TCP/IP. — СПб.: Питер, 2002.

5 sd.org.ru

6 ntern.com/computer/freebsd/

7 rsp.ru/freebsd/


Лабораторна робота № 19


СТВОРЕННЯ СИСТЕМИ ОБЛІКУ ТРАФІКА


1 Мета роботи


Метою роботи є вивчення принципів обліку трафіка, принципів побудови системи безпеки firewall, а також ознайомлення зі створенням програмного забезпечення мовами програмування Shell та AWK.


2 Ключові положення


2.1 Принципи обліку трафіка


У сучасних системах телекомунікацій для обліку активності абонентів використовується поняття трафіка. Трафік — це кількість переданих та прийнятих байтів. Інформацію про стан трафіка можна оцінювати в такий спосіб: за допомогою системної програми захисту firewall, використовуючи опції count, ipfw та iptables, аналізуючи мережні протоколи netflaw, radius тощо. Отримана інформація далі зберігається в спеціальних базах даних MySQL, Oracle. Найпростішим засобом оцінювання трафіка є використання програм firewall з опціею count.


2.2 Мова програмування Shell


2.2.1 Структура команд


Мова командного інтерпретатора Shell (у перекладі мушля) фактично є мовою програмування надто високого рівня. Цією мовою користувач здійснює керування комп’ютером. Зазвичай після входження до системи користувач розпочинає взаємодіяти з командною оболонкою. Ознакою того, що оболонка shell готова до приймання команд, є видаване на екран запрошення, найчастіше за все це є знак “$”.

Shell не є виключно застосовуваною командною мовою ОС UNIX, хоча саме вона стандартизована у межах POSIX 1003.2 – стандарту мобільних систем; вельми часто зустрічаються мови Cshell, Kshell, Bashell тощо. Окрім того, кожен користувач може створити свою командну мову, а на одній ОС можна працювати з різними командними мовами. Якщо, наприклад, підготувати в редакторі ee файл “fl”

echo Hello!

то це буде звичайний текстовий файл, який вміщує команду echo, яка за виконання виводить на екран все написане праворуч від неї. Можна зробити файл “fl” виконуваним за допомогою команди chmod 755 fl, й виконати, якщо викликати команду інтерпретатора shell:

sh fl або sh < fl

Файл можна виконати у поточному екземплярі “shell” за допомогою команди ./fl (якщо файл має право на виконання — біт х).


2.2.2. Структура команд


Команди у shell мають зазвичай такий формат:

<ім’я команди> <прапорці> <аргументи>

Наприклад, ls – FA /usr/bin

ls — ім’я команди видавання вмісту директорії

FA — прапорці (“_” — ознака прапорців, F (file) — показ файлів, A (aplication) — додатки).

/usr/bin — директорія, для якої виконується команда.

Команда на екрані в довгому форматі вміщує директорію /usr/bin та додає інформацію про розмір кожного файла в блоках.

Форма подання команд може змінюватись залежно від команди: не завжди перед прапорцями ставиться ”-“ , не завжди прапорці йдуть одним словом; різноманітним є також подавання аргументів. До таких команд можна віднести команди сс, tar, dd, find тощо.

Зазвичай, перше слово, тобто послідовність символів до прогалини табуляції або кінця рядку, shell сприймає як команду, тому, наприклад, cat cat розкодовується як конкатенація “cat” (перше слово), яка видає на екран файл з ім’ям “cat” (друге слово), який перебуває в поточній директорії.


2.2.3 Групування команд


Засоби групування — ; та <переведення рядка> визначають послідовне виконання команди:

s – асинхронне (фонове) виконання попередньої команди;

fs – виконання наступної команди за умови ненормального завершення попередньої, інакше — ігнорувати.

При виконанні команди в асинхронному режимі на екран виводиться номер процесу, відповідний виконуваній команді, після чого система запускає фоновий процес — і знову розпочинає діалог з користувачем.

Для групування команд можуть використовуватись дужки “{}” та “()”, наприклад:

k1fs{k2; k3},

тут команди k2 та k3 виконуватимуться лише за успішного завершення k1.

За групування команд k1 та k2 як

{k1; k2}s

у фоновому режимі виконуватиметься їхня послідовність.

Фонові процеси надто складно знищувати, оскільки традиційна команда знищення CTRL/C перериває лише процеси переднього плану. Для знищення фонового процесу треба знати його ідентифікатор (PID). Під час запускання фонового процесу на екран подається його PID, але якщо потім останній забули чи загубили, то треба перевірити, закінчився процес чи ні, за допомогою команди

ps – aux

можна отримати перелік усіх ідентифікаторів, імена користувачів, поточний час, який витратили процеси, тощо.

У видаванні команди ps можна віднайти номери процесів, які треба знищити, наприклад 849, 866; треба вжити команду

kill -9 849 866

– і процеси знищуються. Неодмінним є збіг імені користувача та імені власника знищуваних процесів або наявність імені привілейованого користувача.


2.2.4 Переспрямовування команд


Стандартне введення (вхід) – stdin у ОС UNIX – здійснюється з клавіатури термінала, а стандартне виведення – stdout – спрямовується на екран термінала. Існує також стандартний файл діагностичних повідомлень stderr.

Команда, яка може працювати зі стандартними введенням та виведенням, називається фільтром. Користувач має зручні засоби переспрямовування введення та виведення на інші файли чи пристрої. Символи > та >> зазначають наявність переспрямовування виведення, наприклад команда

es > fl

формує перелік файлів поточного каталога й розміщує його у файл fl замість виведення на екран. Якщо файл fl вже існує, його буде заміненено на новий. У разі використання команди

pwd >> fl

буде сформовано повне ім’я поточного каталога й розміщене наприкінці файла fl, якщо він не є порожній. Символи < та << означають переспрямовування. Команда

wc – l
підраховує та видає на екран кількість рядків у файлі fl.

Команда

ed f2 <
створює файл f2 безпосередньо з термінала за допомогою редактору. Завершення введення визначається за наявності символу, який стоїть праворуч від <<, тобто ! ; введення буде завершено, коли першим у наступному рядку буде !.

Можна комбінувати переспрямовування команд

wc – l < f3 > f4 та wc – l > f4 < f3

Вони виконуються однаково: підраховується кількість рядків файла f3, а результат розміщується в файлі f4.

Засіб, який об’єднує стандартний вихід однієї команди зі стандартним входом другої, називається конвеєром й позначається у такий спосіб: , наприклад, команда

ls  wc – 1

спрямовує список файлів поточного каталога на вхід команди wc, яка виводить на екран кількість рядків каталога; конвеєром можна об’єднувати понад дві команди, якщо всі вони, окрім першої та останньої, є фільтри:

cat f1  grep –h result | sort | cat –b > f2

Даний конвеєр з файла f1 (cat) обирає всі рядки, які вміщують слово “result” (“grep”), відсортовує (“cat –b”) та виводить результат у файл f2.


2.3 Брандмауер firewall


2.3.1 Можливості IPFW


Для захисту мережі використовуються спеціалізовані сервери – брандмауери, з яких найбільш надійними є програми firewall. У ОС FreeBSD інтерфейс для керування firewall має назву IPFW, окрім того, firewall має опції обліку трафіка та обмеження швидкості dumnunet; конфігурування брандмауера здійснюється за допомогою списку нумерованих правил:
  1. Брандмауер перевіряє за цими правилами кожний вхідний та вихідний пакети, доки не буде віднайдено відповідне до нього правило.
  2. Пакети може бути введено до брандмауера відповідно до правила повторно, залежно від характеру дії, яка визначає це правило, а також від системних налагоджувань.
  3. Усі правила є чинними для всіх мережних інтерфейсів, тому системний адміністратор має так записати встановлення правил, щоби шлях перевірки був мінімальним.

Конфігурування завжди вміщує правило за умовою (DEFAULT rule, номер 65535), яке не можна потім змінити, тому що воно використовується для всіх типів пакетів. Це правило може або дозволяти все, або забороняти все, залежно від конфігурації системного ядра, якщо налагодження вміщує одне або більше правил в собі зі збереженням стану або обмеженням опцій, тобто ipfw створюватиме динамічні правила, відповідні до точних параметрів (адреси порту) пакета, доки консенсу не буде віднайдено. Ці динамічні правила мають необмежений час життя й перевіряються за першого входження; правила cheek-state (перевірка наявності динамічних правил) або keep-state (правила стають статичними й зазвичай використовуються брандмауером за вимогою й лише для бажаного трафіка).

Усі правила, так само й динамічні, мають кілька пов’язаних лічильників для підраховування пакетів, кількості байтів, реєстрації підрахунків та timestamp – реєстрації часу.

Лічильники можуть відбиватись або скидатись командами ipfw.

Правила можуть додаватися командою add, вилучені індивідуально – за допомогою команди delete, а також глобально (усі разом) за допомогою команди fluch (скидання); правила можуть виводитись на екран за оцінками разом із вмістом лічильників за допомогою команд list. Лічильники відновлюються за допомогою команд zero або resetlog.

Припустимими є опції до команд ipfw:

-а — при друкуванні зазначаються значення лічильників;

-d — при друкуванні на доповнення до статичних правил виводяться динамічні правила;

-е — при друкуванні, якщо зазначено опцію d, додатково зазначаються прострочені динамічні правила;

-f — заборона запиту на потвердження для команд, яка може спричинити проблему, якщо неправильно використовуються.

Доступ до консолі треба відновлювати у таких випадках:

-t — при друкуванні зазначити відповідний timestamp;

-n — перевіряти відповідність імені та адреси при введенні;

-s — [fild] при друкуванні каналів розподіляти, що згідно з одним з чотирьох лічильників (підраховують поточні пакети чи байти).

З метою спрощення конфігурування правила може бути переміщено до файла, якого опрацьовано ipfw. При цьому повинен використовуватись абсолютний шлях. Файл читатиметься рядок за рядком, які можуть застосовуватися як аргументи для ipfw. Опційно може бути зазначено, використовуючи – preproc, де pathname має бути наскрізним канальним. Сучасні препроцесори включають в себе cpp та m4. Якщо preproc не запускається з прямим слешем (“/”), то його першим символом виконується звичайний пошук шляху. Слід дотримуватися обережності з preproc у системах, де не всі файлові системи змонтовано на мить запуску ipfw або ж він перебуває в файловій системі NFS. Параметр -p, а також наступні за ним (опційно) -D та -U можуть також передаватися препроцесорові. Це дозволяє створити гнучкий конфігураційний файл – подібно до конфігурування локального імені хоста й, використовувати макроси для централізованого конфігурування, подібно до IP-адреси.


2.3.2 Формат правил IPFW


Загальний вигляд формату правил ipfw є такий:

[prob match probability] action [log[logamout number]] proto from src tu dst [interface – spec] [options]

Кожен пакет може бути відсортировано на підставі інформації, пов’язаної із :

-інтерфейсом приймання/передавання (за іменем чи адресою);

-інтерфейсом приймання/передавання (вхідні та вихідні) (можлива маска);

-ip-адресою джерела до отримувача (IP,TCP, UDP, ICMP);

-портами джерела та отримувача (список, діапазон або маска);

-протоколом;

-портами джерела або отримувача;


prob match probability (0:1)


Число з плаваючою точкою (від 0 до1 ) – вказівка відповідної ймовірності. Це може бути корисним для низки додатків типу випадкового зниження доставки пакета або (у відповідності до концепції віртуальної мережі dummynet) для модулювання багатокількісних шляхів інтервалу, який спричинює ушкодження доставленим пакетам.

Allow – дозволяє пакетам, відповідним даному правилу, закінчити перевірку; аналогами є pass (пропустити), permit (дозволити) та accеpt (прийняти).

Deny – відкидає пакети, відповідні даному правилу; зупиняє пошук; drop – аналог deny.

Reject – (deprecated, засуджений) – відкидає пакети, відповідні даному правилу й надсилає ICMP - повідомлення, яке перевіряє хост на досяжність; закінчує перевірку.

Unreach code – відкидає пакет, відповідний даному правилу, й надсилає ІСМР - повідомлення про недосяжність хоста з кодом code, де code – число від 0 до 225 або один з наступних псевдонімів (кодових слів), net (мережа), host (хост), protocol (протокол), port (порт), needfrag (необхідний фрагмент), scrfail (збій джерела), net – unknown (мережа невідома), host – unknown (хост невідомий), isolated (ізольований), net – prohib, host – prohib, tosnet, toshost, filter – prohib, host – precedence, (домінування хосту) або precedence – cutoff (домінування зупину); завершує перевірку.

Reset – лише для пакетів tcp; відкидє пакети, відповідні даному правилу, та надсилає TCP reset (RST) повідомлення.

Count – модифікація лічильників для всіх пакетів, відповідно правилу; перевірка продовжується із наступного правила.

Check – state – перевіряє пакет на приналежність до динамічних правил; якщо приналежність віднайдено – перевірка зупиняється, або ж виконується перехід до наступного правила; якщо ж жодного правила check-state віднайдено не було, динамічні установки перевіряються до першого правила keep-state.

Divert port – переадресовування пакетів, відповідних даному правилу, на divert граничне вікно в порт (port); перевірка завершується.

Tee port – надсилання копій пакетів, відповідних даному правилу, на divert port-граничне вікно в порт (port); перевірка закінчується; оригінал пакета приймається.

Fwd ipaddr [,port] – змінити next-hop (наступний стрибок) для відповідних пакетів на IP-адресу ipaddr, яка може бути IP-адресою в точково-десятковій нотації чи іменем хоста. Якщо IP-адреса ipaddr відсутня в безпосередньо підімкненій до хосту мережі, то маршрут визначається за локальною таблицею маршрутизації відповідної IP-адреси, яка використовувалась замість нього. Якщо IP-адреса ipaddr є локальна, то здійснюється введення пакета в систему з віддаленого хоста й спрямовування його до порту port на локальній машині. Локальна ІР-адреса сокета зберігається та встановлюється вихідна ІР-адреса для пакета, який був адресатом; це призначено для роботи з прозорими проксі-серверами. Якщо ІР-адреса ipaddr не є локальною, то номер порту (якщо його зазначено) ігнорується й правило застосовується щодо пакетів, відправлених з системи; це також відбиває адреси до локальних портів, якщо пакети згенеровано локально. Перевірка завершується, якщо є відповідність цьому правилу; якщо номер порту не задано, то його в пакеті зазначається в такий спосіб, щоби пакет для порту зовнішнього хосту Y було відправлено до локального порту Y; системне ядро має бути скомпільовано з опцією IPFIREWALL_FORWARD.

Pipe pipe nr – пропустити пакет через dummynet (фіктивну мережу) “pipe” з певними параметрами – смуга пропускання, затримка тощо; пошук заквершується, але якщо змінну sysctl net.ionet.ip.fw.one pass не встановлено, то пакети знову проходять через брандмауер з перегляданням наступного правила.

Queue queue_nr – пропустити пакет за правилами dummynet “queue”, черга номер queue_nr ( для смуги пропускання, обмеженої з використанням WF2Q).

Skipto number – послідовно пропустити всі правила з номерами, меншими, аніж number, пошук продовжується з першого правила, номер котрого є більший, аніж number Log [logamount number].

Якщо ядро було скомпільовано з IPFIREWALL_VERBOSE та коли пакет є відповідний даному правилу з ключовим словом log, повідомлення буде записано до журналу syslogd засобом LOG_SECURITY; примітка: за замовчуванням вони додаються до файла /var/log/sequrity; якщо ядро скомпільоване з опцією IPFIREWALL_VERBOSE_LIMIT, то за замовчуванням запис до журналу припиниться після числа пакетів, зазначених в опції та отриманих для цього конкретного кола входу й значення змінної net.inet.ip.fw.verbose_limit буде встановлено це число; але якщо використовується опція logamount number, буде встановлено значення менше, аніж net.inet.ip.fw.verbose_limit, а значення 0 знімає обмеження, очищуючи при цьому лічильник пакетів, після чого можна знову надавати можливість реєстрування; реєстрування через консоль і встановлення динамічної межі виконуються завдяки програми sysctl та грунтується на MIB змінній net.inet.ip.fw.

proto — ІР-протоколи, які визначаються іменем чи номером (повний список наиведеной в файлі /etc/protocols ); ip або ключове слово all вказує на відповідність всім протоколам.


scr и dst:

any | me | [not] address / mask [ports].

Ключове слово any вказує на відповідність будь-якій ІР-адресі; ключове слово me вказує на відповідність будь-якій ІР-адресі, привласненій конфігурованій системі.


address/mask може бути визначено в такий спосіб:

ipno – ІР-адреса у точково-десятковій нотації (192.168.0.2), вказує на конкретний комп’ютер у мережі;

ipno/bits — ІР-адреса з маскою (довжиною мережної частини) у вигляді 1.2.3.4/24; у цьому разі будуть підходитимуть всі ІР-адреси від 1.2.3.0 до 1.2.15.225;

inno/mask – IP-адреса з маскою у вигляді 1.2.3.4:255.255.240.0; в цьому записі вказується на відповідність всім ІР-адресам від 1.2.0.0 до 1.2.15.225.

Зміст відповідності може бути інвертовано, для чого використовується модифікатор not перед адресою; при цьому встановлюється відповідність всім адресам, які не потрапляють до зазначеного діапазону.

З протоколами ТСР та UDP опційно може зазначатись порт.