
Недавно я установил OpenVPN на удаленном веб-сервере CentOS 7. Я могу подключиться к нему с локального CentOS 7 devbox, набрав openvpn --config /path/to/client.ovpn
. После того, как соединение установлено, я могу подключиться ssh
к серверу через vpn, набрав , и могу просматривать веб-приложения, размещенные Apache на удаленном сервере через vpn, набрав в веб-браузере. ssh [email protected]
https : / / 10.8.0.1
Так как же мне, моим нетехническим конечным пользователям, создать те же https-подключения из Windows?
Я скачал и установилКлиент SecurePoint OpenVPN для Windows. Затем я смог создать конфигурацию для сервера, включая ссылки на файлы .crt и .key и определения других параметров, которые были определены в client.ovpn
файле в Linux. Затем клиент SecurePoint заставил меня использовать имя пользователя и пароль для учетной записи ОС на удаленном сервере (возможно, это к лучшему), но не позволяет мне подключаться к веб-приложениям, работающим на сервере. В частности, ввод https : / / 10.8.0.1
в веб-браузер приводит к сообщению «Эта страница не может быть отображена», хотя мой Linux devbox позволяет обслуживать контент с сервера через vpn на клиенте, как описано в предыдущем абзаце. Что я делаю не так? И как мне заставить это работать?
РЕДАКТИРОВАТЬ
Следуя совету @garethTheRed, я набрал sudo firewall-cmd --list-all --zone=internal
и получил следующие результаты:
internal (active)
interfaces: tun0
sources:
services: dhcpv6-client https ipp-client mdns samba-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source NOT address="10.8.1.1" service name="ssh" reject
Затем я нажал «подключиться» в графическом интерфейсе SecurePoint и, после того как он сообщил, что соединение с сервером установлено, я открыл cmd.exe, набрал команду ping 10.8.0.1
и получил следующие результаты:
Pinging 10.8.0.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 10.8.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Снятие флажка с параметра «пользователь/аутентификация» отменяет необходимость ввода имени пользователя и пароля для входа в систему.
Обратите внимание, что при подключении SecurePoint весь остальной доступ в Интернет через браузер кажется заблокированным, поскольку все запросы на страницы отклоняются. Кроме того, VPN отображается в списке сетей Wi-Fi Windows как «Неопознанная сеть» с «нет доступа в Интернет». Когда я отключаюсь от VPN с помощью SecurePoint, «Неопознанная сеть» исчезает. Вы можете увидеть, как это выглядит, когда VPN-подключение активнонажав на эту ссылку
Что еще я могу попробовать?
решение1
Убедитесь, что ваш брандмауэр на сервере CentOS ( internal
зона, где tun0
расположено устройство) доступен https
как служба.
Вы должны иметь возможность пинговать сервер 10.8.0.1
с машины Windows. Если это сработает, то ваш VPN запущен и работает, и, вероятно, вас блокирует брандмауэр сервера CentOS.
Если пинг не работает, то вам нужно решить более глубокие проблемы, прежде чем приступать к проверке своих https
страниц.
В последнем случае опубликуйте вывод запуска ìpconfig /all
на route print
машине Windows.
Официальный клиент OpenVPN
В качестве эксперимента вы также можете установить openvpn
на машине Windows и запустить ее таким же образом, как вы это делали на клиенте CentOS, используя похожие файлы конфигурации. Это может дать подсказку о том, что происходит:
Загрузите клиент OpenVPN для Windows с сайтаздесь, затем установите его. Ближе к концу установки вы должны увидеть флажок, предлагающий запустить клиент. Убедитесь, что клиент НЕ запущен.
Скопируйте *.ovpn
файл с машины CentOS (той, которая работала ранее) на машину Windows. Если вы переносите файл, вы можете столкнуться с проблемой терминаторов строк Unix/DOS. В dos2unix
пакете есть конвертер, unix2dos
который преобразует файлы в формат DOS для вас.
Откройте notepad
как администратор (щелкните правой кнопкой мыши и выберите «Запуск от имени администратора») и отредактируйте файл, *.ovpn
изменив пути к ключу и двум сертификатам, не забывая использовать две обратные косые черты в путях (например C:\\Users\\Bloggs\\key.pem
, ). Сохраните этот файл в C:\Program Files\OpenVPN\config
.
Запустите клиент OpenVPN из меню «Пуск», щелкнув правой кнопкой мыши по нему и выбрав «Запуск от имени администратора» (это необходимо только при первом запуске). Если вышеперечисленное сработало, вы сможете щелкнуть правой кнопкой мыши по значку на панели задач и подключиться. Если опции подключения нет, проверьте вышеперечисленное.
Через секунду или три вы увидите всплывающее окно, сообщающее, что вы подключились. Попробуйте свою https
веб-страницу.
Базовая конфигурация, совместимая с Windows
В качестве теста сделайте резервную копию текущей конфигурации сервера и попробуйте выполнить следующее:
port 1194
proto udp
dev tun
ca /etc/pki/openvpn/cacerts/CA.crt
cert /etc/pki/openvpn/public/OpenVPN_Server.crt
key /etc/pki/openvpn/private/OpenVPN_Server.pem # This file should be kept secret
dh /etc/pki/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
Он работает на моем сервере как с клиентами Linux, так и с клиентами Windows (и OpenVPN, и SecurePoint). Он не предоставит вам функционал, необходимый для вашего сервера, но он может помочь вам найти проблему. Конечно, вам может потребоваться изменить пути к файлам.
Для справки, вот *.ovpn
файл, который я использовал:
client
dev tun
proto udp
remote <IP or FQDN of server> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
ca C:\\Users\\gareth\\ca.crt
cert C:\\Users\\gareth\\client.pem
key C:\\Users\\gareth\\key.crt
Для клиента SecurePoint я оставил все по умолчанию, кроме Auth user/pass
галочки, которую я снял, и (конечно) ключа и сертификатов.