Общая задача межсетевого экранирования
Цель: избавиться от нежелательного сетевого трафика (в случае МЭ для 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): компилировать высокоуровневое описание (скажем, структуры сети и абонентских служб) в нечитаемой множество правил.