Сервер openvpn на windows 7: Настройка OpenVPN-сервера для доступа в интернет – Пошаговая настройка OpenVPN в Windows / Sandbox / Habr

Содержание

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

Автор: Decker

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (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’ом — вам придется пробросить необходимые порты (об этом мы расскажем чуть ниже, когда перейдем непосредственно к настройке сервера), если вы не представляете что это такое и для чего это используется, то мы рекомендуем вам ознакомиться со статьей Port Forwarding. Как настроить и что это такое? на нашем сайте.

  1. Идем на официальный сайт проекта OpenVPN, в раздел Downloads — http://openvpn.net/index.php/open-source/downloads.html. Скачиваем оттуда, соответствующий вашему релизу ОС 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\\dh2024.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 [email protected]
    А также файл 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
    <clientname>.crt
    <clientname>.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

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

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

  1. Ориентируясь на инструкцию по настройке сервера скачиваем дистрибутив OpenVPN с официального сайта, устанавливаем его и создаем в папке C:\OpenVPN подпапку SSL.
  2. Помещаем в нее файлы ca.crt, client1.crt, client1.key и ta.key, переданные нам владельцем сервера.
  3. Запускаем блокнот и создаем файл Client1.ovpn следующего содержания:
    # decker OpenVPN Config File (c) Decker, [email protected] 
    dev tap 
    # dev-node "OpenVPN"  
    proto tcp  
    remote x.x.x.x 7777  
    route-delay 3  
    client  
    tls-client  
    ns-cert-type server  
    ca C:\\OpenVPN\\ssl\\ca.crt  
    cert C:\\OpenVPN\\ssl\\client1.crt  
    key C:\\OpenVPN\\ssl\\client1.key  
    tls-auth C:\\OpenVPN\\ssl\\ta.key 1  
    comp-lzo  
    tun-mtu 1500  
    tun-mtu-extra 32  
    mssfix 1450  
    ping-restart 60  
    ping 10  
    status C:\\OpenVPN\\log\\openvpn-status.log  
    log C:\\OpenVPN\\log\\openvpn.log  
    verb 3
    Обратите внимание, здесь client1.crt и client1.key — это названия файлов полученные вами от владельца сервера. x.x.x.x — это IP адрес или доменное имя OpenVPN сервера, 7777 — номер порта сервера.
  4. Заходим в оснастку «Службы и приложения», так, как это описано в разделе настроек сервера и запускаем службу OpenVPN, если она успешно запустилась, то выставляем ей тип запуска в «Авто».
  5. Одновременно обращаем внимание на свойства нашего OpenVPN адаптера, если вы все настроили правильно, то через несколько секунд после запуска службы OpenVPN адаптер получит сетевой адрес от сервера:

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

F.A.Q.

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

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

Наверное большинство из вас хочет спросить «А можно ли посредством OpenVPN раздавать интернет, например, через локальную сеть провайдера?» и ответ скорее всего порадует вас. Можно! Рассмотрим пример. Допустим провайдер выдает всем «серые» адреса в своей локальной сети, а подключение к интернет идет через VPN или PPPoE, при этом пользователи локальной сети провайдера «видят» друг-друга в ней и могут свободно обмениваться файлами и т.п. напрямую через локальную сеть провайдера без подключения к интернет. Рассмотрим пример, как можно «поделиться» своим интернетом с друзьями (обращаем ваше внимание на то, что у большинства провайдеров перепродажа, равно как и другие способы передачи траффика интернет третьим лицам запрещены условиями договора, поэтому прежде чем настраивать подобную схему — убедитесь в ее легитимности в вашем случае). Допустим у пользователя у которого установлен OpenVPN сервер подключение к интернет и локальной сети провайдера осуществляется через роутер (!) IP адрес которого 172.31.1.1, также роутер выдает адреса для ПК подключенных к нему из диапазона 172.31.1.0/24. Таким образом для ПК с OpenVPN сервером получаем два интерфейса, один из них WAN (интерфейс подключенный к роутеру, на котором доступна локальная сеть провайдера и интернет), а другой — VPN, т.е. интерфейс OpenVPN сервера. Намомним, что в этом случае для корректной работы OpenVPN сервера (если вы настраивали все согласно приведенной выше инструкции) на роутере необходимо пробросить порт TCP 7777 из локальной сети провайдера (именно по этому IP к вам будут подключаться удаленные клиенты) на машину с OpenVPN-сервером.

  • Переименуем интерфейс подключенный к роутеру в WAN, а интерфейс OpenVPN сервера в VPN:
  • В конфигах OpenVPN сервера, в файле C:\OpenVPN\config\Server.ovpn добавим строки:
    dev-node "VPN" # имя интерфейса openvpn в системе
    push "route 0.0.0.0 0.0.0.0" # правило маршрутизации для КАЖДОГО клиента, основным шлюзом будет наш openvpn-сервер
    push "dhcp-option DNS 8.8.8.8" # DNS-сервера выдающиеся КАЖДОМУ клиенту
    push "dhcp-option DNS 8.8.4.4"
  • В свойствах интерфейса WAN на закладке «Дополнительно», включим общий доступ для подключения к интернет: Внимание! После того как вы сделаете это система автоматически пропишет в свойства адаптера VPN в свойства протокола TCP/IP IP адрес 192.168.0.1 и маску подсети 255.255.255.0 (!) Это неверно! Необходимо зайти в свойства протокола TCP/IP адаптера OpenVPN и выбрать там значение «Получить IP адрес автоматически», либо, если подсеть у вас такая же, как и в приведенных в инструкции по настройке сервера конфигах (10.10.10.0/255.255.255.0) прописать там IP адрес — 10.10.10.1 и маску подсети 255.255.255.0. Галочку общего доступа на подключении WAN больше не трогать (в тот момент когда мы ее установили, мы включили маршрутизацию пакетов в системе, что вообщем-то эквивалентно установке ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters IPEnableRouter в значение 1), именно благодаря этому будет возможен общий доступ к интернет через VPN-соединение.
  • После этого обязательно отключаем брэндмауэр Windows на интерфейсе VPN, т.е. снимаем соответствующую галочку в настройках бранлмауэра:
  • После чего перезапускаем службу OpenVPN и удаленный клиент может попытаться подключиться к нам. Если все настроено верно, то в свойствах интерфейса OpenVPN на клиенте мы увидим следующее: Т.е. клиент в нашей виртуальной частной сети получил IP адрес 10.10.10.2, основным шлюзом для него является OpenVPN сервер — 10.10.10.1, и DNS серверы именно те, которые мы задавали. Если посмотреть трассировку маршрута до нашего сайта c клиента, то мы увидим что траффик идет именно через наш OpenVPN сервер: Чего собственно и требовалось добиться. Кстати, решение с OpenVPN универсальное, в отличие от обычного PPTP VPN. Многие провайдеры блокируют протокол GRE, используемый в PPTP VPN. OpenVPN сервер же работает только используя TCP или UDP протокол, причем номер порта вы определяете сами, получая таким образом крайне неприхотливый к «агрессивной среде провайдера» туннель 😉

От автора

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

Настройка OpenVPN сервера © Скорая Компьютерная Помощь г. Калуга // Decker

Примечание

В последнее время к нам на электронную почту приходит большое количество вопросов в стиле «Вопрос по Вашей статье http://compkaluga.ru/articles/172/ на шаге 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 (их нужно ставить обязательно!). Обратите внимание на скриншот с окном выбора компонентов в начале статьи, там эти галочки стоят!


Настройка OpenVPV-сервера на Windows Server

Представляю подробную инструкцию по OpenVPN на Windows server 2012 c уровнем шифрования OpenSSL.  А также как подключить клиентов к созданной виртуальной частной сети. Здесь подробно описаны все параметры.

OpenVPN — открытая реализация технологии VPN — Virtual Private Network, которая предназначена для создания виртуальных частных сетей между группой территориально удаленных узлов поверх открытого канала интернет. OpenVPN подходит для таких задач, как безопасное удаленное сетевое подключение к серверу без открытия интернет-доступа к нему, как будто вы подключаетесь к хосту в своей локальной сети. Безопасность соединения достигается шифрованием OpenSSL.

Установка OpenVPN на сервер

Зайдите в систему от имени Администратора. Кто не знает как активировать учетную запись Администратора читайте тут.
Скачайте и установите актуальную версию OpenVPN. Запустите установщик, убедитесь что на третьем шаге мастера установки выбраны все компоненты для установки.

OpenVPN установливаем в директорию по-умолчанию «C:\Program Files\OpenVPN».

Разрешаем добавление виртуального сетевого адаптера TAP в ответ на соответствующий запрос и дожидаемся завершения установки.

Генерация ключей (PKI) центра сертификации, сервера, клиента

Для управления парами «ключ/сертификат» всех узлов создаваемой частной сети используется утилита easy-rsa, работающая через командную строку.

Переходим в папку установки OpenVPN и создаем папки ssl и ccd.
Заходим в папку easy-rsa. Там есть файл vars.bat.sample, копируем его и переименовываем в vars.bat.

cd \
cd C:\Program Files\OpenVPN\easy-rsa
copy vars.bat.sample vars.bat

Открываем файл vars.bat. для редактирования, например, в программе Notepad++.
Перед FOR вводим rem, а перед set «PATH=%PATH%;C:\Program Files\OpenVPN\bin» удаляем rem.
А также правим следующие строки:
set KEY_DIR=keys //каталог, куда будут генерироваться сертификты;
set DH_KEY_SIZE=2048 //длина ключа Диффи Хельмана
set KEY_SIZE=2048 //длина личного ключа
set KEY_COUNTRY=RU //Код страны, RU для России
set KEY_PROVINCE=Moscow //Регион страны
set KEY_CITY=Moscow //Город
set KEY_ORG=Organization //Название организации или ФИО
set [email protected] //Адрес вашей почты
set KEY_CN=server //Общее имя
set KEY_OU=server //имя
set KEY_NAME=server.domain.ru //Имя сервера. Желательно, чтобы соответствовал полному имени VPN-сервера
set PKCS11_MODULE_PATH=DMOSK //путь к модулю pkcs#11, можно не менять
set PKCS11_PIN=12345678 //ПИН-код к смарт-карте, можно не менять

Проверяем, что в файле openssl-1.0.0.cnf параметр default_days (срок жизни сертификата) имеет значение 3650 или то, которое вам нужно.
Очищаем старые данные
vars.bat
clean-all.bat

Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы index.txt и serial.
Создаем ключ HMAC для дополнительной защиты от DoS-атак и флуда.
openvpn --genkey --secret %KEY_DIR%\ta.key
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появился файл ta.key.
Генерируем ключ Диффи Хельмана (процесс достаточно длительный).
build-dh.bat
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появился файл dh3048.pem
Генерируем сертификат
build-ca.bat
На все запросы нажимаем Enter.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы ca.crt и ca.key.
Генерируем сертификат для сервера:
build-key-server.bat server
Где server — имя сертификата. Можно ввести другое. На все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы server.crt, server.key и server.csr.
Создаем пользовательский сертификат removecrt для последующего создания файла crl.pem, который отвечает за проверку и последующий отзыв сертификатов. Можно обойтись и без него, но тогда нельзя будет отозвать сертификат пользователя. Так что лучше это сделать.
build-key removecrt
Нажимаем Enter, пока не появятся вопросы Common Name и Name. При их появлении вводим название нашего сертификата — removecrt. Завершаем вводом y два раза.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы removecrt.crt, removecrt.key и removecrt.csr.
Далее вводим команду которая отвечает за отзыв сертификата и создает файл crl.pem
revoke-full removecrt
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появился файл crl.pem
Создаем сертификат пользователя
build-key user
где user — имя пользователя. Для каждого пользователя надо создавать свой сертификат, поэтому желательно давать осмысленные имена. Также напоминаю, что при появлении запроса Common Name и Name надо вводить название нашего сертификата user.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы user.crt, user.key и user.csr.
Есть второй способ создания сертификата пользователя. в этом случае меньше файлов надо передавать пользователю, но при подключении надо будет вводить пароль.
Вводим команду
build-key-pkcs12 user
Нажимаем Enter пока не появится запрос Export Password. Здесь вводим пароль пользователя, например 777777. Данный пароль будет назначен сертификату user.p12, который должен появиться в папке C:\Program Files\OpenVPN\easy-rsa\keys. Учтите, что и файлы конфигурации клиента будут разные. Но об этом позднее.
На этом генерация ключей закончена.
Из папки C:\Program Files\OpenVPN\easy-rsa\keys копируем в папку C:\Program Files\OpenVPN\ssl которую мы создали ранее следующие файлы:

  1. ca.crt
  2. server.crt
  3. server.key
  4. dh3048.pem
  5. ta.key

Также рекомендую для каждого пользователя создать свою папку и поместить туда следующие файлы:
Для первого варианта

  1. ca.crt
  2. user.crt
  3. user.key
  4. ta.key

Для второго варианта

  1. user.p12
  2. ta.key

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

Переходим к настройке сервера VPN. Создаем файл конфигурации. В папке C:\Program Files\OpenVPN\sample-config есть образцы файлов конфигурации. Возьмем их за основу. Копируем файл server.ovpn в папку C:\Program Files\OpenVPN\config.
Открываем его в Notepad++. И исправляем:
port 1194 //Номер порта на котором будем слушать. Замечание см. ниже
proto udp //Указываем протокол для подключения.
dev tun //Создаем маршрутизируемый IP туннель.
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\\dh3048.pem" //Указываем путь к ключю Диффи Хельмана
server 172.16.32.0 255.255.255.0 //Указываем адресацию сети.
ifconfig-pool-persist "C:\\Program Files\\OpenVPN\\ccd\\ipp.txt" //Указываем файл с описанием сетей между клиентом и сервером.
client-config-dir "C:\\Program Files\\OpenVPN\\ccd" //Указываем каталог с описаниями конфигураций каждого из клиентов.
client-to-client //Разрешаем общаться клиентам внутри тоннеля.
keepalive 10 120
tls-auth "C:\\Program Files\\OpenVPN\\ssl\\ta.key" 0 //Указываем путь к ключу безопасности и устанавливаем параметр сервера 0
cipher AES-256-CBC //Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
comp-lzo //Включаем сжатие.
persist-key //Указываем не пересчитавать файлы ключей при перезапуске туннеля.
persist-tun
status "C:\\Program Files\\OpenVPN\\log\\logopenvpn-status.log" //Указываем путь к логу со статусом.
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log" //Указываем путь к логу.
verb 3
crl-verify "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem" //Указывает сверку по отозванным сертификатам.

Остальное не меняем. Сохраняем, закрываем.
Теперь замечание по поводу номера порта. Если вы собираетесь использовать нестандартный порт, то необходимо открыть этот порт в Брандмауэре Windows по протоколу UDP для входящих и исходящих подключений. А также убедиться, что у провайдера этот порт тоже открыт.
Теперь переходим Панель управления → Администрирование → Службы и находим OpenVPNService. Нажимаем правой кнопкой мыши и выбираем Свойства. Устанавливаем Тип запуска — Автоматически. Нажимаем Запустить, затем ОК. Закрываем все окна.

На рабочем столе запускаем OpenVPN GUI.

Сервер VPN запущен. В случае появления ошибок смотрите логи в папке C:\Program Files\OpenVPN\log.

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

Настройку клиента начинаем с того, что копируем с компьютера-сервера на компьютер-клиент следующие файлы:

  • Файлы ключей и сертификатов в соответствии с вариантами их создания, как указано выше.
  • Файл установщика, так как программа одинаковая как для сервера, так и для клиента. Отличия только в файлах конфигурации.

Запускаем установку OpenVPN. Все компоненты оставляем как есть, путь установки тоже по умолчанию. Установка TAP-адаптера — да.
Переходим в папку установки OpenVPN и создаем папку ssl. в нее копируем файлы ключей и сертификатов для данного клиента.
Возвращаемся в каталог установки и из папки C:\Program Files\OpenVPN\sample-config копируем файл client.ovpn в папку C:\Program Files\OpenVPN\config.
Открываем его в Notepad++. И исправляем:
client //Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
dev tun //Создаем маршрутизируемый IP туннель.
proto udp //Указываем протокол для подключения.
remote X.X.X.X 1194 //Указываем IP аддрес сервера с портом.
persist-key //Указываем не пересчитавать файлы ключей при перезапуске туннеля.
persist-tun
ca "C:\\Program Files\\OpenVPN\\ssl\\ca.crt" //Указываем путь к доверенному сертификату.
cert "C:\\Program Files\\OpenVPN\\ssl\\user.crt" //Указываем путь к сертификату сервера.
key "C:\\Program Files\\OpenVPN\\ssl\\user.key" //Указываем путь к ключу сервера.
tls-auth "C:\\Program Files\\OpenVPN\\ssl\\ta.key" 1 //Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
cipher AES-256-CBC //Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
comp-lzo //Включаем сжатие.
verb 3

Не забываем изменить user на имя которое вы присвоили данному клиенту.
Сохраняем. Запускаем OpenVPN GUI на рабочем столе обязательно от имени администратора. Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:

Появится следующее окно.

Теперь можно проверить соединение ping.
На этом пока все. Дополнительную настройку OpenVPN см здесь.

Список серверов OpenVPN | Losst

Технология OpenVPN позволяет организовать виртуальную частную сеть между несколькими компьютерами, которые физически могут находиться в разных частях мира и использовать для подключения к сети различные технологии и провайдеров. Это программное обеспечение с открытым исходным кодом, поэтому любой желающий может создать свой сервер. В одной из предыдущих статей мы рассматривали как настроить OpenVPN на Ubuntu.

Но вам необязательно создавать свой сервер, другие пользователи и компании уже сделали это и некоторые из них предоставляют доступ к своим серверам совершенно бесплатно. В этой статье мы собрали список серверов OpenVPN, которые вы можете использовать для решения своих задач. Важно отметить, что вам нужно быть аккуратными с данными, которые вы собираетесь пропускать через чужой VPN, желательно всегда где это возможно использовать HTTPS. А теперь перейдем к списку.

Содержание статьи:

Как подключится?

Для начала в вашей системе должен быть установлен OpenVPN. Например, в Ubuntu его можно установить выполнив команду:

sudo apt install openvpn

Дальше нужно скачать файл настроек OpenVPN клиента, который можно получить на сайте сервиса, который вы выбрали. Обычно такие файлы распространяются в zip архивах и имеют расширение *.ovpn.

Последний шаг, это запуск сервиса OpenVPN с этим конфигурационным файлом. Для этого можно использовать такую команду терминала в Linux:

sudo openvpn -config /путь/к/скачанному/файлу

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

Лучшие OpenVPN серверы

Дальше рассмотрим лучшие серверы OpenVPN, которые вы можете использовать в своей системе.

1. vpnbook.com

 

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

Сервис не блокирует никаких сайтов. Серверы OpenVPN доступны на таких портах TCP 80, 443, а из UDP на 53 и 25000. Для доступа необходим логин и пароль. На данный момент это: vpnbook и VMdc6PJ. Торренты не поддерживаются. Можно выбрать один из серверов, которые расположены в разных странах. Скачать файл конфигурации для сервера нужно сервера можно на официальном сайте.

2. freevpn.me

Это еще один полностью бесплатный VPN сервис, который дает вам еще больше свободы. Как и в предыдущем варианте, здесь используется шифрование AES SSL, поэтому ваш провайдер не сможет узнать что вы делаете в сети и какие данные передаете. Вам доступны TCP порты 80, 443 и UDP — 53, 40000. Трафик не ограничен, а пропускная способностью с резервом в 10 Гбит/сек. К тому же здесь разрешена загрузка и раздача торрентов.

Сервер доступа только один, но для доступа к нему необходимо кроме конфигурационного файла логин и пароль. На данный момент логин freevpnme, а пароль RD9PNBE3iNu. Конфигурационный файл и адреса серверов OpenVPN доступны на этой странице.

3. www.freevpn.se

Бесплатный OpenVPN сервис, очень похожий по характеристикам на freevpn.me. Поддерживаются те же возможности, отрыты те же самые порты и есть возможность работать с торрентами. По заявлениям разработчиков, этот сервис обеспечивает максимальную защиту обычным пользователям, от перехвата их данных и атак злоумышленников.

Вы можете безопасно подключаться к любым WiFi сетям. Логин freevpnse, пароль для доступа — uJCks3Ze. Конфигурационный файл вы можете скачать на этом сайте.

4. vpnme.me

Это бесплатный OpenVPN сервис, который, как и все другие обеспечивает защиту вашего контента от посторонних глаз с помощью шифрования AES. Разработчики уверяют, что логгирование запросов не ведется, а сервис обеспечивает максимальную анонимность. Серверы OpenVPN доступен на портах 443 TCP и 1194 UDP. Параметры аутентификации вы можете посмотреть на официальной странице.

5. securitykiss.com

 

Securitykiss — отличный выбор среди других OpenVPN сервисов. Здесь, кроме бесплатного тарифа есть несколько платных планов. Вы можете выбрать один из серверов, расположенных в Великобритании, США, Франции, Германии. Подключение к интернету не ограничено. Логин и пароль пользователя не требуется, нужно только настроить конфигурационный файл для OpenVPN. Инструкцию по установке и настройке вы можете найти на официальном сайте. Сервис использует TCP порт 123.

6. cyberghostvpn.com

Это бесплатный надежный сервис OpenVPN, который позволяет создать шифрованный туннель с шифрованием AES 256-бит. Серверы размещены в 15 странах и всего доступно 58 серверов. Также есть платные тарифные планы, которые работают гораздо быстрее, без рекламы и имеют приложения для Android и iOS.

Выводы

В этой статье мы рассмотрели список серверов OpenVPN, которые можно использовать полностью бесплатно для увеличения своей безопасности. А какие OpenVPN серверы вы используете? Какие вам известны из тех, что нет в списке? Напишите в комментариях!

Оцените статью:

Загрузка…

Настройка OpenVPN сервера на Windows Server 2008/2012 / Oblako.kz

В этой статье мы приводим подробную инструкцию по настройке частных серверов на ОС Windows Server, а также по присоединению клиентов к созданной программе OpenVPN.

Для начала расшифруем понятие. Программа предназначена для открытой работы виртуальной частной сети между двумя разными отдаленными узлами, помимо интернета, через который осуществляется передача данных. Применяется в тех случаях, когда требуется безопасное соединение путем шифрования программой OpenSSL. При этом доступ остается закрытым. Аренда виртуальных серверов от oblako.kz.

Содержание:

Механизм работы

OpenVPN

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

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

OpenVPN

Инсталляция

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

OpenVPN Setup

Важно! Прежде чем приступать к дальнейшим действиям, нужно учесть, что в данных примерах все действия проводятся с учетом того, что приложение устанавливается в директорию, расположенную по адресу C:\Program Files\OpenVPN. Если вы выбираете другую, сообразуйте свои действия с данными другой директории.

Итак, далее система запросит добавление TAP. Следующий шаг – разрешение установки виртуального сетевого адаптера, после чего необходимо дождаться окончания инсталляции.

Создание пар ключей, генерация параметров

Чтобы создавать и менять пары «ключ-сертификат», необходимо использование вспомогательной программы. Утилита работает через консоль Windows. Чтобы запустить утилиту easy-rsa, войдите в консоль (одновременное нажатие кнопок Win+R), после введите команду cmd и щелкните на Enter.

Файлы настроек

С этой страницы вы можете загрузить конфигурационные и программные файлы, после чего переместить их туда, где расположена программа easy-rsa. Убедитесь в совпадении путей, при необходимости внесите изменения во все документы.

В файл настроек openssl-1.0.0.conf необходимо внести коррективы согласно вашим данным. Обратите внимание, если в значении переменной есть проблем, то необходимо заключить данные в кавычки.

countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
emailAddress_default
Создание пар ключей Центра Сертификации и Сервера
  1. Необходимо внести изменения в названия документов index.txt.start и serial.start следующим образом: Запустите следующий скрипт: cd \
    cd "C:\Program Files\OpenVPN\easy-rsa"
    ren index.txt.start index.txt
    ren serial.start serial
  2. Начнется создание необходимого ключа: .\build-ca.bat
  3. Система будет задавать вопросы, на которые можно реагировать нажатием клавиши Enter. Кроме одного случая, в строку KEY_CN внесите данные уникального имени, а затем скопируйте его в строку name.
  4. Создаем сертификат. В строки name и Common Name нужно внести данные имени будущего файла. .\build-key-server.bat server

    После изменения для всех ключей, которые будут создаваться, будет всплывать запрос подписи генерируемого сертификата. Необходимо отвечать «Да» (y).

    Консоль

Создание пар для клиента

Уникальный сертификат шифрования нужно создавать для всех клиентов по отдельности. В настройках утилиты есть специальный параметр, который позволяет использовать всего один SSL-сертификат для разных клиентов, однако это не самый лучший выбор, так как опция не гарантирует полного соблюдения безопасности. Создавать сертификаты возможно в течение работы для каждого нового клиента согласно их присоединению, поэтому рассмотрим создание единственного SSL-сертификата для client1 (в дальнейшем название следует менять на имя вашего файла).

Введите такие команды, чтобы сгенерировать ключи клиента:

cd \
cd "C:\Program Files\OpenVPN\easy-rsa"
.\build-key.bat client1

В строке Common Name введите данные имени будущего клиента (сейчас указываем client1).

Обмен ключей по Диффи-Хеллману

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

.\build-dh.bat

Созданные параметры будут отображаться следующим образом:

OpenVPN

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

Готовые данные расположены по такому пути C:\Program Files\OpenVPN\easy-rsa\keys. Выберите документы:

  • ca.crt;
  • dh3048.pem/dh2048.pem;
  • server.crt;
  • server.key.

Перенесите их по пути C:\Program Files\OpenVPN\config.

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

Войдите в редактор реестра, откройте HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. С правой стороны экрана будет отображено содержание папки, где необходимо выбрать файл IPEnableRouter. Двойным нажатием левой клавиши мыши откройте окно редактирования переменной, измените значение параметра на «1», как показано ниже. Эти действия позволят разрешить переадресацию на VPS.

Редактор реестра

Изменение параметра DWORD

  1. Перейдем к настройке. Выберите документ настройки с названием server.ovpn (загрузить его можно у нас, ссылка была приведена выше) и перенесите его сюда — C:\Program Files\OpenVPN\config.

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

    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\\dh3048.pem"
    push "redirect-gateway def1"
    push "dhcp-option DNS 8.8.8.8"
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    verb 3
  2. Войдите в инструмент управления системой, выберите пункт «Сеть и интернет», затем перейдите к управлению подключениями и щелкните на «Изменение параметров адаптера». Для разрешения передачи данных между адаптерами, необходимо выбрать тот, который отвечает за внешнее соединение.

    Ethernet

    Двойным кликом левой клавиши мыши войдите в свойства сети, откройте вкладку «Доступ», после чего установите галочки напротив всех параметром. Закройте и сохраните внесенные данные.

    Доступ

  3. В строке поиска операционной системы найдите приложение REGEDIT.exe, которое поможет настроить адресацию по IP-адресу.

    REGEDIT.exe

Автоматический запуск службы

Если вы хотите, чтобы OpenVPN включался автоматически при начале работы системы, необходимо произвести приведенные ниже настройки.

Войдите в меню «Службы» операционной системы. В списке найдите OpenVPN, далее выберите «ПКМ», затем «Свойства», в строке запуск поставьте значение «Автоматически».

Таким образом базовая настройка завершена. Перейдите по пути C:\Program Files\OpenVPN\config\server.ovpn. Нажмите на файл, во всплывающем меню щелкните на команду, которая помогает запустить сервер.

Совокупность параметров клиента

Существуют программы для всех распространенных систем (для MacOS применяется специальная утилита Tunnelblick). Все программы OpenVPN функционируют на основании одинаковых конфигурационных данных с небольшими различиями в некоторых параметрах. Чтобы выяснить разницу в опциях, необходимо ознакомиться с документацией определенного клиента. Ниже мы разберем подключение клиента операционной системы Windows, используя тот же установочный пакет, который применялся при установке сервера. Соответственно, при установке приложения на прочие операционные системы, пошаговое руководство аналогично (с учетом внесения изменений).

  1. Установите последнюю версию приложения.
  2. Скопируйте файлы сгенерированных ранее сертификатов в директорию C:\Program Files\OpenVPN\config. Файл с названием client.ovpn необходимо удалить с сервера, когда вы его перенесете.
  3. Откройте этот документ, найдите приведенную ниже строку и введите данные доменного имени сервера или его ip-адрес. Пример: remote 1194
    remote 111.222.88.99 1194
  4. Согласно приведенному ниже примеру укажите пути до сертификатов, которые были скопированы во втором шаге. # 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
  5. Сохраните изменения и закройте файл – настройка окончена успешно.

Проверка правил и соединения

Важно! Для правильной работы приложения, необходимо открыть нужные порты. Чтобы сделать это, необходимо войти в файерволл вашей ОС (по умолчанию брандмауэр или иная установленная программа-антивирус) и проверить настройки — открыть порт UDP 1194.

Для проверки соединения клиента нужно включить OpenVPN сервер. Затем откройте установочный файл сервера, расположенный по пути C:\Program Files\OpenVPN\config.

Откроется окно, демонстрирующее параметр подключения, которое автоматически свернется и перейдет на панель задач. Если ярлык программы горит зеленым светом, значит, процедура подключения прошла успешно.

Иконка

Затем необходимо убедиться в открытости сервера по отношению к устройству клиента с использованием внутреннего адреса сети.

  1. Откройте командную консоль;
  2. Введите данные ping; ping 10.8.0.1
  3. Если все работает правильно, то запустится процесс обмена пакетами с сервером;

    Вывод

  4. В командную строку введите приведенную ниже команду для запуска программы, проверяющей маршрут: tracert ya.ru
  5. Ниже можно увидеть, что пакеты данных идут во внешнюю сеть только через виртуальный сервер.

    Трассировка маршрута

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

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

Установка OpenVPN клиента для Windows.

Продолжаем знакомство с OpenVPN. В этой статье рассмотрим установку и настройку OpenVPN клиента для Windows.

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

  • ca.crt — корневой CA-сертификат
  • ta.key — HMAC ключ
  • client.crt — сертификат клиента
  • client.key — ключ клиента

Установка OpenVPN-клиента в Windows

Переходим на сайт OpenVPN, скачиваем exe-файл для Windows и устанавливаем.

openvpn windows

Обязательно установите пакет драйверов для TAP-устройств.

openvpn windows

После завершения переходим в C:\Program Files\OpenVPN\config где создаем конфигурационный файл client.ovpn со следующим содержимым, XX.XX.XX.XX заменить на адрес своего сервера.

client

remote XX.XX.XX.XX 443
proto  udp
dev    tun

remote-cert-tls server

ca       ca.crt
cert     client.crt
key      client.key
tls-auth ta.key 1

auth-nocache

comp-lzo
mssfix 0

persist-key
persist-tun

verb 3

Как можно увидеть, настройки клиента не слишком отличаются от настроек сервера, просто тут кое-что добавлено:

  • client — указываем что нужно работать в режиме клиента
  • remote — указываем на какой адрес и порт нужно подключаться.
  • remote-cert-tls server — исключение возможности mitm-атак, путем проверки серверных сертификатов.
  • auth-nocache — не кэшировать пароли в памяти.

Также в этот каталог копируем файлы: ca.crt, ta.key, client.crt, client.key.

openvpn windows

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

openvpn windows

При активном подключении к VPN серверу иконка станет зеленого цвета, а пользователю будет показано сообщение с назначенным ему локальным ip-адресом.

openvpn windows

Назначенный локальный ip-адрес также можно узнать выполнив команду ipconfig в командной строке Windows.

openvpn windows

Можно выполнить трассировку маршрута до какого либо узла или домена, чтобы просмотреть откуда выходят пакеты во внешнюю сеть. Для этого выполняют команду tracert после которой указывают либо ip-адрес, либо домен, например ya.ru.

openvpn windows

Смотрим на первую строчку и видим что пакет попал во внешнюю сеть с OpenVPN шлюза 172.16.150.1, после чего пошел дальше до конечного узла. В случае когда VPN отключен, то в первой строке будет либо ваш ip-адрес, либо локальный адрес вашего роутера, из которого пакет попадает в сеть вашего интернет-провайдера, а уже из нее отправляется дальше по назначению.

Установка и настройка OpenVPN на Windows 2008

Вступление

В этой записке написано про установку OpenVPN Server на Windows 2008 x64.

VPN сети стали де-факто для  создания защищенных каналов связи, которые объединяют удаленные офисы в одну общею сеть.

Безопасность передачи данных через сеть VPN и метод аутентификации через ключи, делает такой способ связи привлекательным. VPN соединения позволяют создавать подключения с приемлемой аутентификацией и шифрованием передаваемых данных. Многие системные администраторы открывают порты непосредственно на сервере или делают проброс с роутера до конечного сервера чтобы подключится к нему например  используя тот же  RDP (Remote Desktop Client). Этот способ подключения считается небезопасным.

Чтобы соединение с сервером сделать более безопасным, желательно для этого использовать VPN подключение до сервера.

Если вдруг у вас не получается установить OpenVPN, попробуйте Softether VPN https://www.softether.org/

Краткое содержание:

1. Немного о IP адресе сервера

2. Закачка установочного файла OpenVPN Server

3. Установка OpenVPN

4. Подготавливаем каталоги для конфигурационных файлов

5. Устанавливаем зависимости

6. Создаем серверный ключ

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

8. Создаем клиентский ключ

9. Запускаем службу OpenVPN

10. Настройка клиентского подключения на Windows XP

11. Включаем роутинг (forwarding) на сервере

 

1. Немного о IP адресе сервера

Для сервера  OpenVPN нужен статический белый адрес. А для клиентов которые будут подключатся к серверу удаленно сойдет любой динамический который они получают от своего роутера по DHCP.

В этой записке сервер имеет IP адрес — 111.111.111.111
Порт подключения — 1194
Обязательно исправьте IP сервера на свой в конфиге клиента.

IP Адреса – компьютер и сеть

Описание

111.111.111.111

Это IP адрес внешней карты WAN сервера. Он должен быть белым статическим (реальным).

10.168.111.0 / 255.255.255.0

Виртуальная подсеть. Из этой сети будут выдаваться IP адреса клиентским компьютерам, которые будут подключаться к серверу VPN (OpenVPN).  Желательно чтобы адрес сети не пересекался с адресом реальной локальной сети.

10.168.111.1

Виртуальный IP адрес сервера VPN

192.168.1.0 / 255.255.255.0

Локальная подсеть. Это адрес локальной сети, которая расположена за VPN сервером.  Узнать адрес можно взяв его с адаптер LAN.

192.168.1.2

IP адрес локального интерфейса сервера

1194

Порт, по которому идет VPN соединение. Указывают в конфигурационном файле на сервере и клиенте. Откройте доступ в фаерволе по этому порту.

 

Итак, начнем нашу установку с самого главного — закачаем установочный файл на сервер.

2. Закачка установочного файла OpenVPN Server

Пройдите по ссылке: http://openvpn.net/index.php/open-source/downloads.html

Откроется окно:

или сразу пройдите по ссылке:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.2-I003-x86_64.exe

Щелкаем ссылку обведенную красной линией, так как у меня операционная система 64-битная, я выбрал этот установщик.

Если у вас x32 система, выбираем ссылку чуть выше или эту:

http://swupdate.openv

создание полноценного openVPN gateway / Habr

OpenVPN — это система, позволяющая создавать шифрованные туннели между компьютерами по технологии VPN (Virtual Private Network, виртуальная частная сеть).

Основные плюсы такой модели:

  • Просто: настройка занимает менее часа и не требует специальных знаний.
  • Экономно: трафик сжимается lzo.
  • Безопасно: весь трафик шифруется, а клиенты разделены между собой.
  • Иногда по-другому просто никак. 🙂

Несмотря на эти пункты, нормальной статьи о настройке OpenVPN на Хабрахабре я не нашел. Чтож, попытаюсь исправить это своими силами.

Я специально стараюсь не углубляться в технические подробности, но и расписывать принципы сборки ядра и установки ПО в вашем дистрибутиве не буду — это выходит за пределы статьи.

За основу возьмем OpenVPN-2.0.9 и Gentoo Linux в качестве сервера и Linux либо Windows в качестве клиента.

Определися с желаемым.

Примем за основу то, что наш сервер распологается в удаленном датацентре. Т.е. попадать на него мы будет через интернет.

После установки шифрованного туннеля между клиентом и сервером, сервер будет NAT-ить все наши пакеты в Интернет. Также, сервер будет обслуживать DNS и являться firewall-ом для виртуальной локальной сети.

Внешний IP нашего сервера (того, который будет openVPN): 212.212.212.212
Внутренний IP сервера (видимый из туннеля): 10.10.0.1
Пул внутренних адресов openVPN: 10.10.0.2 — 10.10.0.128
Название нашей сети: vpnet
Имя сервера: vpsrv
Имя клиента: vpclient

Зачем нужен внешний IP, думаю, понятно. Внутренний IP нужен для соединения с сервером после поднятия туннеля. Пул адресов — это адреса, которые сервер выдает подключившимся клиентам.
Название сети — это имена конф. файлов и имя сервера в этих конф. файлах. Имена клиента и сервера = имена файлов ключей.

На сервере установлен Gentoo Linux 2008.0, обновленный до последних версий. Ядро — 2.6.29. Вся настройка будет выполняться по SSH.

Настройка ядра.

Замечу сразу, на этом этапе нужно быть крайне осторожным и внимательным. Если кто забыл.

Ядро должно содержать опции ниже на сервере. На клиенте нужны только TUN и ipv4.

В ядре нам понадобится следующий функционал, привожу выдержку из конфига:

CONFIG_NF_NAT=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NETFILTER=y
CONFIG_TUN=m

Ну и разумеется поддержка ipv4, сетевой карты и прочего железа. Собираем и устанавливаем ядро. Можно воспользоваться genkernel. Перезагружаемся.

Настройка сервера.
Установка ПО.

Если 🙂 сервер вернулся из ребута, перейдем к установке ПО.

emerge --sync
emerge openvpn bind bind-tools iptables

Ждем, иногда долго. После установки переходим в /etc/init.d/ и выполняем:

ln -s openvpn openvpn.vpnet
rc-update add openvpn.vpnet default
rc-update add named default
rc-update iptables default
./iptables save

Создав symlink на самого себя, мы указали openvpn, что нужно использовать конфигурацию vpnet. В будущем запускаем его только так:

/etc/init.d/openvpn.vpnet start

Сейчас запускать не нужно, ибо запускать пока нечего. 🙂
Помимо этого мы добавили iptables, named и openvpn в автозагрузку.

Создадим нужные каталоги и файлы:

mkdir /etc/openvpn/vpnet/
mkdir /etc/openvpn/vpnet/keys
touch /var/log/openvpn.log
touch /etc/openvpn/vpnet.conf

Генерация ключей.

Перейдем в /usr/share/openvpn/easy-rsa/. Откроем файл vars и впишем настроим параметры:

export EASY_RSA="/usr/share/openvpn/easy-rsa/" #Путь к easy-rsa.
export KEY_CONFIG="$EASY_RSA/openssl.cnf" #Конфиг OpenSSL
export KEY_DIR="/etc/openvpn/vpnet/keys" #Каталог, в котором мы будем держать ключи.
export KEY_SIZE=1024 # Размер ключа
export CA_EXPIRE=3650 # Срок действия CA
export KEY_EXPIRE=3650 # Срок действия ключа
export KEY_COUNTRY="RU" # Двухбуквенный код страны
export KEY_PROVINCE="XX" # Province, не актуально
export KEY_CITY="Town" # Город
export KEY_ORG="Companyname" # Компания
export KEY_EMAIL="[email protected]" # Email

Естественно, значения (компания, путь к ключам и easy-rsa, email) нужно поменять на подходящие вам.

Имопртируем переменные: source ./vars

Теперь создадим ключи.

./clean-all # Убиваем старые ключи, если они были.
openvpn --genkey --secret ta.key # Ключ TLS-auth
./build-dh #Ключ Диффи-Хеллмана.
./pkitool --initca # Certificate Authority для сервера.
./pkitool --server vpsrv # Сертификат сервера.
./pkitool vpclient # Сертификат клиента.

И перенесем остатки в нужное место:

mv ./ta.key /etc/openvpn/vpnet/keys

Все, ключи готовы.

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

Переходим в /etc/openvpn/, открываем vpnet.conf и пишем туда:

mode server
tls-server
proto tcp-server
dev tap
port 5555 # Порт
daemon
tls-auth /etc/openvpn/vpnet/keys/ta.key 0
ca /etc/openvpn/vpnet/keys/ca.crt
cert /etc/openvpn/vpnet/keys/vpsrv.crt
key /etc/openvpn/vpnet/keys/vpsrv.key
dh /etc/openvpn/vpnet/keys/dh2024.pem
ifconfig 10.10.0.1 255.255.255.0 # Внутренний IP сервера
ifconfig-pool 10.10.0.2 10.10.0.128 # Пул адресов.
push "redirect-gateway def1" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать.
push "route-gateway 10.10.0.1"
duplicate-cn
verb 3
cipher DES-EDE3-CBC # Тип шифрования.
persist-key
log-append /var/log/openvpn.log # Лог-файл.
persist-tun
comp-lzo

Все опции, в принципе, понятны. Особо важные я отметил комментариями. Пути и названия, адреса — нужно подправить под себя.

Теперь сервер можно запустить командой /etc/init.d/openvpn.vpnet start
Если возникнут проблемы, подробности можно прочитать в log-файле.

NAT

Чтобы сервер выпускал наши пакеты во внешнюю сеть нам нужно настроить NAT. Это просто.

Готовим и запускаем iptables:

/etc/init.d/iptables save
/etc/init.d/iptables start

Включаем поддержку IP forwarding:

sysctl net.ipv4.ip_forward=1
echo "sysctl net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Добавляем правило firewall:

iptables -v -t nat -A POSTROUTING -o EXTERNAL_IF -s VPN_NET/24 -j SNAT --to-source SERVER_IP

EXTERNAL_IF, VPN_NET и SERVER_IP заменить на внешний интерфейс, сеть VPN и внешний (!) IP сервера соответственно.

Снова делаем /etc/init.d/iptables save, чтобы правило применялось при загрузке системы.

Все, можно работать.

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

Устанавливаем ПО, создаем пути:

emerge openvpn
cd /etc/init.d/
ln -s openvpn openvpn.vpnet-client
rc-update add openvpn.vpnet-client default

mkdir /etc/openvpn/vpnet
mkdir /etc/openvpn/vpnet/client_keys
touch /etc/openvpn/vpnet-client.conf

Берем с сервера файлы:

ca.crt
vpclient.crt
vpclient.key
ta.key

и закидываем их в /etc/openvpn/vpnet/client_keys/ на клиенте.

Редактируем /etc/openvpn/vpnet-client.conf:

tls-client
proto tcp-client
remote 212.212.212.212
dev tap
port 5555
cd /etc/openvpn/vpnet
pull
tls-auth /etc/openvpn/vpnet/client_keys/ta.key 1
ca /etc/openvpn/vpnet/client_keys/ca.crt
cert /etc/openvpn/vpnet/client_keys/vpclient.crt
key /etc/openvpn/vpnet/client_keys/vpclient.key
cipher DES-EDE3-CBC
log-append /var/log/openvpn.log
comp-lzo

Опции шифрования и компрессии на клиенте и сервере должны совпадать.

Запускаем клиент. Автоматически установится соединение с сервером, создастся туннель, default gateway — сервер VPN. Если все сделано правильно, то можно ходить в интернет.

Настройка закончена.

Могу ответить на вопросы в комментариях.

Leave a comment