Вопрос или проблема
Моя компания использует pfsense 2.3.2-RELEASE
в качестве VPN-сервера. Все сгенерированные файлы конфигурации OpenVPN выглядят так:
persist-tun
persist-key
cipher AES-128-CBC
auth SHA1
tls-client
client
remote 192.168.100.2 1194 udp
setenv opt block-outside-dns
lport 0
verify-x509-name "******" name
auth-user-pass
ns-cert-type server
Удалённый сервер имеет внутренний IP-адрес. Поэтому мне нужно вручную изменить его на доменное имя VPN-шлюза, прежде чем передать файл конфигурации пользователю. Как я могу использовать доменное имя VPN-шлюза?
Я нашёл настройки для имени хоста удалённого сервера. Они находятся в OpenVPN
– Client Export Utility
, разделе Client Connection Behavior
. Я изменил Host Name Resolution
на Other
и вручную указал имя хоста.
Не совсем ясно, что вы спрашиваете, но “remote” может принимать как IP-адрес, так и доменное имя – поэтому вполне допустимо заменить “remote 192.168.100.2 1194 udp” на “remote domain.example.com 1194 udp”.
Если ваши затруднения связаны с разными внутренними и внешними IP-адресами и с тем, как иметь одно и то же имя для обоих в зависимости от того, откуда идёт запрос, эта проблема решается с помощью раздельного DNS. Невозможно дать конкретные рекомендации, не зная гораздо больше о вашей сетевой настройке и о том, как вы в настоящее время используете DNS, однако есть несколько распространённых решений:
-
Используйте DNSMasq в вашей локальной сети и создайте отображение вашего желаемого домена на локальный IP-адрес в вашем файле hosts. Убедитесь, что все компьютеры в вашей локальной сети используют DNSMasq в качестве серверов имен и что DNSMasq переводит хосты в IP-адреса.
-
Если вы используете BIND для авторитетного DNS, используйте раздельный DNS – такая настройка позволит создавать разные зоны в зависимости от того, откуда исходит запрос. Если вы используете BIND для рекурсивного DNS, создайте зону для вашего домена в вашем локальном BIND и добавьте соответствующее локальное отображение домена – IP-адреса.
В зависимости от сложности вашей сети – если вы можете разместить сервер OpenVPN в отдельной подсети, так чтобы все запросы – как внутренние, так и внешние – проходили через межсетевой экран, вы сможете добавить правило в межсетевой экран для перехвата запросов из вашей локальной сети, направленных на внешний IP-адрес на порт 1194, и перенаправить их на ваш сервер OpenVPN, одновременно выполняя переадресацию/пинхоллинг этого с вашего WAN-интерфейса.
Я нашёл настройки для имени хоста удалённого сервера. Они находятся в OpenVPN
– Client Export Utility
, разделе Client Connection Behavior
. Я изменил Host Name Resolution
на Other
и вручную указал имя хоста.
Ответ или решение
Для настройки имени удалённого сервера OpenVPN на pfSense, вам необходимо произвести несколько действий, чтобы обеспечить корректный доступ к вашему VPN-серверу как из внутренней, так и из внешней сети. Ниже представлено подробное руководство по этому процессу.
Шаг 1: Установка доменного имени для OpenVPN
-
Зайдите в интерфейс pfSense: Откройте веб-браузер и подключитесь к вашему pfSense, используя его IP-адрес.
-
Перейдите в настройки OpenVPN:
- В меню выберите VPN > OpenVPN.
- Перейдите на вкладку Client Export.
-
Настройка имени хоста:
- В разделе Client Connection Behavior найдите параметр Host Name Resolution.
- Измените значение на Other и введите ваше DNS-имя (например,
vpn.example.com
) в соответствующее поле.
Это изменение позволит клиентам VPN подключаться к серверу через доменное имя, а не IP-адрес. Убедитесь, что DNS-запись для вашего домена корректно указывает на IP-адрес вашего VPN-сервера.
Шаг 2: Конфигурация DNS
Если ваше внутреннее и внешнее сетевое окружение различается (например, у вас один IP для внешнего доступа и другой для внутреннего), вам может понадобиться настроить Split DNS:
-
Использование DNSMasq:
- Установите и настройте пакет DNSMasq на pfSense.
- Перейдите в Services > DNS Forwarder и включите его.
- Добавьте запись в файл размещения, указывающую ваше нужное доменное имя на внутренний IP-адрес VPN-сервера.
-
Настройка BIND:
- Если вы используете BIND для авторитетного DNS, настройте Split DNS, чтобы использовать разные зоны в зависимости от источника запроса.
- Создайте зону для вашего домена и добавьте соответствующее локальное соответствие домен – IP.
Шаг 3: Проверьте настройки брандмауэра
-
Создайте правила NAT/Port Forwarding:
- Перейдите в меню Firewall > NAT > Port Forward и добавьте правило, перенаправляющее трафик с внешнего IP на внутренний IP вашего OpenVPN сервера.
-
Настройка правил брандмауэра:
- Проверьте настройки правил брандмауэра в разделе Firewall > Rules для вашего WAN и LAN интерфейса, чтобы убедиться, что разрешён трафик на необходимый порт (например, 1194).
Шаг 4: Генерация конфигурации клиента
После того, как все настройки завершены, вы можете генерировать конфигурационный файл для клиентов OpenVPN:
- Вернитесь в Client Export Utility.
- Выберите пользователя и сгенерируйте файл конфигурации.
- Распространите этот файл среди ваших пользователей, будучи уверенными, что указанный в нём хост — это ваше DNS-имя.
Заключение
Теперь, когда вы завершили настройку, ваши пользователи смогут подключаться к OpenVPN серверу, используя доменное имя, без необходимости вручную изменять IP-адрес в конфигурационном файле. Обязательно протестируйте подключения, чтобы убедиться, что всё работает корректно как из внутренней, так и из внешней сетей.
Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью или обращаться к сообществу pfSense для получения поддержки.