|
26.11.2011 @22:12 |
PF межсетевой экран
Firewall - это система, управляющая прохождением пакетов данных через систему на основе заданных админом правил и информации, содержащейся в заголовках пакетов. Обычное использование firewall - запрещение прохождения нежелательных пакетов, например, отключение абонента, не оплатившего услуги связи, или закрытие части сервисов локальной сети от внешнего мира. В системе FreeBSD firewall - это гораздо больше, чем просто турникет в метро - это мощный инструмент управления сетью, позволяющий, например, подсчитывать трафик по любым разумным правилам, основывающимся на данных заголовков пакетов протоколов стека TCP/IP, обрабатывать пакеты внешними программами, прятать за одним компьютером целую сеть и т.п. В отличие от разнообразных систем firewall для операционных систем семейства Windows, во FreeBSD firewall является частью самой операционной системы, поэтому работает значительно быстрее и надежнее своих не-UNIX конкурентов (исключая, конечно, системы, созданные специально для обработки сетевого трафика, такие как Cisco IOS) В FreeBSD обычно используют один из трех пакетных фильтров IPFW, IP-FILTER (родной Firewall для FreeBSD который появился самым первым) или PF. Какой выбрать? Ответом может служить пожалуй только практика использования и личный опыт.
Вот одно из высказываний на хабре sky_lord с которым лично я согласен: "...natd сейчас практического смысла по сути не имеет — если стоит задача по быстрому дать интернет в офисе, то проще вообще не трогать ipfw, а сделать все сразу на pf — там две строчки написал и уже работает. ipfilter — его вообще хоть кто-нибудь использует? Такой же привет из прошлого, как natd… pf — как уже сказано выше — легок и прост в первом приближении. Но т.к. сделан не на libalias — не умеет проксировать активный FTP и еще кое-чего по мелочи — это создает излишний геморрой. Плюс на серьезных нагрузках сильно грузит проц — я его профилировал через hwpmc — там пробег по всем state'ам очень много времени занимает и это не лечится. ng_nat — все-таки вещь не массовая, ИМХО. Хотя я его использовал из любопытства на паре серверов — работал и каши не просил. Но человеку без подготовки netgraph вообще лучше не трогать… ipfw nat (kernel nat) — на мой взгляд для серьезных нагрузок оптимальный вариант. Вся мощь libalias'а, никаких заморочек с настройками… Единственная проблема, с которой пришлось в свое время столкнуться — для того, чтобы создать больше сотни (примерно, точно не помню) редиректов пришлось немного патчить ядро — размер буфера там одного увеличить… Но, возможно, в последних версиях Фри это уже поправили — не проверял.
Packet Filter (PF) - файрвол, разрабатываемый в рамках проекта OpenBSD
Первым релизом, где PF был интегрирован в основную систему, стала FreeBSD 5.3 в ноябре 2004 и так даже он был признан лучшим пакетным фильтром года. PF это полноценный межсетевой экран с широким набором возможностей, в котором есть опциональная поддержка ALTQ (Alternate Queuing). ALTQ предоставляет управление пропускной способностью Quality of Service (QoS). PF Превосходит многие коммерческие продукты, и даже способен составить достойную конкуренцию таким всемирным продуктам как CHECK-POINT. Перечисление всех его достоинств может не вместится в толстую книгу. ПримерТипичный конфиг (файл /etc/pf.conf) для пакетного фильтра рабочей станции вполне может выглядеть вот так:
Перед тем как использовать стоит проверить синтаксис файла конфигурации:
Добавим в rc.conf необходимые параметры и запустим:
Проверка действующих правил и прочей статистики:
Выключение:
Во FreeBSD Начиная с 7.0 и в OpenBSD с 4.1 ко всем правилам по умолчанию используется опция keep-state. Поэтому, если не нужно, что бы файервол создавал ответное динамическое правило, добавляем к правилу no state. Документация и полная версия статей по темеВведение в работу с пакетным фильтром OpenBSD Сравнение 3 Пакетных фильтров FreeBSD 5.3 (IPFW, PF, IPFILTER) Разбираем простой конфиг PF (лисяра) Обзор и сравнение способов настройки NAT на FreeBSD (Хабрахабр) Огненный блокпост: cравнительный обзор файрволов FreeBSD (журнал Хакер) Метки: firewall, pfПохожие ¬ |
|