Настройка Site-to-Site VPN с помощью pfSense 2.3

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

В чем отличие традиционного режима работы VPN (Point-to-Site) от Site-to-Site? При использовании второго отсутствует необходимость отдельно настраивать параметры подключения для каждого конкретного клиентского устройства - достаточно сконфигурировать по одному VPN-шлюзу со стороны каждой из связываемых сетей. Point-to-Site целесообразен скорее при подключении конкретных удаленных сотрудников, Site-to-Site – для подключения подразделений.

Эта инструкция поможет Вам поднять Site-to-Site VPN c использованием программного маршрутизатора pfSense, на примере объединения частной сети серверов 1cloud и внешней сети (физической или виртуальной).

В нашем случае, первая сеть "1cloud" состоит из трех виртуальных серверов: Ubuntu 12.04, Windows 2008 R2 и pfSense 2.3. Операционные системы развернуты из стандартных шаблонов, предлагаемых сервисом 1cloud, без какой-либо дополнительной настройки.

 

Весь процесс настройки состоит из двух несложных этапов:

 

  1. Подготовка серверов pfSense и создание частных сетей;
  2. Проброс Site-to-Site туннеля между сетями.

 

1. Подготовка серверов pfSense и создание частной сети.

 

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

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

Cоздание частной сети и подключение серверов к ней осуществляется в несколько кликов:

Обратите внимание, что физический адрес выбираемого для настройки адаптера должен совпадать с MAC-адресом сервера-члена частной сети в панели управления 1cloud. То же самое касается и IP-адреса хоста, указываемого в параметрах LAN-интерфейса pfSense.

Сразу настроим Firewall на разрешение внешних подключений к LAN-интерфейсу. В нашем примере разрешаются любые входящие подключения для локальной сети. Вы можете сконфигурировать эти правила по-своему. Главное, чтобы правило включало в себя разрешение для OpenVPN (порт 1194 UDP)

Важно! Аналогичным образом необходимо настроить параметры созданных виртуальных адаптеров на других серверах, находящихся в новой частной сети. Вы можете воспользоваться приведенными ниже инструкциями (не забудьте в поле «Шлюз по умолчанию/Default Gateway» указать адрес хоста pfSense, назначенный выше (в нашем случае 10.0.0.3)):
- Debian/Ubuntu
- Windows
- CentOS

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

 

2. Проброс Site-to-Site туннеля между сетями:

 

Прежде чем перейти к настройке, стоит отметить, что технология OpenVPN, на базе которой мы будем реализовывать нашу задачу, может работать в нескольких режимах, а именно «Peer to Peer (Shared Key)» - PSK и «Peer to Peer (SSL/TLS)» - PKI.

«Peer to Peer (Shared Key)» - PSK является наиболее простым в настройке режимом и вполне подходит для объединения небольшого числа сетей. При этом, его недостаток заключается в том, что для каждого удаленного подразделения сети приходится создавать отдельный экземпляр сервиса OpenVPN на управляющем сервере pfSense. Если Вам необходим связать много (более 3-4) частных сетей, то стоит подумать о режиме PKI, в котором один экземпляр сервера может обслуживать множество клиентов.

В данном руководстве мы рассмотрим процесс настройки Site-to-Site VPN в режиме PSK, так как он вполне соответствует нашей задаче – объединению всего двух сетей.

Server Mode: Peer to Peer (Shared Key)
Protocol: UDP
Device Mode: tun
Interface: WAN
Local Port: 1194
Description: любое описание сервера
Shared key: Automatically generate a shared key (при сохранении и закрытии параметров будет сгенерирован ключ, который в последствии необходимо будет скопировать на клиентский OpenVPN-сервер)
Encryption algorithm: можно оставить по умолчанию
Hardware Crypto: No hardware crypto acceleration
IPv4 Tunnel Network: 10.0.8.0/24 (в нашем случае)
IPv4 Remote networks: 10.0.1.0/24 (! Этот параметр указывает на адресное пространство удаленной сети. Вы можете получить его с помощью сведений о вашей физической/частной сети, отображаемых на любом из входящих в нее устройств. Например, для локальной сети, где адрес шлюза: 192.168.1.1, адресное пространство - 192.168.1.0/24)

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

 После сохранения изменений следует применить их, а затем обновить страницу.

 После сохранения изменений снова применяем их, обновляем страницу.

На последнем этапе следует сконфигурировать второй сервер pfSense (далее OpenVPN – клиент), находящийся во внешней подключаемой сети (в нашем случае – 10.0.1.0/24).

После сохранения изменений применяем их и обновляем страницу.

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

На этом настройку можно считать завершенной.

 

P.S. Заключение

Удостоверимся в корректности конфигурации, например, через проверку соединения между управляемым сервером pfSense, находящимся в сети 10.0.1.0/24, и Windows-сервером, расположенным в 10.0.0.0/24.
Для этого подключаемся к Windows-хосту по RDP, используя IP-адрес, логин и пароль, указанные в панели 1cloud. Затем открываем командную строку (cmd) и вводим следующее:

Ping 10.0.1.1 (Адрес пингуемого сервера у Вас может отличаться – вводите адрес любой из машин, подключенных ко второй частной сети.)

В случае успешного соединения, в командной строке начнет отображаться процесс обмена пакетами.

 

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