Простий шлюз

  

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

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

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

списках розсилки і групах новин

Роби це просто: як уникнути пасток in, out і onПри конфігуруванні єдиної машини, все виглядає досить простоТрафік який ви створюєте повинен випускатися у зовнішній світ або блокуватися вашими правилами фільтрації і ви самі вирішуєте, що ви хочете впустити до себе з поза При налаштуванні шлюзу пріоритети змінюються Ви переходите від мислення Я тут – мережа там до мислення виду Я той хто вирішує що вирішити для тих хто до мене підключений .

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

в якій ми зацікавлені) – передача трафіку між мережами

Цілком розумно вважати, що, якщо ви хочете дозволити трафік з мережевого зєднання інтерфейсу re1 до хостів на мережевому інтерфейсі re0, вам необхідно правило подібне следующему1

pass in proto tcp on re1 from re1:network to re0:network port $ports keep state

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

1 Насправді зберігання станів є поведінкою за замовчуванням, і є надлишковим, якщо ви працюєте з PF OpenBSD 41 або вище Однак, як правило, немає необхідності видаляти специфікації існуючих правил, з якими ви стикалися при оновленні з ранніх версій Для полегшення переходу, приклади цієї книги згадують про це коли це необхідно

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

pass out proto tcp on re0 from re1:network to re0:network port $ports keep state

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

Якщо є вагомі причини для написання дуже конкретних правил, таких як попередні, ймовірно ви вже знаєте чому потребуєте них До того часу, як ви

закінчите читати цю книгу (а може бути і раніше) ви повинні бути в змозі ясно

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

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

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

pass proto tcp from re1:network to port $ports keep state

Для простих налаштувань, інтерфейсний-повязані правила in і out швидше додадуть більше безладу в ваш набір правил, ніж принесуть користь Для завантажених мережевих адміністраторів легкий для читання набір правил набагато безпечніше У ході решти книги, за невеликим винятком, ми постараємося дотримуватися як можна більш простих правил

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

*

*