Что такое PfSense
PfSense — мощный программный комплекс, в основе которого лежит FreeBSD. Обычно его используют в качестве шлюза, брандмауэра, узла для перенаправления трафика, прокси и т.д. Несмотря на то, что «под капотом» установлена FreeBSD, почти для всех операций достаточно браузера. Эта вот простота в сочетании с мощностью и возможностями кастомизации путем «доустановки» плагинов - та самая «киллер-фича» PfSense, благодаря которой он до сих пор популярен.
Что такое HAProxy
HAProxy — достаточно простой балансировщик нагрузки с открытым исходным кодом. Первоначально его можно было установить только на выделенный сервер под управлением Linux, но теперь HAProxy можно установить на виртуальные машины, большое количество маршрутизаторов бизнес-уровня, и т.д. В этой статье я опишу, как установить HAProxy на программный комплекс PfSense.
Подготовка инфраструктуры
Чтобы показать, как работает HAProxy, вам нужно подготовить как минимум три сервера: два в качестве серверов, обеспечивающих работу служб вашего проекта и «раздающих» контент, третий в качестве брандмауэра PfSense и балансировщика HAProxy. Последовательность действий будет такой:
- Войдите в личный кабинет ServerSpace и создайте изолированную локальную сеть;
- Разверните три сервера, один из них под PfSense, другие под ОС, соответствующую требованиям вашего проекта. Важный момент - все три сервера должны находиться в одном датацентре. По окончании развертывания вы должны увидеть в списке серверов нечто похожее;
- Выключите все три сервера и подключите их к только что созданной «приватной» сети;
- Залогиньтесь в веб-интерфейс сервера PfSense (учетные данные можно увидеть на вкладке Status сервера в личном кабинете), затем перейдите на страницу Interfaces > Assignments и назначьте интерфейс LAN на свободный сетевой порт;
- Перейдите на страницу Interfaces > LAN и выполните настройки в соответствии с информацией о сетевом соединении сервера в личном кабинете;
- Поскольку порты 80 и 443 впоследствии будут использоваться для обслуживания клиентов проекта, я изменю порт веб-интерфейса PfSense. Следует перейти в настройки брандмауэра PfSense и создать правило, разрешающее пропускать трафик на выбранный неиспользуемый порт, затем назначить этот порт на странице System > Advanced в качестве порта веб-интерфейса;
- Откройте интерфейс PfSense уже на «новом» порту, снова перейдите к настройкам брандмауэра и создайте правило, разрешающее весь трафик во «внутренней» сети;
- На этом подготовительные работы в том, что касается PfSense, завершены, теперь нужно подключить будущие серверы контента к нашей локальной сети. Чтобы сделать это, можно добавить новый интерфейс в файлы конфигурации сети вручную, однако, поскольку на серверах еще нет контента, быстрее просто переустановить ОС сервера через личный кабинет уже после подключения к локальной сети. Результат будет тот же, "приватные" IP всех трех серверов будут доступны;
Установка HAProxy
Чтобы установить и настроить HAProxy на сервере PfSense, нужно выполнить следующие действия:
- Откройте веб-интерфейс сервера PfSense, перейдите на страницу System > Package Manager > Available Packages и установите последнюю доступную версию HAProxy;
- Теперь создадим бэкенд. Перейдите на страницу Services > HAProxy > Backend и укажите в соответствующих полях «внутренние» IP-адреса ваших серверов контента и прослушиваемые сервисами порты;
- Создайте фронтенд балансировщика. Для этого перейдите на страницу Services > HAProxy > Frontend, установите WAN-адрес в качестве «целевого» IP и настройте «транзит» трафика на ранее созданный бэкенд;
- На странице Services > HAProxy > Settings, установите лимит на количество одновременных подключений и можете включать сервис;
Размещение файлов проекта и проверка работы HAProxy
Не буду дублировать информацию, просто дам ссылку на эту статью. Разверните веб-сайт, как описано в разделе «Развертывание веб-сайта», для проверки работы HAProxy выполните шаги, указанные в разделе «Проверка работы балансера». Ожидается похожий результат.
Максимизация безопасности
Для повышения безопасности вы можете полностью блокировать любой трафик к вашим контент-серверам через «публичный» WAN-интерфейс, за исключением трафика, исходящего с вашего собственного IP-адреса. Вернитесь обратно в личный кабинет ServerSpace, откройте настройки каждого контент-сервера и добавьте два сетевых правила - одно должно разрешать трафик с вашего собственного IP-адреса, другое - запрещать сетевую активность с любых других адресов. Внимание, чтобы не потерять доступ к серверам, следует ставить «разрешающие» правила перед «запрещающими».
Выводы
Прочитав этот материал, вы узнали, что такое PfSense и теперь можете установить на нем балансировщик HAProxy, а также повысить безопасность данных вашего проекта.