Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Денис Назаров
Позвольте мне поведать вам вновь об уникальных возможностях операционной
системы OpenBSD
Зачем вообще нужны пакетные фильтры? Любой из вас, наверное, знает о неприятностях, существующих в просторах сети, и не раз сталкивался с ними. Читая «Hacking Exposed 3th edition», я наткнулся на фразу: «2.13 AM, Do you know who is on your network?». Да, именно так, ведь вы, будучи администратором сети, не можете постоянно следить за тем, как и что проходит через вашу сеть. Однако вы можете контролировать данный процесс, используя пакетные фильтры. Итак, прошу любить и жаловать – OpenBSD’s Packet Filter (PF).
Конфигурация находится в файле /etc/pf.conf. Однако фильтр отключен по умолчанию в только что установленном дистрибутиве, и существует 2 способа включить его:
n Отредактировать файл /etc/rc.conf, изменив значение pf=NO на pf=YES, также стоит сразу проверить путь к конфигурационному файлу в директиве pf_rules=/etc/pf.conf и перезагрузить систему.
n Дать команду pfctl –e, которая заставит ядро включить фильтр с пустыми настройками и без перезагрузки системы.
Приступаем к конфигурации фильтра. Что же он умеет? Практически все. PF является очень серьезной альтернативой таким монстрам, как Checkpoint Firewall и Sun Screen, однако полностью бесплатен.
Итак, PF имеет следующие возможности.
Макросы
Макрос – очень удобная вещь, которая может сократить и оптимизировать ваш конфигурационный файл и избавит вас от проблем с частым использованием обьемных и часто повторяющихся директив. Я практически не представляю себе написание конфигурационных файлов для PF без использования макросов.
Например, определение макросов:
ext_if = “fxp0”
external_addr = “{ 192.168.0.13/32, 192.168.0.113/32 }”
И их использование:
pass in on $ext_if from any to $external_addr keep state
pass out on $ext_if from $external_addr to any port 1337 keep state
В качестве имени макроса не могут использоваться зарезервированные слова (pass, block, in, out и т. д.). Привыкайте сразу использовать макросы, это хороший стиль. Следование ему в дальнейшем позволит избежать многих проблем с пониманием работы и настройки фильтра.
Таблицы
Именные структуры, хранящие адреса хостов и сетей. Использование таблиц предпочтительнее использования макросов в тех случаях, когда необходимо описать огромное количество адресов. Для обработки правил, использующих таблицы, требуется меньше ресурсов, чем для обычных правил, решающих ту же задачу.
Таблицы также могут использоваться совместно с scrub (нормализация трафика), rdr (перенаправление пакетов), nat (трансляция адресов). И могут быть определены следующими способами:
n Вручную. Постоянные таблицы могут быть созданы командой add или replace утилиты pfctl до или после загрузки набора правил.
n pf.conf – для описания таблиц в файле используется директива table. Таблица, инициализированная с пустым листом { }, будет очищена при загрузке.
Таблицы бывают двух видов:
n persist – этот флаг заставляет ядро хранить содержание таблицы, даже если она не используется никакими правилами. Если таблица не помечена таким флагом, то ядро уничтожит ее после того, как последнее правило, ссылающееся на нее, будет удалено.