Время на прочтение9 мин
Количество просмотров184K
Представляю подробную инструкцию по OpenVPN v2.3.8 на Windows server 2008R2 c уровнем шифрования TLS. Так же будут подробно описаны все параметры.
Настройка сервера
Для начала качаем дистрибутив с официально сайта. Запускаем установщик openvpn-install-2.3.8-I001-x86_64. В компонентах включаем следующее:
Указываем путь установки (
Все дальнейшие действия будут ориентироваться на данный путь указанный в примере
):
В процессе установке потребуется установить виртуальный сетевой адаптер, соглашаемся с установкой.
После успешной установки переходим в каталог “C:\Programm Files\OpenVPN” где создаем директорию “SSL” (каталог может называться как угодно, в последующих настройках будет использоваться именно этот каталог), в данном каталоге будут располагаться сертификаты сервера, алгоритмы шифрования и проверка подлинности клиента.
Переходим в каталог “C:\Programm Files\OpenVPN\easy-rsa”, открываем с помощью notepad или notepad++ (более правильный вариант) «vars.bat» (скрипт, содержащий в себе параметры ответов для создания и генерации клиентских/серверных сертификатов и последующих настроек сервера).
В самом низу файла есть следующие параметры, которые нужно настроить под себя:
set KEY_COUNTRY=RU
set KEY_PROVINCE=MO
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set KEY_EMAIL=local@mos.local
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme rem Параметр по умолчанию
set PKCS11_PIN=1234 rem Параметр по умолчанию
Сохраняем.
В этом же каталоге “C:\Programm Files\OpenVPN\easy-rsa”, есть конфигурационный файл “openssl-1.0.0.cnf”, открываем его с помощью notepad или notepad++ (более правильный вариант) и изменяем настройку, отвечающую за срок жизни сертификатов, по умолчанию 365 дней, продлим срок жизни до 3650 дней.
default_days = 3650 # how long to certify for
Сохраняем.
Далее будем генерировать следующее:
ca.crt — Собственный доверенный сертификат (Certificate Authority — далее CA) для подписи клиентских сертификатов и для их проверки при авторизации клиента.
dh1024.pem — ключ Диффи Хельмана позволяющий двум и более сторонам получить общий секретный ключ
server.crt — сертификат сервера
server.key — ключ сервера
ta.key — дополнительный ключ для tls-аутентификации (повышение безопасности соединения), сервер и каждый клиент должны иметь копию этого ключа
Открываем командную строку и переходим в каталог “C:\Program Files\OpenVPN\easy-rsa”
cd C:\Program Files\OpenVPN\easy-rsa
Вводим команду “vars” нажимаем Enter (инициируем работу со скриптами, в случае закрытия командной строки, команду “vars” придется вводить заного)
Вводим команду “clean-all” (Очищаем каталог “C:\Program Files\OpenVPN\easy-rsa\keys” c последующим созданием файла“index.txt” (база клиентов, она же database) и “serial” (ключ))
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “index.txt и serial”.
Вводим команду “openvpn —genkey —secret %KEY_DIR%\ta.key”
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “ta.key”.
Вводим команду “build-dh” — генерация ключа Диффи Хельмана.
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “dh1024.pem”.
Вводим команду “build-ca” — генерация ключа центра сертификации (CA)
На все вопросы отвечаем по умолчанию нажатием клавиши Enter, эти параметры мы прописали в “vars.bat”
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “ca.crt и ca.key”.
Вводим команду “build-key-server server” — генерация сертификата сервера.
На вопросы Country Name, State Name, Locality Name и т.д. отвечаем по умолчанию нажатием клавиши Enter до самого конца, эти параметры мы прописали в “vars.bat”, далее будет предложено создание сертификата сроком на 3650 дней (данный параметр мы указывали в openssl-1.0.0.cnf) нажимаем “Y”, будет предложено записать сертификат сервера в базу, нажимаем “Y”.
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должены создаться файлы “server.crt, server.key, server.csr”.
Вводим команду “build-key revokecrt” — команда для создания пользовательского сертификата, но в данном случае мы создаем произвольный сертификат “revokecrt” для последующей генерации файла “crl.pem”, который отвечает за проверку и последующий отзыв сертификатов. Теоретически данную процедуру можно проделать в самом конце и даже жить без нее, но тогда не сможем отзывать сертификаты и конфигурационный файл “server.ovpn” будет выглядеть иначе.
На вопросы Country Name, State Name, Locality Name и т.д. отвечаем по умолчанию нажатием клавиши Enter до вопросов Common Name и Name, на эти вопросы нужно отвечать согласно названию создаваемого сертификата пользователя, в нашем случае это произвольный сертификат “revokecrt” на оставшиеся вопросы нажимаем Enter, далее будет предложено создание сертификата сроком на 3650 дней (данный параметр мы указывали в openssl-1.0.0.cnf) нажимаем “Y”, будет предложено записать сертификат сервера в базу, нажимаем “Y”.
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “revokecrt.crt, revokecrt.key, revokecrt.csr”
Вводим команду “revoke-full revokecrt” – команда отвечает за отзыв сертификата и последующего создания файла “crl.pem”
Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “crl.pem”
Теперь создадим сертификат пользователя, аналогично сертификату “revokecrt” см. выше.
Вводим команду “build-key user1” – создаем сертификат пользователя с именем user1
.
На данном этапе работа с консолью закончена, можно закрыть окно и проверить содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “user1.crt, user1.key, user1.csr”
Рекомендую создать папку “Clients” в любом удобном для Вас месте и скопировать туда необходимые файлы для передачи пользователям:
1 — ca.crt
2 — user1.crt
3 — user1.key
4 — ta.key
Также хочу обратить Ваше внимание на то, что содержимое папки “keys” удалять нельзя, при создании пользовательских сертификатов или любых изменениях в консоли, делайте копию данного каталога во избежание потерь или случайных генераций сертификатов сервера и обновления базы данных.
Копируем файлы сервера в раннее созданную папку “ssl” в каталоге “ C:\Program Files\OpenVPN\ssl”:
1 — ca.crt
2 — server.crt
3 — server.key
4 — dh1024.pem
5 — ta.key
Переходим в каталог “C:\Program Files\OpenVPN\config” и создадим файл конфигурации сервера “server.ovpn” со следующим содержимым:
# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем порт на котором будем слушать.
port 1194
# Указываем что это TLS сервер.
tls-server
# Указываем путь к доверенному сертификату.
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
# Указываем путь к сертификату сервера.
cert «C:\\Program Files\\OpenVPN\\ssl\\Server.crt»
# Указываем путь к ключу сервера.
key «C:\\Program Files\\OpenVPN\\ssl\\Server.key»
# Указываем путь к ключю Диффи Хельмана
dh «C:\\Program Files\\OpenVPN\\ssl\\dh1024.pem»
# Указываем адресацию сети.
server 10.8.0.0 255.255.255.0
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Указываем не перечитавать файлы ключей при перезапуске туннеля.
persist-key
# Указываем путь к ключу безопасности и устанавливаем параметр сервера 0
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 0
# Разрешаем общаться клиентам внутри тоннеля.
client-to-client
# Указываем каталог с описаниями конфигураций каждого из клиентов.
client-config-dir «C:\\Program Files\\OpenVPN\\ccd»
# Указываем файл с описанием сетей между клиентом и сервером.
ifconfig-pool-persist «C:\\Program Files\\OpenVPN\\ccd\\ipp.txt»
# Указывает сверку по отозванным сертификатам.
crl-verify «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem»
# Указываем путь к логу со статусом.
status «C:\\Program Files\\OpenVPN\\log\\logopenvpn-status.log»
# Указываем путь к логу.
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
# Указывает, если в течении 120 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
keepalive 10 120
# Указываем уровень логирования.
verb 3
Сохраняем.
На сервере где будет крутиться OpenVPN необходимо проделать следующее:
1 – Если вы используете встроенный Брандмауэр Windows, создайте разрешающее правило для входящих и исходящих подключений по протоколу UDP на порт 1194.
2 – В службах сервера найдите OpenVPN Service и установите запуск на автоматический, это позволит автоматически запускаться сервису при перезагрузке сервера.
C рабочего стола сервера запускаем “OpenVPN GUI”, в трее дважды щелкаем по значку “OpenVPN GUI” откроется окно лога, если после запуска сервиса в пункте 2 нечего не произошло, нажимаем слева внизу подключиться и если все хорошо, мы должны увидеть следующее содержимое:
Сервис VPN на сервере запущен и готов принимать клиентов.
Настройка клиента
Запускаем ранее скаченный установщик openvpn-install-2.3.8-I001-x86_64, выбор компонентов оставляем по умолчанию, путь сохраняется прежний.
После успешной установки переходим в каталог “C:\Program Files\OpenVPN\config” и создаем файл конфигурации клиента “test.ovpn” со следующим содержимым:
# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем IP аддрес сервера с портом.
remote X.X.X.X 1194
# Указываем задержку в секундах для построения маршрута.
route-delay 3
# Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
client
# Указываем что мы являемся TLS клиентом.
tls-client
# Параметр защиты от MitM атак.
ns-cert-type server
# Указываем путь к доверенному сертификату.
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
# Указываем путь к клиентскому сертификату.
cert «C:\\Program Files\\OpenVPN\\ssl\\user1.crt»
# Указываем путь к клиентскому ключу.
key «C:\\Program Files\\OpenVPN\\ssl\\user1.key»
# Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 1
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Указываем, сли в течении 60 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
ping-restart 60
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
ping 10
# Указываем уровень логирования.
verb 3
Сохраняем.
C рабочего стола запускаем “OpenVPN GUI”, в трее дважды щелкаем по значку “OpenVPN”, откроется окно лога, нажимаем подключиться и если все хорошо, то мы увидим следующее:
Запускаем пинг на 10.8.0.1 и видим что сеть доступна (10.8.0.1 адрес, который получил виртуальный сетевой адаптер на сервере).
На сервере мы увидим лог подключения:
Собственно на этом этапе можно закончить и все в дальнейшем будет работать. Но я хотел бы еще кое-что добавить. Для уменьшения количества файлов у клиента и добавление еще одного пункта в безопасности (пароль на подключение), можно сделать следующее, на этапе создания сертификата пользователя на сервере, выполняем команду “build-key-pkcs12 user2” вместо “build-key user1”, выполняем все аналогично первой команде, до пункта Export Password, в этом пункте необходимо указать пароль, например 12345, данный пароль по факту назначается на сертификат “user2.p12”, при попытке подключения через “OpenVPN”, программа обращается к сертификату и требует пароль (зная пароль, его можно изменить, удалить и т.д).
В таком случае, комплект для пользователя будет состоять из:
1 – user2.p12
2 – ta.key
Конфигурационный файл “test.ovpn” должны быть следующего содержания:
# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем IP аддрес сервера с портом.
remote X.X.X.X 1194
# Указываем задержку в секундах для построения маршрута.
route-delay 3
# Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
client
# Указываем что мы являемся TLS клиентом.
tls-client
# Параметр защиты от MitM атак.
ns-cert-type server
# Указываем путь к сертификату.
pkcs12 «C:\\Program Files\\OpenVPN\\ssl\\user2.p12»
# Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 1
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Указываем, сли в течении 60 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
ping-restart 60
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
ping 10
# Указываем уровень логирования.
verb 3
Сохраняем.
Пробуем подключиться, вводим пароль 12345
Если все хорошо видим следующее:
Ну и на последок, как отозвать сертификат пользователя и вообще посмотреть список выданных сертификатов. Сам список храниться по следующему пути “C:\Program Files\OpenVPN\easy-rsa\keys\index.txt”
Для того чтобы отозвать сертификат, заходим в командную строку. Переходим в каталог “C:\Programm Files\OpenVPN\easy-rsa”:
cd C:\Program Files\OpenVPN\easy-rsa
Вводим команду “vars” нажимаем Enter (инициируем работу со скриптами). Вводим команду для отзыва сертификата пользователя “revoke-full user2” (указываем название заведенного раннее пользователя).
После заходим в “index.txt” “C:\Program Files\OpenVPN\easy-rsa\keys\index.txt” и видим, что сертификат отозван “R”.
Не готов сказать на 100%, но судя по описанию, файл “index.txt” проверяется каждый час, соответственно через час, сертификат будет заблокирован, ну или просто достаточно перезапустить сервис на сервере.
Еще рекомендую использовать отдельную учетную запись для службы “OpenVPN Service” и в случае если пользователи будут работать с этим сервером, где развернут VPN, обязательно уберите права у простых пользователей на каталог “C:\Program Files\OpenVPN”.
Всем спасибо, надеюсь, данная статься поможет многим, кто сталкивается с вопросами и не находил подходящих ответов, разжевал как мог.
This is a step-by-step guide on how to configure an Open VPN server on Windows Server 2008/2012 operating systems and connect clients to the created virtual private network.
Open VPN is an open implementation of VPN technology — the Virtual Private Network, which is designed to create virtual private networks between groups of geographically distant nodes on top of an open data transmission channel (Internet). Open VPN is suitable for tasks such as secure remote network connection to a server without opening Internet access to it, as if you are connecting to a host on your local network. Connection security is achieved by Open SSL encryption.
How it works?
When the Open VPN configuration is completed, the server will be able to accept external SSL-protected network connections to the virtual network adapter created at the start of the VPN service (tun / tap) without affecting the traffic processing rules of other interfaces (external Internet adapter, etc.). You can configure client sharing Open VPN to a specific network adapter from those present on the server. In the second part of the instruction, this tunneling of users’ Internet traffic is considered. With this method of forwarding, the host that handles VPN connections will also perform the function of a proxy server (Proxy) — to unify the rules of network activity of users and to route client Internet traffic on its own behalf.
Installing Open VPN on the server
Download and install version of Open VPN that matches your operating system. Run the installer; make sure that all features are selected for installation in the third step of the installation wizard.
Please note that in this instruction further commands are based on the fact that Open VPN is installed in the default directory «C: \ Program Files \ OpenVPN».
We allow adding a virtual network adapter TAP in response to the corresponding request and wait until the installation is complete (it may take several minutes).
Key generation (PKI) of the certification center, server, client; Diffie-Hellman algorithm
To manage the key / certificate pairs of all nodes of the private network being created, use the easy-rsa utility, which works via the command line, by analogy with the Linux console. To work with it, open, run the command line (Keyboard shortcut Win + R, then type cmd and press Enter)
Configuration files.
Running init-config.bat script will generate a new vars.bat file in our easy-rsa directory, this file will contain our configuration:
cd "C:\Program Files\OpenVPN\easy-rsa"
init-config.bat
So now we need to open up the following directory using Windows Explorer: C:\Program Files\OpenVPN\easy-rsa
Now, using Notepad (or another text editor) edit the batch file named vars.bat, we need to configure some variables…
Change the following settings (nearer the bottom of the file) to meet your requirements:
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@host.domain
set KEY_CN=changeme
set KEY_NAME=changeme
Note: if the value of the variable contains a space, enclose it in quotes.
Next you should save the changes to the file and then using Command Prompt, run the following commands:
cd "C:\Program Files\OpenVPN\easy-rsa"
vars.bat
clean-all.bat
Certification Center and Server Key Generation
Let’s proceed to the creation of the key / certificate of the certification authority. Run the script:
build-ca.bat
In response to the prompts that appear, you can simply press Enter. The only exception is the KEY_CN (Common Name) field — be sure to specify a unique name and insert the same name in the Name field:
Similarly, we generate a server certificate. Here the value of the Common Name and Name fields is SERVER:
.\build-key-server.bat server
Note: the server argument is the name of the future file.
All generated keys will now be asked whether to sign the generated certificate (Sign the certificate) on behalf of the certification authority. Answer y (yes).
Generating client keys and certificates
For each VPN client, you need to generate a separate SSL certificate.
There is an option in the Open VPN configuration, by enabling which you can use one certificate for several clients (see the server.ovpn file -> «dublicate-cn» file), but this is not recommended from a security point of view. Certificates can be generated in the future, as new customers connect. Therefore, now we will create only one for client1:
Run the following commands to generate client keys:
cd \
cd "C:\Program Files\OpenVPN\easy-rsa"
.\build-key.bat client1
Note: client1 argument is the name of the future file.
In the Common Name field, specify the name of the client (in our case client1).
Diffie Hellman Parameters
To complete the encryption setting, you need to run the Diffie-Hellman parameter generation script:
.\build-dh.bat
Displaying information about creating parameters looks like this:
Transferring generated keys / certificates
The generated certificates are located in the C: \ Program Files \ OpenVPN \ easy-rsa \ keys directory. Copy the files listed below to the directory C:\Program Files\OpenVPN\config:
- ca.crt
- dh2048.pem/dh1048.pem
- server.crt
- server.key
Open VPN server configuration
Let’s proceed to the configuration of the VPN server directly, use our configuration file with the name server.ovpn and place it in the C: \ Program Files \ OpenVPN \ config directory.
copy "C:\Program Files\OpenVPN\sample-config\server.ovpn" "C:\Program Files\OpenVPN\config"
copy "C:\Program Files\OpenVPN\sample-config\client.ovpn" "C:\Program Files\OpenVPN\config"
Open the file; find the path to the keys (see below). Check the paths to the previously copied certificates ca.crt, dh1024.pem / dh2048.pem, server.key, server.crt and, if necessary, change:
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
Save the file.
Now you need to allow traffic forwarding between adapters. Follow these steps: Control Panel -> Network and Internet -> Network and Sharing Center -> Change adapter settings. Choose an adapter that looks to the external Internet (TAP-adapter is responsible for the VPN connection). In our example, this is Ethernet 2.
Double-click the adapter Properties and go to the Access tab, tick all the checkboxes. Save the changes.
Next you need to enable IP addressing.
Using Windows Search, locate the REGEDIT.exe application.
In the tree, find the directory HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters. In the right part of the window, find the IPEnableRouter variable, double-click into the value editing window and change it to 1, thereby allowing addressing on the VPS.
Autorun Open VPN
Immediately configure the Open VPN service to autorun at system startup.
Open the Windows Services. Find in the list Open VPN -> right-click -> Properties -> Start: Automatic
This completes the basic configuration of the virtual private network server. Find the file C: \ Program Files \ OpenVPN \ config \ server.ovpn -> right-click -> «Start OpenVPN on this config» to start the virtual private network server and the configuration file we prepared.
Open VPN Client Configuration
Open VPN client applications are available for all popular operating systems: Windows / Linux / iOS / Android. For MacOS, the Tunnelblick client is used. All of these applications work with the same configuration files. Only some differences of several options are possible. You can learn about them by examining the documentation for your Open VPN client. In this guide, we will look at connecting a Windows client using the same distribution package of the program that we installed on the server. When using applications for other operating systems, the setup logic is similar.
- Install the current version of Open VPN on the client computer.
- Copy to the directory C: \ Program Files \ OpenVPN \ config the client certificate files created earlier on the server (2 certificates with the .crt extension and the key with the .key extension) and use our client.ovpn client configuration file. After copying to the user’s device, the last file is deleted from the server or transferred from the config folder to avoid confusion in the future.
-
Open the client.ovpn file. Find the line remote my-server-1 1194 and specify the ip-address or domain name of the vpn-server in it:
remote <ip-address> 1194</ip-address>
For example:
remote 83.166.241.155 1194
-
Find ways to certificates. Specify in it the paths to the ca.crt, client1.key, client1.crt certificates copied earlier as in the example below:
# See the server config file for more # description. It's best to use # a separate .crt/.key file pair # for each client. A single ca # file can be used for all clients. ca "C:\\Program Files\\OpenVPN\\config\\ca.crt" cert "C:\\Program Files\\OpenVPN\\config\\client1.crt" key "C:\\Program Files\\OpenVPN\\config\\client1.key" # This file should be kept secret
- Save the file. Client setup complete.
Verify Windows Firewall Rules
Attention! For the correct operation of the OpenVPN service, it is required that the corresponding ports be opened on the server (by default UDP 1194). Check the relevant rule in your Firewall: Windows Firewall or third-party anti-virus software.
Check OpenVPN connections
Start the Open VPN server, to do this, go to the directory C: \ Program Files \ OpenVPN \ config and select the server configuration file (we have server.ovpn -> right-click -> «Start OpenVPN on this config file»).
Start the client, to do this, go to the directory C: \ Program Files \ OpenVPN \ config and select the client configuration file (we have client.ovpn -> right-click -> «Start Open VPN on this config file»).
The screen displays the connection status window. In a few seconds it will be minimized to tray. The green indicator of the Open VPN shortcut in the notification area indicates a successful connection.
Check the accessibility from the client device of the OpenVPN server using its internal private network address:
- Press the Win + R keys and type cmd in the window that appears to open the command line.
-
Execute the ping command to the address of our server in a virtual private network (10.8.0.1):
ping 10.8.0.1
If the VPN is configured correctly, the packet exchange with the server will start.
- With the help of the tracert utility, we will check on which route the packets from the client go. In the console, enter the following command:
From the result of the utility, we see that the packets are first sent to the VPN server, and only then to the external network.
Now you have a ready-to-work virtual private network that allows you to make secure network connections between its clients and the server using open and geographically distant points of connection to the Internet.
This document describes how to install and configure OpenVPN on a Windows Server computer.
Environment
-
-
OpenVPN 2.3.2 I003
-
Windows Server 2008 R2
-
-
-
First, download the Windows installer, then run the file on the server you want to install OpenVPN.
-
In the Welcome window, click the Next button.
-
In the License Agreement window, click the I Agree button.
-
In the Choose Components window, specify that all of the components should be installed. If you intend to use OpenSSL to create certificates, be sure to specify that the OpenSSL Utilities and the OpenVPN RSA scripts should be installed; this will give you the EasyRSA scripts which make configuring and creating certificates easier. Click the Next button.
-
In the Choose Install Location window, click the Install button.
-
The install was start and a window titled Windows Security will appear asking if you would like to install the TAP-Win32 Provider V9 Network adapter. Click the Install button to install this driver.
-
In the Installation Complete window, click the Next button.
-
In the Completing window, click the Finish button.
-
A Windows service named OpenVPN Service will now exist on the server, and it will be set to start manually.
In addition to the OpenVPN software shown in the Programs and Features control panel applet, the TAP-Windows software will also have been installed.
Also, a network adapter named TAP-Win32 Adapter V9 will have been created.
Copy the server.ovpn file from:
C:\Program Files\OpenVPN\sample-config
to:
C:\Program Files\OpenVPN\config
Edit this server.ovpn file and configure the following parameters.
local
If the server has more than one IP address then enable the local parameter and set it to the IP address you want to use.
For example: 10.11.12.1
port
Leave the port parameter set to 1194.
proto
Leave the proto parameter set to udp.
dev
Leave the dev parameter set to tun, in order to create a router IP tunnel.
ca, cert, key
Set the ca, cert, and key parameters appropriately for your system. If you need to generate these files, the EasyRSA scripts provice an easy way to do this. Refer to the EasyRSA section below for further details.
…………………………
This section describes how to use EasyRSA to configure and create certificates.
Организация VPN каналов между филиалами компании имеет большое значение в работе любого IT-специалиста. В данной статье рассматривается один из способов реализации этой задачи на основе программного продукта OpenVPN.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Ниже мы рассмотрим топологию сети, в которой будем организовывать VPN-туннель, разберем особенности конфигурирования программы OpenVPN и пошагово настроим маршрутизацию для наших офисов. Статья написана из расчета, что OpenVPN будет устанавливаться на платформы Windows 7 и Windows Server 2008.
Топология сети.
Использованная нами сетевая топология стандартна. Имеется Сеть Центрального Офиса (назовем её СЦО) и Сеть Филиала (назовем её СФ). Стоит задача соединить офисы таким образом, чтобы конечный пользовательский компьютер (далее ПК1) офиса СЦО имел доступ к общим ресурсам пользовательского компьютера (далее ПК2) СФ.
CЦО имеет в своем составе:
- Интернет-шлюз (назовем его ИШ1) с двумя сетевыми интерфейсами:
- 111.111.111.111 — выдаётся провайдером, смотрит в интернет.
- 192.168.0.1 — назначается нами, смотрит в СЦО.
- OpenVPN Сервер (далее ОС) на котором будем поднимать OpenVPN с одним виртуальным и одним физическим интерфейсом:
- 10.8.0.1 — адрес виртуального интерфейса (интерфейс устанавливается в процессе установки программы OpenVPN). Адрес для этого интерфейса назначается программой. Мы с вами не должны менять адрес самостоятельно из управления сетевыми адаптерами.
- 192.168.0.2 — физический интерфейс, параметры задаются нами, смотрит в СЦО.
- ПК1 — пользовательский компьютер 1, с сетевым интерфейсом 192.168.0.3, смотрит аналогично в СЦО.
СФ имеет в своем составе:
- Интернет-шлюз (далее ИШ2) с двумя сетевыми интерфейсами:
- 222.222.222.222 — выдаётся провайдером, смотрит в интернет.
- 192.168.1.2 — назначается нами, смотрит в СФ.
- OpenVPN Клиент (далее ОК) на котором будем поднимать OpenVPN с одним виртуальным и одним физическим интерфейсом:
- 10.8.0.2 — адрес виртуального сетевого интерфейса (интерфейс устанавливается в процессе установки программы OpenVPN). Адрес для этого интерфейса так же назначается программой OpenVPN.
- 192.168.1.2 — физический интерфейс, параметры задаются нами, смотрит в СФ.
- ПК2 — пользовательский компьютер 2, с сетевым интерфейсом 192.168.1.3, смотрит в СФ.
Настраиваем OpenVPN сервер.
Теперь перейдем к самой программе, основам и особенностям её конфигурирования. OpenVPN доступен в вариантах для Linux и Windows. Вы можете скачать установочный пакет на сайте разработчика.
Сам процесс инсталлирования не вызовет никаких проблем. Единственное, стоит отключить антивирус на время установки, дабы избежать дополнительных проблем. На момент написания статьи, к примеру, продукты Лаборатории Касперского не блокировали установку, а лишь выводили подозрение на некоторые устанавливаемые компоненты.
В процессе установки в систему инсталлируется виртуальный сетевой адаптер TAP-Win32 Adapter V9 и, соответственно, драйвер к нему. Этому интерфейсу программа OpenVPN как раз и будет назначать ip адрес и маску виртуальной сети OpenVPN. В нашем случае ему назначен адрес 10.8.0.1 с маской 255.255.255.0 на сервере ОС и 10.8.0.2 с аналогичной маской на клиенте ОК.
По стандарту программа устанавливается в C:\ProgramFiles\OpenVPN. В этой директории следует сразу же создать дополнительно папку keys (здесь мы будем хранить ключи аутентификации) папку ccd (здесь будут находится конфиги настроек сервера для клиента).
В директории C:\ProgramFiles\OpenVPN\sample-config представлены стандартные конфиги. Конфиги, которые мы будем создавать, должны размещаться в директории C:\Program Files\OpenVPN\config.
Настройка OpenVPN начинается с генерации ключей. Генерируемые ключи делятся на:
- главный CertificateAuthority (CA) сертификат и ключ, используемый для подписывания каждого сертификата сервера и клиента.
- публичный и приватный ключи для сервера и каждого (это важно) клиента отдельно.
Последовательность создания ключей следующая (названия файлов сертификатов и ключей указаны в скобках):
- Генерируем основной CA (ca.crt) сертификат и CA (ca.key) ключ.
- Генерируем сертификат (server.crt) и ключ (server.key) сервера.
- Генерируем сертификат (office1.crt) и ключ (office1.key) для клиента.
- Генерация параметров DiffieHellman (dh1024.pem).
- Генерация ключа tls-auth (ta.key) для аутентификации пакетов.
Разберем каждый пункт более подробно.
Генерируем основной сертификат СА и СА ключ:
Заходим в Пуск — Выполнить набираем cmd, жмем OK, заходим в командную строку. Пишем:
cd C:/Program Files/OpenVPN/easy-rsa
Таким образом мы находимся в директории easy-rsa:
Во время выполнения всех пунктов генерации ключей вы должны находиться именно в ней. Выполняем команду:
init-config
Не закрывая командную строку, зайдем в C:\ProgramFiles\OpenVpn\easy-rsa и отредактируем файл vars.bat, заполнив следующие параметры (указав, естественно, свои данные):
KEY_COUNTRY=RF
KEY_PROVINCE=MO
KEY_CITY=Malinino
KEY_ORG =Organization
KEY_EMAIL=organization@email.ru
Теперь создадим СА сертификат и СА ключ. Раскрываем командную строку, которая все это время висела где то на рабочем столе, и продолжаем вписывать команды:
vars
clean-all
build-ca
Последняя команда как раз и выполняет генерацию СА сертификата и СА ключа. В процессе создания ключа вам будут задавать вопросы, на которые вы можете отвечать просто нажатием Enter’a (тогда значения будут браться из файла vars.bat который мы редактировали выше) или же вводить свои. Стоит обратить внимание на вопрос:
Common Name (eg, your name or your server's hostname) []: OpenVPNS
Здесь вы должны задать название для сервера — в примере мы ввели OpenVPNS.
Генерируем сертификат (server.crt) и ключ (server.key) сервера.
Не выходя из директории, в нашей командной строке продолжим вводить команды. Сгенерируем сертификат сервера и ключа командой:
build-key-server server
На вопросы отвечаем так же как в первом пункте. На вопрос:
Common Name *: server
Введем: server. На вопросы:
Sign the certificate? [y/n]
и
1 out of 1 certificate requests certified, commit? [y/n]
надо дать положительный ответ: Y.
Генерируем сертификат (office1.crt) и ключ (office1.key) для клиента.
Очевидно, что клиентов может быть много, в нашем примере он один — office1. В зависимости от количества клиентов следующая команда в командной строке выполняется несколько раз, причем названия генерируемых ключей так же меняйте:
build-key office1
если требуется еще сертификаты и ключи, скажем для второго клиента, то вводим:
build-key office2
В процессе ответа на вопросы не забывайте, что каждый клиент на вопрос CommonName должен получить уникальное имя, например: office1, office2 и т.д.
Генерация параметров DiffieHellman (dh1024.pem).
Вводим в командной строке, находят во все той же директории easy-rsa:
build-dh
Генерация ключа tls-auth (ta.key) для аутентификации пакетов
В конце создаем ключ для tls-аутификации командой:
openvpn --genkey --secret ta.key
Теперь разберемся с тем, какие файлы оставлять на сервере, а какие перенести клиенту. На сервере (OC) должны находиться в созданной нами папке keys только следующие файлы:
- ca.crt
- ca.key
- dh1024.pem
- server.crt
- server.key
- ta.key
На клиенте OK аналогично серверу ОС создадим так же папочку keys, там должны быть:
- ca.crt
- office1.crt
- office1.key
- ta.key
Все файлы с расширением .key являются секретными. Передавать их стоит только по защищенным каналам, лучше на физическим носителе.
Далее приступим к созданию конфига для нашего сервера ОС и клиента ОК. В директории config создаем файл со следующим названием и расширением: server.ovpn Открываем его блокнотом и начинаем писать конфиг:
Выбираем протокол для передачи данных — в данном случае upd:
proto udp
Стандартный порт для OpenVPN:
port 1194
Режим работы программы L3-туннель. В данном режиме OpenVPN — роутер:
dev tun
Режим клиент-сервер:
tls-server
Данного топология доступна с версии 2.1 и заключается в том что каждому клиенту выдается по 1 адресу, без виртуальных портов маршрутизатора:
topology subnet
Маршруты добавляются через .exe — это важно:
route-method exe
Задержка при добавлении маршрута, можно уменьшить до 5:
route-delay 10
Данная опция задает организацию сети. У нас появляется виртуальная сеть 10.8.0.0 /24. Первый адрес из этой сети, то есть 10.8.0.1 выдается серверу, последующие (10.8.0.2, 10.8.0.3 и т.д.) клиентам. DHPC сервер получает адрес 10.8.0.254:
server 10.8.0.0 255.255.255.0
Задаем шлюз в openvpn сеть:
route-gateway 10.8.0.1
Директория, в которой мы должны расположить файл с названием нашего клиента, то есть office1 без расширения, и в нем записать команды, которые будут выполнятся на клиенте:
client-config-dir "C:\\Program Files\\OpenVPN\\ccd"
Далее идут пути до файлов сертификатов и ключей сервера. Заметим, что пути обязательно пишутся с двойной чертой, а именно \\:
ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\server.crt"
key "C:\\Program Files\\OpenVPN\\keys\\server.key"
dh "C:\\Program Files\\OpenVPN\\keys\\dh1024.pem"
tls-auth "C:\\Program Files\\OpenVPN\\keys\\ta.key" 0
Задаем серверу ОС маршрут на всю сеть:
route 10.8.0.0 255.255.255.0
Выбираем метод сжатия:
cipher BF-CBC
Задаем сжатие трафика:
comp-lzo
OpenVPN передает системе регистраций событий программы не критические ошибки сети. На практике это уменьшит содержимое статус-окна, появляющегося при запуске сервера OpenVPN:
verb 1
Cервер пингует противоположную сторону с интервалом в 10 секунд и если сторона не отвечает за 60 секунд, то сервер запустит пересоединение:
keepalive 5 60
Далее переходим в директорию ccd и создаем файл, в котором будут лежать команды, посылаемые клиенту от сервера. Назвать его надо так же как мы называли самого клиента, например office1. Файл не будет иметь расширения.
Редактируем его через блокнот. Все параметры, заданные ниже, будут автоматически переданы клиенту:
Задаем ip и маску для нашего клиента office1:
ifconfig-push 10.8.0.2 255.255.255.0
Передаем ему маршрут на всю сеть:
push "route 10.8.0.0 255.255.255.0"
Задаем для него шлюз:
push "route-gateway 10.8.0.1"
Эта команда говорит серверу ОС о том, что за данным клиентом, а именно ОК (office1) находится сеть 192.168.1.0:
iroute 192.168.1.0 255.255.255.0
Таким образом, мы закончили конфигурирование сервера на стороне ОС.
Настройка клиента.
Далее приступим к изменению параметров клиента. Зайдем на машине ОК в папку config. Создадим в ней файл office1.ovpn Приступим к его редактированию, ряд опций повторяет аналогичные на сервере, поэтому мы их пояснять не будем:
dev tun
proto udp
port 1194
Указываем внешний адрес ИШ1:
remote 111.111.111.111
Клиент будет в работать в режиме тлс-клиента:
tls-client
Эта опция защищает от подмены сервера третьим лицом:
remote-cert-tls server
Эти опции аналогичны серверу:
route-method exe
route-delay 10
Задаем маршрут к сети 192.168.0.0:
route 192.168.0.0 255.255.255.0
Этой командой разрешаем прием конфигурации клиента с сервера:
pull
Пути к ключам:
ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\office1.crt"
key "C:\\Program Files\\OpenVPN\\keys\\office1.key"
tls-auth "C:\\Program Files\\OpenVPN\\keys\\ta.key" 1
Остальные опции также аналогичны серверу:
cipher BF-CBC
comp-lzo
verb 1
keepalive 5 60
На этом настройка программы на стороне клиента ОК закончена.
Настройка брандмауэра и маршрутизация.
И так, мы имеем настроенные конфиги на ОК и на ОС. Теперь разберем очень важные моменты. Заранее оговоримся, если вы использует KIS 2011 или подобные антивирусные программы, то в настройках сетевого экрана следует разрешить прохождение ICMP пакетов. Это позволит беспрепятственно пинговать хосты в наших сетях.
Так же стоит добавить наш виртуальный интерфейс программы OpenVPN в список доверенных сетей.
На ИШ1 должны быть проделаны следующие действия:
- Настроено перенаправление порта 1194 протокола UDP с интерфейса 111.111.111.111 на интерфейс сервер ОС 192.168.0.2
- В файерволе должна быть разрешена передача по порту 1194 протокола UDP, иначе пинг не будет проходить даже между ОС и ОК.
На ИШ2 надо предпринять аналогичные действия:
- Настроить перенаправление порта 1194 протокола UDP с интерфейса 222.222.222.222 на интерфейс клиента ОК 192.168.1.2
- Проверить, открыт ли порт 1194 протокола UDP в файерволе.
В Usergate 5.2, к примеру, настройка форвардинга пакетов по порту 1194 протокола UDP выглядит так:
На этом этапе мы уже пингуем ОК и ОС по их OpenVPN адресам, то есть 10.8.0.1 и 10.8.0.2. Далее нам необходимо обеспечить правильный маршрут пакетов с клиента ОК до удаленной сети 192.168.0.0. Делаем это одним из нескольких способов:
Либо задаем постоянный маршрут до этой сети на самом клиенте ОК:
route -p add 192.168.0.0 mask 255.255.255.0 10.8.0.1
Либо задаем этот маршрут в ccd конфиге клиента на сервер, а именно в файле office1 допишем:
push "route 192.168.0.0 255.255.255.0"
Так же это можно сделать, добавив строку напрямую в конфиг клиента ОК:
route 192.168.0.0 255.255.255.0
Но мы бы не рекомендовали загружать его, а делать все на стороне сервера.
Затем необходимо обеспечить маршрут пакетов с сервера ОС до удаленной сети 192.168.1.0. делается это аналогично варианту выше за несколькими исключениями.
Добавляем команду в конфиг сервера ОС:
route 192.168.1.0 255.255.255.0 10.8.0.2
или же добавляем команду непосредственно в командной строке:
route -p add 192.168.1.0 mask 255.255.255.0 10.8.0.2
Так же необходимо на сервере ОС и клиенте ОК включить в службах службу Маршрутизации и удаленного доступа, таким образом обеспечив маршрутизацию на внутреннюю сеть (форвардинг). Без этого внутренние адреса в сетях СЦО И СФ клиента ОК и сервера ОС не будут пинговаться.
На этом этапе мы уже свободно можем пинговать внутренние адреса наших ОС и ОК, т.е. набирая на сервере ОС ping 192.168.1.2 и на клиенте ОК ping 192.168.0.2 мы получаем положительный результат в виде:
Таким образом ОК и ОС взаимно пингуются по своим OpenVPN и внутренним СЦО и СФ адресам. Дальше нам надо прописать маршрут в командной строке в сеть 10.8.0.0 на наших ПК1 и ПК2. Делается это следующими командами:
Для ПК1:
route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.2
Для ПК2:
route -p add 192.168.0.0 mask 255.255.255.0 192.168.1.2
В результате расшаренные ресурсы в ПК1 и ПК2 будут доступны по их внутрисетевому адресу:
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Содержание
- Настройка OpenVPN-сервера на Windows Server 2008/2012
- Содержание:
- Виртуальный сервер на базе Windows
- Как это работает?
- Установка OpenVPN на сервер
- Генерация ключей (PKI) центра сертификации, сервера, клиента; алгоритм Диффи-Хеллмана
- Конфигурация сервера OpenVPN
- Конфигурация клиента OpenVPN
- Проверка правил Брандмауэра Windows
- Проверка OpenVPN-соединения
- Записки IT специалиста
- Настраиваем VPN сервер. Часть 5 — L2TP. Платформа Windows.
- Дополнительные материалы:
- Настройка VPN сервера на Windows Server 2008, 2012, 2016 на VPS/VDS
- Настройка VPN сервера на Windows Server 2008, 2012, 2016 на VPS/VDS
- Устанавливаем роль VPN
- Настройка VPN сервера
- Предоставляем доступ пользователям для подключения через VPN
- Подключаемся к виртуальной сети VPN
Настройка OpenVPN-сервера на Windows Server 2008/2012
Это пошаговое руководство о том, как настроить OpenVPN-сервер в операционных системах Windows Server 2008/2012 и подключить клиентов к созданной виртуальной частной сети.
OpenVPN — открытая реализация технологии VPN — Virtual Private Network, которая предназначена для создания виртуальных частных сетей между группой территориально удаленных узлов поверх открытого канала передачи данных (интернет). OpenVPN подходит для таких задач, как безопасное удаленное сетевое подключение к серверу без открытия интернет-доступа к нему, как будто вы подключаетесь к хосту в своей локальной сети. Безопасность соединения достигается шифрованием OpenSSL.
Содержание:
Виртуальный сервер на базе Windows
Как это работает?
По окончанию настройки OpenVPN сервер сможет принимать внешние защищенные SSL сетевые подключения к созданному при запуске VPN-сервиса виртуальному сетевому адаптеру (tun/tap), не затрагивая правила обработки трафика других интерфейсов (внешний интернет-адаптер и др.) Имеется возможность настроить общий доступ клиентов OpenVPN к конкретному сетевому адаптеру из присутствующих на сервере. Во второй части инструкции рассмотрено такое туннелирование интернет-трафика пользователей. При этом способе переадресации обрабатывающий VPN-подключения хост будет выполнять и функцию прокси-сервера (Proxy) — унифицировать правила сетевой активности пользователей и осуществлять маршрутизацию клиентского интернет-трафика от своего имени.
Установка OpenVPN на сервер
Скачайте и установите актуальную версию OpenVPN, соответствующую вашей операционной системе. Запустите установщик, убедитесь что на третьем шаге мастера установки выбраны все компоненты для установки.
Обратите внимание, что в этой инструкции дальнейшие команды приведены из расчета, что OpenVPN установлен в директорию по-умолчанию «C:\Program Files\OpenVPN».
Разрешаем добавление виртуального сетевого адаптера TAP в ответ на соответствующий запрос и дожидаемся завершения установки (может занять несколько минут).
Генерация ключей (PKI) центра сертификации, сервера, клиента; алгоритм Диффи-Хеллмана
Для управления парами «ключ/сертификат» всех узлов создаваемой частной сети используется утилита easy-rsa, работающая через командную строку по аналогии с консолью Linux. Для работы с ней откройте запустите командую строку (Сочетание клавиш Win+R, затем наберите cmd и нажмите Enter)
Скачайте наши файлы конфигурации и скрипты и замените их в каталоге C:\Program Files\OpenVPN\easy-rsa.
Если пути по умолчанию не совпадают, откорректируйте их во всех файлах.
В файле конфигурации openssl-1.0.0.conf обязательно задайте значения переменным, соответствующие вашим данным: countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
emailAddress_default
Примечание: если значение переменной содержит пробел, то заключите ее в кавычки.
Генерация ключей Центра Сертификации и Сервера
- Переименуйте файл index.txt.start в index.txt, serial.start в serial с помощью следующих команд: cd \
cd «C:\Program Files\OpenVPN\easy-rsa»
ren index.txt.start index.txt
ren serial.start serial
Перейдем к созданию ключа/сертификата центра сертификации. Запустите скрипт: .\build-ca.bat
В ответ на появляющиеся запросы вы можете просто нажимать Enter. Единственное исключение — поле KEY_CN (Common Name) — обязательно укажите уникальное имя и такое же имя вставьте в поле name.
Аналогичным образом генерируем сертификат сервера. Здесь значение полей Common Name и Name — SERVER: .\build-key-server.bat server
Примечание: аргумент server — имя будущего файла.
Для всех генерируемых ключей теперь будет задаваться вопрос о том, подписать ли создаваемый сертификат (Sign the certificate) от имени центра сертификации. Отвечаем y (yes).
Для каждого клиента VPN необходимо сгенерировать отдельный SSL-сертификат.
В конфигурации OpenVPN присутствует опция, включив которую вы можете использовать один сертификат для нескольких клиентов (см. файл server.ovpn -> опция «dublicate-cn»), но это не рекомендуется с точки зрения безопасности. Сертификаты можно генерировать и в дальнейшем, по мере подключения новых клиентов. Поэтому сейчас создадим только один для клиента client1:
Выполните следующие команды для генерации клиентских ключей: cd \
cd «C:\Program Files\OpenVPN\easy-rsa»
.\build-key.bat client1
Примечание: аргумент client1 — имя будущего файла.
В поле Common Name указываем имя клиента (в нашем случае client1).
Параметры Diffie Hellman
Для завершения настройки шифрования, необходимо запустить скрипт генерации параметров Диффи-Хеллмана: .\build-dh.bat
Отображение информации о создании параметров выглядит так:
Перенос созданных ключей/сертификатов
Сгенерированные сертификаты находятся в директории C:\Program Files\OpenVPN\easy-rsa\keys. Скопируйте перечисленные ниже файлы в каталог C:\Program Files\OpenVPN\config:
Конфигурация сервера OpenVPN
В дереве найдите каталог HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. В правой части окна найдите переменную IPEnableRouter, двойным щелчком мыши перейдите в окно редактирования значения и измените его на 1, тем самым разрешив адресацию на VPS.
- Перейдем к настройке непосредственно VPN-сервера, используйте наш файл конфигурации с именем server.ovpn и поместите его в директорию C:\Program Files\OpenVPN\config.
Откройте файл, находим пути до ключей (см. ниже). Проверяем в нем пути до скопированных ранее сертификатов ca.crt, dh1024.pem/dh2048.pem, server.key, server.crt и при необходимости меняем: port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ca «C:\\Program Files\\OpenVPN\\config\\ca.crt»
cert «C:\\Program Files\\OpenVPN\\config\\server.crt»
key «C:\\Program Files\\OpenVPN\\config\\server.key»
dh «C:\\Program Files\\OpenVPN\\config\\dh2048.pem»
push «redirect-gateway def1»
push «dhcp-option DNS 8.8.8.8»
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
Теперь необходимо разрешить пересылку трафика между адаптерами. Выполните следующие шаги: Панель управления -> Сеть и интернет -> Центр управления сетями и общим доступом -> Изменение параметров адаптера. Выберете адаптер который смотрит во внешнюю сеть Интернет (TAP-адаптер отвечает за VPN соединение). В нашем примере это Ethernet 2.
С помощью двойного щелчка мыши откройте Свойства адаптера и перейдите во вкладку Доступ, отметьте галочкой все пункты. Сохраните изменения.
Далее нужно включить IP-адресацию.
С помощью поиска Windows найдите приложение REGEDIT.exe.
Сразу настроим службу OpenVPN на автозапуск при старте системы. Открываем «Службы»(Services) Windows. Находим в списке OpenVPN -> ПКМ -> Свойства (Properties) -> Запуск: Автоматически
На этом базовая настройка сервера виртуальной частной сети завершена. Найдите файл C:\Program Files\OpenVPN\config\server.ovpn -> кликните правой кнопкой мыши -> «Start OpenVPN on this config» для запуска сервера виртуальной частной сети и подготовленного нами файла настроек.
Конфигурация клиента OpenVPN
Клиентские приложения OpenVPN доступны для всех популярных ОС: Windows / Linux / iOS / Android. Для MacOS используется клиент Tunnelblick. Все эти приложения работают с одними и теми же файлами конфигурации. Возможны лишь некоторые различия нескольких опций. Узнать о них вы можете, изучив документацию к своему клиенту OpenVPN. В этом руководстве мы рассмотрим подключение Windows-клиента с использованием того же дистрибутива программы, который мы устанавливали на сервер. При использовании приложений для других операционных систем логика настройки аналогична.
- Устанавливаем актуальную версию OpenVPN на клиентский компьютер.
- Копируем в директорию C:\Program Files\OpenVPN\config созданные ранее на сервере файлы клиентских сертификатов (2 сертификата с расширением .crt и ключ с расширением .key) и используем наш файл конфигурации клиента client.ovpn. Последний файл после копирования на устройство пользователя удаляем с сервера или переносим из папки config во избежание путаницы в будущем.
- Откройте файл client.ovpn. Найдите строку remote my-server-1 1194 и укажите в ней ip-адрес или доменное имя vpn-сервера:
remote 1194
Например: remote 111.222.88.99 1194
# See the server config file for more
# description. It’s best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca «C:\\Program Files\\OpenVPN\\config\\ca.crt»
cert «C:\\Program Files\\OpenVPN\\config\\client1.crt»
key «C:\\Program Files\\OpenVPN\\config\\client1.key»
# This file should be kept secret
Проверка правил Брандмауэра Windows
Внимание! Для корректной работы сервиса OpenVPN требуется, чтобы на севере были открыты соответствующие порты (по-умолчанию UDP 1194). Проверьте соответствующее правило в вашем Firewall’е: Брандмауэре Windows или стороннем антивирусном ПО.
Проверка OpenVPN-соединения
Запустите OpenVPN сервер, для этого перейдите в директорию C:\Program Files\OpenVPN\config и выберите файл конфигурации сервера (у нас server.ovpn -> ПКМ -> «Start OpenVPN on this config file»).
Запустите клиент, для этого перейдите в директорию C:\Program Files\OpenVPN\config и выберите файл конфигурации клиента (у нас client.ovpn -> ПКМ -> «Start OpenVPN on this config file»).
На экране отобразится окно статуса подключения. Через несколько секунд оно будет свернуто в трей. Зеленый индикатор ярлыка OpenVPN в области уведомлений говорит об успешном подключении.
Проверим доступность с клиентского устройства сервера OpenVPN по его внутреннему адресу частной сети:
- Нажимаем клавиши Win+R и появившемся окне вводим cmd для открытия командной строки.
- Выполняем команду ping до адреса нашего сервера в виртуальной частной сети (10.8.0.1): ping 10.8.0.1
- В случае корректной настройки VPN начнется обмен пакетами с сервером
С помощью утилиты tracert проверим по какому маршруту идут пакеты от клиента. В консоли введите следующую команду: tracert ya.ru
Из результата работы утилиты мы видим, что сначала пакеты отправляются на сервер VPN, а уже потом во внешнюю сеть.
Теперь вы имеете готовую к работе виртуальную частную сеть, позволяющую осуществлять безопасные сетевые подключения между ее клиентами и сервером, используя открытые и территориально удаленные точки подключения к сети интернет.
Источник
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Настраиваем VPN сервер. Часть 5 — L2TP. Платформа Windows.
Настраиваем VPN сервер. Часть 5 — L2TP. Платформа Windows.
Протокол L2TP является более предпочтительным для построения VPN-сетей, нежели PPTP, в основном это касается безопасности и более высокой доступности, благодаря тому, что для для каналов данных и управления используется одна UDP-сессия. Сегодня мы рассмотрим настройку L2TP VPN-сервера на платформе Windows.
Несмотря на простоту развертывания и подключения самых различных клиентов протокол PPTP имеет ряд существенных недостатков. Самый существенный — это однофакторная аутентификация при помощи пары логин / пароль, а так как логин пользователя чаще всего известен (или не составляет труда его выяснить), то по факту для аутентификации используется только пароль, будучи скомпрометированным он позволяет третьим лицам получить полный доступ к корпоративной сети.
Второй недостаток, вытекающий из первого — невозможность проверить подлинность подключающегося хоста, т.е. администратор не может с уверенностью сказать, что данное подключение выполнено пользователем Иванов со служебного ноутбука, а не злоумышленником, получившим доступ к учетным данным.
И наконец, третий недостаток связан с тем, что PPTP использует для работы два соединения: канал данных и канал управления. Это создает сложности с подключением, так как не все провайдеры, особенно при мобильном или гостевом доступе, обеспечивают нормальное прохождение GRE-пакетов, что делает подключение к VPN-серверу невозможным.
L2TP не имеет указанного недостатка, так как использует только одну UDP-сессию для передачи данных и управления, что облегчает подключение клиентов и администрирование сетевой инфраструктуры.
Вторым достоинством L2TP является двухфакторная аутентификация. Перед установлением соединения узлы проверяют подлинность друг друга на основании сертификата или предварительного ключа и только после этого приступают к соединению. Аутентификация с использованием сертификатов требует развернутой в сети инфраструктуры PKI, при ее отсутствии можно использовать аутентификацию по предварительному ключу. Мы будем рассматривать именно этот вариант.
Аутентификация по предварительному ключу менее надежна, чем по сертификату, но тем не менее позволяет организовать более высокий уровень безопасности VPN-сети нежели с использованием протокола PPTP. Предварительный ключ указывается один раз, при создании VPN-подключения на клиенте и может быть неизвестен пользователю (настройку производит администратор), в этом случае можно быть уверенным в подлинности подключающегося хоста и компрометация пароля в этом случае не позволит подключится к сети предприятия, так как предварительный ключ неизвестен.
Для развертывания VPN L2TP-сервера мы будем использовать Windows Server 2008 R2 SP1, однако все сказанное, с небольшими поправками, будет справедливо и для иных версий Windows Server.
Нам потребуется установленная роль Службы политики сети и доступа, которая должна содержать Службы маршрутизации и удаленного доступа.
Дальнейшая настройка производится через оснастку Маршрутизация и удаленный доступ, доступной в меню Пуск — Администрирование. При первом обращении будет запущен мастер, который поможет вам быстро настроить необходимые службы. Если вы планируете использовать это сервер как роутер, для обеспечения доступа в интернет компьютеров локальной сети, то следует выбрать Доступ к виртуальной частной сети (VPN) и NAT, если вам нужен только VPN-сервер, то Удаленный доступ (VPN или модем).
Настройку служб NAT мы рассматривать не будем, при необходимости обратитесь к данной статье. Также довольно часто встречается ситуация, когда службы NAT уже развернуты, в этом случае нужно включить службы VPN вручную. Для этого в оснастке Маршрутизация и удаленный доступ щелкните правой кнопкой мыши на имени сервера и выберите Свойства. В открывшемся окне на вкладке Общие поставьте переключатель IPv4-маршрутизатор в положение локальной сети и вызова по требованию, а также установите галочку IPv4-сервер удаленного доступа.
На вкладке Безопасность введите предварительный ключ.
Остальные параметры мы подробно рассматривать не будем, так как подробно рассматривали их в статье посвященной настройке PPTP-сервера. Применяем изменения, перезапускам службу.
Затем переходим в раздел Порты и в свойствах L2TP устанавливаем обе галочки Подключения удаленного доступа и Подключения по требованию, максимальное число портов должно соответствовать или превышать предполагаемое количество клиентов. Неиспользуемые протоколы лучше отключить, убрав с свойствах обе галочки.
В итоге в списке портов должны остаться только L2TP порты в указанном вами количестве.
Настройка L2TP подключения на клиенте производится стандартными методами, на вкладке Безопасность выберите тип VPN как L2TP с IPsec и нажмите кнопку Дополнительные свойства, в открывшемся окне укажите использование предварительного ключа и введите сам ключ.
Также не забудьте включить использование протокола расширенной проверки подлинности EAP.
В остальном никаких отличий от создания PPTP подключения нет, пользователи могут подключаться к нашему серверу используя свои учетные данные.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник
Настройка VPN сервера на Windows Server 2008, 2012, 2016 на VPS/VDS
Настройка VPN сервера на Windows Server 2008, 2012, 2016 на VPS/VDS
VPN соединение позволяет получить доступ к ресурсам локальной сети через сеть интернет, по безопасному каналу. Это позволяет работать в офисе удаленно. Просто выполнив подключение через VPN, вы можете пользоваться всеми доступными для вас ресурсами корпоративной сети, как будто бы ваш компьютер был физически подключен к данной сети.
Как правило, это используется для объединения удаленных офисов или мелких филиалов в одну сеть.
Меня зовут Севостьянов Антон и в данном видео давайте рассмотрим процесс настройки VPN сервера на базе Windows Server 2016. И делать мы это будем на арендованном виртуальном сервере от компании NeoServer.
Несмотря на то, что я буду выполнять все действия в Windows Server 2016, аналогичным образом все можно настроить на 2008 и 2012 серверах.
Как я и говорил, весь процесс настройки у нас будет проходить на арендованном виртуальном сервере. Поэтому первым делом нам нужно создать виртуальный сервер, для этого переходим на сайт neoserver.ru \ Войти \ Виртуальные сервера.
Если вы никогда не работали с сервисом NeoServer, то на эту тему у меня есть более подробное видео «Настройка виртуального VPS VDS сервера Windows», в котором я рассказываю все от процесса регистрации до конфигурации сервера.
Соберем сервер, у меня он будет состоять из следующих характеристик: Windows Server 2016 ru, 2Гб ОЗУ, все остальное по умолчанию.
Я буду работать через RDP подключение, так как для меня этот способ наиболее удобен.
Устанавливаем роль VPN
Пуск \ Диспетчер серверов \ Управление \ Добавить роли и компоненты \ Далее \ Далее \ Далее \ Удаленный доступ \ Далее \ Далее \ DirectAccesss и VPN \ Добавить компоненты \ Далее \ Далее \ Установить.
Настройка VPN сервера
Мы можем запустить процесс настройки либо сразу из окна мастера добавления ролей и компонентов, либо через оснастку «Маршрутизация и удаленный доступ» (Средства \ Маршрутизация и удаленный доступ \ Выбираем наш сервер \ ПКМ \ Настроить и включить маршрутизацию и удаленный доступ \ Далее \ Особая конфигурация \ Далее \ Доступ к виртуальной частной сети (VPN) \ Далее \ Готово \ Запустить службу)
Отлично, службу мы запустили, остается выполнить более тонкие настройки (Имя сервера \ Свойства \ IPv4 \ Сервер может назначать адреса используя статический пул адресов, так как у нас в сети нет DHCP, то выбираем эту настройку, если у вас DHCP есть, то оставляем, по умолчанию \ 192.168.0.10-192.168.0.20 \ Безопасность \ Разрешить пользовательские политики \ Вводим ключ безопасности \ Применить \ Перезапускаем службу Маршрутизации и удаленного доступа \ Диспетчер задач \ Службы \ Маршрутизация и удаленный доступ \ Перезапустить)
Предоставляем доступ пользователям для подключения через VPN
(Пуск \ Управление компьютером \ Пользователи \ Администратор \ Входящие звонки \ Разрешить доступ)
Настраиваем VPN подключение на клиентском компьютере (Центр управления сетями и общим доступом \ Создание и настройка нового подключения \ Подключение к рабочему месту \ Использовать мое подключение к интернету (VPN) \ IP адрес \ Свойства подключения \ Безопасность \ Протокол L2TP \ Дополнительные параметры \ Для проверки подлинности использовать общей ключ \ вводим ключ \ Шифрование данных \ Обязательное, отключить если нет шифрования)
Чтобы на клиенте не пропадал интернет при подключении к VPN, переходим в (Свойства сетевого VPN подключения \ Сеть \ IPv4 \ Свойства \ Дополнительно \ Использовать основной шлюз в удаленной сети \ Убираем галочку \ ОК)
Подключаемся к виртуальной сети VPN
Выбираем сетевое подключение \ Подключиться \ Вводим имя пользователи и пароль \ Все
Для проверки можем подключиться к нашему виртуальному серверу через IP адрес, открыть общий доступ к какой-нибудь папке и проверить работу локальной сети.
В описании данного видео, есть временные метки, по которым вы сможете сразу перейти к моменту в видео, который вас больше всего интересует.
Список временных меток:
- Создание виртуального сервера VPS/VDS на сервисе NeoServer
- Подключение к виртуальному серверу
- Установка роли VPN сервера
- Настройка VPN сервера
- Настройка доступа к VPN серверу
- Создание VPN соединения на клиентском компьютере
- Проверка работы сети через VPN подключение
Источник