О. Ю. Пескова таганрогский государственный радиотехнический университет сравнительный анализ особенностей реализации пакетных фильтров в ос freebsd и linux данный доклад

Вид материалаДоклад
Подобный материал:

УДК 004.056:378(06) Проблемы информационной безопасности в системе высшей школы

М.И. ТЕНЕТКО, О.Ю. ПЕСКОВА

Таганрогский государственный радиотехнический университет

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ОСОБЕННОСТЕЙ РЕАЛИЗАЦИИ ПАКЕТНЫХ ФИЛЬТРОВ
В ОС FREEBSD И LINUX



Данный доклад рассматривает особенности реализации пакетных фильтров в операционных системах FreeBSD и Linux.


Пакетные фильтры являются одной из разновидностей межсетевых экранов. Они управляют трафиком, проходящим через Интернет-шлюз либо через внутренний шлюз, основываясь на информации из заголовка пакетов. В FreeBSD и всех дистрибутивах Linux имеются встроенные в ядро программные фильтры пакетов, позволяющие обеспечить разумную защиту домашнего компьютера или небольшого офиса. Рассмотрим основные особенности их реализаций.

В ядро FreeBSD, начиная с версии 2.0, встроен пакетный фильтр ipfw. В ядро Linux, начиная с версии 2.4, встроен пакетный фильтр iptables. Опыт работы с этими пакетными фильтрами позволил выявить их специфические достоинства и недостатки.

Пакетный фильтр ipfw может разделять или ограничивать полосу и позволяет задавать правила с указанием флагов uid\gid для проверяемых пакетов. Такой возможности iptables не имеет, и при необходимости разделения либо ограничения полосы необходимо использовать связку iptables с утилитой tc из состава iproute2. Эта утилита имеет довольно сложный синтаксис правил.

Далее, iptables имеет встроенную поддержку NAT, которая реализована в виде модуля iptables_nat.so, включающего в себя действие пакетного фильтра SNAT и цепи PREROUTING и POSTROUTING. Таким образом, передача запросов NAT и последующая обработка производятся на уровне ядра, что существенно повышает быстродействие.

В отличие от iptables, пакетный фильтр ipfw не имеет встроенной поддержки NAT. Впрочем, в FreeBSD существует встроенный демон natd, позволяющий в связке с ipfw реализовать поддержку NAT. Для этого в ipfw существует правило divert, предназначенное для перенаправления запросов на порт, прослушиваемый демоном natd. Но такое решение не отличается быстродействием.

С другой стороны, реализация NAT в iptables представляет собой усеченный вариант NAT под названием PAT (Port Address Translation — трансляция адресов портов), или маскирование (masquerading). В этой реализации не используется диапазон адресов, как в истинной системе NAT: все соединения коммутируются по единственному адресу. Демон natd в FreeBSD предоставляет полную поддержку NAT, то есть внешний адрес может выбираться из указанного диапазона внешних адресов.

Кроме того, ipfw, в отличие от iptables, поддерживает применение динамических правил, то есть правил с определенным временем существования. Динамическое правило — это правило с пометкой keep-state, обычно применяемое для открытия брандмауэра по требованию и только для желаемого траффика. Дополнительной функцией, предоставляемой динамическими правилами, является возможность ограничения числа одновременных соединений, соответствующих какому-либо правилу.

Динамические правила ipfw позволяют обезопасить сервер и вместе с тем не приводят к неудобствам для пользователей, желающих открыть вполне разрешенные соединения.

Существует еще одно различие, которое является довольно субъективным: это синтаксис описания правил пакетного фильтра. Синтаксис iptables отличается от синтаксиса ipfw, но оба они довольно понятны и не осложнены излишествами.

Как видно, сделать выбор между одним из этих пакетных фильтров довольно сложно. Каждый из них в различных ситуациях справляется с работой лучше или хуже другого.

Не следует забывать, что пакетный фильтр является неотъемлемой частью ядра операционной системы и не может работать вне ядра. Это значит, что ipfw работает только в FreeBSD, а iptables — в Linux. Поэтому выбор следует делать во время выбора операционной системы. При выборе фильтра также необходимо привязывать его сильные и слабые стороны к решаемым задачам. Скажем, для организации NAT-шлюза с proxy-сервером лучшим выбором благодаря своей встроенной поддержке NAT будет iptables, а для организации сервера провайдера лучше подойдет ipfw со своей возможностью ограничения и разделения полосы пропускания.


ISBN 5-7262-0636-3. XIII Всероссийская научная конференция