Настройка opnSense в качестве OpenVPN клиента для FrootVPN и других подобных сервисов.

Из личного кабинета FrootVPN скачиваем файл настройки необходимого вам сервера. Я использую Германию, Франкфурт и получаю файл .ovpn. В этом файле перечислены настройки подключения, которые необходимо внести в opnSense.

Для начала идем в Система — Доверенные сертификаты — Полномочия. Нажимаем кнопку +Добавить, даем имя и копируем блок CA из скачанного файла .ovpn

opnSense

Далее, идем в VPN — OpenVPN — Клиенты и добавляем новую запись нажимая на +Добавить.

В общей информации заполняем:

Описание — FrootVPN
Режим сервера — Пиринговая сеть (SSL/TLS)
Протокол — UDP
Режим работы устройства — tun
Интерфейс — any (Либо выбрать конкретный исходящий интерфейс)
Удаленный сервер — de-fr.frootvpn.com Порт — 1194

В настройки аутентификации пользователей заполняем:

Имя пользователя/пароль — ваш логин и пароль к подключению впн frootvpn

В криптографические установки заполняем:

Аутентификация TLS — галочку оставляем
Автоматически генерировать совместно использующийся ключ аутентификации TLS — галочку убираем, появляется окно для ввода ключа. Вставляем в это поле ключ скопированный из блока tls-key из скачанного файлика .ovpn
Центр сертификации пиров — выбираем FrootVPN. Если здесь пустое поле и нет никакого выбора, значит вы не импортировали сертификат в полномочия. Смотри выше как это сделать.
Сертификат клиента — Отсутствует (Требуется имя пользователя и пароль)
Алгоритм шифрования —  AES-256-CBC (256 bit key, 128 bit block)
Дайджест-алгоритм аутентификации — SHA384 (384-bit)
Аппаратные средства криптозащиты — No hardware crypto acceleration

Все эти данные могут не совпадать с вашими сервисами, но их можно посмотреть на сайте сервиса или в файлике .ovpn

В настройки туннеля я установил для себя две галочки, это Отключить IPv6 (не пользуюсь) и Не добавлять/удалять маршруты. Если эту галочку не поставить, то весь трафик пойдет через туннель. Мне же нужно, чтобы в туннель уходил трафик только на определенные сайты, поэтому маршруты я пропишу сам.

Добавление маршрутов на определенные сайты

Переходим Система — Маршруты — Конфигурация и жмем кнопку +

В pfSense была прекрасная возможность указать в качестве узла Алиас (Псевдоним) и в маршрутизации была всего одна запись Алиас — Шлюз — Описание. В opnSense такой возможности нет («Что блет?!») поэтому все эти сайты придется прописать вручную.

Так же в правилах исходящего NAT необходимо продублировать эти сайты. Делаем это так: Межсетевой экран — Псевдонимы. Жмем плюс и создаем новый алиас, тип Хост(ы), в Содержание прописываем нужные адреса.

Ну и в заключении переключаем режим NAT в смешанный и прописываем правило исходящего NAT. Интерфейс выбираем FrootVPN, отправитель Любой, либо выбираем адреса локальной сети, либо просто локальный сетевой интерфейс, в качестве получателя (куда направляется трафик) выбираем алиас, который сделали на прошлом шаге, адрес NAT оставляем как есть. На этом все, трафик начнет на нужные сайты бегать через впн канал, весь остальной трафик пойдет через дефолтный шлюз.