Оптимізація набору правил PF

                                                   Опція ruleset-optimization включає або встановлює режим для оптимізатора набору правил За замовчуванням настройка для ruleset-optimization  в OpenBSD 41 еквівалентна none, Що означає, що набір правил, який звантажено не оптимізований У OpenBSD

42 і далі, за замовчуванням є основним, а це означає, що, коли набір правил завантажений, оптимізатор робить наступні речі:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Видаляє дублюються правила

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Видаляє правила, які є підмножиною інших правил

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Здійснює злиття в таблицях при необхідності (типовеrule-to-table

оптимізують пропускають, перенаправлення або блокуючі правила

засновані на ідентичних критеріях крім джерела та / або цільових адрес)

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Змінює порядок правил підвищуючи продуктивність

Наприклад, скажімо ви має макрос tcp_services = {ssh, www, https} комбінований з правилом pass proto tcp from any to self port $ tcp_services В іншому місці набору правил, у вас є інше правило, яке говорить pass proto tcp from any to self port ssh Друге правило явно є підмножиною першого, а значить вони можуть бути обєднані в одне Інша поширена комбінація маємо pass rule like pass proto tcp from any to int_if: network port $ tcp_services з якимось ідентичним правлю, де цільові адреси знаходяться в тому ж діапазоні, що і всі в int_if сетіС встановленим  ruleset- optimization, Оптимізатор аналізує завантажений набір правил по відношенню до фактичного мережному трафіку з метою визначення оптимального порядку та швидкості правил

Ви також можете встановити значення опції оптимізації з командного рядка з pfctl:

$ sudo pfctl -o basic

Цей приклад включає оптимізацію набору правил в режим basic

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

ОптимізаціяОпція optimization визначає профілі для обробки стану тайм-аутів Можливі значення: normal, high-latency, satellite, aggressive, conservation Рекомендується мати за замовчуванням у значенні normal, якщо у вас дуже специфічні потреби Значення high-latency і satellite є синонімами, де стану закінчуються більш повільно, щоб компенсувати потенційно стан high-latency А установка aggressive стану закінчуються раніше, щоб зберегти память Це може, в принципі, підвищувати ризик відкидання простоюють-но-дійсних зєднань, якщо ваша система близька до межі навантаження трафіку, але неофіційні дані показують, що налаштування aggressive оптимізації рідко, якщо взагалі використовується, перешкоджає дозволеному трафіку

Установка сonservative призначена для того, щоб зберегти стану простоюють зєднань, за рахунок деякого додаткового використання памяті

Фрагментарна збіркаОпція fragment reassembly связаная з відміною була значно перероблена в OpenBSD 46, введення нового набору збірки, можливість включити або виключітьсборку фрагментованих пакетів За замовчуваннямset  reassemble  on, Що означає фрагменти зібрані і зібрані пакети де, немає фрагментированного біта були

встановлені в окремі фрагменти, які матимуть очищений біт

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

для «гігієни мережі», тому, що вони дезінфікують значну частину мережі

Нормалізація пакета зі скрабомУ PF до версії OpenBSD 45 включно, ключове слово scrub активує нормалізацію мережевої Трафка Зі скрабом, фрагментовані пакети будуть зібрані, а недійсні фрагменти такі як перекриваються фрагменти видаляються, так

що в результаті пакет, є повним і недвозначним

Включення srub надає заходи по захисту від певних видів атак, заснованих на неправильній обробці фрагментів пакетов1 Кількість доповнюють варіантів, але

найпростіша форма підходить для більшості конфігурацій

scrub in

Для того, щоб деякі сервіси працювали зі скрабом, повинні бути встановлені конкретні параметри Один з часто цитованих прикладів деякі NFS реалізації, які не будуть працювати з скрабом взагалі, якщо ви використовуєте не-df параметр, щоб очистити нефрагментовані біт в будь-яких пакетах, які мають встановлений біт Деякі комбінації сервісів, ОС і мережевих конфігурацій може потребувати в деяких більш екзотичних опціях скрабу

У OpenBSD 46, скраб був знижений з матеріалу автономних правил, щоб зробити чинним ви могли б прикріпити, щоб передавати або відповідати правилам

(Введенням відповідності є одним з основних нових функцій PF в OpenBSD 46)

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

match in all scrub (no-df max-mss 1440)

Це очищає нефрагментовані біт і встановлюємо максимальні розмір сегмента в 1440 байт

Інші варіанти теж можливі, і навіть якщо список варіантів скрабу дещо скоротилися у версії OpenBSD 46, ви повинні мати можливість для задоволення

різних специфічних потреб, перегляньте сторінки man і зробіть

кілька експериментів Якщо вам знадобиться для налагодження проблеми повязаної тісно з скрабом, вивчітьpfconf   man сторінку і проконсультуйтеся з гуру за відповідними списками розсилки

Джерело: Книга про 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>

*

*