Дистрибутив для создания межсетевого экрана — pfSense

28 Апр
2008

Немного переделанная статья из журнала Системный Администратор

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

Основой проекта pfSense послужил m0n0wall. Дистрибутив m0n0wall ориентирован в первую очередь на использование во встроенных устройствах, его характеризует легкость в настройке и понятность для новичка. Основой обоих дистрибутивов послужил FreeBSD. В pfSense разработчики постарались вложить максимальную функциональность, дополнив его приложениями, при сохранении той же простоты. Платой послужил больший размер дистрибутива и более высокие требования, предъявляемые к аппаратной части в частности к объему оперативной памяти. Еще одним отличием является использование в pfSense Packet Filter(PF) с интегрированным ALTQ (HFSC), вместо IP Filter в m0n0wall. Дистрибутив содержит основные компоненты m0n0wall и поддерживает все присущие последнему функции: DHCP сервер и клиент, клиент PPPoE, статические маршруты, 802.1Q VLAN, беспроводные устройства, SNMP, IPsec и PPTP VPN, графики работы, Captive Portal с возможностью аутентификации RADIUS и многое другое. Разработчики pfSense к этому добавили переработанный веб-интерфейс, сервер PPPoE, DNS форвардинг, FTP прокси и другие. Возможна работа с несколькими WAN интерфейсами с распределением нагрузки. Правда с оговоркой, только одно соединение может быть настроено с использованием PPPoE, PPTP или BigPond, остальные должны получать статический или динамический IP адрес, например в Ethernet сети.

Поддержка протокола CARP (Common Address Redundancy Protocol), позволяет организовать балансировку нагрузки и прозрачное резервирование шлюза. Кроме IPSec и PPTP поддерживается и OpenVPN. Используя систему пакетов можно легко установить еще около 20 приложений или сервисов, среди которых Pure-FTPd, Sqiud, Spamd, Snort, FreeRADIUS, nmap, nut и другие. Хотя в последней версии дистрибутива нужное меню в настройках в отличие от предыдущей версии почему отсутствует, но информация на сайте о такой функциональности есть по прежнему. Возможно это связано с глубокими переделками интерфейса. Если чего-то в этом списке не хватает, можно используя команду pkg_add можно легко установить предварительно пакеты. Интерфейс не локализован, но работа ведется, в чем можно убедиться, обратившись по адресу. Судя по приведенной там информации на дату написания этих строк, было переведено 97%, но в настоящее время опять же нет каких-либо видимых инструментов, позволяющих сменить языки интерфейса. Хотя базового английского вполне достаточно, чтобы разобраться с настройками.

На форуме проекта можно найти и варианты нестандартных решений для pfSense, например, по адресу рассказано как pfSense использован в качестве DHCP сервера на компьютере с одной сетевой карточкой в сети которая уже имеет свой firewall. Комментарии по поводу целесообразности такого подхода можно почитать в блоге. В вольном переводе и кратко звучит так: Это не лучшее решение, но оно работает.

Текущей стабильной версией является релиз 1.2 построенный на FreeBSD 6.2.

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

Первый запуск

Для работы pfSense потребуется компьютер с 128 Мб оперативной памяти и 2 Гб диск для установки. Требований к процессору не предъявлено. В документе «Known working configurations» можно найти примеры аппаратных средств рабочих конфигураций, в частности здесь приводятся данные о работе на Pentium 200. Плюс дополнительную информацию о совместимом оборудовании можно найти в документе «Supported Hardware for pfSense/FreeBSD«, который также доступен на сайте проекта. Ядро скомпилировано с поддержкой многопроцессорных систем.

Первоначальная работа с pfSense напоминает m0n0wall. После тестирования устройств, предлагается настроить сетевые интерфейсы VLAN, LAN и WAN. Если будет обнаружена только одно сетевое устройство, то появится предупреждение о невозможности работы роутера. После их настройки можно ввести имя дополнительных (Optional) интерфейсов, хотя как мне показалось удобнее эту часть производить в GUI. По окончании подтверждаем установки и ждем пока загрузится система. В последней бете была ошибка в загрузочных скриптах, которая приводила к тому что при отсутствии ответа DHCP сервера на WAN интерфейсе приходилось ждать очень долго. Как и в m0n0wall LAN интефейс автоматически получает адрес 192.168.1.1, а WAN при помощи DHCP. является возможность указать другой IP-адрес LAN.

Меню pfSense

Выбираем 2, вводим адрес и маску сети, разрешаем/запрещаем использование DHCP сервера. Под цифрой 99 находится пункт позволяющий установить pfSense на жесткий диск.

Веб-интерфейс

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

Веб-интерфейс pfSense

Первоначальную установку можно произвести при помощи Setup Wizard, кнопка вызова которого находится во вкладке System. Здесь все просто. На первом шаге указываем имя и домен, к которому принадлежит компьютер, адреса DNS серверов, часовой пояс и сервер времени. Далее настройки WAN. Выбираем тип получения адреса: DHCP, статический, PPPoE, PPTP, BigPond. Внизу обратите внимание на два флажка — «Block private networks from entering via WAN» и «Block non-Internet routed networks from entering via WAN«, которые блокируют подключение к WAN с адресов указанных сетей. Дальше LAN интерфейс и смена пароля администратора.

После работы мастера пакеты с LAN в WAN будут проходить без проблем, причем все. Чтобы самостоятельно создавать правила NAT следует отключить их автоматическое создание в System — Advanced, сняв флажок «Disable NAT Reflection«.

Настройка PPPoE или PPTP соединения, мне показалась несколько запутанной, по сравнению с тем же m0n0wall. Дело в том, что после установки будут доступны настройки только LAN и WAN. Если с первым все понятно, то что делать с WAN. Если здесь прописать настройки сетевой карты, то тогда, возникает вопрос, где же указывать PPPoE и наоборот. Оказалось сначало следует зайти в меню Interfaces — assign и перейти во вкладку VLANs, где создать новый интерфейс, и возвратиться в «Interface assignments«. После добавления VLAN на этой странице справа появляется неприметная кнопка. Причем эта кнопка служит как для добавления нового интерфейса, если есть свободный VLAN, так и удаления последнего в списке. Поэтому следует быть внимательным. На других вкладках, для удаления и добавления используются разные кнопки. Теперь настройки внешней сетевой карты указываем во VLAN, а в WAN pаполняем информацию о PPPoE. Обратите внимание на сообщения системы, выводимые вверху страницы, в них содержатся предупреждения или рекомендации. В некоторых случаях для VLAN требовалась перезагрузка системы.

По умолчанию SSH отключен, включить его можно во вкладке System - Advanced. Для повышения безопасности опционально можно указать отличный от 22 порт и отключить аутентификацию по паролю, оставив только по ключу. Ключ следует скопировать в поле Authorizedkeys. Во вкладке Advanced можно включить первый последовательный порт (это отключит видеокарту и клавиатуру), функцию «Filtering Bridge«, указать сертификаты для webGUI, отключить меню в консоли и настроить прочие параметры.

Кроме вкладок о которых уже говорилось в интерфейсе pfSense доступные еще четыре. В Firewall производится настройка правил межсетевого экрана и NAT. Выбирая пункты меню, можно также задать псевдонимы (aliases), которые позволяют упростить правила и расписание (Schedules). По умолчанию весь трафик разрешен, в LAN стоит правило «Default LAN -> any«, а из WAN блокируется доступ только с адресов частных сетей. Правило NAT формируется автоматически (Automatic outbound NAT rule generation). Поэтому сразу после установки pfSense выполняет роль маршрутизатора, без фильтрации трафика. Новое правило создается очень просто. Для этого не нужно обладать знаниями PF, достаточно представлять конечный результат. Выбирается значение параметра предложеного конфигуратором (адреса/интерфейс источника и назначения, протокол, порт или диапазон, расписание и прочие) ошибиться очень тяжело. Созданные правила можно расставлять по порядку. При выборе пункта Traffic Shaper запустится мастер настройки. На первом шаге следует выбрать внешний и внутренний интерфейс и указать скорость Download/Upload, затем устанавливается приоритет для VoIP сервисов. В Penalty Box, указываются адреса трафик, с которых будет идти с наименьшим приоритетом. Затем настройки ограничений для P2P сетей, сетевых игр и остальных протоколов.

Во вкладке Services и VPN производятся настройки серверов входящих в состав pfSense. Здесь также ничего серхсложного, все особенности их работы спрятаны и с подключением нужной функциональности сможет справиться новичок.

Вкладки Diagnostics и Status полностью соответствуют свои названиям. Если не нравится внешний вид интерфейса, можно изменить при помощи скинов.

Графики pfSense

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

ВИДЕО ПО НАСТРОЙКЕ

Комментировать

Наверх