- Настройка OpenVPN клиента
- Установка
- Windows
- Linux CentOS
- Linux Ubuntu
- Android
- Настройка
- Пример конфигурационного файла
- Параметры конфигурационного файла
- Сертификаты
- ПРИМЕР 1: УДАЛЕННЫЙ РАБОЧИЙ СТОЛ WINDOWS ЧЕРЕЗ OPENVPN
- Результат: удаленный доступ к рабочему столу Windows с серым IP через OpenVPN и RDP
- Исходные данные
- Шаг 1. Установка программ OpenVPN на оба компьютера
- Результат: OpenVPN установлен на оба компьютера
- Шаг 2. Создаем туннели на сайте VPNKI
- Результат: Туннели созданы, процесс OpenVPN на сервере запущен, скачан профиль подключения на оба компьютера
- Шаг 3. Подключение VPN туннелей
- Результат: Оба туннеля подключены
- Шаг 4. Пинг удаленного компьютера
- Результат: Пинг удаленного компьютера успешен
- Шаг 4. Доступ к удаленному рабочему столу компьютера
- Результат: Вы получили доступ к удаленному рабочему столу Компьютера 2
- Вы успешно прошли все пункты и получили удаленный доступ к рабочему столу Windows на удаленном компьютере!
Настройка OpenVPN клиента
В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.
Установка
Windows
Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
Linux CentOS
Устанавливаем репозиторий EPEL:
yum install epel-release
yum install openvpn
Linux Ubuntu
apt-get install openvpn
Android
Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect — нажимаем установить и принимаем условия.
Настройка
После установки программы конфигурационный файл не создается автоматически и его нужно создать вручную.
В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.
* имя файла может быть любым, расширение должно быть .ovpn.
Для создания конфигурационного файла в Linux выполняем команду:
* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.
Пример конфигурационного файла
client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0
Параметры конфигурационного файла
Параметр | Значения | Описание |
---|---|---|
client | Строка говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер). | |
dev | tap или tun | Выбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP. |
dev-node | любая строка | Параметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN. |
proto | udp или tcp | Указывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть. |
remote | VPN-сервер и порт | Задает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк. |
remote-random | Если указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке. | |
resolv-retry | количество секунд или infinite | Используется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно. |
nobind | Клиент использует динамический порт для подключения. | |
user | учетная запись | Задает определенного пользователя для работы клиента (только для UNIX-систем). |
group | группа | Задает определенную группу для работы клиента (только для UNIX-систем). |
persist-key | Не перечитывает ключи при перезагрузке сервиса OpenVPN. | |
persist-tun | Не перечитывает параметры туннеля при перезагрузке сервиса OpenVPN. | |
http-proxy | сервер прокси и порт | Использовать прокси-сервер для подключения. |
http-proxy-retry | Переподключаться к прокси-серверу, если связь была разорвана. | |
http-proxy-timeout | количество секунд | Время, через которое выполнять попытки переподключения к прокси-серверу. |
mute-replay-warnings | Параметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов. | |
ca | пут к сертификату | Корневой сертификат удостоверяющего центра. Генерируем на сервере. |
cert | пут к сертификату | Открытый ключ клиента. Генерируем на сервере. |
key | пут к сертификату | Закрытый ключ клиента. Генерируем на сервере. |
dh | пут к сертификату | Ключ с алгоритмом Diffie-Hellman (Диффи-Хеллмана). |
remote-cert-tls | сервер | Исключает возможность mitm атаки, включая верификацию сертификата сервера. |
tls-client | Указание на то, что это клиент TLS. | |
tls-auth | ta.key 1 | Дополнительный уровень аутентификации посредством ключа TLS. |
float | Удаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано. | |
keepalive | секунд1 секунд2 | Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение. |
cipher | алгоритм | Указывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC. |
comp-lzo | Использовать сжатие. | |
verb | число от 0 до 9 | Уровень детализации лога. 0 отключает отладочную информацию. |
mute | число | Указывает сколько лог-сообщений может отображаться для каждой категории события. |
auth-user-pass | ничего или путь к файлу | Говорит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла. |
ipchange | команда или путь к скрипту | Выполняет команду при смене IP. |
connect-retry | секунд | Переподключиться к серверу через указанное количество секунд, если соединение было разорвано. |
connect-retry-max | число | Сколько раз повторять соединение, если оно было разорвано. |
shaper | байт | Задает максимальную скорость передачи данных для исходящего трафика. |
tun-mtu | число | Задает MTU. |
status | путь к файлу | Путь к фалу хранения статуса. |
log | путь к файлу | Путь к лог-файлу. |
askpass | путь к файлу | Путь к файлу с паролем для приватного ключа (private key password). |
Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn —help (в Linux и Windows).
Сертификаты
Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.
Источник
ПРИМЕР 1: УДАЛЕННЫЙ РАБОЧИЙ СТОЛ WINDOWS ЧЕРЕЗ OPENVPN
Результат: удаленный доступ к рабочему столу Windows с серым IP через OpenVPN и RDP
Если вы впервые настраиваете свою систему то вам, вероятно, будет важно знать ту последовательность действий, которая приведет к успеху.
Ниже представлена последовательность шагов, которая даст вам уверенность в том, что вы на верном пути.
Большинство пользователей потратят на подключение 15-30 минут своего времени в зависимости от ИТ-подготовки.
Постарайтесь не отступать от последовательности, чтобы не запутаться.
Не отвлекайтесь от процесса, старайтесь понимать что именно вы делаете и каким должен быть результат каждого действия.
PS: Если вы читаете этот раздел уже после «некоторых экспериментов», то имеет смысл очистить все настройки на сайте в разделе «Дополнительно», а также на ваших устройствах и начать все заново.
В этом примере приведены вымышленные данные. В вашем случае, используемые адреса устройств будут другими.
Этот пример написан для того, чтобы вы могли сопоставить схему и текст, а затем применить полученные знания к своей задаче.
Исходные данные
Итак, мы хотим получить удаленный доступ к компьютеру с ОС Windows с другого компьютера с ОС Windows через Интернет. Будем считать, что оба компьютера обладают «серыми» адресами от операторов связи и напрямую из сети Интернет не доступны.
Давайте представим, что мы хотим получить удаленный доступ с Компьютера 1 (дом) на Компьютер 2 (офис). Для этого мы будем использовать подключения двух компьютеров с протоколом OpenVPN, систему VPNKI и штатное средство Windows для удаленного доступа к компьютеру под названием «Подключение к удаленному рабочему столу».
Для этого мы подключим одно VPN соединение с домашнего компьютера, а другое VPN соединение с офисного комьютера. Таким образом, схема подключений будет выглядеть следующим образом. Адреса и имена подключений мы рассмотрим позднее, а пока просто схема:
Шаг 1. Установка программ OpenVPN на оба компьютера
Результат: OpenVPN установлен на оба компьютера
Шаг 1.0. Скачайте с сайта проекта OpenVPN последнюю версию этой программы.
Например нас интересует версия для Windows7/8/8.1 и т.д..
Шаг 1.1. Установите эту программу на оба компьютера. При установке, вероятнее всего, потребуются права администратора системы Windows
На этом шаге установщик может спросить к какой сети («Общественной» или «Частной» в терминах Windows) следут отнести новое сетевое подключение.
Тут выбирать вам, но запомните свой выбор, так как он напрямую касается раздела в правилах межсетевого экрана Windows, с которым вам еще предстоит иметь дело.
Шаг 1.2. После установки запустите ярлык программы OpenVPN GUI на обоих комьютерах и переходите к настройкам на сайте VPNKI.
Шаг 2. Создаем туннели на сайте VPNKI
Результат: Туннели созданы, процесс OpenVPN на сервере запущен, скачан профиль подключения на оба компьютера
Шаг 2.0. На личной странице сайта создайте два туннеля. Запишите куда-нибудь IP адреса, выданные вам системой для обоих туннелей
Шаг 2.1. Запустите процесс OpenVPN на сервере, установив галочку, скачайте и сохраните профиль подключения (файл с расширением .ovpn) на оба компьютера. Этот профиль будет использоваться клиентскими программами OpenVPN на обоих компьютерах для установления подключения. Обратите внимание на порт, выданный вам системой — он уникален и выделен только для вас. Его номер также содержится в скачанном вами профиле.
Важно! Скриншот немного устарел, так как с февраля 2021 мы запустили поддержку OpenVPN как поверх протокола UDP, так и через TCP. У этих вариантов есть свои плюсы и минусы. Чуть более подробно смотрите здесь.
Все готово для подключения. попробуем
Шаг 3. Подключение VPN туннелей
Результат: Оба туннеля подключены
Шаг 3.1. Импортируйте загруженные профили в программу OpenVPN на обоих компьютерах. Для этого запустите программу OpenVPN GUI (хотя она уже должна быть запущена) и найдите ее ярлычок в системном трее Windows, рядом с часами.
Нажмите на ярлычок правой кнопкой мыши и выберите пункт «Импорт профиля» (Import file). Затем выберите сохранный профиль на своем компьютере.
Шаг 3.2. Теперь давайте подключим туннели на обоих компьтерах. При установлении соединения вас попросят ввести логин и пароль, который вы назначили туннелю в личном кабинете сайта VPNKI. Естественно, на каждом компьютере мы указываем свое собственное имя и пароль. В данном случае скриншот показывает подключение Компьютера 1. На втором компьютере имя будет user10279.
После успешного подключения вы увидите в системном трее Windows зеленый значок OpenVPN, который означает, что подключение успешно.
Если так, то имеет смысл посмотреть как оба соединения выглядят на стороне сервера VPNKI. Для этого перейдите в пункт меню «Статус подключений» в личном кабинете сайта. На сайте вы увидите приблизительно такую картину.
Шаг 4. Пинг удаленного компьютера
Результат: Пинг удаленного компьютера успешен
Шаг 4.1 Если два туннеля работают, то самое время проверить связь двух компьютеров между собой. Начать имеет смысл с выполнения команды ping на Компьютере 1. Это важный шаг и не стоит им пренебрегать.
В меню Windows — «Пуск» — «Выполнить» напишите три буквы — cmd
Это запустит командную строку Windows и в ней мы воспользуемся командой ping. Напишите там ping и далее адрес удаленного компьютера (в нашем примере Компьютера 2 — 172.16.35.182). Команда будет выглядеть так: ping 172.16.35.182
Если вы все делали по инструкции, то пинг, вероятнее всего, будет неуспешен. И это не удивительно, так как при установке OpenVPN ваш компьютер создал новое сетевое подключение, а правила межсетевого экрана должны все заблокировать.
На время тестов отключите межсетевой экран на принимающей стороне (Компьютер 2) и после этого пинги должны быть успешны.
Такой же пинг вы можете выполнить и из личного кабинета системы, перейдя на страницу «Инструменты«
Шаг 4. Доступ к удаленному рабочему столу компьютера
Результат: Вы получили доступ к удаленному рабочему столу Компьютера 2
После того, как пинг оказался успешен можно переходить к удаленонму доступу к рабочему столу.
Шаг 4.1. На Компьютере 2 вам потребуется разрешить удаленный доступ. Для этого перейдите в «Свойства системы» и установите галочку в разделе «Удаленный помощник». На разных ОС Windows этот пункт меню может выглядет по-разному, но смысл его тот же.
Шаг 4.2. На компьютере 1 запустите программу подключения к удаленному рабочему столу. Этот пункт меню находится — «Пуск» — «Программы» — «Стандартные» — «Подключение к удаленному рабочему столу». В открывшемся окне впишите IP адрес Компьютера 2 — 172.16.35.182
Нажмите «Подключить» и после этого вы должны увидеть окно для ввода логина и пароля, но уже в систему Windows Компьютера 2.
Надеемся, что все получилось успешно.
Вы успешно прошли все пункты и получили удаленный доступ к рабочему столу Windows на удаленном компьютере!
Какие могут быть сложности после установления соединения?
— так как в примере использовалось подключение по протоколу OpenVPN, то следует иметь ввиду, что в системе VPNKI мы принудительно обрываем соединения OpenVPN в 00-00 по Московскому времени. Это связано не только с OpenVPN, но и со всеми другими протоколами, так как слишком много сессий VPN на нашем сервере зависает из-за нестабильности Интернета. Это означает, что удаленный Компьютер 2 потеряет соединение с сервером VPNKI в 00-00 и должен смочь переустановить это соединение автоматически.Увы, это не всегда происходит успешно, поэтому:
1. По слухам 🙂 переподключение без всплывающего окна с вводом логина и пароля возможно при использовании OpenVPN как системной службы Windows, а не как программы пользователя.
2. И как второй вариант, ознакомьтесь с тем, как сказать OpenVPN о том, что необходимо использовать файл с логином и паролем. В этом случае окошко не должно появляться https://vpnki.ru/questions/support-forum/tuns-routing/677-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B-tap-%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B5%D1%80%D0%B0#5784
— может не хватать скорости для передачи трафика удаленного рабочего стола. Это решается путем перехода на другой тарифный план в системе VPNKI
*** Если вдруг что-то не получилось, обращайтесь на Форум
Источник