Главная » Windows » Вы здесь

Настраиваем серверную и клиентскую часть OpenVPN на Windows

Настройка сервера OpenVPN на Windows
OpenVPN – один из вариантов VPN (virtual private network или частных виртуальных сетей), позволяющих реализовать передачу данных по специально созданному зашифрованному каналу. Таким образом можно соединить два компьютера или построить централизованную сеть с сервером и несколькими клиентами. В этой статье мы научимся создавать такой сервер и настраивать его.

Настраиваем OpenVPN сервер

Как уже было сказано выше, с помощью технологии, о которой идет речь, мы можем передавать информацию по безопасному каналу связи. Это может быть обмен файлами или защищенный доступ в интернет через сервер, являющийся общим шлюзом. Для его создания нам не потребуется дополнительное оборудование и особые знания – все делается на том компьютере, который планируется использовать в качестве сервера VPN.

Для дальнейшей работы необходимо будет также настроить и клиентскую часть на машинах пользователей сети. Вся работа сводится к созданию ключей и сертификатов, которые затем передаются клиентам. Эти файлы позволяют при подключении к серверу получить IP-адрес и создать упомянутый выше зашифрованный канал. Вся информация, переданная по нему, может быть прочитана только при наличии ключа. Эта особенность позволяет значительно повысить безопасность и обеспечить сохранность данных.

Установка OpenVPN на машину-сервер

Инсталляция представляет собой стандартную процедуру с некоторыми нюансами, о которых и поговорим подробнее.

  1. Первым делом необходимо скачать программу по ссылке ниже.

    Скачать OpenVPN

    Загрузка программы OpenVPN с официального сайта разработчиков

  2. Далее запускаем установщик и доходим до окна выбора компонентов. Здесь нам потребуется поставить галку возле пункта с названием «EasyRSA», что позволит создавать файлы сертификатов и ключей, а также управлять ими.

    Выбор компонента для управления сертификатами при установке программы OpenVPN

  3. Следующий шаг – выбор места для инсталляции. Для удобства поместим программу в корень системного диска С:. Для этого просто удалим лишнее. Должно получиться

    C:\OpenVPN

    Выбор места на жестком диске для установки программы OpenVPN

    Делаем мы это и для того, чтобы избежать сбоев при выполнении скриптов, так как пробелы в пути недопустимы. Можно, конечно, брать их в кавычки, но внимательность может и подвести, а искать ошибки в коде – дело непростое.

  4. После всех настроек устанавливаем программу в штатном режиме.

Настройка серверной части

При выполнении следующих действий следует быть максимально внимательным. Любые огрехи приведут к неработоспособности сервера. Еще одно обязательное условие – ваша учетная запись должна иметь права администратора.

  1. Идем в каталог «easy-rsa», который в нашем случае находится по адресу

    C:\OpenVPN\easy-rsa

    Находим файл vars.bat.sample.

    Переход в папку easy-rsa для настройки сервера OpenVPN

    Переименовываем его в vars.bat (удаляем слово «sample» вместе с точкой).

    Переименование файла скрипта для настройки сервера OpenVPN

    Открываем этот файл в редакторе Notepad++. Это важно, так как именно этот блокнот позволяет правильно редактировать и сохранять коды, что помогает избежать ошибок при их выполнении.

    Открытие файла скрипта в программе Notepad++ для настройки сервера OpenVPN

  2. В первую очередь удаляем все комментарии, выделенные зеленым цветом – они нам будут только мешать. Получим следующее:

    Удаление комментариев из файла скрипта для настройки сервера OpenVPN

  3. Далее меняем путь к папке «easy-rsa» на тот, который мы указывали при установке. В данном случае просто удаляем переменную %ProgramFiles% и меняем ее на C:.

    Смена пути к каталогу при настройке сервера OpenVPN

  4. Следующие четыре параметра оставляем без изменений.

    Неизменяемые параметры в файле скрипта для настройки сервера OpenVPN

  5. Остальные строки заполняем произвольно. Пример на скриншоте.

    Заполнение произвольной информацией файла скрипта для настройки сервера OpenVPN

  6. Сохраняем файл.

    Сохранение файла скрипта для настройки сервера OpenVPN

  7. Требуется также отредактировать следующие файлы:
    • build-ca.bat
    • build-dh.bat
    • build-key.bat
    • build-key-pass.bat
    • build-key-pkcs12.bat
    • build-key-server.bat

    Файлы требующие редактирования для настройки сервера OpenVPN

    В них нужно поменять команду

    openssl

    на абсолютный путь к соответствующему ей файлу openssl.exe. Не забываем сохранять изменения.

    Редактирование файлов в редакторе Notepad++ для настройки сервера OpenVPN

  8. Теперь открываем папку «easy-rsa», зажимаем SHIFT и кликаем ПКМ по свободному месту (не по файлам). В контекстном меню выбираем пункт «Открыть окно команд».

    Запуск командной строки из целевой папки при настройке сервера OpenVPN

    Запустится «Командная строка» с уже осуществленным переходом в целевой каталог.

    Командная строка с переходом в целевой каталог при настройке сервера OpenVPN

  9. Вводим команду, указанную ниже, и нажимаем ENTER.

    vars.bat

    Запуск скрипта конфигурации для настройки сервера OpenVPN

  10. Далее запускаем еще один «батник».

    clean-all.bat

    Создание пустых конфигурационных файлов для настройки сервера OpenVPN

  11. Повторяем первую команду.

    Повторный запуск скрипта конфигурации для настройки сервера OpenVPN

  12. Следующий шаг – создание необходимых файлов. Для этого используем команду

    build-ca.bat

    После выполнения система предложит подтвердить данные, которые мы вносили в файл vars.bat. Просто несколько раз нажимаем ENTER, пока не появится исходная строка.

    Создание корневого сертификата для настройки сервера OpenVPN

  13. Создаем DH-ключ с помощью запуска файла

    build-dh.bat

    Создание ключа для настройки сервера OpenVPN

  14. Готовим сертификат для серверной части. Здесь есть один важный момент. Ему нужно присвоить то имя, которое мы прописали в vars.bat в строке «KEY_NAME». В нашем примере это Lumpics. Команда выглядит следующим образом:

    build-key-server.bat Lumpics

    Здесь также необходимо подтвердить данные с помощью клавиши ENTER, а также два раза ввести букву «y» (yes), где потребуется (см. скриншот). Командную строку можно закрыть.

    Создание сертификата для серверной части при настройке сервера OpenVPN

  15. В нашем каталоге «easy-rsa» появилась новая папка с названием «keys».

    Папка с ключами и сертификатами для настройки сервера OpenVPN

  16. Ее содержимое требуется скопировать и вставить в папку «ssl», которую необходимо создать в корневом каталоге программы.

    Создание папки для хранения ключей и сертификатов для настройки сервера OpenVPN

    Вид папки после вставки скопированных файлов:

    Перенос сертификатов и ключей в специальную папку для настройки сервера OpenVPN

  17. Теперь идем в каталог

    C:\OpenVPN\config

    Создаем здесь текстовый документ (ПКМ – Создать – Текстовый документ), переименовываем его в server.ovpn и открываем в Notepad++. Вносим следующий код:

    port 443
    proto udp
    dev tun
    dev-node "VPN Lumpics"
    dh C:\\OpenVPN\\ssl\\dh2048.pem
    ca C:\\OpenVPN\\ssl\\ca.crt
    cert C:\\OpenVPN\\ssl\\Lumpics.crt
    key C:\\OpenVPN\\ssl\\Lumpics.key
    server 172.16.10.0 255.255.255.0
    max-clients 32
    keepalive 10 120
    client-to-client
    comp-lzo
    persist-key
    persist-tun
    cipher DES-CBC
    status C:\\OpenVPN\\log\\status.log
    log C:\\OpenVPN\\log\\openvpn.log
    verb 4
    mute 20

    Обратите внимание, что названия сертификатов и ключей должны совпадать с расположенными в папке «ssl».

    Создание конфигурационного файла при настройке сервера OpenVPN

  18. Далее открываем «Панель управления» и переходим в «Центр управления сетями».

    Переход в Центр управления сетями и общим доступом в Панели управления Windows 7

  19. Нажимаем на ссылку «Изменение параметров адаптера».

    Переход к настройке параметров сетевого адаптера в Windows 7

  20. Здесь нам нужно найти подключение, осуществляемое через «TAP-Windows Adapter V9». Сделать это можно, нажав по соединению ПКМ и перейдя к его свойствам.

    Свойства сетевого адаптера в Windows 7

  21. Переименовываем его в «VPN Lumpics» без кавычек. Это название должно совпадать с параметром «dev-node» в файле server.ovpn.

    Переименование сетевого подключения в Windows 7

  22. Заключительный этап – запуск службы. Нажимаем сочетание клавиш Win+R, вводим строку, указанную ниже, и жмем ENTER.

    services.msc

    Доступ к системной оснастке Службы из меню Выполнить в Windows 7

  23. Находим сервис с названием «OpenVpnService», кликаем ПКМ и идем в его свойства.

    Переход к свойствам службы OpenVpnService в Windows 7

  24. Тип запуска меняем на «Автоматически», запускаем службу и нажимаем «Применить».

    Настройка типа запуска и старт службы OpenVpnService в Windows 7

  25. Если мы все сделали правильно, то возле адаптера должен пропасть красный крестик. Это значит, что подключение готово к работе.

    Активное сетевое подключение OpenVPN

Настройка клиентской части

Перед началом настройки клиента необходимо совершить несколько действий на серверной машине – сгенерировать ключи и сертификат для настройки подключения.

  1. Идем в каталог «easy-rsa», затем в папку «keys» и открываем файл index.txt.

    Файл index в папке с ключами и сертификатами на сервере OpenVPN

  2. Открываем файл, удаляем все содержимое и сохраняем.

    Удаление информации из файла index на сервере OpenVPN

  3. Переходим обратно в «easy-rsa» и запускаем «Командную строку» (SHIFT+ПКМ – Открыть окно команд).
  4. Далее запускаем vars.bat, а затем создаем клиентский сертификат.

    build-key.bat vpn-client

    Создание клиентских ключей и сертификатов на сервере OpenVPN

    Это общий сертификат для всех машин в сети. Для повышения безопасности можно сгенерировать для каждого компьютера свои файлы, но назвать их по-другому (не «vpn-client», а «vpn-client1» и так далее). В этом случае необходимо будет повторить все действия, начиная с очистки index.txt.

  5. Заключительное действие – перенос файлов vpn-client.crt, vpn-client.key, ca.crt и dh2048.pem клиенту. Сделать это можно любым удобным способом, например, записать на флешку или передать по сети.

    Копирование файлов ключей и сертификатов на сервере OpenVPN

Работы, которые необходимо выполнить на клиентской машине:

  1. Устанавливаем OpenVPN обычным способом.
  2. Открываем каталог с установленной программой и переходим в папку «config». Сюда необходимо вставить наши файлы сертификатов и ключей.

    Перенос файлов ключей и сертификатов на клиентскую машину с OpenVPN

  3. В этой же папке создаем текстовый файл и переименовываем его в config.ovpn.

    Создание конфигурационного файла на клиентской машине с OpenVPN

  4. Открываем в редакторе и прописываем следующий код:

    client
    resolv-retry infinite
    nobind
    remote 192.168.0.15 443
    proto udp
    dev tun
    comp-lzo
    ca ca.crt
    cert vpn-client.crt
    key vpn-client.key
    dh dh2048.pem
    float
    cipher DES-CBC
    keepalive 10 120
    persist-key
    persist-tun
    verb 0

    В строке «remote» можно прописать внешний IP-адрес серверной машины – так мы получим доступ в интернет. Если оставить все как есть, то будет возможно только соединение с сервером по зашифрованному каналу.

  5. Запускаем OpenVPN GUI от имени администратора с помощью ярлыка на рабочем столе, затем в трее находим соответствующую иконку, жмем ПКМ и выбираем первый пункт с названием «Подключиться».

    Подключение к серверу OpenVPN на клиентской машине

На этом настройка сервера и клиента OpenVPN завершена.

Заключение

Организация собственной VPN-сети позволит вам максимально защитить передаваемую информацию, а также сделать интернет-серфинг более безопасным. Главное – быть внимательнее при настройке серверной и клиентской части, при правильных действиях можно будет пользоваться всеми преимуществами частной виртуальной сети.

Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Да Нет


Еще статьи по данной теме:


Поделиться статьей в социальных сетях:

11 комментария

В файле server.ovpn строка «ca C: \\OpenVPN\\ssl\\ca.crt» опечатка, лишний пробел, из за этого сервер не стартует .)

Это Вам спасибо за инструкцию. ) подскажите не совсем понимаю по подключению. Пытаюсь настроить vpn между двумя офисами. При подключение клиента, в файле конфига строка «remote» я должен указывать внешний ip сервера.?

Под внешним айпи с данном случае подразумевается тот адрес, который показывают сервисы типа 2ip.ru (или дал провайдер). Если прописать его, то клиент будет иметь доступ в интернет через наш опенвпн сервер. Если требуется создать только зашифрованный канал без доступа в глобальную сеть, то нужно прописать локальный сетевой адрес сервера.

Здравствуйте!

У меня ситуация следующая: Лет 5 назад специалист настроил нам соединение точка-точка. Есть сертификаты. С телефона под андроидом захожу без проблем. С домашнего компьютера тоже. С ноутбука раньше, под windows xp все было прекрасно, но после переустановки windows 7 происходит следующее: соединение устанавливается. Значок Openvpn подсвечен зеленым, иду по ярлыку \\192.168.ХХ.ХХ и все работает где-то 40 минут. Затем нет связи. Ошибка: Windows не может получить доступ к адресу … Проводник кто-то рубит. Интернет есть, Openvpn благополучно подключается к серверу.
Ситуация только на ноутбуке, подключенном через wi-fi дома. На домашнем компьютере с проводным соединением все в порядке.
На ноутбуке стоит windows 7. Пробовал Prof, сейчас стоит Starter родная. Каждый раз после установки windows есть где-то 40 минут, пока все работает.
Что это может быть?

Fri Jun 15 21:21:24 2018 us=392501 Current Parameter Settings:
Fri Jun 15 21:21:24 2018 us=392501 config = ‘server.ovpn’
Fri Jun 15 21:21:24 2018 us=392501 mode = 1
Fri Jun 15 21:21:24 2018 us=392501 show_ciphers = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 show_digests = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 show_engines = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 genkey = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 key_pass_file = ‘[UNDEF]’
Fri Jun 15 21:21:24 2018 us=392501 show_tls_ciphers = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 connect_retry_max = 0
Fri Jun 15 21:21:24 2018 us=392501 Connection profiles [0]:
Fri Jun 15 21:21:24 2018 us=392501 proto = udp
Fri Jun 15 21:21:24 2018 us=392501 local = ‘[UNDEF]’
Fri Jun 15 21:21:24 2018 us=392501 local_port = ‘443’
Fri Jun 15 21:21:24 2018 us=392501 remote = ‘[UNDEF]’
Fri Jun 15 21:21:24 2018 us=392501 remote_port = ‘443’
Fri Jun 15 21:21:24 2018 us=392501 remote_float = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 bind_defined = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 bind_local = ENABLED
Fri Jun 15 21:21:24 2018 us=392501 bind_ipv6_only = DISABLED
Fri Jun 15 21:21:24 2018 us=392501 NOTE: —mute triggered…
Fri Jun 15 21:21:24 2018 us=392501 277 variation(s) on previous 20 message(s) suppressed by —mute
Fri Jun 15 21:21:24 2018 us=392501 OpenVPN 2.4.6 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Apr 26 2018
Fri Jun 15 21:21:24 2018 us=392501 Windows version 6.2 (Windows 8 or greater) 64bit
Fri Jun 15 21:21:24 2018 us=392501 library versions: OpenSSL 1.1.0h 27 Mar 2018, LZO 2.10
Enter Management Password:
Fri Jun 15 21:21:24 2018 us=393500 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25341
Fri Jun 15 21:21:24 2018 us=393500 Need hold release from management interface, waiting…
Fri Jun 15 21:21:24 2018 us=876221 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25341
Fri Jun 15 21:21:24 2018 us=985570 MANAGEMENT: CMD ‘state on’
Fri Jun 15 21:21:24 2018 us=986786 MANAGEMENT: CMD ‘log all on’
Fri Jun 15 21:21:25 2018 us=32627 MANAGEMENT: CMD ‘echo all on’
Fri Jun 15 21:21:25 2018 us=32627 MANAGEMENT: CMD ‘bytecount 5’
Fri Jun 15 21:21:25 2018 us=32627 MANAGEMENT: CMD ‘hold off’
Fri Jun 15 21:21:25 2018 us=32627 MANAGEMENT: CMD ‘hold release’
Fri Jun 15 21:21:25 2018 us=32627 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Fri Jun 15 21:21:25 2018 us=32627 Diffie-Hellman initialized with 2048 bit key
Fri Jun 15 21:21:25 2018 us=32627 TLS-Auth MTU parms [ L:1622 D:1212 EF:38 EB:0 ET:0 EL:3 ]
Fri Jun 15 21:21:25 2018 us=32627 interactive service msg_channel=0
Fri Jun 15 21:21:25 2018 us=32627 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 I=4 HWADDR=14:da:e9:08:6a:ad
Fri Jun 15 21:21:25 2018 us=32627 open_tun
Fri Jun 15 21:21:25 2018 us=48252 MANAGEMENT: Client disconnected
Fri Jun 15 21:21:25 2018 us=48252 CreateFile failed on TAP device: \\.\Global\{D58A6F58-BB84-4A73-B0FB-320E13C00E33}.tap: Too many links (errno=31)
Fri Jun 15 21:21:25 2018 us=48252 Exiting due to fatal error

Aza, а раньше удавалось осуществить соединение или такое происходит сразу после установки и настройки?

Не создаётся файл сертификата. Хотя делаю всё в точности, как написано у Вас.

C:\OpenVPN\easy-rsa>vars.bat

C:\OpenVPN\easy-rsa>build-key.bat vpn-client
Generating a 4096 bit RSA private key
……..++
………………………………………………………………++
writing new private key to ‘keys\vpn-client.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Internet]:
Locality Name (eg, city) [Internet]:
Organization Name (eg, company) [Lumpics]:
Organizational Unit Name (eg, section) [Lumpics]:
Common Name (eg, your name or your server’s hostname) [Lumpics]:
Name [Lumpics]:
Email Address [mail@host.domain]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl-1.0.0.cnf
Не удается найти C:\OpenVPN\easy-rsa\keys\*.old

C:\OpenVPN\easy-rsa>

Файл сертификата не создаётся. Сделал всё в точности, как у Вас. В чём может быть проблема?

C:\OpenVPN\easy-rsa>vars.bat

C:\OpenVPN\easy-rsa>build-key.bat vpn-client
Generating a 4096 bit RSA private key
……..++
………………………………………………………………++
writing new private key to ‘keys\vpn-client.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Internet]:
Locality Name (eg, city) [Internet]:
Organization Name (eg, company) [Lumpics]:
Organizational Unit Name (eg, section) [Lumpics]:
Common Name (eg, your name or your server’s hostname) [Lumpics]:
Name [Lumpics]:
Email Address [mail@host.domain]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl-1.0.0.cnf
Не удается найти C:\OpenVPN\easy-rsa\keys\*.old

C:\OpenVPN\easy-rsa>

Помогите пожалуйста, не могу понять в чём проблема. Не создаётся сам файл сертификата для клиента. Но сделал, всё как у вас написано.

C:\OpenVPN\easy-rsa>vars.bat

C:\OpenVPN\easy-rsa>build-key.bat vpn-client
Generating a 4096 bit RSA private key
……..++
………………………………………………………………++
writing new private key to ‘keys\vpn-client.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Internet]:
Locality Name (eg, city) [Internet]:
Organization Name (eg, company) [Lumpics]:
Organizational Unit Name (eg, section) [Lumpics]:
Common Name (eg, your name or your server’s hostname) [Lumpics]:
Name [Lumpics]:
Email Address [mail@host.domain]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from openssl-1.0.0.cnf
Не удается найти C:\OpenVPN\easy-rsa\keys\*.old

C:\OpenVPN\easy-rsa>

Задайте вопрос или оставьте свое мнение