Общая задача межсетевого экранирования

Цель: избавиться от нежелательного сетевого трафика (в случае МЭ для Unix речь идёт о программной защите)

Задачи: работа с сетевым трафиком:

  1. Фильтрация
  2. Ограничение
  3. Перенаправление
  4. Преобразование
  5. Отслеживание

Причины:

Примеры использования МЭ в TCP/IP

(Это далеко не все примеры :) )

  1. Аппаратный уровень — ?

  2. Интерфейсный уровень — фильтрация MAC и отслеживание подмены/дублей

  3. Сетевой

    1. Фильтрация по IP, антиспуф
    2. Ограничение пропускной способности по IP (недостатки), приоритизация
    3. Policy routing
    4. NAT «1 — 1»
    5. Грубый подсчёт сетевой активности
  4. Транспортный

    1. Фильтрация по порту
    2. Ограничение пропускной способности TCP и количества TCP-соединений
    3. «Проброс портов» без модификации пакета, используется редко (почему?)
    4. NAT «много — 1», «проброс портов»
    5. Отслеживание активности по портам (например, запредельное количество TCP-соединений)
  5. Прикладной. В основном все задачи должно делать само приложение. Исключения: контент-фильтрация (например, почтовый антивирус, антиспам) и поиск информации для определения «состояния потока данных» (например, для работы DNS по UDP).

Организация «МЭ уровня ядра»

  1. Поддержка изменяемой логики работы TCP/IP в ядре
  2. Язык задания этой логики
  3. Утилиты пространства пользователя для оперативной работы с ядерной составляющей
  4. Сложность понятия «пакет» в стеке TCP/IP ядра («пакет» какого уровня?)
  5. Сложность фиксации точки принятия решения (различные пути обработки пакетов)

Три-четыре примера языка описания МЭ

Общий принцип: свод правил МЭ состоит из одиночных записей вида

тест пакета → действие

Заметно влияние Нормальных Алгоритмов Маркова

  1. «Линейный» (ipfw) воспроизводит работу НАМ: правила в столбик, first wins
    • Достоинства: простота, гибкость
    • Недостатки: неструктурированность, трудно отследить точку принятия решения, goto
  2. «Граф» (iptables) представляет собой несколько НАМ-машин («цепочек»), передающих друг другу пакеты, first wins
    • Достоинства: большинство типичных задач требуют только дополнения имеющихся цепочек ⇒ очевидный граф
    • Недостатки: сложные задачи требуют конструирования новых цепочек и логико «прыжков» из одной в другую ⇒ неочевидный граф
  3. «Таблица» (pf): правила просматриваются по принципу last wins (т. е применяются все, а потом принимается решение, что делать с пакетом)
    • Достоинства: возможность использования сложных атомарных правил и именованных групп правил («якорей»), хеш-таблиц, гарантированное время прохождения пакета
    • Недостатки: долгое прохождение пакета через длинные списки правил,

Альтернативный подход (shorewall): компилировать высокоуровневое описание (скажем, структуры сети и абонентских служб) в нечитаемой множество правил.

LecturesCMC/UnixFirewalls2014/01_CommonTask (последним исправлял пользователь FrBrGeorge 2014-03-01 11:17:38)