Общая задача межсетевого экранирования
Цель: избавиться от нежелательного сетевого трафика (в случае МЭ для Unix речь идёт о программной защите)
Задачи: работа с сетевым трафиком:
- Фильтрация
- Ограничение
- Перенаправление
- Преобразование
- Отслеживание
Причины:
- Административные требования
- Расширение логики TCP/IP
Примеры использования МЭ в TCP/IP
(Это далеко не все примеры )
Аппаратный уровень — ?
Интерфейсный уровень — фильтрация MAC и отслеживание подмены/дублей
Сетевой
- Фильтрация по IP, антиспуф
- Ограничение пропускной способности по IP (недостатки), приоритизация
- Policy routing
- NAT «1 — 1»
- Грубый подсчёт сетевой активности
Транспортный
- Фильтрация по порту
- Ограничение пропускной способности TCP и количества TCP-соединений
- «Проброс портов» без модификации пакета, используется редко (почему?)
- NAT «много — 1», «проброс портов»
- Отслеживание активности по портам (например, запредельное количество TCP-соединений)
Прикладной. В основном все задачи должно делать само приложение. Исключения: контент-фильтрация (например, почтовый антивирус, антиспам) и поиск информации для определения «состояния потока данных» (например, для работы DNS по UDP).
Организация «МЭ уровня ядра»
- Поддержка изменяемой логики работы TCP/IP в ядре
- Язык задания этой логики
- Утилиты пространства пользователя для оперативной работы с ядерной составляющей
- Сложность понятия «пакет» в стеке TCP/IP ядра («пакет» какого уровня?)
- Сложность фиксации точки принятия решения (различные пути обработки пакетов)
Три-четыре примера языка описания МЭ
Общий принцип: свод правил МЭ состоит из одиночных записей вида
тест пакета → действие
Заметно влияние Нормальных Алгоритмов Маркова
- «Линейный» (ipfw) воспроизводит работу НАМ: правила в столбик, first wins
- Достоинства: простота, гибкость
- Недостатки: неструктурированность, трудно отследить точку принятия решения, goto
- «Граф» (iptables) представляет собой несколько НАМ-машин («цепочек»), передающих друг другу пакеты, first wins
- Достоинства: большинство типичных задач требуют только дополнения имеющихся цепочек ⇒ очевидный граф
- Недостатки: сложные задачи требуют конструирования новых цепочек и логико «прыжков» из одной в другую ⇒ неочевидный граф
- «Таблица» (pf): правила просматриваются по принципу last wins (т. е применяются все, а потом принимается решение, что делать с пакетом)
- Достоинства: возможность использования сложных атомарных правил и именованных групп правил («якорей»), хеш-таблиц, гарантированное время прохождения пакета
- Недостатки: долгое прохождение пакета через длинные списки правил,
Альтернативный подход (shorewall): компилировать высокоуровневое описание (скажем, структуры сети и абонентских служб) в нечитаемой множество правил.