Как настроить клиент OpenVPN в pfSense
Содержание
pfSense — это маршрутизатор / брандмауэр с открытым исходным кодом, основанный на FreeBSD. В этом посте мы покажем вам, как создать клиентское соединение OpenVPN с коммерческим провайдером VPN с помощью pfSense.
pfSense — это брандмауэр с открытым исходным кодом, основанный на FreeBSD, который также действует как маршрутизатор. Вы можете установить pfSense на старое (или новое) оборудование, если в системе есть две сетевые карты (WAN и LAN), и использовать pfSense в качестве маршрутизатора. pfSense предлагает больше мощности, контроля и безопасности, чем большинство коммерческих маршрутизаторов, которые вы можете купить, и имеет преимущество частых обновлений ОС. У него также есть простой в использовании веб-интерфейс, через который вы можете настроить все аспекты вашего маршрутизатора / брандмауэра.
Одна из многих интересных вещей, которые вы можете сделать с помощью pfSense, — это настроить клиентское соединение с провайдером OpenVPN. Затем вы можете настроить pfSense для маршрутизации всего трафика всех подключенных устройств (ПК, планшеты, смартфоны) через VPN-соединение. Это позволяет вам:
- Подключите к VPN столько устройств, сколько хотите, и обойдите жесткие ограничения на одновременные подключения, которые может установить ваш провайдер.
- Подключайте устройства, которые изначально не поддерживают VPN-подключения, например игровые консоли и смарт-телевизоры.
- Подключайтесь к VPN без использования специального приложения VPN.
В этом посте мы рассмотрим, как настроить клиентское соединение OpenVPN с коммерческим провайдером VPN в pfSense. В этом руководстве предполагается, что вы установили pfSense и у вас есть стандартная конфигурация, по крайней мере, с одним интерфейсом LAN и одним интерфейсом WAN.
Провайдеры VPN
Не все коммерческие поставщики VPN поддерживают pfSense, хотя многие из них поддерживают. Когда провайдер VPN официально поддерживает pfSense, довольно легко найти все файлы, необходимые для его настройки, на pfSense. Другие провайдеры VPN официально не поддерживают pfSense, но все же предоставляют в ваше распоряжение файлы конфигурации, необходимые для настройки клиентского соединения с pfSense. Обычно это провайдеры, поддерживающие Linux, и они делают необходимые файлы конфигурации доступными для конфигурации Linux. Но оказывается, что файлы, необходимые для подключения клиента OpenVPN в Linux, совпадают с теми, которые вам потребуются для настройки в pfSense.
Вот список провайдеров, которые, как известно, работают с pfSense (официально или неофициально). Список не является исчерпывающим, поэтому могут быть и другие.
ПРЕДУПРЕЖДЕНИЕ О СДЕЛКАХ: получите 3 месяца бесплатно с ExpressVPN, нашим провайдером VPN №1.
- AirVPN
- ExpressVPN
- Surfshark
- hide.me
- Скрыть мою задницу
- iVPN
- Крот
- NordVPN
- OVPN
- Частный доступ в Интернет
- ProtonVPN
- PureVPN
- TorGuard
- VyprVPN
- Windscribe
Существуют также разные способы настройки одного и того же провайдера на pfSense. Для этого руководства я выбрал наиболее простой способ, который хорошо работает с типичной базовой установкой pfSense.
Что вам понадобится
Чтобы это работало в pfSense, вам необходимо получить следующее с веб-сайта вашего провайдера VPN. Поставщики VPN, поддерживающие pfSense (официально или неофициально), сделают свои файлы конфигурации доступными для загрузки.
- Ваши учетные данные: это будут имя пользователя и пароль, идентификатор клиента, номер счета — как бы они его ни называли. Это зависит от провайдера. Это может быть любой из вышеперечисленных. Вам просто нужны средства идентификации и аутентификации для вашей учетной записи.
- Сертификат CA: у поставщика VPN есть центр сертификации, который проверяет подключения к его серверам VPN. Чтобы настроить pfSense в качестве VPN-клиента, вам понадобится сертификат CA вашего провайдера. Выглядит это так:
- Закрытый ключ сертификата ЦС: некоторые поставщики также требуют, чтобы вы импортировали закрытый ключ сертификата ЦС. Не все. Выглядит это так:
- Ключ TLS. Некоторым поставщикам VPN также требуется ключ TLS для создания клиентского подключения к своим серверам. Его часто называют статическим ключом. Если вашему провайдеру VPN требуется статический ключ для установления соединения OpenVPN, он вам тоже понадобится. Выглядит это так:
Итак, первое, что вам нужно сделать, это получить файлы конфигурации OpenVPN у вашего провайдера VPN. Как только у вас есть все это, вы готовы приступить к настройке клиентского соединения в pfSense.
Настройка pfSense
Авторизоваться
Первое, что нам нужно сделать, это войти в наш ящик pfSense.
- Запустите веб-браузер и введите: https: // <ваш IP-адрес в локальной сети> в строке URL. pfSense по умолчанию 192.168.1.1.
- Введите ваше имя пользователя и пароль. Вы попадете на панель управления pfSense.
Импорт сертификата CA и ключа
Мы собираемся начать с импорта сертификата CA нашего провайдера VPN.
Как импортировать ЦС в pfSense
- Перейдите в System> Cert. Диспетчер> ЦС и нажмите кнопку Добавить в правом нижнем углу.
- Дайте ЦС описательное имя. В этом примере я использую CA моего поставщика VPN.
- Установите в поле Метод значение Импорт существующего центра сертификации.
- Вставьте сертификат CA вашего провайдера в поле данных сертификата.
- Вставьте свой ключ CA в поле «Закрытый ключ сертификата» (если этого требует ваш провайдер).
- Щелкните Сохранить. Вы импортировали ЦС своего VPN-провайдера и вернулись на страницу ЦС, где ваш недавно импортированный ЦС теперь отображается в списке.
Добавление клиентского подключения OpenVPN
Теперь, когда мы импортировали наш сертификат CA, мы можем приступить к настройке нашего VPN-соединения.
Если ваш провайдер VPN явно поддерживает pfSense, информацию, необходимую для его настройки, будет легко найти. Если ваш провайдер VPN «неофициально» поддерживает pfSense, поддерживая Linux, вы можете найти необходимую информацию в одном из файлов .ovpn, доступных для Linux. Файлы .ovpn можно открыть с помощью стандартного текстового редактора. Это будет выглядеть примерно так (сертификат и ключ на скриншоте сокращены):
Перейдите к VPN> OpenVPN> Клиенты и нажмите кнопку Добавить.
Страница конфигурации клиента OpenVPN довольно длинная. Мы разберем его по разделам и рассмотрим все параметры, необходимые для установки соединения OpenVPN.
Общая информация
Отключено: не устанавливайте этот флажок, иначе клиентское соединение будет отключено.
Режим сервера: установите для него значение «Одноранговый» (SSL / TLS). Другой вариант, Shared Key, обычно используется для VPN-соединений точка-точка, которые связывают две сети вместе через VPN.
Протокол: обычно это UDP, но также можно установить TCP, если ваш провайдер поддерживает TCP-соединения. UDP обычно работает быстрее и является предпочтительным выбором для OpenVPN.
Интерфейс: WAN
Локальный порт: оставьте поле пустым, если это не указано вашим провайдером VPN.
Хост или адрес сервера: IP-адрес или имя хоста VPN-сервера, к которому вы будете подключаться.
Порт сервера: порт, через который будет установлено VPN-соединение. Это определяется вашим провайдером VPN.
Прокси-хост или адрес: оставьте пустым
Порт прокси: оставьте пустым
Прокси-аутентификация: оставьте пустым
Настройки аутентификации пользователя
Здесь вы вводите учетные данные своего провайдера VPN. Как я уже упоминал выше, это может быть имя пользователя и пароль, идентификатор клиента или номер учетной записи — независимо от того, что выбрал ваш провайдер VPN. Если ваш провайдер не требует пароль, просто оставьте поле пароля пустым.
Имя пользователя: ваше имя пользователя, идентификатор клиента, номер учетной записи и т.д.
Пароль: Ваш пароль (если требуется)
Автоматическая повторная попытка: не устанавливайте флажок, чтобы ваш клиент попытался повторно подключиться при сбое аутентификации.
Криптографические настройки
Способ настройки раздела криптографических параметров в значительной степени зависит от поставщика услуг VPN. Вам нужно будет получить необходимую информацию от вашего VPN. Большинство провайдеров делают эту информацию легко доступной.
Конфигурация TLS: некоторые поставщики VPN требуют, чтобы ключ TLS использовался для аутентификации соединения OpenVPN. У других нет. Если они это сделают, ключ TLS будет связан с загруженными вами файлами конфигурации. Если вашему провайдеру требуется ключ TLS, установите флажок Использовать ключ TLS. В противном случае снимите флажок.
Автоматически генерировать ключ TLS: не устанавливайте флажок.
Ключ TLS: при необходимости вставьте сюда ключ TLS, предоставленный вашим поставщиком VPN. В противном случае оставьте поле пустым.
Режим использования ключа TLS: ключи TLS могут использоваться либо для аутентификации TLS, либо для аутентификации и шифрования TLS. Это зависит от вашего провайдера. В раскрывающемся меню выберите соответствующий режим использования ключа TLS.
Направление ключевого каталога TLS: оставьте значение Использовать направление по умолчанию, если ваш провайдер не указал другой параметр. Ключи TLS клиента и сервера должны быть установлены в противоположных направлениях, чтобы аутентификация TLS работала.
Одноранговый центр сертификации: выберите ЦС, который мы импортировали ранее.
Сертификат клиента: оставьте для этого параметра значение Нет. С OpenVPN можно использовать аутентификацию на основе сертификатов, а не имя пользователя и пароль или и то, и другое. Однако каждый провайдер VPN, которого я видел, использует аутентификацию на основе учетных данных, предположительно потому, что распространение уникальных сертификатов каждому клиенту быстро станет неуправляемым.
Алгоритм шифрования: этот параметр определяет шифр, используемый для шифрования вашего соединения. Это снова зависит от вашего провайдера VPN. Однако большинство провайдеров используют AES-256-CBC или AES-256-GCM.
Включить NCP: NCP означает «согласованные криптографические параметры». Если ваш провайдер VPN поддерживает различные настройки шифрования, NCP будет согласовывать максимально надежное шифрование, которое поддерживается как клиентом (вашим блоком pfSense), так и сервером VPN. Если вы не знаете, что ваш провайдер поддерживает NCP, снимите его, и будет использован шифр, выбранный в алгоритме шифрования выше.
Алгоритмы NCP: если вы используете NCP, вы можете выбрать, какие шифры доступны для согласования. Щелчок по шифру из доступного списка импортирует его в разрешенный список.
Алгоритм дайджеста аутентификации: это алгоритм, используемый для аутентификации канала данных (туннель, через который проходит ваш трафик). Это определяется вашим провайдером VPN. Выберите соответствующий алгоритм из раскрывающегося меню.
Аппаратное шифрование: если система, в которой вы установили pfSense, поддерживает аппаратное криптографическое ускорение, вы можете включить его здесь. Если ваша система поддерживает этот параметр, вы можете включить его независимо от того, какого поставщика VPN вы используете.
Настройки туннеля
Настройки туннеля останутся пустыми. Эти настройки связаны с маршрутизацией между клиентом и сервером и обычно обрабатываются поставщиком VPN на стороне сервера.
Туннельная сеть IPv4: сеть IPv4 между клиентом и сервером. Оставьте поле пустым.
Туннельная сеть IPv6: сеть IPv6 между клиентом и сервером. Оставьте поле пустым.
Удаленная сеть (и) IPv4: сети IPv4, которые будут маршрутизироваться через туннель. Оставьте поле пустым.
IPv6 Remote network (s): Сети IPv6, которые будут маршрутизироваться через туннель. Оставьте поле пустым.
Ограничить исходящую пропускную способность: устанавливает жесткое ограничение исходящей пропускной способности. Оставьте поле пустым.
Сжатие: некоторые провайдеры VPN могут потребовать от вас включить сжатие трафика, проходящего через туннель VPN. Если это указано вашим провайдером, выберите соответствующий вариант в раскрывающемся меню. В противном случае оставьте как есть.
Топология: определяет топологию сети VPN. Оставить как есть.
Тип услуги: не устанавливайте флажок.
Не извлекать маршруты: этот параметр запрещает VPN-серверу отправлять маршруты клиенту. Некоторые провайдеры включают информацию о маршрутизации в конфигурацию клиента и могут попросить вас включить эту опцию (например, ExpressVPN). Если это указано вашим провайдером, отметьте эту опцию. В противном случае не ставьте галочку.
Не добавлять / удалять маршруты: этот параметр можно использовать для включения выборочной маршрутизации: отправка некоторого трафика через туннель VPN при отправке остального трафика через шлюз ISP. Для этого необходимо настроить интерфейс VPN (который мы создадим ниже) в качестве шлюза в pfSense и указать некоторые правила брандмауэра и NAT, чтобы он заработал. Это выходит за рамки данного руководства. Кроме того, в вашем типичном коммерческом сценарии VPN вы хотите, чтобы весь ваш трафик туннелировался через VPN-соединение. Не устанавливайте этот параметр.
Настройки пинга
Параметры проверки связи используются, чтобы определить, активно ли соединение и следует ли его закрыть или повторно инициировать. Оставьте все настройки как есть.
Расширенная конфигурация
Пользовательские параметры: некоторые поставщики требуют настройки некоторых пользовательских параметров для конфигурации клиента. Их можно добавить здесь. Если ваш провайдер не указывает необходимые настраиваемые параметры, оставьте это поле пустым.
UDP Fast I / O: оптимизирует запись пакетов и может ускорить VPN-соединение. Это можно включать и отключать на досуге. Я бы посоветовал попробовать оба варианта и посмотреть, повысится ли у вас скорость.
Уведомление о выходе: этот параметр явно предупреждает сервер, когда клиент отключается, чтобы он мог закрыть соединение, а не ждать, пока истечет время ожидания. Оставьте это как есть, если это не указано вашим провайдером.
Буфер отправки / получения: вы можете экспериментировать с разными размерами буфера в OpenVPN. Различные настройки дадут разные результаты с точки зрения скорости. 512 КБ — хорошее место для начала. Этот параметр не является обязательным.
Создание шлюза: выбирает, будут ли шлюзы OpenVPN создаваться только для IPv4, только для IPv6 или для обоих. Если ваш провайдер VPN не поддерживает IPv6 (например, Mullvad), установите только IPv4. Если ваш провайдер поддерживает IPv6, установите для него значение Оба.
Уровень детализации: определяет уровень детализации журналов OpenVPN для этого клиента. Уровень по умолчанию — 1. Но вы можете установить его на более высоком уровне, чтобы получать больше информации при устранении неполадок. Журналы OpenVPN в pfSense можно просмотреть, перейдя в «Статус»> «Системные журналы»> «OpenVPN».
Теперь все, что осталось для создания нашего клиентского подключения, — это нажать синюю кнопку «Сохранить» внизу экрана и нажать «Применить изменения».
Создание интерфейса VPN
Следующее, что нам нужно сделать, это создать виртуальный интерфейс, который будет размещать сегмент сети VPN (подсеть, частью которой вы становитесь после успешного VPN-соединения) в нашем блоке pfSense.
Интерфейс был автоматически создан pfSense, когда мы нажали «Сохранить» после настройки нашего соединения ранее. Но нам еще нужно его назначить и настроить.
Как добавить интерфейс в pfSense
- Перейдите в Интерфейсы> Назначения. Вы увидите ovpnc1 в списке справа от доступных сетевых портов.
- Нажмите зеленую кнопку «Добавить» справа. Интерфейс ovpnc1 назначается и отображается как OPT1.
- Щелкните OPT1. Вы попадете на страницу конфигурации интерфейса.
- Tick Включить интерфейс и дать ему имя. Оставьте все остальные настройки нетронутыми.
- Щелкните Сохранить и применить изменения. Ваш интерфейс назначен и включен.
Если вы вернетесь на страницу «Назначения интерфейсов», то увидите, что ваш именованный интерфейс теперь является частью списка активных интерфейсов.
Проверка связи
Хорошо, теперь у нас настроено клиентское соединение OpenVPN, и мы создали наш интерфейс VPN. Наше соединение сейчас работает, но pfSense не настроен для маршрутизации трафика через VPN-туннель.
Мы можем проверить, что наше соединение работает, перейдя в Статус> Системные журналы> OpenVPN. Если клиент OpenVPN настроен правильно, вы должны увидеть, что последовательность инициализации завершена, где-то в верхней части журналов OpenVPN.
Теперь нам просто нужно направить трафик через VPN-туннель.
Правила межсетевого экрана
Нам нужно убедиться, что устройства, подключенные к интерфейсу LAN, могут отправлять трафик в Интернет через шлюз по умолчанию. Когда вы устанавливаете pfSense, он автоматически создает правило, разрешающее любой тип трафика из интерфейса LAN по умолчанию. Так что, если вы там ничего не меняли, все будет в порядке.
Если вы их изменили, убедитесь, что ваши правила разрешают устройствам LAN, которые вы хотите подключиться к VPN, выходить в Интернет. Перейдите в Брандмауэр> Правила> LAN, чтобы просмотреть / обновить правила вашей локальной сети.
Так выглядят правила LAN по умолчанию. По умолчанию существует правило для IPv4 и одно для IPv6. Если ваш провайдер VPN не поддерживает IPv6, вам понадобится только правило IPv4.
Правило позволяет любому устройству в локальной сети подключаться к любому месту назначения, используя любой протокол через любой порт.
Если правила нет, вы можете создать его.
Как создать правило брандмауэра локальной сети
- Нажмите зеленую кнопку «Добавить» со стрелкой, направленной вверх. Это поместит правило наверху, и pfSense сначала будет соответствовать этому правилу.
- Установите в поле Action значение Pass.
- Не устанавливайте флажок Отключено.
- В поле Интерфейс оставьте значение LAN.
- Установите семейство адресов в IPv4.
- Установите протокол на любой
- Установите источник в локальной сети.
- Установите назначения для любого.
- Если вам также нужно правило IPv6, повторите процесс и выберите IPv6 в раскрывающемся меню Address Family.
Правила NAT
Следующее, что нам нужно сделать, это настроить наши правила преобразования сетевых адресов (NAT) для правильной маршрутизации нашего трафика VPN.
Как добавить правило NAT
- Перейдите в Брандмауэр> NAT> Исходящий.
- Установите для исходящего режима NAT значение «Вручную», а затем нажмите «Сохранить и применить изменения». Теперь ваши правила NAT должны выглядеть так (но с вашей сетью LAN вместо моей 10.0.0.0/24):
- Удалите все правила, кроме двух верхних — с 127.0.0.1.
- Нажмите зеленую кнопку «Добавить» со стрелкой, направленной вниз, чтобы создать новое правило NAT.
- В поле Интерфейс укажите созданный ранее интерфейс VPN.
- Установите для семейства адресов IPv4 или IPv4 + IPv6, если ваш провайдер VPN явно поддерживает IPv6.
- Установите в качестве исходной сети IP-адрес вашей локальной сети, но сделайте последнюю цифру равной 0 вместо 1. Поэтому, если ваш IP-адрес в локальной сети 192.168.1.1, укажите 192.168.1.0 в качестве исходной сети.
- Остальные настройки оставьте нетронутыми. Щелкните Сохранить и применить изменения.
Теперь ваши правила NAT должны выглядеть так (но с вашей сетью LAN вместо моей 10.0.0.0/24):
См. Также: Что такое межсетевой экран NAT
DNS
Последнее, что нам нужно настроить, — это DNS для вашего VPN-клиента. И есть разные способы сделать это в зависимости от вашей конфигурации pfSense. Даже если ваш провайдер VPN жестко закодирует свои DNS-серверы в своем файле конфигурации .ovpn, pfSense все равно должен знать, какие DNS-серверы будут использоваться.
DNS-преобразователь / DNS-сервер пересылки
Если вы используете DNS Forwarder или DNS Resolver в режиме пересылки, вы можете просто добавить DNS-серверы вашего VPN-провайдера на страницу General Setup.
Как добавить DNS-сервер в pfSense
- Перейдите в Система> Общие настройки.
- Щелкните Добавить DNS-сервер.
- Введите IP-адрес имени хоста DNS-сервера в соответствующее поле.
- Оставьте для шлюза значение Нет.
- Щелкните Сохранить и применить изменения.
- Повторите, чтобы добавить дополнительные DNS-серверы.
DHCP
Как протолкнуть DNS-сервер клиентам через DHCP
Если вы не используете DNS Resolver или DNS Forwarder, вы можете настроить DHCP-сервер на отправку DNS-сервера любым клиентам, которые запрашивают IP-адрес в вашей локальной сети.
- Перейдите в Сервисы> DHCP-сервер.
- В разделе «Серверы» можно указать до четырех DNS-серверов.
- Вставьте DNS-серверы вашего VPN-провайдера.
- Щелкните Сохранить и применить изменения.
Подведение итогов
Поздравляем, вы только что настроили клиентское соединение OpenVPN на pfSense. Теперь осталось только перезагрузить pfSense и подключить устройство к вашей локальной сети. После подключения вы можете перейти к нашему инструменту проверки IP-адресов, чтобы убедиться, что ваш общедоступный IP-адрес был изменен на IP-адрес VPN-сервера. Вы также можете проверить наличие утечек DNS с помощью нашего инструмента тестирования.
Теперь вы можете использовать свой коммерческий VPN с любым устройством, подключенным к вашему устройству pfSense, без специального приложения VPN. И помните, независимо от ограничения, установленного вашим поставщиком VPN на количество одновременных подключений, ваш маршрутизатор считается только одним устройством для вашего поставщика VPN. Таким образом, вы можете подключить столько устройств, сколько захотите.