pfSense: установка OpenVPN-сервера
Если у вас уже стоит pfSense как шлюз или на выделенном сервере, поднимать отдельный OpenVPN-сервис нет смысла — в pfSense есть встроенный OpenVPN Server Wizard, который за десяток экранов создаёт CA, серверный сертификат, конфигурацию туннеля и добавляет нужные правила файрвола. Ниже — весь путь от чистой установки pfSense до рабочего .ovpn-файла в руках клиента, с пояснением, что мастер делает под капотом и где чаще всего ошибаются.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что понадобится перед началом
Прежде чем открывать мастер, разберитесь с тремя вещами — от них зависит, какие поля вписывать в мастер, и переделывать потом не хочется.
- Версия pfSense. Инструкция актуальна для pfSense CE 2.7.x и Plus 24.x — интерфейс мастера в этих ветках идентичен. Если у вас более старая 2.4/2.5, экраны те же по смыслу, но названия некоторых полей отличаются.
- Публичный адрес или DNS-имя. Клиентам нужно куда-то подключаться. Подойдёт статический белый IP WAN-интерфейса или DNS-имя, если IP может меняться (DDNS настраивается в pfSense отдельно, в
Services > Dynamic DNS). - Свободный UDP-порт. По умолчанию OpenVPN слушает
1194/UDP. Если сервер уже держит другие сервисы или провайдер режет нестандартные порты, заранее решите, на каком порту будет висеть VPN — это можно указать в мастере. - Схема адресации. Понадобится диапазон для VPN-туннеля (Tunnel Network, например
10.10.10.0/24) и адрес(а) локальной сети, которую клиенты должны увидеть после подключения (Local Network, например192.168.1.0/24). Диапазон туннеля не должен пересекаться с уже используемыми сетями.
Если вы разворачиваете pfSense с нуля на арендованном сервере, сначала убедитесь, что WAN и LAN интерфейсы назначены правильно и в файрволе есть базовое правило на LAN, разрешающее исходящий трафик — без этого мастер отработает, но у клиентов может не быть интернета через туннель.
Запуск OpenVPN Server Wizard
Мастер находится в VPN > OpenVPN, вкладка Wizards. Логика следующая:
- Type of Server — выбираете тип центра сертификации. Если CA ещё нет, оставляете
Create a new Certificate Authority. Если в организации уже есть внутренний CA и вы хотите использовать его —Use an existing Certificate Authority. - Certificate Authority — заполняете
Descriptive name(например,MAATRIX-VPN-CA), срок действия (Lifetime, по умолчанию 3650 дней — этого достаточно на годы вперёд) и поляCountry Code,State,City,Organization. Значения не критичны технически, но лучше вписать реальные — они попадут в сертификаты, и по ним удобно ориентироваться в списке. - Server Certificate — аналогично, но для серверного сертификата.
Descriptive nameстоит сделать говорящим, напримерserver-ovpn-vpn1. - General OpenVPN Server Information — здесь основные параметры сервера:
Interface— обычноWAN;Protocol—UDP(TCP оставляйте только если UDP жёстко блокируется у клиентов, TCP даёт заметно бо́льшие задержки при потерях пакетов);Local port— порт, который решили выше;Description— произвольное имя сервера.
На этом же экране мастер попросит выбрать шифрование и параметры туннеля — разберём их отдельно ниже, потому что здесь чаще всего ошибаются с выбором дефолтов.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверПараметры туннеля и шифрования
В блоке Cryptographic Settings мастера обратите внимание на четыре поля:
| Параметр | Что выбрать | Почему |
|---|---|---|
| TLS Configuration | Use a TLS Key + Automatically generate a TLS Key | Добавляет TLS-auth (HMAC) поверх TLS-хендшейка — режет часть DoS- и сканирующего трафика на порт ещё до TLS-рукопожатия |
| Peer Certificate Authority | CA, созданный на предыдущем шаге | — |
| Peer Certificate Revocation list | можно создать позже, необязательно на старте | нужен, если планируете отзывать сертификаты |
| Encryption Algorithm | AES-256-GCM | AEAD-шифр, быстрее CBC-режимов за счёт аппаратного ускорения AES-NI на большинстве современных CPU |
| Auth Digest Algorithm | SHA256 | баланс скорости и стойкости, SHA1 сейчас смысла держать нет |
| Hardware Crypto | No Hardware Crypto Acceleration, если нет выделенной карты | на VPS отдельного крипто-ускорителя обычно нет |
Дальше — сетевые параметры:
- Tunnel Network — например
10.10.10.0/24. Это адреса, которые получат клиенты внутри туннеля. - Redirect Gateway — включайте только если хотите завернуть *весь* трафик клиента через VPN (полноценный full-tunnel). Для доступа только к локальной сети офиса оставьте выключенным.
- Local Network —
192.168.1.0/24(или ваша LAN-подсеть). pfSense сам добавит маршрут, чтобы клиенты видели эту сеть. - Concurrent Connections — максимум одновременных клиентов, по умолчанию 2, обычно стоит поднять до реального числа пользователей плюс запас.
- DNS Default Domain / DNS Server — если хотите, чтобы клиенты резолвили внутренние имена или получали ваш DNS вместо DNS провайдера, укажите здесь IP DNS-сервера (можно сам pfSense, если на нём поднят Unbound/DNS Resolver).
После заполнения мастер покажет финальный экран Firewall Rule Configuration — на нём два чекбокса: разрешить входящий OpenVPN-трафик на WAN и разрешить трафик из туннеля дальше в сеть. Оставьте оба включёнными для типовой схемы удалённого доступа.
Проверка и донастройка сертификатов и CA
Мастер создаёт CA и серверный сертификат автоматически, но стоит один раз заглянуть в System > Certificate Manager, чтобы понимать структуру:
- Вкладка
CAs— здесь ваш корневой CA, от него будут подписываться все клиентские сертификаты. - Вкладка
Certificates— серверный сертификат с флагомServer Certificateв Type/Usage. ПроверьтеValid Until— если срок жизни CA меньше, чем у сертификата, при выпуске получите ошибку. - Вкладка
Certificate Revocation— тут потом отзываете сертификаты уволенных сотрудников или скомпрометированные ключи. Список отзыва (CRL) нужно будет привязать к серверу VPN вVPN > OpenVPN > Servers, иначе отозванный сертификат продолжит пускать в сеть.
Если структура организации предполагает несколько групп доступа (например, «офис» и «подрядчики» с разными правами), проще сразу создать отдельные Tunnel Network для второго сервера OpenVPN, чем городить сложные firewall-правила поверх одной сети — в pfSense можно поднять несколько независимых OpenVPN-серверов на разных портах.
Правила файрвола для OpenVPN-интерфейса
Мастер добавляет правило на WAN, разрешающее входящий UDP на выбранный порт, — этого достаточно, чтобы сервер принимал подключения. Но по умолчанию сам туннель после подключения клиента ничего никуда не пускает, пока вы не назначите интерфейс и не добавите правила на нём:
Interfaces > Assignments— добавьте новый интерфейс, выбрав в спискеovpns1(виртуальный интерфейс OpenVPN-сервера). Назовите его понятно, напримерOpenVPN.Interfaces > OpenVPN— включите интерфейс (Enable interface), сохраните.Firewall > Rules > OpenVPN— добавьте правило:
Action: Pass
Interface: OpenVPN
Protocol: any
Source: OpenVPN net (10.10.10.0/24)
Destination: any (или конкретно LAN net, если нужен доступ только к локалке)
Без этого шага клиент подключится к VPN, получит IP из туннеля, но дальше пакеты никуда не пройдут — частая причина жалоб «VPN подключился, а интернета/сети нет». Логика та же, что и в правилах для обычного WireGuard-туннеля: проверка DNS leak и закрытие через VPN тоже требует явных правил на интерфейсе, а не только на WAN.
Выдача клиентских сертификатов и экспорт конфигов
Каждому пользователю нужен собственный сертификат, подписанный тем же CA, — так вы сможете отзывать доступ точечно, не трогая остальных.
System > User Manager > Users > Add— создаёте пользователя, ставите галочкуClick to create a user certificate, выбираете созданный CA, задаётеKey length(2048 или 4096 бит) и срок жизни сертификата.- Установите пакет
openvpn-client-exportчерезSystem > Package Manager, если его ещё нет. - После установки в
VPN > OpenVPN > Client Exportпоявляется список пользователей с готовыми сертификатами — напротив каждого есть кнопки для скачивания.ovpn-файла (inline-конфиг со встроенными сертификатами) либо готовых установщиков для Windows/macOS. - Готовый
.ovpnможно сразу отдавать пользователю — он открывается в официальном клиенте OpenVPN Connect или в Tunnelblick на macOS без ручной сборки конфига.
Если пользователей много и сертификаты нужно выдавать регулярно, схема с несколькими сертификатами под одним CA — это, по сути, ручной аналог того, что описано в статье про multi-user сертификаты через easy-rsa: те же принципы, только с графическим интерфейсом вместо командной строки. Если после экспорта клиент не может подключиться, начните диагностику с проверки правил файрвола на интерфейсе OpenVPN, а частые причины разрыва при рукопожатии разобраны в статье про ошибку TLS handshake failed.
Арендуйте сервер под свои задачи!
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Мастер уже отработал, но клиенты не могут подключиться — с чего начать диагностику?
Сначала Status > System Logs > OpenVPN — там видно, доходит ли вообще пакет от клиента до сервера. Если в логе тишина, проблема на уровне сети (порт закрыт у провайдера, NAT перед pfSense, неверный DDNS-адрес). Если есть попытки подключения с ошибками TLS — проверьте, что клиентский сертификат подписан тем же CA, что и серверный.
Можно ли изменить Tunnel Network после того, как мастер уже всё создал?
Да, в VPN > OpenVPN > Servers > Edit. Но если клиенты уже получили конфиги со старой подсетью в маршрутах (актуально при Redirect Gateway или ручных push-маршрутах), им нужно будет перевыпустить .ovpn.
Нужен ли отдельный CRL, если сотрудников немного?
Формально можно обойтись без него и просто удалять учётку пользователя, но пока сертификат не в CRL, теоретически он остаётся валидным, если кто-то успел скопировать .ovpn-файл до удаления. Для боевой инфраструктуры лучше сразу привязать CRL к серверу.
UDP заблокирован у части клиентов — что делать, не поднимая второй сервер?
В pfSense можно создать второй OpenVPN-сервер на TCP/443 через тот же мастер (другой порт, другой Tunnel Network) — клиенты с проблемным UDP переключаются на него вручную. Держать TCP-443 основным для всех не стоит: инкапсуляция TCP-в-TCP сильнее просаживает скорость при потерях пакетов, чем UDP.
Как понять, что шифрование настроено достаточно надёжно, а не просто «по умолчанию»?
Ориентир — AES-256-GCM + SHA256 + TLS-auth, RSA/EC-ключи от 2048 бит. Это не экзотика, а практический минимум для 2026 года; более тяжёлые схемы (4096-битные ключи, ChaCha20) оправданы только если CPU сервера не тянет AES-NI или есть конкретное требование комплаенса.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →