Брандмауер у разі моста

                                                      Ethernet   містскладається з двох або більше інтерфейсів сконфигурированних відповідно Ethernet фреймами прозоро, і які видимі не безпосередньо, а через кілька верхніх шарів, таких як TCP / IP стек У контексті фільтрації, конфігурація моста часто вважають привабливою, оскільки це означає, що фільтрація може бути виконана на машині, яка не має свого власного IP адреси Якщо на машині, про яку йде мова, запущена OpenBSD або настільки ж здатна операційна

система, вона все ще може фільтрувати і перенаправляти трафік

Головна перевага такої установки це те, що атака брандмауера сама по собі більш сложна5 Недоліком є ​​те, що всі адміністративні завдання повинні виконуватися на консолі брандмауера, якщо ви налаштували мережевий інтерфейс доступний через якусь захищену мережу, або навіть послідовну консоль Це також випливає, що мости без налаштованих IP адрес не можуть бути встановлені в якості шлюзу для мережі і не може запускати будь-які інші служби на інтерфейсі моста Скоріше, ви можете подумати про міст як інтелектуальної опуклість на мережевому кабелі, яка може фільтрувати і перенаправляти Кілька основних застережень поширюється на використання брандмауерів реалізованих у вигляді мостів:

·&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 Мости працюють на рівні Ethernet, і за замовчуванням, пропускають всі типи

пакетів, а не тільки TCP / IP

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Відсутність IP адреси на інтерфейсах робить деякі з більш ефективних функцій, таких як CARP, недоступними

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

Базова настройка моста на OpenBSDGENERIC ядро ​​OpenBSD містить весь необхідний код для конфігурування моста і фільтрації на ньому Якщо ви зібрали ядро ​​без коду моста, установка досить проста

Зауваження:

На OpenBSD 47і більш підніми версіях, beconfig команда більше не існує Вся конфігурація моста і повязані з ними функції були обєднані в ifconfig для релізу OpenBSD 47

Для установки моста з двома інтерфейсами в командному рядку, необхідно спочатку створити пристрій моста Першому пристрою прийнято давати порядковий номер 0, тому ми створюємо bridge0 пристрій за допомогою наступної команди:

$ sudo ifconfig bridge0 create

Перед наступною командою ifconfig (brconfig на OpenBSD 46 і більш ранніх версіях) використовується ifconfig для перевірки що перспективний інтерфейси (в нашому випадку, ep0 і ep1) піднялися, але не призначені IP адреси Потім налаштуйте міст, ввівши наступне:

$ sudo ifconfig bridge0 add ep0 add ep1 blocknonip ep0 blocknonip ep1 up

На OpenBSD 46 і більш ранніх версіях введіть це:

$ sudo brconfig bridge0 add ep0 add ep1 blocknonip ep0 blocknonip ep1 up

OpenBSD команда ifconfig (brconfig на OpenBSD 46 і більш ранніх версіях) містить біт фільтрації в самому коді У цьому прикладі ми використовуємо blocknonip опцію для кожного інтерфейсу, щоб блокувати весь НЕ IP трафік

Зауваження:

OpenBSD ifconfig команда пропонує свої власні опції фільтрації на додаток до інших функцій конфігурації Bridge (4) і ifconfig (8) man сторінки надають більше інформації Так як вони діють на уровене Ethernet, можна використовувати ifconfig, щоб вказати правила фільтрації, які дозволяють мосту фільтрувати по МАС адресами Використовуючи ці можливості фільтрації, також можливо, тегованих пакети моста для подальшої обробки в ваших PF правилах через ключове слово tagged Для тегірованія цілей, міст повинен бути з одним з членів інтерфейсів Ця функціональність і ключові слова були також представлені в brconfig (4) в OpenBSD 46 і більш ранніх версіях

Щоб зробити конфігурацію постійної, створіть або відредагуйте / etc / hostnameep0 і введіть наступний рядок:

up

Для інших інтерфейсів, / etc/hostnameep1 повинні містити ту ж рядок:

up

Нарешті, введіть настройки моста в / etc/hostnamebridge0 (/ etc/bridgenamebridge0 на OpenBSD 46 і більш ранніх версіях):

5 Наскільки безпечно це насправді нагадує про випадкових гарячих суперечках в списках розсилки, таких як OpenBSD-misc та інших орієнтованих на мережу списках Читання про плюси і мінуси в сприйнятті основних розробників OpenBSD може бути як захоплюючим, так і корисним

add ep0 add ep1 blocknonip ep0 blocknonip ep1 up

Ваш міст повинен зараз бути піднятий, і ви може продовжувати створювати правила фільтрації PF

Базова настройка моста на FreeBSDДля FreBSD процедура трохи складніша ніж на OpenBSD Для того, щоб було можливо використовувати міст, ваше працююче ядро ​​має включати в себе модуль if_bridge Конфігурація ядра за замовчуванням зібрана з цим модулем, так за звичайних обставин, ви можете перейти безпосередньо до створення інтерфейсу Для компіляції пристрої моста в ядрі, додайте наступний рядок у файл конфігурації ядра:

device if_bridge

Ви також можете завантажити пристрій під час завантаження додавши наступний рядок в / etc / loaderconf файл

if_bridge_load=&quotYES&quot

Створіть міст ввівши це:

$ sudo ifconfig bridge0 create

Створення bridge0 інтерфейсу також створюється установкою повязаної з мостом sysctl значення:

$ sudo sysctl netlinkbridge netlinkbridgeipfw: 0 netlinkbridgepfil_member: 1 netlinkbridgepfil_bridge: 1 netlinkbridgeipfw_arp: 0 netlinkbridgepfil_onlyip: 1

Слід перевірити, щоб ці sysctl значення були доступні Якщо вони є, це підтвердження того, що міст був включений Якщо це не так поверніться назад і подивіться, що пішло не так і чому

Зауваження:

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

Перед наступною командою ifconfig, переконайтеся, що перспективні інтерфейси (в нашому випадку, ep0 і ep1) працюють, але не були призначені IP адреси, а потім налаштуйте міст, ввівши наступне:

$ sudo ifconfig bridge0 addm ep0 addm ep1 up

Зробіть конфігурацію постійної, додавши наступні рядки в / etc / rcconf:

ifconfig_ep0=&quotup&quot ifconfig_ep1=&quotup&quot cloned_interfaces=&quotbridge0&quot ifconfig_bridge0=&quotaddm ep0 addm ep1 up&quot

Це означає, що ваш міст працює, і ви можете продовжувати створення правил фільтрації PF Подивіться if_bridge (4) man сторінку для подальше конкретної інформації про міст в FreeBSD

Базова настройка моста на NetBSDУ NetBSD, в конфігурації за замовчуванням немає підтримки фільтрації моста Ви повинні скомпілювати ядро ​​з наступного опцією доданої в файл конфігурації ядра Якщо у вас є нове ядро ​​вставте код моста в місце, установка досить проста

options        BRIDGE_IPF     # bridge uses IP/IPv6 pfil hooks too

Створити міст з двома інтерфейсами в командному рядку, першого створюється пристрій bridge0:

$ sudo ifconfig bridge0 create

Перед наступною командою brconfig використовуйте ifconfig, щоб перевірити яким інтерфейсам є працюючими (у нашому випадку, ep0 і ep1), але яким не призначені IP адреси Потім Налаштуйте міст, ввівши це:

$ sudo brconfig bridge0 add ep0 add ep1 up

Потім, включіть фільтрацію на пристрої bridge0:

$ sudo brconfig bridge0 ipf

Зробіть конфігурацію постійної, створивши або відредагувавши / etc/ifconfigep0 і ввівши наступний рядок

up

Для іншого інтерфейсу, / etc/ifconfigep1 повинен містити таку ж рядок:

up

Нарешті, введіть установку моста в / etc / ifconfigbridge ():

create

!add ep0 add ep1 up

Ваш міст повинен зараз працювати, і ви можете продовжити створювати правила фільтрації PF Для додаткової інформації дивіться документацію про PF в NetBSD за посиланням: http://wwwnetbsdorg/Documentation/network/pfhtml

Тут є pfconf файл для версії опуклості-в-проводі базовий набір правил, який ми почали в цьому розділі Мережа трохи змінена, як показано на малюнку 5-3

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

ext_if = ep0 int_if  = ep1

localnet= &quot192020/24&quot webserver = &quot19202227&quot webports = &quot{ http, https }&quot emailserver = &quot19202225&quot

email = &quot{ smtp, pop3, imap, imap3, imaps, pop3s }&quot nameservers = &quot{ 19202221, 19202223 }&quot

client_out = &quot{ ssh, domain, pop3, auth, nntp, http, https, \ 446, cvspserver, 2628, 5999, 8000, 8080 }&quot

udp_services = &quot{ domain, ntp }&quot icmp_types = &quot{ echoreq, unreach }&quot set skip on $int_if

block all

pass quick on $ext_if inet proto { tcp, udp } from $localnet \ to port $udp_services

pass log on $ext_if inet proto icmp all icmp-type $icmp_types pass on $ext_if inet proto tcp from $localnet to port $client_out

pass on $ext_if inet proto { tcp, udp } to $nameservers port domain pass on $ext_if proto tcp to $webserver port $webports

pass log on $ext_if proto tcp to $emailserver port $email pass log on $ext_if proto tcp from $emailserver to port smtp

Можливі значно складніші настройки Але памятайте, що в той час як перенаправлення буде працювати, ви не зможете запускати служби на будь-якому з інтерфейсів без IP адрес

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

*

*