Openvpn технология. Установка OpenVPN на Windows VPS. Настройка серверной части

Помощь 31.03.2019
Помощь

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

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

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

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

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


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

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

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

    C:\OpenVPN\easy-rsa

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    build-key-server.bat Lumpics

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

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

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

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

  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» .

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

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

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

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

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

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

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

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

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

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


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


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

Заключение

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

— свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.

В этой статье в простой и доступной форме мы попытаемся рассказать вам о том как поднять собственный OpenVPN сервер. Мы не ставим своей целью, чтобы по окончании прочтения этой статьи вы досконально понимали все принципы "как это работает" или разбирались в тонкостях организации сетей, но хотим, чтобы в результате - вы могли настроить OpenVPN сервер "с нуля". Так что можно считать эту статью неким пошаговым руководством для пользователей. На самом деле в сети масса документации, мануалов, посвященных развертыванию OpenVPN, но они либо ориентированы на подготовленных пользователей или системных администраторов, либо же в качестве примера для демонстрации используются Linux-системы. Мы же пойдем другим путем и расскажем как настроить OpenVPN на компьютере среднестатического пользователя, т.е. рабочей станции с установленной ОС Windows. Зачем вам может пригодиться эта информация? Ну например вы хотите поиграть с друзьями в игру, которая не поддерживает игру через интернет, а только по локальной сети, или же, например, вы занимаетесь удаленной поддержкой пользователей, но по каким-то причинам использовать программное обеспечение вроде TeamViewer или Ammyy Admin не желаете, т.к. не хотите чтобы в процессе передачи ваших данных или установки соединения участвовали сервера сторонних компаний. В любом случае практический опыт организации собственной виртуальной частной сети (VPN) окажется для вас полезным.

Настройка сервера

Итак, начнем. В нашем примере в качестве сервера OpenVPN будет выступать машина с установленной ОС Windows XP Professional SP3 (x86), в качестве клиентов - несколько машин с Windows 7 x64 и Windows 7 x86 (хотя на самом деле описываемая в статье схема заработает и на других конфигурациях). Предположим, что ПК который будет выступать в роли OpenVPN сервера имеет белый статический IP адрес в сети интернет (в случае если IP адрес, предоставляемый вашим провайдером динамический, то вам необходимо зарегистрироваться в DynDNS или No-IP ), если это условие выполняется, но ПК находится за роутером или аппаратным firewall"ом - вам придется пробросить необходимые порты (об этом мы расскажем чуть ниже, когда перейдем непосредственно к настройке сервера), если вы не представляете что это такое и для чего это используется, то мы рекомендуем вам ознакомиться со статьей на нашем сайте.

  1. Идем на официальный сайт проекта OpenVPN, в раздел Downloads - . Скачиваем оттуда, соответствующий вашему релизу ОС Windows дистрибутивай (32-bit или 64-bit Installer). На момент написания этой статье для 32-х битных ОС был доступен дистрибутив openvpn-install-2.3_rc1-I002-i686.exe , а для 64-х битных - openvpn-install-2.3_rc1-I002-x86_64.exe соответственно. Т.к. мы определились, что сервер мы будем поднимать на WinXP x86, т.е. на 32-битной ОС, то скачиваем дистрибутив по первой ссылке.
  2. Запускаем скачанный инсталлятор. На этапе где выбирается путь для установки вводим C:\OpenVPN (см. скриншот), это упростит нам настройку в дальнейшем: После чего нажимаем "Next" до тех пор, пока установка не будет завершена. Если в процессе установки, на этапе выбора компонент для установки у вас было "пустое окно", например, такое:
    То по всей видимости вы скачали "не тот" дистрибутив, в таком случае попробуйте скачать последнюю релизную версию openvpn-2.2.2-install.exe (она устанавливается как на x86, так и на x64 системы). При "правильной установке" окно выбора компонентов должно выглядеть так:
    Все галочки в нем при установке по-умолчанию стоят, менять дополнительно ничего не нужно. Если установка прошла успешно, то в Панели управления -> Сетевые подключения (или, если вы устанавливаете сервер на Windows 7 или Windows Vista, в Центр управления сетями и общим доступом -> Изменение параметров адаптера) у вас должен появиться TAP-Win32 Adapter V9, который будет называться "Подключение по локальной сети X" (X - автоматически присваиваемый системой номер):
    Состояние у него будет "Сетевой кабель не подключен", т.к. мы еще не конфигурировали наш сервер.
  3. Создаем в папке OpenVPN подпапку SSL, в ней будут храниться выданные сервером ключи и сертификаты. Далее запускаем блокнот и копируем в него следующий текст: #dev tun dev tap #dev-node "VPN" proto tcp-server #proto udp port 7777 tls-server server 10.10.10.0 255.255.255.0 comp-lzo # route-method exe # маршрут для сервера, чтобы видеть сети за клиентом # route 192.168.x.0 255.255.255.0 10.10.10.x # маршрут добавляемый в таблицу маршрутизации каждого клиента, чтобы видеть сеть за сервером # push "route 192.168.x.0 255.255.255.0" # разрешает vpn-клиентам видеть друг-друга, в противном случае все vpn-клиенты будут видеть только сервер client-to-client # каталог с описаниями конфигураций каждого из клиентов client-config-dir C:\\OpenVPN\\config\\ccd # файл с описанием сетей между клиентом и сервером ifconfig-pool-persist C:\\OpenVPN\\config\\ccd\\ipp.txt # пути для ключей и сертификатов сервера dh C:\\OpenVPN\\ssl\\dh1024.pem ca C:\\OpenVPN\\ssl\\ca.crt cert C:\\OpenVPN\\ssl\\Server.crt key C:\\OpenVPN\\ssl\\Server.key #persist-key tls-auth C:\\OpenVPN\\ssl\\ta.key 0 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 keepalive 10 120 status C:\\OpenVPN\\log\\openvpn-status.log log C:\\OpenVPN\\log\\openvpn.log verb 3 На параметрах которые здесь описаны, мы остановимся чуть позже. После чего сохраняем его в файл C:\OpenVPN\Config\Server.ovpn , обратите внимание файл должен получиться именно с расширением .ovpn , для этого в диалоге сохранения опции должны стоять именно так, как показано на картинке:
    Если вы работаете под Windows 7 / Windows Vista и блокнот не дает вам сохранить файл Server.ovpn в папку C:\OpenVPN\Config\ , значит его нужно запустить с правами администратора. Для этого щелкните в меню Пуск по ярлыку Блокнота правой кнопкой мыши и выберите "Запуск от имени администратора": Теперь также с помощью блокнота создадим файл C:\OpenVPN\easy-rsa\vars.bat , скопировав в него нижеследующий текст: @echo off set path=%path%;c:\OpenVPN\bin set HOME=c:\OpenVPN\easy-rsa set KEY_CONFIG=openssl.cnf set KEY_DIR=c:\OpenVPN\ssl set KEY_SIZE=1024 set KEY_COUNTRY=RU set KEY_PROVINCE=Kaluga set KEY_CITY=Kaluga set KEY_ORG=CompKaluga set KEY_EMAIL=decker@сайт А также файл C:\OpenVPN\easy-rsa\openssl.cnf : # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # This definition stops the following lines choking if HOME isn"t # defined. HOME = . RANDFILE = $ENV::HOME/.rnd # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by "ca" and "req". # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::KEY_DIR # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/ca.key # The private key RANDFILE = $dir/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 3650 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that:-) policy = policy_match # For the CA policy [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # For the "anything" policy # At this point in time, you must list all acceptable "object" # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = $ENV::KEY_SIZE default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix: PrintableString, BMPString. # utf8only: only UTF8Strings. # nombstr: PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings # so use this option with caution! string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = $ENV::KEY_COUNTRY countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = $ENV::KEY_PROVINCE localityName = Locality Name (eg, city) localityName_default = $ENV::KEY_CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = $ENV::KEY_ORG # we can do this but it is not needed normally:-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (eg, section) #organizationalUnitName_default = commonName = Common Name (eg, your name or your server\"s hostname) commonName_max = 64 emailAddress = Email Address emailAddress_default = $ENV::KEY_EMAIL emailAddress_max = 40 # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # These extensions are added when "ca" signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicConstraints=CA:FALSE # Here are some examples of the usage of nsCertType. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nsCertType = server # For an object signing certificate this would be used. # nsCertType = objsign # For normal client use this is typical # nsCertType = client, email # and for everything including object signing: # nsCertType = client, email, objsign # This is typical in keyUsage for a client certificate. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # This will be displayed in Netscape"s comment listbox. nsComment = "OpenSSL Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always # This stuff is for subjectAltName and issuerAltname. # Import the email address. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ server ] # JY ADDED -- Make a cert with nsCertType set to "server" basicConstraints=CA:FALSE nsCertType = server nsComment = "OpenSSL Generated Server Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicConstraints = critical,CA:true # So we do this instead. basicConstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyUsage = cRLSign, keyCertSign # Some might want this also # nsCertType = sslCA, emailCA # Include email address in subject alt name: another PKIX recommendation # subjectAltName=email:copy # Copy issuer details # issuerAltName=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=DER:02:03 # Where "obj" is a standard or added object # You can even override a supported extension: # basicConstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always Поздравляю! Вы только что создали основные конфигурационные файлы вашего сервера. Продолжим его настройку.
  4. Для дальнейшей настройки сервера нам будут необходимы некоторые навыки работы в командной строке. Прежде всего давайте разберемся, как ее запустить? Существует несколько способов, например, нажать Пуск -> Выполнить (или комбинацию кнопок Win+R ) на клавиатуре и в появившемся поле ввести cmd и нажать кнопку Ок. Однако, пользователям Windows 7 / Windows Vista понадобится запустить консоль с правами администратора, для этого проще всего на рабочем столе создать соответствующий ярлык. Щелкаем правой кнопкой мыши по любому пустому месту рабочего стола и выбираем пункт "Создать ярлык", в поле "месторасположение объекта" просто указываем три буквы - cmd и называем ярлык cmd, либо командная строка. Далее, пользователи Windows XP просто запускают его, а пользователи Windows Vista и Windows 7 запускают его от имени администратора, так, как это делалось выше с блокнотом.
  5. Далее последовательно вводим в консоли строки: cd C:\OpenVPN\easy-rsa vars clean-all При этом на экране это должно выглядеть так:
    Далее не закрывая это окно вводим последовательно команды генерации ключей: openvpn --genkey --secret %KEY_DIR%\ta.key build-dh build-ca Последняя команда (build-ca) создаст сертификат и ключ центра сертификации (CA), в процессе, правда, она задаст вам несколько вопросов, ответить на которые надо по-умолчанию нажатием кнопки Enter:
    Теперь создадим ключ сервера: build-key-server server Обратите внимание, вторым аргументом в команде идет имя ключа (server), это же имя вы должны ввести при ответе на вопрос Common Name (eg, your name or your server"s hostname), на остальные вопросы можно ответить по-умолчанию нажатием кнопки Enter. Если вы все сделали правильно команда предложит подписать сертификат и подтвердить запрос, на оба вопроса нужно ответить Y (см. скриншот):
    Если вы все сделали правильно, то картинка у вас будет идентичной скриншоту, а в последних строчках вывода команды будет сообщение об успешном добавлении одной записи в базу данных.
  6. После этого идем в оснастку "Службы и приложения" консоли управления, сделать это можно щелкнув по ярлыку Компьютер (Мой компьютер) правой кнопкой мыши и выбрав пункт меню Управление, либо набрав в консоли команду services.msc , находим там службу "OpenVPN Service" и в меню по правой кнопки мыши выбираем "Пуск". Если до этого вы все сделали правильно, то служба перейдет в состояние "Работает". Теперь можно изменить ей тип запуска на "Авто", вместо "Вручную", который был там по-умолчанию. В результате должно получиться так:
    На этом настройка самого сервера закончена, осталось только сконфигурировать клиентов. Для этого необходимо также выдать им ключи и сертификаты, делается это практически аналогично серверу, только для сервера мы использовали команду build-key-server, а для клиентов будем использовать команду build-key.
  7. Предположим что у нас два клиента, назовем их client1 и client2. Выполним последовательно команды: build-key client1 build-key client2 При этом на вопрос Common Name (eg, your name or your server"s hostname) вы также должны указать имя клиента используемое в команде, т.е. если вы вводили команду build-key client1, то на вопрос Common Name отвечаем client1, если client2, то client2. На остальные вопросы можно ответить нажатием Enter, в конце вас также попросят подписать сертификат и подтвердить запрос, на оба пункта отвечаем утвердительно - Y . Теперь перезапускаем службу OpenVPN для того чтобы изменения вступили в силу, в оснастке управления службами, в меню по правой кнопке мыши "Перезапуск", либо же в консоли последовательно вводим: net stop openvpnservice net start openvpnservice
  8. Теперь если мы зайдем в папку, то увидим там сгенерированные нами файлы ключей и сертификатов:
    Каждому клиенту необходимы будут его файлы: ca.crt .crt .key ta.key Т.е. для клиента 1 мы собираем файлы ca.crt, client1.crt, client1.key и ta.key, для клиента 2 - ca.crt, client2.crt, client2.key и ta.key соответственно и т.п. И тем или иным образом отправляем ему их (имеется ввиду по почте, в архиве с паролем, или на флешке), файлы ключей и сертификатов должны быть переданы по надежным каналам связи и не должны попасть в "третьи руки", т.к. фактически с помощью них клиент может получить доступ в вашу виртуальную подсеть. В следующем разделе мы рассмотрим настройку клиента, при этом будет предполагаться что файлы ключей и сертификатов от вас он уже получил.
  9. Если на ПК используемом в качестве сервера используется firewall / брандмауэр, то необходимо добавить OpenVPN в список исключений. Для встроенного брандмауэра Windows в консоли это можно сделать следующей командой: netsh firewall add allowedprogram program = C:\OpenVPN\bin\openvpn.exe name = "OpenVPN Server" ENABLE scope = ALL profile = ALL

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

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

Полезные ссылки

  • Официальная документация по OpenVPN -
  • OpenVPN man-pages -
  • OpenVPN HOWTO (на русском) - http://lithium.opennet.ru/articles/openvpn/openvpn-howto.html

F.A.Q.

Вы можете присылать возникшие у вас вопросы на email указанный в разделе , либо обсудить эту статью на .

А можно ли таким способом раздавать интернет?


От автора

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

Настройка OpenVPN сервера // Decker

Примечание

В последнее время к нам на электронную почту приходит большое количество вопросов в стиле "Вопрос по Вашей статье на шаге 5 после команды clean-all в результате у Вас копируется какой-то файл. У меня этого не происходит. команда openvpn --genkey --secret %KEY_DIR%\ta.key создает мне ключ а вот далее build-dh иbuild-ca не дают результата (cmd.exe пишет, что команда не является внутренней или внешней... или исполняемым файлом) файл ca.key не создается. Что я мог сделать не так? ".

Основной смысл которых сводится к вашей же невнимательности. Проблема при запуске clean-all, build-key и других команд заключается в том, что при установке OpenVPN вы не поставили галочки OpenSSL Utilities и OpenVPN RSA Certificate Management Scripts (их нужно ставить обязательно!). Обратите внимание на скриншот с окном выбора компонентов в начале статьи, там эти галочки стоят!

Очень часто наши клиенты присылают нам запросы по установке и настройке OpenVPN на наших VPS-серверах. Но много других пользователей даже не догадываются о преимуществах его использования. В данной статье рассмотрим для чего нужен OpenVPN и опишем области его применения .

OpenVPN – свободная реализация технологии с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами.

OpenVPN дает возможность устанавливать соединения между компьютерами, находящимися за NAT-firewall, при этом нет необходимости менять их настройки. Технология разработана Дж. Йонаном и выходит под бесплатной лицензией GNU GPL. Инструмент используют во многих популярных и широко используемых ОС: Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X, QNX и Microsoft Windows .

Прежде всего OpenVPN применяется для обеспечения. Правда, существует масса способов для решения этой проблемы. Но OpenVPN по праву считается наиболее подходящим вариантом в плане безопаснсоти. Далее рассмотрим почему.

Области применения технологии OpenVPN : для безопасного объединения сетей или серверов с помощью сети Интернет, для обхода блокировок локальных сетевых экранов или ограничений провайдеров, для осуществления контроля за использованием сетевого трафика в рамках одной сети, в качестве безопасного доступа на сервер или в Сеть и другое.

OpenVPN в основном применяют в качестве механизма защиты для частной Сети. Использовать подобный инструмент с открытым исходным кодом можно с целью полноценной разработки зашифрованного канала. Работатают с OpenVPN в режимах: точка-точка или сервер-клиенты. Считается по праву довольно полезным методом шифрования между компьютерами в условиях конкретной сети.

Для пользователя данной технологией предоставляется пару видов аутентификации:

Первый, с помощью предустановленного ключа, это по сути наиболее простой способ.

Второй, это сертификатная аутентификация, которая является очень гибкой в процессе настройки. И на завершение третий: с помощью логина и пароля (может работать без создания клиентского сертификата, но серверный сертификат все равно нужен).

OpenVPN использует статические, предустановленные ключи или обмен динамическими ключами на основе TLS. Существует поддержка соединения VPN с динамическими удалёнными узлами (DHCP или клиенты dial-up), туннели поверх NAT или с помощью полноценного межсетевого экрана.

Бесплатные и платные VPN-сервисы.

За счет чего достигается безопасность и шифрование в OpenVPN? Это, в первую очередь, обеспечено библиотекой OpenSSL и протоколом транспортного уровня Transport Layer Security. Но вместо OpenSSL в новых релизах OpenVPN может использоваться библиотека PolarSSL. Протокол TLS – усовершенствованная версия протокола защищенной передачи данных уровня защищенных сокетов Secure Socket Layers.

OpenVPN хорошо совмещен и связан с OpenSSL библиотеками, поэтому механизмы шифрования основаны в основном на нем.

Особенности использования OpenVPN на разных операционных системах . В зависимости от выбранной вами ОС, есть свои нюнсы в работе с частной сетью. Например, режим fast-io, который ускоряет UDP-соединение, может работать только в GNU/Linux. В системе Windows довольно часто возникают неполадки с изменениями маршрутов, для подобных решений использую опцию route-method.

OpenVPN портирован в MacOS X - существует свободно распространяемый проект tunnelblick. Нет поддержки параметра TCP_NODELAY ядром этой ОС. Разработан коммерческий проект viscocity для этой ОС. OpenVPN часто используют на маршрутизаторах некоторых производителей: Linksys и Mikrotik и другие.

используется на одном сервере в виртуальной сети, поэтому нет возможности устанавливать связь между клиентами напрямую. Для такого решения используют совсем другую технологию, под названием CloudVPN.

Кроме всех выше перечисленных преимуществах, применение в OpenVPN стандартных протоколов TCP и UDP, дает возможность стать альтернативой IPsec в случаях, когда Интернет-провайдер блокирует некоторые VPN протоколы.

OpenVPN – довольно универсальное программное обеспечение, которое предоставляет множество вариантов настройки в опытных руках пользователя. Как установить VPN от ГиперХост на ОС Android. Детальнее . Если Вам будет нужна помощь в настройке и установки данного продукта на наших , обращайтесь в техническую поддержку Hyper Host™ . Мы будем рады Вам помочь в кратчайшие сроки и в любое время суток!

Как обеспечить онлайн безопасность? для работы в Сети.

10465 раз(а) 1 Сегодня просмотрено раз(а)

Интернет подобен морю. С пересылаемыми данными, как с судном во время путешествия, может случиться что угодно: они могут повредиться, затонуть в потоке информации или стать добычей «пиратов». Защитить особо ценные данные от кражи и потери помогают (VPN, ВПН) – системы закрытых каналов (туннелей), которые строятся внутри другой, более крупной сети. Одним из видов ВПН является OpenVPN.

Хотите научиться создавать виртуальные частные сети быстро и легко? Поговорим о преимуществах протокола OpenVPN, а также о настройках серверной и клиентской части принадлежащего ему ПО под Windows и Ubuntu.

Область применения и преимущества OpenVPN

Область применения

  • Создание защищенных корпоративных сетей. Расстояние между узлами таких сетей не имеет значения.
  • Защита информации в открытых общественных сетях.
  • Подключение к Интернету нескольких хостов через общий шлюз.
  • Доступ к запрещенным веб-ресурсам.

Преимущества

  • Всё бесплатно. Большинство из нас не откажется от бесплатного Wi-Fi в кафе или в парке, но трафик, передаваемый по такому соединению, никак не защищен от перехвата. Бесплатное ПО OpenVPN направит его в закрытый туннель, поэтому ваши логины, пароли и другая секретная информация точно не утечет в чужие руки.
  • Чтобы сделать свою сеть защищенной, не нужно покупать дополнительное оборудование.
  • Весь передаваемый трафик сжимается, что обеспечивает высокую скорость связи (выше, чем при использовании IPSec).
  • Гибкие настройки ПО позволяют сконфигурировать VPN любой сложности.
  • Использование нескольких надежных алгоритмов шифрования обеспечивает очень высокую степень защиты данных.
  • Не требуется перенастройки или отключения файерволов (сетевых экранов) и NAT (технологии преобразования ИП-адресов в сетях TCP/IP).
  • Протокол поддерживают все основные операционные системы.
  • Для установки и настройки программного обеспечения не нужны глубокие знания сетевых технологий, и даже у неспециалиста это занимает считанные минуты.

Настройка OpenVPN под Windows

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

Поскольку большинство из нас пользуется ОС Windows, знакомство с OpenVPN-технологией начнем с нее. Итак, подходящий дистрибутив и запустите инсталляцию.

В списке «Select components to install » (выберите компоненты для установки) отметьте всё.

Согласитесь на установку драйвера виртуального сетевого адаптера TAP Windows Adapter V9.

Установили? Теперь займемся созданием ключей и сертификатов VPN.

  • Заходим в каталог %ProgramFiles%/OpenVPN/easy-rsa и запускаем пакетный файл init-config.bat – он скопирует в эту же папку файл vars.bat.sample в виде vars.bat . В дальнейшем пакет команд vars.bat будет задавать переменные для генерации сертификатов.

  • После создания vars. bat открываем его с помощью блокнота и прописываем в выделенных строчках (после «=») любые данные. Сохраняем изменения.

  • Далее запускаем от администратора командную строку и выполняем инструкцию перехода в /easy-rsa (cd % ProgramFiles%/ OpenVPN/ easy- rsa ). После этого последовательно запускаем vars. bat и clean- all. bat (загружаем переменные и удаляем ранее созданные ключи).

  • Выполняем пакет команд build- ca. bat – этим мы создадим новый основной сертификат в каталоге %ProgramFiles%/OpenVPN/easy-rsa/keys. Заполнять данные об имени организации и прочее, что обведено на скриншоте рамкой, не обязательно – достаточно просто нажимать Enter.

  • Запускаем build- dh. bat – этим мы создаем ключ Диффи-Хельмана. В папке /keys появится файл dh1024.pem .

  • На очереди – ключ сервера: выполняем инструкцию build- key- server myVPN («myVPN» – это имя сервера, можете указать любое другое). Блок вопросов, начинающийся с «Country Name», пропускаем, нажимая Enter. На два последних вопроса – «Sign the certificate?» и следующий, отвечаем «Y».

  • Дальше нам нужно получить ключ клиента: выполняем build- key user1 (user1 – имя клиента, можете заменить на другое). Если клиентских компьютеров несколько, повторяем операцию для каждого, не забыв изменить имя. Обведенный рамкой блок, как и раньше, пропускаем.

  • Далее копируем из папки / easy- rsa/ keys в / OpenVPN/ config следующие файлы: dh1024.pem , ca.crt myvpn.crt , myvpn.key , user1. key, user1. crt . Последние четыре могут называться у вас по-другому. Почему, думаю, понятно.

  • Следом в этой же папке создаем файл конфигурации сервера. Копируем приведенные ниже директивы в блокнот и, если нужно, меняем их параметры на свои. Сохраняем документ с расширением.ovpn и именем «Server ».

# Интерфейс (L3-туннель)
dev tun
# Протокол работы VPN
proto udp
# Используемый порт (можно указать любой свободный)
port 1234
# Список сертификатов и ключей (обратите внимание на имена)
ca ca.crt
cert myvpn.crt
key myvpn.key
dh dh1024.pem
# Тип шифрования данных
cipher AES-256-CBC
# Выделяем диапазон ИП-адресов
server 10.10.10.0 255.255.255.0
# Уровень отладочной информации
verb 3
# Используем сжатие
comp-lzo
persist-key
persist-tun
mssfix
# Задаем максимальное число повторяющихся событий
mute 25
# Количество одновременно подключенных клиентов (5)
max-clients 5
# Время жизни клиентской сессии
keepalive 10 120
# Видимость клиентами друг друга (разрешена)
client-to-client
# Выделяем каждому юзеру 1 адрес
topology subnet
# Устанавливаем задержку перед добавлением маршрута
route-delay
#Указываем, если хотим раздавать Интернет. Адреса DNS пишем те, которые прописаны в настройках интернет-подключения.
push «redirect-gateway def1»

push «dhcp-option DNS x.x.x.x»

Дополнительно о директивах серверного конфига читайте .

Далее для раздачи интернета заходим в каталог сетевых подключений, открываем свойства интерфейса, смотрящего в глобальную сеть, переходим на вкладку «Доступ », ставим метку напротив «Разрешить другим пользователям использовать это подключение… » и выбираем из списка сеть виртуального адаптера TAP-Windows adapter V9 – в моем примете это Ethernet 3.

  • Создаем файл конфигурации клиента. Копируем следующий текст в блокнот и сохраняем документ с расширением.ovpn под именем «Client».

client
dev tun
proto udp
# IP или доменное имя VPN-сервера и порт подключения.
remote x.x.x.x 1234
ca ca.crt
cert user1.crt
key user1.key
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
verb 3

Другие директивы клиентского конфига смотрите .

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

Устанавливаем приложение на клиентский компьютер. Далее заходим на серверный, открываем каталог %ProgramFiles%/OpenVPN/config и копируем оттуда файлы ca.crt, Client.ovpn, user1.crt, user1. key в сетевую папку или на флешку. Переносим их в аналогичную папку клиентской машины.

Подключение

Чтобы запустить сервер, кликните по ярлыку «OpenVPN GUI» на рабочем столе. В трее появится иконка серого цвета. Щелкните по ней правой кнопкой мышки, выберите в меню команды «Server » и «Подключиться ».

При удачном подключении иконка сменит цвет на зеленый. При неудачном – кликните в меню «Посмотреть журнал »: в нем будет указана ошибка.

Подключение клиента выполняется таким же способом, только вместо «Server » выбираем в меню «Client ».

Настройка OpenVPN под Ubuntu

Начинаем с того, что, как и на Windows, устанавливаем пакет OpenVPN на серверную и клиентские машины. Директива установки консольной версии ПО через терминал следующая: sudo apt-get install openvpn . При желании можете установить графические версии пакетов из центра приложений Ubuntu.

Однако важнейший компонент – модуль easy-rsa, предназначенный для генерации сертификатов и ключей, в Linux-дистрибутив не входит. Его придется установить отдельно, выполнив команду: sudo apt- get install easy- rsa.

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

  • После инсталляции программы и дополнительного модуля создаем каталог «easy-rsa » в папке /etc/openvpn: sudo mkdir /etc/openvpn/easy-rsa. Копируем в него содержимое из места установки: cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa.
  • Следом переходим в новый каталог: cd /etc/openvpn/easy-rsa/ и приступаем к созданию сертификатов и ключей.

  • Открываем с помощью консольного редактора nano файл переменных vars (аналог vars.bat в Windows) и импортируем в него те же данные, что и в vars.bat, с измененными значениями:

KEY_COUNTRY=RU
KEY_PROVINCE=CA
KEY_CITY=SanFrancisco
KEY_ORG=OpenVPN
[email protected]
KEY_CN=changeme
KEY_NAME=changeme
KEY_OU=changeme
PKCS11_MODULE_PATH=changeme
PKCS11_PIN=1234

  • Копируем криптографический пакет openssl: cp openssl-1.0.0. cnf openssl. cnf .
  • Загружаем переменные из vars: source ./ vars .
  • Удаляем ранее созданные данные: ./ clean- all .
  • Создаем новый основной сертификат: ./ build- ca . Блок вопросов в рамке пропускаем.

  • Следом – ключ Диффи-Хельмана: ./ build- dh .
  • За ним – сертификат сервера: ./ build- key- server myVPN (myVPN, как вы помните, – это имя, у вас оно может быть другим). Выделенный блок пропускаем (на скриншоте он сокращен), на 2 последних вопроса отвечаем «Y».

  • Последним создаем сертификат клиента: ./ build- key user1 (вместо «user1» можете придумать другое имя). При этом снова пропускаем выделенный на скрине блок и на два последних вопроса отвечаем «Y».

Все созданные ключи и сертификаты сохраняются в подкаталоге / etc/ openvpn/ easy- rsa/ keys . Перемещаем их в папку /openvpn: cp -r /etc/openvpn/easy-rsa/keys /etc/openvpn.

На завершающем этапе создаем файл конфигурации сервера в папке /etc/openvpn: nano / etc/ openvpn/ server. conf и заполняем его так же, как заполняли аналогичный документ на Windows. Единственное отличие – другие пути:

ca /etc/openvpn/keys/ca.crt

cert /etc/openvpn/keys/myvpn.crt
key /etc/openvpn/keys/myvpn.key

Наконец, создаем каталог для конфигурации клиентских машин: mkdir /etc/openvpn/ccd, и запускаем сервер: service openvpn start.

Если сервер не стартует, вероятно, в конфигурации допущена ошибка. Сведения о проблеме можно посмотреть в документе /var/log/openvpn.log с помощью команды tail -f /var/log/openvpn.log .

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

После установки приложения на клиентскую машину переносим на нее сгенерированные на сервере ключ и сертификаты и создаем конфиг.

Ключ и сертификаты – ca.crt , user1.crt и user1.key , находятся в папке /etc/openvpn/keys. Копируем их на флешку и вставляем в одноименную папку на компьютере клиента.

Файл конфигурации создаем с помощью nano: nano /etc/openvpn/client.conf, и заполняем по образцу Windows. Не забудьте прописать в нем правильные пути:

ca /etc/openvpn/keys/ca.crt
dh /etc/openvpn/keys/dh2048.pem
cert /etc/openvpn/keys/user1.crt
key /etc/openvpn/keys/user1.key

Всё готово. Для подключения к серверу используем ту же команду: service openvpn start.

Инструкция получилась длинной, но на самом деле выполнение этих действий занимает 5-10 минут. Более подробная информация о работе с OpenVPN находится в разделе «» официального сайта приложения. Пробуйте, и всё у вас получится!

Ещё на сайте:

Настройка OpenVPN на Windows и Ubuntu: что, зачем и как обновлено: Апрель 24, 2016 автором: Johnny Mnemonic

Рады приветствовать Вас на нашем сайте! Настоящая инструкция призвана помочь Вам настроить VPN-подключение при помощи клиента OpenVPN для операционной системы Windows 7.

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

Для того, что бы настроить VPN-канал через OpenVPN для ОС Windows 7 Вам нужны:

Итак, приступим к настройке VPN-подключения с помощью OpenVPN.

1. Первое, что Вам нужно сделать, это скачать на свой компьютер установщик программы OpenVPN (взять ее можно на ). Установщик либо скачиваем на свой компьютер, либо сразу нажимаем кнопку "Запустить", как показано на скриншоте ниже

2. После того, как вы нажали «Запустить», начнется собственно сам процесс скачивания установщика

3. После завершения загрузки Вам предложат установить программу на Ваш компьютер, Вы соглашаетесь и нажимаете снова кнопку «Запустить», смотрим рисунок ниже

4. В самом начале установки нажимаем кнопку C:\Program Files\OpenVPN.

5. Затем Вам будет предложено ознакомиться с лицензией на использование устанавливаемого программного обеспечения, после прочтения которого кликаете «I Agree» («Принимаю»)

6. В следующем окне перечислен набор компонентов, которые будут установлены на Ваш компьютер, здесь ничего не меняете и нажимаете снова «Next» («Далее»)

7. В этом окне вы можете выбрать путь, куда устанавливать программу, по умолчанию OpenVPN будет установлена в папку C:\Program Files\OpenVPN. Если Вас этот путь устраивает, нажимаете кнопку «Install» («Установить»)

8. Во время установки программы на экран будет выведено окно, где Вам нужно подтвердить установку драйвера, нажимаете «Установить»

9. Ждете окончания процесс установки программы и нажимаете в очередной раз кнопку «Next» («Далее»)

10. После того, как установка завершится, нажимаете кнопку «Finish» («Завершить»)

11. Теперь Вам нужно скопировать конфигурационный файл, полученный от провайдера, в папку по этому пути: C:\Program Files\OpenVPN\config, для этого заходите в указанную папку, вызываете контекстное меню и выбираете «Вставить»

12. После этого у вас на экране появится запрос о доступе, где Вы нажимаете «Продолжить»

13. Для того, что бы OpenVPN работал корректно, его нужно запускать с администраторскими правами. В операционной системе для этого Вы должны изменить свойства совместимости. Для этого заходите в меню «Пуск» и щелкаете по ярлыку OpenVPN-GUI правой кнопкой мыши и выбираете пункт «Свойства»

14. Переходите во вкладку «Совместимость» и выставляете «Галочку» напротив пункта «Выполнять эту программу от имени администратора», затем нажимаете «ОК»

15. Запускаете OpenVPN-GUI из меню «Пуск»

16. Открываете меню программы в трее (справа в углу) и выбираете пункт «Connect» («Подключить»)

17. После этого у Вас на экране должно запуститься окно с содержимым лога подключения

18. Если Вы все сделали верно, в трее появится подсказка о подключении VPN

Выполнив эти восемнадцать простых пунктов, теперь Вы сможете самостоятельно настроить VPN-канал через протокол OpenVPN для операционной системы Windows 7.



Рекомендуем почитать

Наверх