06.06.2023

PfSense 2.3. Настройка Site-to-Site VPN

Рассмотрим настройку pfSense.

Для начал, думаю, стоит объяснить что такое pfSense и Site-to-Site VPN и в чем преимущества. Затем перейдем к реализации.

pfSense - это дистрибутив межсетевого экрана основанный на операционной системе FreeBSD. Дистрибутив позволяет реализовать такие механизмы, как NAT, CARP, VPN (в т.ч. PPTP, IPsec, OpenVPN), Captive portal. Кроме этого выполняет функционал классического файрволла, динамического DNS, DHCP и прокси сервера. Прост в развертывании.

Почему Site-to-Site?

Site-to-Site позволяет сконфигурировать только шлюзы в удаленных подсетях, при этом отпадает необходимость конфигурирования самих узлов сети. Говоря простым языком, способ Site-to-Site соединяет два офиса в единую сеть, а Point-to-Site - удаленных сотрудников с офисом. В статье рассмотрим пример соединения двух уже существующих сетей - физической и виртуальной.

Процесс настройки условно разделим на два этапа:

1. Настройка pfSense и конфигурирование частных сетей;

2. Реализация Site-to-Site.

Приступаем.

 

Сперва настроим внутреннюю локальную сеть и интерфейс шлюза. Для этого, в браузере, переходим по IP-адресу сервера или доменному имени, если такое имеется. Вводим логин и пароль и попадаем на Главный экран (Dashboard). В меню программы переходим в раздел интерфейсов (Interfaces) -> Назначение (Assignments). В нашем примере только два интерфейса и уже распределены - оставляем как есть. Если у Вас несколько интерфейсов, следует выбрать необходимый интерфейс по mac-адресу и нажать кнопку добавить (Add).

Назначаем IP-адрес интерфейсу “смотрящему” в локальную сеть. В меню программы переходим в раздел интерфейсов (Interfaces) -> LAN. По окончании настройки нажимаем кнопку Сохранить (Save).

Для всех серверов в локальной сети, в качестве шлюза по умолчанию, устанавливаем IP-адрес, указанный в LAN.

Важно! Если вы используете облачные сервисы, то объединять узлы сети необходимо из панели администрирования облачного сервиса через “Виртуальные сети”.

Настраиваем Firewall для локальных соединений.

В меню программы выбираем Firewall -> Правила (Rules) -> LAN. Наживаем кнопку Добавить (Add).

На новой странице проверяем параметры:

настраиваемый интерфейс (Interface) - LAN;

Протокол (Protocol) - TCP, но можно и Any;

Источник (Source) - Any;

Назначение (Destination)- Any.

Настройки сохраняем кликнув по клавише Сохранить (Save).

Следует обратить внимание, что эти же настройки надо сделать на всех удаленных серверах pfSense, соединяемых в единую сеть.

Приступаем к настройке туннеля Site-to-Site.

В начале настраиваем OpenVPN. В главном меню выбираем VPN -> OpenVPN и кликаем по кнопке Добавить (Add).

На новой странице выбираем:

Режим работы сервера (Server mode) - Peer to Peer (Shared Key);

Протокол (Protocol) - UDP on IPv4 only;

Device mode - tun - Layer 3 Tunnel Mode;

Интерфейс (Interface) - WAN;

Порт (Local port) - 1194;

Shared key - Устанавливаем галку напротив Automatically generate a shared key;

Алгоритм шифрования (Encryption algorithm) - оставляем по умолчанию;

Аппаратное шифрование (Hardware Crypto) - No hardware crypto acceleration;

IPv4 Tunnel Network: 10.0.10.0/24 - указываем адреса используемые в туннеле;

IPv4 Remote networks: 10.0.1.0/24 - указываем адрес сети находящийся за удаленным шлюзом pfSense.

Сохраняем настройки и не забываем кликнуть по зеленой кнопке Применить изменения (Apply Changes).

Настроим Firewall для нового интерфейса.

В главном меню выбираем Firewall -> Правила (Rules). Выбираем пункт OpenVPN и кликаем по кнопке Добавить (Add).

На обновленной странице проверяем параметры:

Интерфейс (Interface) - OpenVPN;

Протокол - TCP, но лучше Any;

Источник (Source) и назначение (Destination) - Any.

По окончании кликаем по кнопке Сохранить (Save). Не забываем кликнуть по зеленой кнопке Применить изменения (Apply Changes)

Настроим Firewall для интерфейса WAN.

В главном меню выбираем Firewall -> Правила (Rules). Выбираем пункт OpenVPN и кликаем по кнопке Добавить (Add).

Интерфейс (Interface) - WAN;

Протокол (Protocol) - UDP;

Диапазон портов назначения (Destination port range) в обоих выпажающих списках (From и To) выбираем OpenVPN (1194).

Сохраняем настройки. Не забываем кликнуть по зеленой кнопке Применить изменения (Apply Changes).

Теперь копируем сгенерированный ключ, для передачи его на удаленный маршрутизатор. В главном меню выбираем VPN -> OpenVPN. Кликаем по значку “Карандаш” (редактировать). На обновленной странице из пункта Shared Key копируем всё содержимое поля в текстовый редактор, например, Блокнот.

Осталось настроить удаленный pfSense-шлюз в качестве клиента.

В главном меню выбираем VPN -> OpenVPN и кликаем по пункту Clients, затем по кнопке Добавить (Add).

На открывшейся странице проверяем параметры:

Режим работы сервера (Server mode) - Peer to Peer (Shared Key);

Протокол (Protocol) - UDP on IPv4 only;

Device mode - tun - Layer 3 Tunnel Mode;

Интерфейс (Interface) - WAN;

Адрес сервера (Server host address) - указывается именно WAN интерфейс сервера, который настраивали ранее;

Порт (Local port) - 1194;

Shared key - Снимаем галку напротив Automatically generate a shared key;

Алгоритм шифрования (Encryption algorithm) - оставляем по умолчанию;

Аппаратное шифрование (Hardware Crypto) - No hardware crypto acceleration;

IPv4 Tunnel Network: 10.0.10.0/24 - указываем адреса используемые в туннеле;

IPv4 Remote networks: указываем адрес сети находящийся за удаленным сервером - шлюзом pfSense.

Кликаем Сохранить (Save). Затем по зеленой кнопке Применить изменения (Apply Changes).

На этом настройка окончена.