В интернете существует много мануалов, как устанавливать openvpn на линуксовые и бсд операционные системы. На самом деле отличия не существенные, тот кто, умеет настраивать под линукс сможет и под виндовс. И так приступим, для начала нужно определится, на какую версию виндовса мы будет устанавливать. Для примера возьмём виртуальную машину с виндовс 8. На сайте https://openvpn.net/community-downloads/ предложат несколько вариантов
В процессе установки убедитесь в том, что все галочки компонентов установлены
Во избежание конфликтов с правами доступа устанавливаем сервер не в каталог по умолчанию (program files), а на диск C (можно устанавливать в любую другую созданную папку на любом диске)
Мы успешно установили сервер. Теперь произведем его настройку. В папке easy-rsa открываем vars.bat.sample; и приводим его к такому виду, удаляя комментарии. Также стоит изменить адрес каталога, показанного красным прямоугольников на скрине
В файлах build-ca.bat, build-dh.bat, build-key.bat, build-key-pass.bat, build-key-pkcs12.bat, build-key-serer.bat, меняем openssl на абсолютный ее пусть C:\openvpn\bin\openssl.exe
Теперь запускаем через командную строку файл vars.bat (это vars.bat.sample у которого удаляем .sample). Winkey+r => cmd и выполняем несколько команд:
cd C:\openvpn\easy-rsa
vars.bat
clean-all.bat
vars.bat
Теперь создадим ключи используя всё тот ту же строку. Используем файл build-ca.bat. В конце, будут вопросы, на которые нужно нажимать Enter
Далее запускаем build-dh.bat и ждем окончания создания ключа.
Теперь создадим сертификат для сервера. Очень важно, чтобы название сертификата (в данном случае changeme) совпадало с именем прописанным ранее в vars.bat в графе SET KEY_NAME
Как и в предыдущем случае, нужно соглашаться с предложенными ответами на вопросы, и где потребуется соглашаться, вводя клавишу “y”.
Теперь создадим файл конфигурации для сервера. В папке config создадим произвольный файл с расширением .ovpn. Пусть это будет server.ovpn. Прежде чем заполнить этот файл, нужно скопировать только что созданные файлы в другую папку, пусть она будет называется server_sert. Это делается только для удобства и совершено не обязательно
Открывает созданный ранее файл server.ovpn и заполняем так
port 65530
proto tcp
dev tun
dev-node "vpnadapter"
dh C:\\OpenVPN\\server_sert\\dh2048.pem
ca C:\\OpenVPN\\server_sert\\ca.crt
cert C:\\OpenVPN\\server_sert\\changeme.crt
key C:\\OpenVPN\\server_sert\\changeme.key
server 172.1.1.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
max-clients 1
keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
cipher AES-256-CBC
status C:\\OpenVPN\\log\\status.log
log C:\\OpenVPN\\log\\openvpn.log
verb 4
mute 20
В этом файле в данный момент несколько важных опций.
port 65531 – это порт, который будет принимать входящие соединения, можно указывать любой свободный.
proto tcp – протокол, по которому будут осуществляться работа сервера.
dev-node "vpnadapter" – название адаптера, который создался при установки openvpn сервера.
Для того, чтобы наши клиенты смогли осуществлять выход в интернет, нужно разрешить им это.
В свойствах адаптера (который смотрит наружу) разрешаем маршрутизацию виртуальному адаптеру
Вот мы и подошли к финальному шагу запуска сервера. Просто запускаем программу (ярлык на рабочем столе) и двойной клик по иконки на панели задач. Если все сделано верно, мы увидим зеленый цвет
Теперь нужно подключится к нашему серверу с другой машины. Для начала нужно сгенерировать сертификаты для клиента.
В папке easy-rsa\keys чистим файл index.txt
Через командную строку запускаем два файла
Теперь нужно скомпоновать файл конфигурации для клиентской машины. Создаем файл client.ovpn и заполняем его таким способом
client
resolv-retry infinite
nobind
remote 192.168.11.1 65530
proto tcp
dev tun
comp-lzo
float
cipher AES-256-CBC
keepalive 10 120
persist-key
persist-tun
verb 3
remote-cert-tls server
<ca>
</ca>
<cert>
</cert>
<key>
</key>
В этот файл следует вписать сертификаты и ключи находящиеся в этих файлах
<ca> в ca.crt
<cert> в vpn-client.crt
<key> в vpn-client.key
После этого файл примет следующий вид
client
resolv-retry infinite
nobind
remote 192.168.11.1 65530
proto tcp
dev tun
comp-lzo
#ca ca.crt
#cert vpn-client.crt
#key vpn-client.key
float
cipher AES-256-CBC
keepalive 10 120
persist-key
persist-tun
verb 3
remote-cert-tls server
<ca>
-----BEGIN CERTIFICATE-----
MIIGxzCCBK+gAwIBAgIJAJJrtpvEwoh4MA0GCSqGSIb3DQEBCwUAMIGdMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzEQMA4G
A1UEChMHT3BlblZQTjERMA8GA1UECxMIY2hhbmdlbWUxETAPBgNVBAMTCGNoYW5n
~~~~~~~~~~~~~~~Пропуск для экономии~~~~~~~~~~~~~
0nDverBXbKBz539Mr/X7aI/A4JIQbuj7oNBCFLKcp9wvIHABFo/RaDqC+7RKfr8d
p8H/cvXBwr6qVhQjYBnfpa1U25hmufyAW4ajOrBGjg9SUmKug3dmp1gy/WcTSxny
Ta1gnYHTrIxHJAuj3HMMSu84ELmALybGMdgs1c7CvPMk2pdOhYEMbbL/9FvJUIBU
EAdtmoZ4E7ngNV0=
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIHDTCCBPWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMCVVMx
CzAJBgNVBAgTAkNBMRUwEwYDVQQHEwxTYW5GcmFuY2lzY28xEDAOBgNVBAoTB09w
ZW5WUE4xETAPBgNVBAsTCGNoYW5nZW1lMREwDwYDVQQDEwhjaGFuZ2VtZTERMA8G
~~~~~~~~~~~~~~~Пропуск для экономии~~~~~~~~~~~~~
k9kfnqJn4bmxzeuqoH1UKPk3gT/LUC+o5fIpsgzrl+UZnib2jmXgsgqu2azHD9Pn
ct7gE5JBoVTjJIUO+R5qBSO9IdSqrZL84EDh1fhnxrj33PiduZm9sKp3TcBM0dXr
8H7sLmsiaD5NaV3KJFXW0KzpTpc9VPaZLhNjDeiDNi91
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQCuPgeSRi8U81TH
J5r3Brrpf+whD+DI75HcwJ4TJSsDEdMGJpdY8NcKu3zZdJ3Qk56dEFUEELrFXYoL
0RNkxFdp5MhpdXDq5pBzA0lY5odVPJ4ytozCgpOXn2+NsauSy1bSPYUBNxDT2SQP
~~~~~~~~~~~~~~~Пропуск для экономии~~~~~~~~~~~~~
fAYTb2aoKnH+7TlfV6Ljx8XmDuBHCX388EWXfIKhLsIENhV8tgF7DV3RG5s8M/Hy
28nW+MYTeDK/kkPmhv7llcwCeWW4KbqG5sbBpJYa/ONdtP2Z4OYx3brW5Io8syaV
4GxJlI7UpATUWfopSzuWmB5jJzZAzPPZDau5mXy1ef70BInx5u3zzY57sp43fmV0
a6TuScwxm2BemRKoA/95a0Vx1H1uJiEz
-----END PRIVATE KEY-----
</key>
Файл конфигурации нужно положить в С:\пользователи\[пользователь]\openvpn\config. Cделаем подключение к серверу.
В процессе установки убедитесь в том, что все галочки компонентов установлены
Во избежание конфликтов с правами доступа устанавливаем сервер не в каталог по умолчанию (program files), а на диск C (можно устанавливать в любую другую созданную папку на любом диске)
Мы успешно установили сервер. Теперь произведем его настройку. В папке easy-rsa открываем vars.bat.sample; и приводим его к такому виду, удаляя комментарии. Также стоит изменить адрес каталога, показанного красным прямоугольников на скрине
В файлах build-ca.bat, build-dh.bat, build-key.bat, build-key-pass.bat, build-key-pkcs12.bat, build-key-serer.bat, меняем openssl на абсолютный ее пусть C:\openvpn\bin\openssl.exe
Теперь запускаем через командную строку файл vars.bat (это vars.bat.sample у которого удаляем .sample). Winkey+r => cmd и выполняем несколько команд:
cd C:\openvpn\easy-rsa
vars.bat
clean-all.bat
vars.bat
Теперь создадим ключи используя всё тот ту же строку. Используем файл build-ca.bat. В конце, будут вопросы, на которые нужно нажимать Enter
Далее запускаем build-dh.bat и ждем окончания создания ключа.
Теперь создадим сертификат для сервера. Очень важно, чтобы название сертификата (в данном случае changeme) совпадало с именем прописанным ранее в vars.bat в графе SET KEY_NAME
Как и в предыдущем случае, нужно соглашаться с предложенными ответами на вопросы, и где потребуется соглашаться, вводя клавишу “y”.
Теперь создадим файл конфигурации для сервера. В папке config создадим произвольный файл с расширением .ovpn. Пусть это будет server.ovpn. Прежде чем заполнить этот файл, нужно скопировать только что созданные файлы в другую папку, пусть она будет называется server_sert. Это делается только для удобства и совершено не обязательно
Открывает созданный ранее файл server.ovpn и заполняем так
port 65530
proto tcp
dev tun
dev-node "vpnadapter"
dh C:\\OpenVPN\\server_sert\\dh2048.pem
ca C:\\OpenVPN\\server_sert\\ca.crt
cert C:\\OpenVPN\\server_sert\\changeme.crt
key C:\\OpenVPN\\server_sert\\changeme.key
server 172.1.1.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
max-clients 1
keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
cipher AES-256-CBC
status C:\\OpenVPN\\log\\status.log
log C:\\OpenVPN\\log\\openvpn.log
verb 4
mute 20
В этом файле в данный момент несколько важных опций.
port 65531 – это порт, который будет принимать входящие соединения, можно указывать любой свободный.
proto tcp – протокол, по которому будут осуществляться работа сервера.
dev-node "vpnadapter" – название адаптера, который создался при установки openvpn сервера.
Для того, чтобы наши клиенты смогли осуществлять выход в интернет, нужно разрешить им это.
В свойствах адаптера (который смотрит наружу) разрешаем маршрутизацию виртуальному адаптеру
Вот мы и подошли к финальному шагу запуска сервера. Просто запускаем программу (ярлык на рабочем столе) и двойной клик по иконки на панели задач. Если все сделано верно, мы увидим зеленый цвет
Теперь нужно подключится к нашему серверу с другой машины. Для начала нужно сгенерировать сертификаты для клиента.
В папке easy-rsa\keys чистим файл index.txt
Через командную строку запускаем два файла
Теперь нужно скомпоновать файл конфигурации для клиентской машины. Создаем файл client.ovpn и заполняем его таким способом
client
resolv-retry infinite
nobind
remote 192.168.11.1 65530
proto tcp
dev tun
comp-lzo
float
cipher AES-256-CBC
keepalive 10 120
persist-key
persist-tun
verb 3
remote-cert-tls server
<ca>
</ca>
<cert>
</cert>
<key>
</key>
В этот файл следует вписать сертификаты и ключи находящиеся в этих файлах
<ca> в ca.crt
<cert> в vpn-client.crt
<key> в vpn-client.key
После этого файл примет следующий вид
client
resolv-retry infinite
nobind
remote 192.168.11.1 65530
proto tcp
dev tun
comp-lzo
#ca ca.crt
#cert vpn-client.crt
#key vpn-client.key
float
cipher AES-256-CBC
keepalive 10 120
persist-key
persist-tun
verb 3
remote-cert-tls server
<ca>
-----BEGIN CERTIFICATE-----
MIIGxzCCBK+gAwIBAgIJAJJrtpvEwoh4MA0GCSqGSIb3DQEBCwUAMIGdMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzEQMA4G
A1UEChMHT3BlblZQTjERMA8GA1UECxMIY2hhbmdlbWUxETAPBgNVBAMTCGNoYW5n
~~~~~~~~~~~~~~~Пропуск для экономии~~~~~~~~~~~~~
0nDverBXbKBz539Mr/X7aI/A4JIQbuj7oNBCFLKcp9wvIHABFo/RaDqC+7RKfr8d
p8H/cvXBwr6qVhQjYBnfpa1U25hmufyAW4ajOrBGjg9SUmKug3dmp1gy/WcTSxny
Ta1gnYHTrIxHJAuj3HMMSu84ELmALybGMdgs1c7CvPMk2pdOhYEMbbL/9FvJUIBU
EAdtmoZ4E7ngNV0=
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIHDTCCBPWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMCVVMx
CzAJBgNVBAgTAkNBMRUwEwYDVQQHEwxTYW5GcmFuY2lzY28xEDAOBgNVBAoTB09w
ZW5WUE4xETAPBgNVBAsTCGNoYW5nZW1lMREwDwYDVQQDEwhjaGFuZ2VtZTERMA8G
~~~~~~~~~~~~~~~Пропуск для экономии~~~~~~~~~~~~~
k9kfnqJn4bmxzeuqoH1UKPk3gT/LUC+o5fIpsgzrl+UZnib2jmXgsgqu2azHD9Pn
ct7gE5JBoVTjJIUO+R5qBSO9IdSqrZL84EDh1fhnxrj33PiduZm9sKp3TcBM0dXr
8H7sLmsiaD5NaV3KJFXW0KzpTpc9VPaZLhNjDeiDNi91
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQCuPgeSRi8U81TH
J5r3Brrpf+whD+DI75HcwJ4TJSsDEdMGJpdY8NcKu3zZdJ3Qk56dEFUEELrFXYoL
0RNkxFdp5MhpdXDq5pBzA0lY5odVPJ4ytozCgpOXn2+NsauSy1bSPYUBNxDT2SQP
~~~~~~~~~~~~~~~Пропуск для экономии~~~~~~~~~~~~~
fAYTb2aoKnH+7TlfV6Ljx8XmDuBHCX388EWXfIKhLsIENhV8tgF7DV3RG5s8M/Hy
28nW+MYTeDK/kkPmhv7llcwCeWW4KbqG5sbBpJYa/ONdtP2Z4OYx3brW5Io8syaV
4GxJlI7UpATUWfopSzuWmB5jJzZAzPPZDau5mXy1ef70BInx5u3zzY57sp43fmV0
a6TuScwxm2BemRKoA/95a0Vx1H1uJiEz
-----END PRIVATE KEY-----
</key>
Файл конфигурации нужно положить в С:\пользователи\[пользователь]\openvpn\config. Cделаем подключение к серверу.