Вопрос или проблема
У меня есть проблемы с подключением к серверу OpenVPN с pfSense.
Для моих тестов у меня есть 2 сетевых интерфейса как на сервере pfSense OpenVPN, так и на клиенте Windows 10 OpenVPN.
На моем pfSense у меня есть 1 сетевой интерфейс на WAN, настроенный с DHCP:
-WAN 192.168.0.28/24
-статический интерфейс LAN 192.168.10.10/24
На моем клиенте Windows 10:
-WAN DHCP 192.168.0.30/24
-статический интерфейс LAN 192.168.10.15/24
В первый раз я попробовал использовать UDP, но получил “tls key negotiation failed to occur within 60 seconds tls handshake failed”, поэтому я попробовал подключиться через TCP, но получил эту ошибку:
Моя конфигурация OpenVPN:
Режим сервера Удаленный доступ (SSL/TLS + аутентификация пользователя)
Бэкенд для аутентификации Локальная база данных
Протокол TCP
Режим устройства tun
Интерфейс WAN
Локальный порт 1194
Описание VPN
Аутентификация TLS Включить аутентификацию пакетов TLS
Ключ ...
Удостоверяющий центр партнера OpenVPN CA
Сертификат сервера Сертификат сервера (Server: Да, CA: OpenVPN CA, В использовании)
Длина параметра DH 2048
Алгоритм шифрования AES-256-CBC (256 битный ключ, 128 битный блок)
Алгоритм дайджеста аутентификации SHA1 (160 бит)
Аппаратное шифрование Нет аппаратного ускорения шифрования
Глубина сертификата Один (Клиент + Сервер)
Сетевой туннель IPv4 192.168.15.0/24
Локальная сеть IPv4 192.168.10.0/24
Одновременные подключения 5
Сжатие Без предпочтений
Динамический IP Разрешить подключенным клиентам сохранять свои подключения, если их IP-адрес меняется
Пул адресов Предоставить клиентам виртуальный IP-адрес
DNS-сервер Включить Предоставление клиентам списка DNS-серверов
DNS-сервер 1 8.8.8.8
Обновление кэша DNS Принудительный запуск "net stop dnscache" ...
Моя настройка клиента:
клиент
dev tun
proto tcp
remote 192.168.0.28 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca OpenVPN+CA.crt
cert UserCertificate.crt
key UserCertificate.key
cipher AES-256-CBC
verb 5
Я создал центр сертификации и сертификат сервера/пользователя:
Затем я добавил некоторые правила межсетевого экрана и NAT:
Я проверил межсетевой экран на pfSense, кажется, что порт 1194 открыт:
Межсетевой экран на моем клиенте Windows также отключен.
Заранее спасибо!
ИЗМЕНЕНИЕ 20:42:
Я искал журнал на сервере и клиенте, мне кажется, что я не получаю никаких журналов на сервере после неудачной попытки входа, я получаю журналы только при запуске/перезапуске службы
Это мои журналы на сервере:
Apr 7 18:34:54 openvpn 13595 OpenVPN 2.3.14 i386-portbld-freebsd10.3 [SSL (OpenSSL)] [LZO] [MH] [IPv6] построен 15 февраля 2017 г.
Apr 7 18:34:54 openvpn 13595 версии библиотек: OpenSSL 1.0.1s-freebsd 1 Mar 2016, LZO 2.09
Apr 7 18:34:54 openvpn 13883 ЗАМЕТКА: текущее значение параметра --script-security может позволить этой конфигурации вызывать пользовательские скрипты
Apr 7 18:34:54 openvpn 13883 Аутентификация канала управления: использование '/var/etc/openvpn/server1.tls-auth' в качестве статического файла ключа OpenVPN
Apr 7 18:34:54 openvpn 13883 Устройство TUN/TAP ovpns1 уже существует, оставить в конце программы
Apr 7 18:34:54 openvpn 13883 Устройство TUN/TAP /dev/tun1 открыто
Apr 7 18:34:54 openvpn 13883 ioctl(TUNSIFMODE): Устройство занято: Устройство занято (ошибка=16)
Apr 7 18:34:54 openvpn 13883 do_ifconfig, tt->ipv6=1, tt->did_ifconfig_ipv6_setup=0
Apr 7 18:34:54 openvpn 13883 /sbin/ifconfig ovpns1 192.168.15.1 192.168.15.2 mtu 1500 netmask 255.255.255.0 up
Apr 7 18:34:54 openvpn 13883 /usr/local/sbin/ovpn-linkup ovpns1 1500 1559 192.168.15.1 255.255.255.0 init
Apr 7 18:34:54 openvpn 13883 Ожидание входящего TCP-соединения на [AF_INET]192.168.0.25:1194
Apr 7 18:34:54 openvpn 13883 TCPv4_SERVER локальная ссылка (привязана): [AF_INET]192.168.0.25:1194
Apr 7 18:34:54 openvpn 13883 TCPv4_SERVER удаленная ссылка: [неопределено]
Apr 7 18:34:54 openvpn 13883 Последовательность инициализации завершена
журналы на клиенте:
Sat Apr 07 20:31:33 2018 OpenVPN 2.4.5 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] построен 1 марта 2018 г.
Sat Apr 07 20:31:33 2018 Версия Windows 6.2 (Windows 8 или выше) 64bit
Sat Apr 07 20:31:33 2018 версии библиотек: OpenSSL 1.1.0f 25 мая 2017 г., LZO 2.10
Введите пароль управления:
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: TCP-сокет прослушивания на [AF_INET]127.0.0.1:25340
Sat Apr 07 20:31:33 2018 Нужно отменить удержание из интерфейса управления, ожидание...
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: Клиент подключен с [AF_INET]127.0.0.1:25340
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: КОМАНДА 'state on'
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: КОМАНДА 'log all on'
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: КОМАНДА 'echo all on'
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: КОМАНДА 'bytecount 5'
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: КОМАНДА 'hold off'
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: КОМАНДА 'hold release'
Sat Apr 07 20:31:33 2018 ПРЕДУПРЕЖДЕНИЕ: Метод проверки сертификата сервера не включен. См. http://openvpn.net/howto.html#mitm для получения дополнительной информации.
Sat Apr 07 20:31:33 2018 TCP/UDP: Сохранение недавно использованного удаленного адреса: [AF_INET]192.168.0.28:1194
Sat Apr 07 20:31:33 2018 Буферы сокета: R=[65536->65536] S=[65536->65536]
Sat Apr 07 20:31:33 2018 Попытка установить TCP-соединение с [AF_INET]192.168.0.28:1194 [не блокировать]
Sat Apr 07 20:31:33 2018 УПРАВЛЕНИЕ: >STATE:1523125893,TCP_CONNECT,,,,,,
Sat Apr 07 20:33:34 2018 TCP: подключение к [AF_INET]192.168.0.28:1194 не удалось: Неизвестная ошибка
Sat Apr 07 20:33:34 2018 SIGUSR1[подключение не удалось(мягкое),init_instance] получено, процесс перезапускается
Sat Apr 07 20:33:34 2018 УПРАВЛЕНИЕ: >STATE:1523126014,RECONNECTING,init_instance,,,,,
Sat Apr 07 20:33:34 2018 Пауза перезапуска, 5 секунд(ы)
Sat Apr 07 20:33:39 2018 SIGTERM[жесткий,init_instance] получено, процесс завершается
Sat Apr 07 20:33:39 2018 УПРАВЛЕНИЕ: >STATE:1523126019,EXITING,init_instance,,,,,
После создания VPN-туннеля у PFsense есть опция под названием Openvpn экспортный инструмент, где вы можете отправить файл на ПК, к которому вы будете подключаться. Он скачает сертификаты и клиент, необходимые для подключения к VPN. Вы пробовали это?
Использование экспортного инструмента должно облегчить подключение вашего ПК к VPN.
Ответ или решение
Не удаётся подключиться к OpenVPN серверу (pfSense): подробное решение
Проблемы с подключением к OpenVPN серверу могут возникать по разным причинам и для их решения требуется тщательно разобраться с конфигурацией как сервера, так и клиента. Рассмотрим шаги, которые необходимо предпринять для устранения неполадки, описанной в вашем сообщении.
Распознавание проблему
В системе pfSense вы настроили серверный и клиентский конфигурации OpenVPN, однако при попытке подключения возникает ошибка "tls key negotiation failed" для UDP и ошибка подключения по TCP. Приведем поэтапное руководство, чтобы выявить и устранить проблемы с конфигурацией.
Анализ конфигурации сервера
-
Аутентификация и задания сертификатов:
- Убедитесь, что каждое устройство использует корректный набор сертификатов и ключей. Проверьте файл конфигурации openvpn, чтобы все пути к сертификатам
ca.crt
,ServerCertificate.crt
, иServerCertificate.key
были правильными.
- Убедитесь, что каждое устройство использует корректный набор сертификатов и ключей. Проверьте файл конфигурации openvpn, чтобы все пути к сертификатам
-
Сетевые интервалы и маршрутизация:
- Проверьте настройку IP-адресации в конфигурации сервера. IPv4 Tunnel Network (192.168.15.0/24) и IPv4 Local network (192.168.10.0/24) должны быть точно указаны. Именно по этим сетям будут установлены маршруты к удаленным клиентам.
-
Настройка брандмауэра:
- Убедитесь, что в pfSense настроены правильные правила на разрешение трафика на порту 1194 для интерфейса WAN. Возможно, потребуется добавить правило, разрешающее входящее подключение TCP трафика на этом порту.
-
NAT и переадресация:
- Если ваш pfSense сервер находится за другим маршрутизатором, убедитесь, что на нем настроен NAT или переадресация портов до вашего pfSense-сервера.
Анализ конфигурации клиента
-
Файл конфигурации клиента:
- Проверьте строки в конфигурационном файле
client.ovpn
, такие какremote 192.168.0.28 1194
, чтобы они совпадали с IP-адресом и портом вашего OpenVPN сервера.
- Проверьте строки в конфигурационном файле
-
Проверка версии OpenVPN:
- Убедитесь, что клиентская версия OpenVPN совместима с серверной.
-
Проверка сертификатов:
- Убедитесь, что файл
ca.crt
на клиенте точно соответствует серверному сертификату. Ошибка в сертификационных файлах может вызвать проблемы с TLS-аутентификацией.
- Убедитесь, что файл
Использование OpenVPN Export Tool
Использование OpenVPN Export Tool значительно облегчает процесс настройки клиента. Этот инструмент автоматически создает конфигурационные файлы и может отправить необходимые сертификаты и ключи по электронной почте. Возможно, стоит воспользоваться этим инструментом, если он доступен в вашей версии pfSense.
Дополнительные рекомендации
-
Логи: Изучите логи как на сервере, так и на клиенте. В клиентских логах ошибка "TLS key negotiation failed" часто связано с проблемами сертификатов или сессией. Более подробные логи можно получить, добавив
verb 5
илиverb 9
в конфигурацию, что увеличит уровень детализации. -
Проверка сетевых настроек: Убедитесь, что настройки сети корректны и не конфликтуют с другими IP, особенно в случаях, если клиенты используют одинаковые подсети внутри своей локальной сети.
Решение проблем с подключения к OpenVPN серверу требует терпения и систематического подхода. Постепенно проверяйте каждую составляющую конфигурации, чтобы убедиться в отсутствии ошибок. В случае иных сложностей, рекомендуется обратиться за помощью к профессионалам в вашей организации или в специализированные форумы поддержки.