Фильтрация пакетов FreeBSD

Инструменты FreeBSD для фильтрации пакетов на уровне ядра используются, когда необходимо управлять доступом к сетевым приложениям, не поддерживающим TCP Wrappers, или когда требуется нечто, превосходящее TCP Wrappers по своим возможностям. Если вам

потребовался фильтр пакетов, то лучше полностью заменить им реализацию TCP Wrappers. Применение двух инструментов на одном компьютере будет просто запутывать вас.

При фильтрации пакетов каждый сетевой пакет, поступающий в систему, сверяется со списком правил. Когда соответствующее правило найдено, ядро действует, исходя из этого правила. Правила могут пропустить, удалить или видоизменить пакет. Однако здесь нельзя применять замечательные параметры, разрешенные в TCP Wrappers; клиенту не отправляется сравнительно дружелюбное «сообщение о запрете» – вместо этого соединение разрывается на сетевом уровне еще до того, как пакеты будут доставлены приложению.

Идея фильтрации пакетов достаточно проста, но первая реализация этой стратегии может стать нелегким испытанием – как говорится, «ценным опытом». Будьте готовы потратить несколько часов на эксперименты с фильтрацией пакетов и не отчаивайтесь при неудачах. По своему опыту могу сказать, что источником разочарований является не пакетный фильтр, а незнание TCP/IP. Пытаться фильтровать трафик – занятие неблагодарное и бессмысленное. Единственный способ по-настоящему изучить протокол TCP/IP состоит в том, чтобы работать с ним. Если информации в главе 6 для вас оказалось недостаточно, приобретите книгу «The TCP/IP Guide» Чарльза М. Козиерока (Charles М. Kozierok) (No Starch Press, 2005).

Операционная система FreeBSD обладает богатым набором пакетных фильтров: IPFW, IP Filter и PF.

IPFW – это программное обеспечение фильтрации пакетов, изначально входившее в состав FreeBSD. Оно очень тесно интегрировано в операционную систему – файлы с говорящими названиями, /etc/гс.firewall и /etc/rc.firewall6, предназначены исключительно для нужд IPFW. Это очень мощное программное обеспечение, пользующееся большой популярностью у опытных системных администраторов FreeBSD, но для начинающих оно является довольно сложным.

Второй пакетный фильтр – IP Filter – не является программным обеспечением построения брандмауэров, разработанным исключительно для FreeBSD, но поддерживается некоторыми другими UNIX-подоб- ными операционными системами. Этот фильтр разрабатывался в основном одним человеком – Дарреном Ридом (Darren Reed), который приложил героические усилия, написав большую часть программного кода и выполнив перенос на разные операционные системы. Однако IP Filter не получил широкой популярности.

Основное внимание мы будем уделять продукту с названием PF, или packet filter (фильтр пакетов). Впервые PF появился в OpenBSD и разрабатывался как очень мощный, гибкий и простой в использовании. Обычный администратор FreeBSD может, используя PF, добиться любых эффектов, которые можно получить с помощью двух других фильтров пакетов.

Более подробную информацию о PF вы найдете в книге Питера Н. М. Ханстена (Peter N. М. Hansteen) «The Book of PF» (No Starch Press, 2007) или в моей книге «Absolute OpenBSD» (No Starch Press, 2003), в которую включено несколько глав о PF. Можно также заглянуть в сборник часто задаваемых вопросов PF FAQ в Интернете, но там вы не найдете простых ответов.

Активизация PF

Фильтр пакетов PF состоит из модуля ядра pf.ko и программы, работающей в пространстве пользователя, – pfctl(8). Прежде чем можно будет начать использовать PF, необходимо загрузить модуль ядра. Проще всего это сделать, поместив в rc.conf следующую строку:

pf_enable="YES"

По умолчанию фильтр PF пропускает все пакеты; это означает, что простая активизация брандмауэра не обеспечивает никакой защиты.

Фильтрация пакетов: принимать по умолчанию или отвергать

Стратегии принятия и запрета по умолчанию чрезвычайно важны в фильтрации пакетов. Если выбрано принятие по умолчанию и необходимо защитить систему или сеть, то для блокирования всех возможных атак потребуется множество правил. При выборе запрета по умолчанию необходимо явно открыть «лазейки» для каждого предлагаемого сервиса. В большинстве случаев предпочтительнее использовать стратегию запрета по умолчанию. Хотя при такой стратегии управлять фильтром значительно сложнее, тем не менее повышенный уровень безопасности с лихвой окупит все трудозатраты.

При запрете по умолчанию очень легко полностью заблокировать удаленный доступ к системе даже для самого себя. Если у вас имеется SSH- соединение с удаленной системой, и вы по ошибке нарушите правило, разрешающее доступ по SSH, у вас появятся проблемы. Такое случается со всеми, хотя бы один раз, поэтому особо не смущайтесь, если это произойдет и с вами. Однако будет лучше, если вы начнете изучать принципы фильтрации пакетов не на удаленной машине – начните с машины, к которой у вас имеется физический доступ, чтобы проще было исправить свою ошибку. Я много раз закрывал доступ самому себе – обычно, когда не утруждал себя размышлениями при устранении неполадок, связанных с фильтрацией пакетов. Единственное решение – проклиная себя, лезть в машину, ехать на удаленную точку, долго извиняться перед людьми, которым я причинил неудобство, и на ходу устранять проблему. К счастью, с возрастом такое случается все реже и реже.1

Зато я научился искусно водить автомобиль и извиняться.

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

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий