Pfsense это межсетевой экран

Обновлено: 03.07.2024

Основой проекта 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 напоминает 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

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

Графики pfSense

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

Что всегда заметит каждый пользователь? Правильно, отсутствие интернета. Но как? «Вконтакте» не грузится — значит, интернета нет. Но ведь бывает, что директор или бравые богатыри из отдела ИБ хотят что-то запретить, что-то собрать, где-то проконтролировать. И тут администратор начинает танцевать вокруг шлюза в интернет. Если в компании много денег, то танцы могут быть длительными и с галантными кавалерами (мар Checkpoint, мистер PaloAlto, господин SonicWall). А вот что делать, если денег только на железо, функционала хотят много, а делать надо быстро? Бежать. На помощь приходит Mr Proper Pfsense, активно поддерживаемый сообществом бесплатный, гибкий и несложный в настройке межсетевой экран на базе FreeBSD.

В первой части рассмотрим классику жанра — межсетевой экран с прокси (аутентификация по учетным данным Active Directory) и фильтрацией контента, а также какой-никакой антивирусной проверкой трафика налету. Отдельно рассмотрим вопрос настройки удаленного доступа пользователей к сети предприятия.

Для уменьшения возможного холивара: «Да, это можно сделать на %yourdistrname%» и «Да, все можно настроить из командной строки». Так, все формальности соблюдены — можно начинать.

Установку сделаем с флешки. Для этого используем образ pfSense-memstick-2.2.2-RELEASE-i386.img.gz, скачанный с одного из зеркал, указанных на официальном сайте. Очень удобно, что сначала мы выбираем архитектуру, функционал, а потом уже нам предлагают список зеркал. Процесс установки детально расписывать не буду, там все элементарно, никаких дополнительных настроек не нужно. По окончанию установки вам предложат назначить VLAN и определить интерфейсы, а также их назначение. Выглядит это примерно так:


После настройки интерфейсов мы попадаем в меню с ограниченным числом пунктов, однако есть возможность выйти в шелл. На мой взгляд, самым полезным пуктом меню является возможность сброса пароля на веб-морду. Разработчики pfsense настоятельно рекомендуют проводить всю настройку только через графический интерфейс. А выглядит он достаточно симпатично, набор виджетов широк, можно кастомизировать их набор под себя.


Первым делом создаем свой внутренний CA на pfsense или используем уже имеющийся. Для этого в меню System выбираем Cert Manager и в разделе CA проводим необходимые настройки: нужно указать длину ключа, алгоритм хэширования, время жизни и полное имя CA. Настроенный CA будет нам нужен для создания OpenVPN-сервера и для работы по LDAPS.


Теперь интегрируем наш шлюз с Active Directory. В разделе Servers блока User Manager из меню System были проведены настройки на использование контроллера домена. Все до безобразия просто — указал адрес, транспорт, область поиска, контейнеры с учетками, креды для создания привязки и шаблон для заполнения Microsoft AD — можно выпускать кракена пользователей в интернет.


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


Однако есть ряд дополнительных возможностей, например, разрешенные ОС, какие могут быть выставлены TCP-флаги, график работы правила, а также инспектор протоколов прикладного уровня.



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

Для экспорта настроек OpenVPN для устройств на разных платформах нужно установить пакет OpenVPN Client Export Utility, который есть в списке доступных для установки пакетов. Теперь возвращаемся к истокам – во вкладку Cert Manager, там создаем сертификат для сервера VPN и каждого клиента. Разница только в типе сертификата.


Переходим к настройке сервера OpenVPN. Выбираем режим работы сервера – в моем случае «Remote Access (SSL/TLS + User Auth)», сервер аутентификации, протокол, порт, нужный сертификат сервера VPN и выставляем нужные параметры шифрования. То, что предлагается по умолчанию — не лучший выбор.


Дальше настраиваем VPN-сеть и выставляем настройки для клиентов. Тут мы можем определить, стоит ли выдавать клиенту DNS-сервера, весь ли трафик клиента гнать в туннель и т.д. После этого сохраняемся и отправляемся на вкладку client export. Отсюда мы экспортируем нужные для подключения настройки и сертификат пользователя.


Кстати, при настройке сервера можно было воспользоваться Wizardом, который провел бы Вас через все “печали и невзгоды” настройки OpenVPN. Некий аналог кнопки “Сделать хорошо”.

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

Нам осталось настроить прокси, фильтрацию контента и антивирусную проверку. Устанавливаем HAVP-пакет – это прокси с ClamAV сканером. Для настройки указываем режим работы ClamAV и прокси, порт, интерфейс, настройки проверки проходящего трафика. Поскольку планируется использование squid, то наш режим работы — «Parent for Squid». Отдельно настраиваем параметры обновления антивирусной базы и ее зеркала.


Переходим к настройке Squid. После установки пакета выбираем режим работы прокси и порт, затем на вкладке «Auth Settings» указываем используемый метод аутентификации. Поскольку у нас стоит задача использования Active Directory в качестве базы пользователей, то используем протокол LDAP. Настройки для интеграции с контроллером домена представлены ниже.


Теперь фильтрация – настраиваем squidGuardian. По подходам к фильтрации в принципе есть хорошая статья – «To-do: Фильтруем вся и всё». После установки squidGuardian через пункт «Proxy filter» меню «Services» переходим к его настройке. На вкладке «Blacklist» указываем откуда качать сами блэклисты в формате tar или tar.gz, а также на вкладке «General settings» ставим галочку для включения использования блэклистов. Я использовал бесплатные блэклисты отсюда. В случае необходимости работы контентного фильтра по времени, промежутки можно задать на вкладке Times. Дальше уже настраиваете общие или групповые ACL, главное не забыть поставить галочку напротив запрета использования IP-адресов в URL. Для настройки правил фильтрации нужно нажать «Target Rules List» и выбрать действия для нужных категорий, а также действие по умолчанию.


Если у вас есть необходимость в создании собственных категорий, то можно воспользоваться страничкой «Target Categories». После сохранения ваша категория появится в общем перечне правил. Я создавал свою категорию для разрешения доступа к ресурсам по IP-адресам, у которых нет DNS-имени.

А теперь ложка дегтя. Вполне допускаю, что проблемы вызваны собственной кривизной рук, но все же. Если кто-то из сообщества сможет подсказать какие-то решения, то я буду крайне признателен.

В заключении хотел бы отметить, что данный дистрибутив импонирует мне широким функционалом и гибкостью, очень легко клонировать настройки на несколько шлюзов, есть возможность сделать embedded решения. Конечно, полная настройка через веб ИМХО не есть хорошо, но может именно таким образом разработчики огораживают начинающих админов от болезненных ударов граблей разной высоты.


pfSense

  • Статическая / по умолчанию / динамическая маршрутизация
  • Полноценный firewall
  • Трансляция сетевых адресов (NAT)
  • Виртуальные частные сети (VPN)
  • Протокол динамической конфигурации хоста (DHCP)
  • Система доменных имен (DNS)
  • Балансировка нагрузки и тд.

Кроме того, pfSense поддерживает множество дополнительных пакетов, которые можно установить одним щелчком, в том числе:

  • Snort (для обнаружения и предотвращения вторжений)
  • FreeSWITCH (передача голоса по IP)
  • Squid (Прокси)
  • Darkstat (Монитор сетевого трафика)

Из-за всех этих поддерживаемых функций и пакетов pfSense может быть лучше классифицировано как устройство Unified Threat Management (UTM).

Плюсы pfSense

Примечание: Netgate предлагает выделенные устройства, такие как SG-2440 и XG-1541, которые работают с pfSense, поэтому это последнее преимущество не будет иметь места в таком выделенном оборудовании.

Минусы pfSense

Обсудив преимущества pfSense, давайте теперь рассмотрим некоторые недостатки этого продукта.

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

Cisco ASA

Плюсы Cisco ASA

Чтобы узнать их уточним несколько фактов о Cisco ASA:

Минусы Cisco ASA

С другой стороны, мы также можем упомянуть некоторые недостатки Cisco ASA:

Многие организации, используют Cisco ASA в качестве устройства защиты сети, и поскольку Cisco ASA выпускается во многих версиях, он может вписаться в любой размер сети.

Взаимное преимущество

Выводы

Это подводит нас к концу этой статьи, где мы сравнили pfSense и Cisco ASA.
Мы выделили некоторые преимущества и недостатки каждого продукта безопасности, а также обсудили, где они лучше всего подходят.
Мы пришли к выводу, что pfSense может лучше всего подходить для домашнего офиса или сети малого бизнеса, где не желают тратить много денег на дополнительное устройство.
Тот факт, что вы можете получить множество функций (таких как DHCP, DNS, VPN, брандмауэр и т. Д.) в одном бесплатном программном обеспечении, очень впечатляет.
Однако из-за проблем доверия к программному обеспечению с открытым исходным кодом более крупным организациям может быть неудобно использовать pfSense в качестве устройства защиты их сети.
С другой стороны, Cisco ASA с ее различными моделями подходит для всех размеров сетей.
Самым большим недостатком Cisco ASA является стоимость;
так что если вы относитесь к малому бизнесу, вы можете искать менее дорогие альтернативные варианты.
Я надеюсь, что вы нашли эту статью информативной (и объективной).

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

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

  • Не требует высокого уровня технических знаний;
  • Имеет графический интерфейс, который облегчает конфигурирование, обновление и добавление плагинов;
  • Низкая цена;
  • Не привязана к конкретному вендору;
  • Несколько вариантов развертывания включая физические сервера, компьютеры или виртуальные хосты.

Стандартный набор функционала следующий:

  • Межсетевой экран;
  • Беспроводная точка доступа;
  • Маршрутизатор;
  • Точка доступа VPN;
  • DHCP/DNS сервер;
  • Балансировка нагрузки;
  • Ограничение трафика (traffic shaping);
  • Фильтрация веб контента.

УСТАНОВКА PFSENSE

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

В этой статье мы покажем вам, как установить программное обеспечение pfSense на виртуальной машине на Ubuntu или CentOS. Для этого нужна машина, поддерживающая виртуализацию.

Сначала мы создадим виртуальную машину, на которой потом установим pfSense. Можно использовать Virtual Box, Virtual Ware, KVM или любое другое совместимое ПО виртуализации. В этом руководстве мы будем работать с Virtual Box.

Так как ПО устанавливается на Virtual Box, процесс установки pfSense одинаковый независимо от операционной системы хоста. Это означает, что вы будете выполнять те же действия на Ubuntu, CentOS и других дистрибутивах Linux, macOS или Windows.

УСТАНОВКА PFSENSE ON UBUNTU AND CENTOS ЧЕРЕЗ VIRTUALBOX

  • Физическая или виртуальная машина с установленной Ubuntu или CentOS;
  • Пользователь с правом sudo;
  • Программа виртуализации: Virtual Box, VM Ware, KVM, Virtuozzo, Xen и т.д.
  • Две сетевые карты;

ШАГ 1: СКАЧИВАЕМ ОБРАЗ PFSENSE

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

Читайте также: