Настройка Point-to-site VPN с помощью OpenVPN Remote Access Server на pfSense 2.3

Вводная информация

Point-to-Site VPN (Virtual Private Network) - технология, позволяющая организовать собственную виртуальную частную сеть и подключать к ней территориально удаленных пользователей. VPN представляет собой безопасный SSL/TLS-туннель между сервером и клиентами, предоставляет общий доступ в сетевым ресурсам, снижает расход интернет-трафика пользователей за счет использования сжатия, а также дает возможность маршрутизации всего клиентского трафика через VPN-сервер (аналогично прокси-серверу).

В данном руководстве мы рассмотрим процесс создания виртуальной частной сети с помощью свободной реализации технологии VPN - OpenVPN, поддерживаемой едва ли не всеми современными операционными системами (Windows, Mac OS, Linux, Android, iOS, ChromeOS). Настройка будет осуществляться на сервере, работающем под управлением pfSense 2.3.

PfSense представляет собой дистрибутив на базе ОС FreeBSD, предназначенный для создания межсетевых экранов/маршрутизаторов. При весьма широких возможностях, он бесплатный, нуждается лишь в минимальных аппаратных ресурсах, и имеет предустановленный понятный web-интерфейс управления. Подробнее ознакомиться с возможностями pfSense можно здесь.

Для упрощения процесса настройки и дальнейшего администрирования сервера мы будем использовать OpenVPN Remote Access Server - программное решение, включающее в себя непосредственно OpenVPN-сервер, собственный веб-интерфейс управления, а также набор автоматически настраиваемого клиентского ПО для соединения с сервером. Единственное ограничение Remote Access Server - необходимость лицензирования. Бесплатная (базовая) лицензия рассчитана на обслуживание двух VPN-клиентов. При увеличении числа пользователей потребуется приобретение дополнительных лицензий. На момент написания статьи их стоимость составляет 9.60$ в год за каждого, начиная с третьего, клиента. Подробная информация о лицензировании Access Server находится здесь.

 

1. Создание сервера pfSense и настройка OpenVPN Remote Access Server

 

Для дальнейших манипуляций нам потребуется хост pfSense. Если Вы используете сервис 1cloud.ru, то для подготовки сервера достаточно выбрать соответствующий шаблон (pfSense 2.3) при создании сервера - через несколько минут он будет готов к работе. Если же Вы планируете использовать сторонний хостинг или собственный сервер, потребуется сперва установить и настроить pfSense.

Итак, сервер готов. Переходим в его веб-интерфейс управления.

Входим, используя учетные данные, указанные в панели управления 1cloud. Затем открываем вкладку VPN > OpenVPN > Wizards.

Откроется мастер настройки OpenVPN Remote Access Server. Выбираем тип сервера (Type of Server) – Local User Access.

На следующем этапе следует указать параметры сертификата создаваемого центра сертификации (CA), который в дальнейшем, будет заверять сертификаты клиентов:

Кликаем “Add new CA”.

Теперь необходимо указать параметры самого сертификата CA. Можно ничего не изменять, только указать Descriptive Name – например «MyCAcrt». Кликаем «Create new Certificate».

Далее нужно настроить OpenVPN-cервер:

Остальные параметры можно оставить по умолчанию. Кликаем «Next».

Теперь указываем параметры Firewall. Включаем обе опции: разрешаем внешние подключения для клиентов и трафик внутри VPN-туннеля.

Настройка серверной части завершена.

Теперь нам нужно добавить пользователей, которые в дальнейшем смогут подключаться к виртуальной частной сети. Для этого переходим в меню System > User Manager. Кликаем «Add» для добавления нового пользователя.

Вводим информацию о пользователе. Не забудьте активировать опцию “Click to create a user certificate” и указать созданный ранее центр сертификации в параметрах сертификата пользователя.

Аналогичным образом, при необходимости, добавляем второго (третьего и т.д.) пользователя.

 

2. Экспорт клиентских конфигураций и подключение пользователей

Для упрощения процедур конфигурации программ-клиентов, в pfSense предусмотрен дополнительный инструмент – “OpenVPN Client Export Utility”. Этот инструмент автоматически подготавливает установочные пакеты и конфигурационные файлы пользователей, что позволяет избежать ручной настройки VPN-клиента со стороны конечного пользователя.

Установим вышеописанный пакет. Для этого переходим в меню System > Package Manager > Available Packages. Находим в списке openvpn-client-export utility. Кликаем «Install» для его установки.

Сообщение со скриншота ниже говорит об успешном завершении установки.

Теперь можно экспортировать конфигурации на пользовательские устройства. Переходим во вкладку VPN > OpenVPN > Client Export.

Изменять какие-либо параметры, указанные на открывшейся странице, обычно нет необходимости.
В нижней части страницы находим поле «OpenVPN Clients». Здесь размещены версии конфигураций под различные типы клиентов.

Рассмотрим процесс подключения клиента к созданной виртуальной частной сети на самом распространенном примере – подключении ПК под управлением Windows.

Если Вы включили опцию перенаправления всего клиентского трафика через сервер OpenVPN, то имеет смысл проверить корректность ее работы. Для этого в браузере проверяем IP-адрес клиентского устройства, например через myip.ru. Он должен совпадать с IP-адресом VPN сервера.

На этом настройка Point-to-site VPN завершена.

P.S. В рамках данной инструкции мы не будем описывать настройку клиентов на других ОС. Эту информацию можно найти непосредственно в разделе VPN > OpenVPN > Client Export > Client Install Packages.
Приведем только пример настройки VPN-клиента на ОС Ubuntu/Debian без установленного графического окружения (что зачастую актуально для серверов).

Войдите в терминал (непосредственно на настраиваемом устройстве или через SSH)
Последовательно введите следующие команды (каждая новая строка является отдельной командой):

sudo -s
apt-get update && apt-get upgrade
apt-get install openvpn
cp /home/user/openvpnfiles/* /etc/openvpn
(копирование файлов конфигурации openvpn в рабочую директорию программы. Эта команда подразумевает, что файлы уже находятся в папке /home/user/openvpnfiles, и кроме них в ней ничего нет.)
/etc/init.d/openvpn restart
ifconfig

В результате выполнения последней команды, в окне терминала должен появиться список сетевых подключений, включающий в себя соедение TUN-это и есть подключенный VPN-туннель.

 

Последнее обновление: 13.02.2019