OpenVPN на Android — установка и настройка OpenVPN клиента Android
Тему сегодняшнего дня мы посветим вопросу VPN сетей на мобильных устройствах, а именно OpenVPN клиенту на системе Android. Информация по установке OpenVPN клиента для Android пользуется спросом на просторах интернета и требует отдельного внимания, дабы осветить этот вопрос с нужного ракурса. Компания БИТ, как и вы сейчас, заинтересовались проблемой организации виртуальной частной сети на своих Android устройствах и начали поиски, необходимой для реализации задуманного, информации. По результатам проделанной нами работы, мы решили опубликовать инструкцию по настройке VPN сети на Android средствами OpenVPN.
В данной статье-инструкцие вы увидите пример реализации VPN сети с использование сертификатов авторизации и TLS шифрования. В результате реализации подобных сетей вы получаете приватную сеть, имеющую высокую степень защиты трафика от внешних посягательств.
Конфигурация клиента OpenVPN на Android с TLS авторизацией
В текущем разделе мы уделим внимание примеру конфигурации клиента OpenVPN на Android и рассмотрим какие файлы,ключи,сертификаты нам понадобятся для реализации защищенной, зашифрованной VPN сети на Android средствами TLS авторизации на сервере OpenVPN. Как оговаривалось ранее, мы будем строить зашифрованную и защищенную сеть на базе TLS авторизации и с участием сервера сертификации.
Прежде чем браться за настройку клиентской части VPN сети на Android с авторизацией по протоколу TLS, необходимо разобраться, какие файлы,ключи и сертификаты нам понадобятся.
Базовый набор файлов для OpenVPN клиента на Android:
- client.key — закрытый ключ шифрования клиента, выданный центром сертификации.
- client.crt — сертификат клиента, подписанный центром сертификации.
- ca.crt — сертификат центра сертификации с открытым ключем.
- client.ovpn — файл конфигурации OpenVPN клиента для Android.
После того, как мы с вами ознакомились с основным, базовым наборов необходимых файлов, ключей и сертификатов, плавно переходим к базовой конфигурации инициализации VPN клиента на Android. Интересующий нас файл имеет расширение .ovpn. Имя файла конфигурации может быть любым, например client.ovpn.
Базовая конфигурация клиентского файла client.ovpn:
На данном этапе мы разобрались с базовым минимальным набором файлов, базовой конфигурации OpenVPN клиента на Android с TLS авторизацией на сервере. Данные теоретические знания помогут вам в реализации специализированных задач по организации зашифрованных VPN сетей под ваши нужды.
Пошаговая инструкция установки и настройки OpenVPN клиента на Android
В данном разделе инструкции мы не будем рассматривать процедуру формирования ключей клиента и сервера сертификации. Вопрос организации сервера сертификации отдельная тема и мы предполагаем, что данную задачу, уважаемый читатель, рассматриваете как отдельная тема для изучения. Раздел статьи предполагает уже созданные клиентские, серверные ключи и сертификаты.
1) Первое что нам необходимо сделать — установить OpenVPN на ваше Android устройство. Для этого вам необходимо скачать приложение OpenVPN for Android из любого источника, например из Google play:
Установка OpenVPN через Google Play
2) После установки запускаем приложение и переходим в раздел импорта файлов конфигурации, ключей и сертификатов. Файл конфигурации, ключи и сертификаты должны быть заблаговременных скопированы в файловое пространство вашего Android устройства. Способов скопировать необходимые файлы масса, выбирайте самый безопасный для вас.
Запуск OpenVPN для Android.
3) Выбираем нужную директорию с файлом конфигурации, ключем и сертификатами. Жмем на файл конфигурации и кнопку «Выбрать».
Импорт файлов конфигурации,ключей и сертификатов для OpenVPN Android.
4) По результатам процедуры импорта клиент OpenVPN для Android автоматически сформирует файл конфигурации и включит в файл конфигурации ключ, сертификаты клиента и сервера.
Примем импорта файлов конфигурации,ключа и сертификатов.
5) На данном этапе импорт и базовая конфигурация OpenVPN клиента для Андроид является завершенной. В дальнейшем вы можете провести дополнительную тонкую настройку используя графический интерфейс клиента OpenVPN для Android или вручную прописать нужные конфигурации в файле конфигураций. По завершению процедуры импорта, мы рекомендуем вам удалить исходные файлы конфигурации, ключи и сертификаты для большей безопасности вашей приватной VPN сети.
Конфигурация OpenVPN для Android через графический интерфейс.
6) Если вы правильно сконфигурировали сервер и клиент OpenVPN, то далее мы подключаем наше устройство к серверу. Для подключения OpenVPN клиента к нашему серверу необходимо нажать на импортированную запись и дождаться статуса подключения SUCCESS. В трее Android устройств будет висеть ваша аналитическая информация о количестве переподключений, трафике VPN сети и прочая аналитическая информация.
Подключение в OpenVPN серверу на Android
Эпилог нашей инструкции
Вот мы и подытожили с интересующим нас вопросом — настройка и установка OpenVPN клиента для Android в пошаговой инструкции. По результатам прочтения статьи вы должны получить базовое понимание принципов организации VPN сетей для устройств Android средствами OpenVPN и получить практический пример реализации простой VPN сети с TLS авторизацией для своего Android устройства.
Базовая конфигурация OpenVPN клиента на устройствах Android не должна вызвать никаких сложностей после прочтения данной статьи. Теперь ваши данные надежно защищены и шифруются налету при помощи VPN тунеля.
Источник
Настройка OpenVPN Connect для Android, iPhone и iPad. Бесплатные серверы VPN Gate
Настройка OpenVPN на устройствах Android
Данная инструкция показывает, как подключиться к серверу ретрансляции VPN Gate, используя мобильное приложение OpenVPN Connect. OpenVPN Connect является версий клиента OpenVPN для Android.
1. Установите приложение OpenVPN Connect
Загрузите и установите новейшую версию приложения OpenVPN Connect из магазина приложений “Google Play”.
2. Скачайте и загрузите файл конфигурации подключения OpenVPN (файл .ovpn).
Данная процедура требуется только при первичной настройке подключения.
- Файл конфигурации формата .ovpn понадобиться для подключения к серверу ретрансляции VPN Gate через протокол OpenVPN.
- Загрузить файл конфигурации можно на странице списка открытых бесплатных серверов ретрансляции http://www.vpngate.net/en/. Выберите VPN-сервер, к которому вы хотите подключиться и нажмите на соответствующий файл .ovpn, чтобы импортировать его в приложение OpenVPN Connect.
- Вы также можете скачать файл .ovpn на компьютере и отправить его на мобильное устройство Android по электронной почте.
- При попытке открыть файл .ovpn на смартфоне / планшете Android сразу откроется приложение OpenVPN Connect. Появится запрос, нужно ли установить файл .ovpn. Подтвердите данное действие.
3. Подключение к VPN
- Для подключения к VPN, запустите OpenVPN Connect, выберите импортированный файл и нажмите кнопку “Connect”.
- После установки подключения в приложении появится статус “Connected” (подключено).
4. Интернет без ограничений
Когда соединение установлено, весь сетевой трафик будет проходить проходить через VPN-сервер. Вы также можете перейти можете перейти на сайт ip8.com, чтобы посмотреть глобальный IP-адрес. Вы сможете определить видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
При подключении к VPN вы сможете посещать заблокированные веб-сайты и использовать заблокированные приложения.
Настройка OpenVPN на iPhone / iPad
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate, используя мобильное приложение OpenVPN Connect. OpenVPN Connect является версий клиента OpenVPN для iOS.
Источник
OpenVPN Client для Андроид
Жанр | Интернет |
---|---|
Рейтинг | 10 |
Установки | 1000+ |
Разработчик | Arne Schwabe |
Русский язык | нет |
Оценок | 10+ |
Версия | 0.7.5 |
Размер apk | 14М |
OpenVPN – это вариант технологии виртуальной приватной сети с открытыми исходными текстами. Технология применяется для того, чтобы дать возможность клиентам, работающим на различных платформах, безопасно присоединяться к корпоративной сети снаружи защищённого периметра. Сотрудники, находясь вдали от своей корпоративной сети (например, в командировке), могут получить доступ к серверам своей компании по незащищённым каналам. Остальные VPN-сервисы, обзор которых есть на нашем сайте, используют немного иную технологию.
OpenVPN требует ваш VPN сервер
Это основная особенность технологии OpenVPN – для работы в приватной сети необходим собственный VPN-сервер, к которому и будут присоединяться VPN-клиенты. Это означает, что OpenVPN может использоваться только в корпоративной среде, где поднят такой сервер. Использовать этот клиент дома для безопасного доступа в Интернет напрямую не получится. Это имеет смысл только если ваш провайдер имеет в своей внутренней сети работающий VPN-сервер и предлагает его услуги. Тогда, установив OpenVPN-клиент на свой смартфон, вы сможете присоединиться к серверу. Сам по себе этот клиент на телефоне бесполезен.
Впрочем, в последние годы начали появляться компании, предлагающие публичные OpenVPN-серверы за известную плату. Обычно на сайтах таких провайдеров можно найти подробную инструкцию, как настроить зашифрованное соединение с их сервером, используя конфигурационные файлы, которые они предоставляют.
Пошаговая инструкция по настройке OpenVPN на Андроид
Для правильной настройки OpenVPN-клиента вам будут нужны такие файлы:
– configfile.ovpn – конфигурационный файл клиента;
– client.key – клиентский закрытый ключ шифрования;
– client.crt – файл с клиентским сертификатом
– ca.crt – файл с доверенным сертификатом центра сертификации
Самый важный файл должен иметь расширение « .ovpn », а имя может быть любое. Это и есть файл конфигурации OpenVPN-клиента, хранящий его главные настройки. При инсталляции клиента на смартфоне он читает свою конфигурацию именно из этого файла.
Эти файлы генерируются в центре сертификации защищённой сети. Получить эти файлы можно у вашего провайдера, если он предоставляет услугу OpenVPN, или у администратора вашей корпоративной сети.
Перед установкой клиента набор файлов можно сохранить в памяти смартфона, или на карте памяти, которую смартфон сможет прочитать.
Следующим шагом будет скачивание и инсталляция клиента. Скачать программу можно из магазина Google Play или на нашем сайте.
Имейте в виду, что различных реализаций клиентов может быть много, и процессы настройки в них могут слегка отличаться друг от друга. Поэтому алгоритм, который приведён ниже, является примерным.
Запустите установленный клиент OpenVPN. Найдите кнопку вызова главного меню, обычно она располагается в правом верхнем углу экрана. Выберите пункт Import.
В следующем меню выберите пункт Import Profile.
Отыщите файл конфигурации клиента (с расширением .ovpn) и выберите его. В данном конкретном примере их сразу три штуки.
После этого программа импортирует данные из файла и изменит свои настройки для доступа к конкретному VPN-серверу. Вам может потребоваться ввести логин и пароль для доступа к ресурсам VPN-сервера.
Нажмите кнопку Connect. Программа установит защищённое соединение с сервером. На экране появится предупреждение, подобное этому:
Когда вы подтвердите запрос, на экран будет выведена статистика соединения. Теперь вы можете работать.
Источник
Настройка OpenVPN клиента на Android
Настройка OpenVPN клиента на Android
1) Для подключения к серверу OpenVPN будет использована программа “Open VPN for Android” , можно скачать по данной ссылке.
2) Открываем программу и жмём «+»
3) Вводим название будущего VPN подключения
4) В поле меню «Основные»
вводим следующие параметры:
— адрес сервера: IP вашего VPN сервера;
— порт сервера: по умолчанию 1194, но может меняться в зависимости от настроек на VPN сервере;
— тип: их много, все описывать не буду, замечу только, что как правило используется «Логин/Пароль», если на сервере используется авторизация с помощью данного метода +необходимо будет добавить корневой сертификат «ca.crt». Вторым не менее популярным способом является «Сертификаты» при его использовании потребуется скопировать корневой сертификат(ca.crt) и клиентские сертификат и ключ(client.crt, client.key) на Ваш Device, после чего добавить их через соответствующий пункт меню. Так же есть комбинированные типы и др.
Процесс создания сертификатов был рассмотрен в статье о настройке OpenVPN сервера на Mikrotik
5) В пункте меню «Маршрутизация» мы можем настроить пользовательские маршруты в удаленные сети.
Пример: наш VPN Client подключается к VPN серверу (IP клиента: 172.16.0.2; IP Сервера: 172.16.0.1), нам нужно получить доступ к серверу телефонии находящемуся за нашим роутером (на котором и поднят VPN сервер) в сети 192.168.44.0/24
6) Подключаемся, работаем;)
Источник
Настройка OpenVPN на Android
Инструкция по настройке подключения VPN по протоколу системы OpenVPN на Android
Настройка VPN подключения на ОС Android
Для настройки VPN подключения необходимо из Play Маркет установить приложение OpenVPN Connect
Скачайте файл конфигурации подключения UDP или TCP для OpenVPN, который находится в описании к заказу VPN у нас в биллинге.
Запускаем приложение, из меню выбираем пункт Import.
Далее Import Profile from SD card
Нужно найти и выбрать файл #####UDP.ovpn или #####TCP.ovpn. Расположение файла, зависит от того, куда Вы его сохранили на Вашем устройстве.
При успешном импорте нужно ввести Имя пользователя (Username) и Пароль (Password) из личного кабинета.
Далее нужно нажать кнопку Connect, согласиться со всеми предупреждениями.
Если всплывает окно Select Certificate, выбрать Continue.
После успешного подключения Вы увидите сообщение Connected.
Настройка завершена. Если возникнут дополнительные вопросы, воспользуйтесь нашей системой тикетов.
Источник
OpenVPN для Windows и Андроид. Установка OpenVPN клиента для Windows.
OpenVPN — свободная реализация технологии виртуальной частной сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT и сетевым экраном, без необходимости изменения их настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.
- создание и подключение к виртуальным сетям;
- создание шифрованных подключений (тоннелей) точка-точка;
- возможность подключения через HTTP и SOCKS-поркси, NAT и различные сетевые фильтры;
- надёжная защита передаваемых данных с помощью OpenSSL и различных типов шифрования;
- уменьшение нагрузки на канал за счёт сжатия трафика;
- различные виды аутентификации с возможностью использования сторонних модулей и скриптов.
Как работает OpenVPN
Протокол OpenVPN отвечает за поддержание коммуникации между клиентом и сервером. Как правило, он используется для создания защищённого туннеля между VPN-клиентом и сервером. Читайте так же: «Как обойти блокировку»
Для шифрования и аутентификации OpenVPN использует библиотеку OpenSSL. Кроме того, для передачи данных OpenVPN могут использоваться протоколы UDP или TCP.
- TCP требует отклика от клиента, которому доставлен пакет данных, подтверждения доставки, и для этого ему необходимо установленное заранее соединение. Протокол TCP исключает потери данных, дублирование и перемешивание пакетов, задержки.
- UDP всё это допускает, и соединение для работы ему не требуется. Протокол UDP доставляет пакеты данных гораздо быстрее, потому лучше подходит для приложений, которые рассчитаны на широкую пропускную способность и быстрый обмен.
Установка OpenVPN на машину-сервер
Инсталляция представляет собой стандартную процедуру с некоторыми нюансами, о которых и поговорим подробнее.
- Первым делом необходимо скачать программу по ссылке ниже.Скачать OpenVPN
Делаем мы это и для того, чтобы избежать сбоев при выполнении скриптов, так как пробелы в пути недопустимы. Можно, конечно, брать их в кавычки, но внимательность может и подвести, а искать ошибки в коде – дело непростое.
Настраиваем сервер.
Создаем:
с:openvpneasy-rsavars.bat
echo off
set path=%path%;c:OpenVPNbin
set HOME=c:OpenVPNeasy-rsa
set KEY_CONFIG=openssl.cnf
set KEY_DIR=c:OpenVPNssl
set KEY_SIZE=1024
set KEY_COUNTRY=RU
set KEY_PROVINCE=mycity
set KEY_CITY= mycity
set KEY_ORG=Comp
set KEY_EMAIL=admin@local
«с:openvpneasy-rsaopenssl.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=$
####################################################################
[ 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 = 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
Копируем index.txt.start в index.txt, а serial.start в serial в папку ssl
Как настроить сетевой мост между двумя сетями для Open VPN сервера?
В моем случае необходимо, чтобы клиенты подключаясь к нашей сети видели наши доступные компьютеры, а наши сервера «видели» бы нужные сетевые принтеры в соседней сети. Для этого нам нужно создать сетевой мост — объединить два сетевых устройство между собой.
В нашем случае это наш сетевой адаптер, который «смотрит» в интернет и только что созданный адаптер TAP. Настройки IP обнуляем. Выделяем оба адаптера мышкой и объединяем в «мост»:
После установки устройства «Сетевой мост» нужно сделать ему настройки через «свойства» IP адреса, шлюза, маски а так же адреса DNS -серверов (выданные провайдером) . Если IP не было — назначить постоянный, внутренний. Это важно, без этого наш сервер не заработает!
Настройки IP адаптеров включенных в мост не изменяем и ничего не трогаем!
Отключаем брандмауэр windows. Дополнительно, там же идем в «Разрешение обмена данными с приложениями в брандмауэре Windows, добавляем наш установленный open vpn в список (C:Program FilesOpenVPVBinOpenVPNgui,exe).
Сняли возможную блокировку соединения. Идем далее! Предварительная подготовка почти закончена. Теперь займемся непосредственно сервером. Идем в папку C:Program FilesOpenVPVeasy-rsa
В ней находятся программы с которыми мы сейчас будем взаимодействовать. Открываем командную строку от имени Администратора. Переходим в папку easy-rsa, для чего в командную строку скопируем команду cd C:Program FilesOpenVPNeasy-rsa
Все операции далее совершаем через командную строку. Для создания конфигурации сервера запустим файл init-config.bat
Создастся файл vars.bat, в нем мы заполним информацию, которую будут содержать сертификаты безопасности и с их помощью будут шифроваться данные. Для этого в блокноте открываем файл vars.bat и произвольно заполняем значения (командную строку не закрываем!):
rem down TLS negotiation performance
rem as well as the one-time DH parms
rem generation process.
set DH_KEY_SIZE=2048
rem Private key size
set KEY_SIZE=4096
rem These are the default values for fields
rem which will be placed in the certificate.
rem Change these to reflect your site.
rem Don’t leave any of these parms blank.
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@host.domain
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
Значения «server» не изменяем. Все значения (страна, регион, город, организация, почтовый адрес) проставляем произвольно английским шрифтом. Сохраняем файл. Переходим в командную строку снова. Набираем первой команду Vars.bat
Если OpenVPN устанавливался ранее -набираем команду clean-all.bat Она удалит созданную до этого папку с ключами (keys) со всем содержимым . При установе сервера OpenVPN с нуля делать эту команду необязательно.
Если у вас так как на фото, нормально. Идем далее
Теперь с помощью проводника перейдем в каталог C:Program FilesOpenVPNbin и скопируем файлы библиотек (*.dll) , файл openssl.exe в каталог, где лежат наши исполняемы файлы и который открыт сейчас в командной строке (C:Program FilesOpenVPNeasy-rsa):
Библиотеки нужны в этом каталоге, чтобы не возникало ошибок при создании сертификатов центра авторизации и файла Диффи-Хеллмана. Начнем с последнего. Файл Диффи-Хеллмана препятствует расшифровке информации (если файлы ключей были похищены), а так же отвечает за шифрование. Создадим его для нашего сервера в командной строке набрав команду build-dh.bat
Ждем, пока файл генерируется на основании информации указанной в vars.bat Далее, сгенерируем сертификат нашего удостоверяющего центра. Он будет необходим для дальнейшей выдачи серверного и клиентских сертификатов. Наберем в командной строке команду build-ca.bat Последовательно и не спеша нажимаем клавишу Enter…
…после появления очередной строчки; данные в сертификате будут скопированы по значениям указанным в файле vars.bat Следующий этап — создадим сертификат нашего сервера. В командной строке набираем команду build-key-server.batserver (server -имя серверного сертификата):
Так же последовательно и не спеша нажимаем Enter пока не дойдем до строчки Common Name(eg, your name or your servers hostname Здесь нужно обязательно указать имя сервера ( можно имя компьютера) и нажать Enter. Далее будут оставшиеся поля и запрос на создание пароля от сертификата. Просто нажимаем Enter. На вопросы записи сертификата и добавления его в базу данных нажимаем Y и Enter
Срок действия сертификата — 10 лет.
Если нужно поменять сроки действия открываем файл openssl 1.00.cnf и в строке default_days редактируем сроки действия серверного и клиентских сертификатов.
Теперь нам необходимо создать файл конфигурации сервера, выбрать протокол соединения, имя сетевого виртуального адаптера, порт соединения и еще много чего.
В папке sample-config лежит пример файла server.ovpn, находим его, открываем блокнотом( от имени администратора!):
Openvpn клиенты не видят друг друга, как настроить файл конфигурации сервера?
Очищаем содержимое server.ovpn и вставляем текст:
# Поднимаем L4-туннель
dev tap
#dev tune
# Имя устройства (указывается имя адаптера openvpn):
dev-node Ethernet
# Протокол, который использую:tcp
#proto udp
proto tcp
# Порт который «слушает» впн (должен быть открыт, не из списка «известных»)
port 13359
#server 10.8.0.0 255.255.255.0
# Данная машина является
#tls-server
#Укажем пулл незанятых разрешенных адресов из нашей локальной сети; укажем IP «моста», его маску а так же диапазон адресов
# Пул разрешенных адресов
server-bridge 192.168.0.1 255.255.255.0 192.168.0.111 192.168.0.121
# Включаю сжатие
comp-lzo
# Разрешаю клиентам видеть друг друга
client-to-client
#назначаю каждому клиенту свой постоянный IP
ifconfig-pool-persist ipp.txt
# Немного улучшит пинг
mssfix
# # Грубо говоря экономим адреса
topology subnet
# Метод шифрования
cipher AES-256-CBC
#при перезагрузке сервера:
persist-key
persist-tun
#Максимальный размер блока данных:
tun-mtu 1500
tun-mtu-extra 32
# Немного улучшит пинг
mssfix 1450
# Время жизни клиентов, если не откликнулся — отключает
keepalive 10 120
# максимальное количество клиентов
max-clients 10
Жирным выделил то, что можно менять. Ненужные строки можно закомментировать. Сохраняем файл под именем server.ovpn в папке C:Program FilesOpenVPNconfig Если не получается сохранить — запускаем блокнот (или программу NotePad++) от имени администратора, редактируем и сохраняем файл куда нужно.
Из папки Key скопируем сгенерированные нами файлы ключей и сертификатов, файл dh2048.pem в папку Config — там же уже должен лежать наш файл server.ovpn
Операции с сервером можно считать почти законченными. Давайте стартуем и проверим наш сервер. На рабочем столе запустим ярлык OpenVPNgui в виде оранжевой замочной скважины (от имени Администратора!) На панели задач рядом с основным значком появиться еще один значок подключения. Кликнув по нему мышкой обнаруживаем, что устанавливается соединение. Если сервер стартовал успешно — значок подключения станет зеленым
Как сделать автоматический старт OpenVPN соединения при запуске Windows?
Каждый раз запускать вручную соединение неудобно. В ярлыке OpenVPNgui (свойствах объекта) дописываем аргумент —connect server.ovpn, Ярлык помещаем в «автозагрузку». Я настраивал автозапуск быстро с помощью glary utilites
Вот так это выглядит Команда —connect дает соединение, а настройки его берутся из файла нашего server.ovpn
Если планируется круглосуточная работа сервера — советую настроить операционную систему на автоматический вход без пароля. Это гарантирует самозапуск соединения после перезагрузок, которые бывают при отключении света, установки обновлений.
С сервером закончили. Не забываем открыть порт (указанный в конфиге сервера) на роутере, чтобы предоставить доступ к нашему серверу извне.
Пора создавать сертификаты
Открываем командную строку от имени администратора и выполняем последовательно:
- vars
- clean-all
- build-ca
#(принимаем все значения по умолчанию нажатием клавиши Enter) - build-dh
- build-key-server SERVER_NAME(на ваш выбор)
#При запросе на ввод Common name необходимо снова ввести наше SERVER_NAME
Далее во избежание проблем с созданием сертификата клиента очищаем index.txt папке ssl - buid-key KLIENT(на ваш выбор)
- openvpn —genkey —secret %KEY_DIR%ta.key
Создаем server.ovpn в папке config и редактируем его.
Создаем server.ovpn в папке config и редактируем его.
server.ovpn dev tun
proto tcp-server
port 5190
tls-server
server 192.168.0.0 255.255.255.0
comp-lzo
dh C:\OpenVPN\ssl\dh1024.pem
ca C:\OpenVPN\ssl\ca.crt
cert C:\OpenVPN\ssl\Server.crt
key C:\OpenVPN\ssl\Server.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\openvupn-status.log
log C:\OpenVPN\log\openvpn.log
verb 3
Отправляем CA.crt, klient.crt, klient.key, ta.key из «c:openvpnssl» нашим клиентам (помещаем их в такую же директорию « c:openvpnssl»).
Настройка клиента
На сервере:
На сервере генерируем сертификат для клиента. Для этого сначала чистим файл index.txt в папке C:Program FilesOpenVPNeasy-rsakeys.
Затем запускаем командную строку от имени администратора:
Переходим в каталог easy-rsa:
И генерируем сертификат первого пользователя:
* на все запросы наживаем Enter, кроме Common Name — в данном поле вводим имя клиента (в нашем случае, просто client1). В конце подтверждаем введенную информацию — y.
** На каждого клиента нужно сгенерировать свой сертификат, в противном случае, им будет присваиваться один и тот же IP-адрес, что будет приводить к конфликту.
Получиться, что-то на подобие:
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Sankt-Petersburg]:
Locality Name (eg, city) [Sankt-Petersburg]:
Organization Name (eg, company) [Organization]:
Organizational Unit Name (eg, section) [DMOSK]:
Common Name (eg, your name or your server’s hostname) [DMOSK]:client1
Name [server.domain.ru]:
Email Address [master@dmosk.ru]:
По умолчанию, для Common Name будет подставляться значение из vars.bat — но с ним сертификат не будет создаваться. Необходимо при создании каждого ключа подставлять значение, равное имени сертификата. Например, как выше — подставлено client1.
Теперь из папки keys копируем файлы:
- client1.crt
- client1.key
- ca.crt
- dh.pem
… и переносим их на клиентский компьютер.
На клиенте:
Заходим на официальную страницу загрузки openvpn и скачиваем клиента для Windows:
* по сути, это тот же файл, который скачивался для сервера.
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
Переходим в папку C:Program FilesOpenVPNconfig. И копируем в нее сертификаты, которые перенесли с сервера.
Теперь открываем блокнот от имени администратора и вставляем следующие строки:
client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
comp-lzo
ca ca.crt
cert client1.crt
key client1.key
dh dh.pem
float
cipher DES-CBC
keepalive 10 120
persist-key
persist-tun
verb 0
* где 192.168.0.15 443 — IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы. Для боевой среды это будет внешний адрес.
Сохраняем файл с именем config.ovpn в папке C:Program FilesOpenVPNconfig.
Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора (это важно).
Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:
Произойдет подключение и значок поменяет цвет с серого/желтого на зеленый.
Доступ к локальной сети
По инструкции выше мы сможем получить доступ только к серверу, на котором установлен OpenVPN. Для получения доступа ко всей внутренней сети, выполним следующие шаги.
1. Настройка реестра
Для включения IP маршрутизации в Windows необходимо в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters найти параметр IPEnableRouter и задать ему значение 1. Это можно сделать в утилите редактирования реестра (regedit) или командой:
reg add «HKLMSYSTEMCurrentControlSetServicesTcpipParameters» /v IPEnableRouter /t REG_DWORD /d 1 /f
* командную строку необходимо запускать от администратора.
2. Настройка OpenVPN Server
В конфигурационный файл OpenVPN добавим:
push «route 172.16.10.0 255.255.255.0»
push «route 192.168.2.0 255.255.255.0»
* где 172.16.10.0 — VPN сеть; 192.168.2.0 — локальная сеть, в которую необходимо «попасть» пользователям openvpn.
При необходимости использовать DNS внутренней сети также добавим:
push «dhcp-option DNS 192.168.0.15»
push «dhcp-option DNS 192.168.0.16»
push «dhcp-option DOMAIN dmosk.local»
* где 192.168.0.15 и 192.168.0.16 — внутренние DNS-серверы; dmosk.local — домен, который будет добавляться к узлам, обращение к которым идет по неполному имени.
Если нам нужно, чтобы все запросы клиента (в том числе, Интернет) ходили через сервер OpenVPN, добавляем:
push «redirect-gateway def1»
* в таком случае, нам не обязательно добавлять push route, который мы использовали выше.
Перезагружаем службу OpenVpnService.
3. Разрешаем доступ к локальной сети
Заходим в управление сетевыми подключениями (Панель управленияСеть и ИнтернетСетевые подключения). Кликаем правой кнопкой мыши по адаптеру локальной сети — Свойства:
На вкладке Доступ ставим галочку Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера:
… и сохраняем настройки.
Ваш аккаунт
Возможные проблемы
Большая часть проблем решается при помощи логов, которые находятся в папке C:Program FilesOpenVPNlog. Уровень детализации лога контролируется параметром verb в конфигурационном файле сервера или клиента.
Также возможны следующие часто возникающие проблемы:
- Проблема: клиент постоянно пытается подключиться к серверу, но соединения не происходит или подключение зависает.
Причина: сервер блокирует подключения по настроенному порту VPN (в нашем примере, 443).
Решение: на сервере необходимо добавить 443 порт в исключения брандмауэра или отключить последний. - Проблема: при попытке подключиться к серверу выскакивает ошибка «Не удалось подключиться к config».
Причина: ошибка в настройках.
Решение: перепроверьте каждую строчку файла конфигурации. Проверьте наличие всех файлов, на которые ссылаетесь в настройках. - Проблема: клиенты получают одинаковые IP-адреса.
Причина: подключение выполняется под одним и тем же пользователем.
Решение: сервер выдает одинаковые адреса одинаковым клиентам. Необходимо настроить авторизацию на сервере и выдать каждому клиенту индивидуальные настройки. - Проблема: соединение происходит, но через несколько минут связь прерывается.
Причина: дублирование IP-адресов.
Решение: данная проблема описана выше (пункт 3).
Заключение
Организация собственной VPN-сети позволит вам максимально защитить передаваемую информацию, а также сделать интернет-серфинг более безопасным. Главное – быть внимательнее при настройке серверной и клиентской части, при правильных действиях можно будет пользоваться всеми преимуществами частной виртуальной сети.
Источник