файл Vpn. Безкоштовний VPN. Приховуємо IP. Загальні проблеми з відкриттям файлів VPN

Ця інструкція демонструє, як підключитися до сервера ретрансляції VPN Gate, використовуючи клієнт OpenVPN у системах Windows XP, 7, 8, 10, Server 2003, 2008, 2012.

1. Встановіть клієнтську програму OpenVPN для вашої операційної системи.Запустіть інсталяційний файл. Відкриється майстер установки. Дотримуйтесь підказок на екрані, щоб виконати інсталяцію програми.

2. Завантажте та завантажте файл конфігурації підключення OpenVPN (файл ovpn). Ця процедура потрібна лише при первинному налаштуванні підключення.

Завантажити конфігураційний файл (OpenVPN Config file) можна на сторінці списку відкритих безкоштовних серверів ретрансляції http://www.vpngate.net/en/ . Виберіть VPN-сервер, до якого потрібно підключитися, і натисніть на відповідний файл *.ovpn, щоб завантажити його на робочий стіл або папку завантаження.

Після збереження файлу на комп'ютері він відображатиметься як іконка OpenVPN. Тим не менш, ви не зможете встановити підключення, просто двічі клацнувши по файлу.

Потрібно перемістити файл *.ovpn до папки "config" основної директорії установки OpenVPN.

Відкрийте папку C:\Program Files\OpenVPN\config і скопіюйте файл *.ovpn до неї.

Клацніть правою кнопкою миші на іконці “OpenVPN GUI” на робочому столі та виберіть опцію “Запустити від імені адміністратора”. Інакше встановити VPN підключення не вдасться.

Іконка OpenVPN GUI з'явиться в області сповіщення панелі завдань (системний трей). У деяких випадках значок може бути прихованим, натисніть значок стрілки, щоб показати всі приховані іконки.

Клацніть правою кнопкою миші на іконці OpenVPN GUI і натисніть “Підключити”.

Запустити підключення VPN. Статус підключення відображатиметься на екрані. Якщо ви побачите діалогове вікно запиту імені користувача та пароля. Введіть "vpn" в обидва поля. Це вікно з'являється дуже рідко.

Якщо підключення VPN успішно встановлено, з'явиться спливаюче повідомлення як на скріншоті.

4. Інтернет без обмежень

Коли підключення VPN встановлено, Windows створює віртуальний мережний адаптер TAP-Windows Adapter V9. Цей адаптер отримає IP-адресу, яка починається з “ 10.211 ”. Віртуальний адаптер отримає адресу шлюзу за промовчанням.

Ви зможете перевірити конфігурацію мережі, запустивши команду ipconfig /all у командному рядку Windows.

Коли з'єднання встановлено, весь мережний трафік проходитиме через VPN-сервер. Переконатись у цьому ви зможете за допомогою команди tracert 8.8.8.8 у командному рядку Windows.

Як показано на скріншоті вище, якщо пакети проходять через "10.211.254.254", то ваше підключення ретранслюється через один із серверів VPN Gate. Ви також можете перейти на основну сторінку VPN Gate , щоб переглянути глобальну IP-адресу.

Ви зможете побачити видиме з мережі місце, яке відрізнятиметься від вашої фактичної локації.

Налаштування OpenVPN для MacOS

Ця інструкція показує, як підключитися до сервера ретрансляції VPN Gate, використовуючи програму Tunnelblick. Tunnelblick є версіями клієнта OpenVPN з графічною оболонкою. для MacOS.

1. Встановіть програму Tunnelblick

Завантажте та встановіть останню версію програми Tunnelblick. Під час встановлення на екрані відображатимуться інструкції.

Після завершення інсталяції з'явиться наступний екран. Виберіть опцію "У мене є конфігураційні файли".

На екрані буде показано інструкцію з додавання конфігурації до Tunnelblick.

Натисніть кнопку ОК, щоб закрити вікно.

2. Завантажте файл конфігурації підключення OpenVPN (файл.ovpn) та завантажте.Ця процедура потрібна лише при первинному налаштуванні підключення.

Файл конфігурації формату *.ovpn буде потрібний для підключення до сервера ретрансляції VPN Gate через протокол OpenVPN.

Завантажити конфігураційний файл (OpenVPN Config file) можна на сторінці списку відкритих безкоштовних серверів ретрансляції http://www.vpngate.net/en/ . Виберіть VPN-сервер, до якого потрібно підключитися, і натисніть на відповідний файл *.ovpn, щоб його завантажити в папку завантажень (Downloads).

Щоб встановити файл конфігурації *.ovpn, перетягніть його на значок Tunnelblick у рядку меню або на список конфігурацій у вкладці «Конфігурації» вікна «Деталі VPN». Якщо потрібно встановити відразу кілька конфігураційних файлів - виділіть їх усі, а потім перетягніть.

Під час додавання потрібно буде ввести ім'я користувача та пароль від облікового запису MacOS.

Натисніть на іконці Tunnelblick на верхній панелі інструментів MacOS і виберіть “З'єднати [назва конфігурації]”. Буде запущено підключення до VPN.

З'явиться статус підключення до VPN, як показано на скріншоті. Після успішного встановлення підключення, в основному вікні Tunnelblick буде відображатися стан "З'єднаний".

4. Інтернет без обмежень

Коли з'єднання встановлено, весь мережний трафік проходитиме через VPN-сервер. Ви також можете перейти на основну сторінку VPN Gate, щоб переглянути глобальну IP-адресу. Ви зможете побачити видиме з мережі місце, яке відрізнятиметься від вашої фактичної локації.

При підключенні до VPN ви зможете відвідувати заблоковані веб-сайти та грати у заблоковані ігри.

Знайшли друкарську помилку? Виділіть та натисніть Ctrl+Enter

Привіт анонімус.

Сьогодні розповім про 4 сервіси, які надають послуги VPNщоб сховати IP. Розглядатимуться сервіси на Open vpnтому вам доведеться завантажити open vpn клієнт. Звичайно, на цих сайтах можуть бути й інші протоколи, але я вважаю такий протокол більш оптимальним.
Доступ можна отримати як на ПК (Windows, linux) так і на Android, IOS пристрої.
Налаштування Open VPN на Windows.
Спочатку вам необхідно завантажити з сайту VPN сертифікат (файл конфігурацій у форматі.opvn), у кожного сервісу свої налаштування.
Знаходьте завантажений архів і розпаковує файл або кілька файлів з розширенням ovpn в папку з config де знаходиться програма openvpn . У мене вона знаходиться за адресою "C:\Program Files\OpenVPN\config"
Далі відкриваєте програму Open VPN gui, у треї з'явиться значок програми сірого кольору, натискаєте правою кнопкою миші та вибираєте потрібний протокол, натискаєте підключитися та вбиваєте логін та пароль із сайту натискаєте підключитися. Чекаємо, якщо все добре піде підключення та значок стане зеленого кольору. Все, можете скористатися інтернетом.


Тут все просто. Переходьте на вкладку «Accounts» , бачите ANONYMOUS SERVER #1 і ANONYMOUS SERVER #2 (у мене працює тільки перший), під Open vpn є потрібна нам інформація про логін та пароль доступу (паролі часто змінюються).
наприклад.
Username: freevpnme
Password: Pmn48NqjE
Записуєте цю інформацію та завантажуєте сертифікати «Download Server #1 certificate Bundle» або «Download Server #2 certificate Bundle» якщо ви вибрали ANONYMOUS SERVER #2. Поміщаємо сертифікати в папку з програмою.

Теж добрий сайт. Є 6 безкоштовних серверів VPN, на головній сторінці можна побачити які з них активні Server Status. Перейдіть у вкладку Free VPN accounts і дивіться Open vpn.
Завантажуєте потрібний сертифікат, наприклад - Euro1 OpenVPN Certificate Bundle. Там є паролі. У моєму випадку зараз
Username: vpnbook
Password: Spupru2r.
Далі ви вже знаєте, як налаштувати.

Тут багато країн. На головній сторінці прокручує вниз і бачите таблиці, де описані
країни, де знаходиться vpn тд. Вибираєте потрібну вам країну і завантажуєте сертифікат OpenVPN Config file , далі залишається скинути його в папку config. Паролі не потрібні, вони вже вбиті у сертифікати. Вам залишається підключитись через іконку в треї.

Тут 2 сервери USA, у мене заробив лише перший. Відкриваєте вкладку Free VPN, прокручуєте сторінку до Free OpenVPN, завантажуєте сертифікат US1 server "Download configs". Там же знаходиться логін та пароль, у моєму випадку
Username: us_open
Password: ezptcd
Цього достатньо. У цій статті я розповідаю про VPN сервіси, які вже мають програму, яку і потрібно лише скачати і користуватися.

Related posts:

безкоштовний firewall. захист комп'ютера в інтернеті

З'явилася у мене необхідність підключатися до комп'ютера, що знаходиться в локальній мережі офісу з дому. Як варіанти, розглядав різні рішення, будь то Team Viewer, ssh-тунель і т.д., але в результаті було вирішено зупинитися на OpenVpn, зважаючи на гарантовану безпеку, надійність з'єднання і фріварність софту.
Але на свій подив будь-яку інструкцію, доводилося тією чи іншою мірою доопрацьовувати. Тому вирішив запропонувати вашій увазі свій варіант. Інструкція «суха» без особливих пояснень конфігів, розрахована на те, що можна особливо не вдаючись у сенс підняти шифрований тунель.
Для початку, звичайно, завантажуємо програму з офіційного сайту (http://openvpn.net/index.php/download/community-downloads.html). Далі рекомендую встановити її в директорію «c:\openvpn», щоб потім не виникало зайвих проблем із шляхами. Також відразу треба створити «c:\openvpn\ssl», потім помістимо сюди всі наші «ключики», «з:OpenVPN\log\openvpn.log» і «з:OpenVPN\log\openvpn-status.log» - для запису логів.
Приступаємо до редагування всіх наших конфігів. Щоб офісний фаєрвол не заважав майбутньому з'єднанню налаштуємо серверну частину будинку на ПК, а клієнтську на робочому.

Налаштовуємо сервер.

Створюємо:

з:\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=UA
set KEY_PROVINCE=mycity
set KEY_CITY = mycity
set KEY_ORG=Comp
set KEY_EMAIL=admin@local


«з:\openvpn\easy-rsa\openssl.cnf"

#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#

# Ця definition stops 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

# Для використання цього параметра файлу з "-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 it main [= default] section.)

# Ви можете призначити нові OIDs в ньому, використовуючи "ca" і "req".
# Add a simple OID like this:
# testoid1 = 1.2.3.4
# або 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
# Для типу 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

commonName = supplied
emailAddress = optional

# Для " anything " policy
# At this point in time, ви повинні все усвідомлювати "об'єкт"
# 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 # Додатки до того, щоб до self signed cert

# Passwords for private keys if not present they will be prompted for
# input_password = secret
# output_password = secret

# Це число для запису string types. Існують several options.
# default: PrintableString, T61String, BMPString.
# pkix: PrintableString, BMPString.
# utf8only: only UTF8Strings.
# nombstr: PrintableString, T61String (не BMPStrings або UTF8Strings).
# MASK:XXXX a literal mask value.
# WARNING: поточні версії 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 або 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, ваш name або ваш сервер з 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

# Ці extensions є added when "ca" signs a request.

# Ці 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

# Тут є деякі приклади використання nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.

# Це OK для SSL-сервера.
#nsCertType=server

# For an object signing certificate this would be used.
#nsCertType = objsign

# Для окремого клієнта use this is typical
# nsCertType = client, email

# and for everything including object signing:
# nsCertType = client, email, objsign

# Цей типовий в 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 входять до всіх certificates.
subjectKeyIdentifier=hash

# Це означає, що 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

# JY ADDED - Make a cert with nsCertType set до «server»
basicConstraints=CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always

# Extensions to add to a certificate request

BasicConstraints = CA: FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment

# Extensions for a typical CA

# PKIX recommendation.

SubjectKeyIdentifier=hash

# 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 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 extensions.
# Тільки issuerAltName and authorityKeyIdentifier може бути не в CRL.

# issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always


Копіюємо index.txt.start до index.txt, а serial.start до serial до папки ssl

Час створювати сертифікати

Відкриваємо командний рядок від імені адміністратора та виконуємо послідовно:
  • 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

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

verb 3


Відправляємо CA.crt, klient.crt, klient.key, ta.key з "c:\openvpn\ssl" нашим клієнтам (поміщаємо їх в таку ж директорію "c:\openvpn\ssl").

Налаштування клієнта

На комп'ютері клієнта необхідно встановити завантажений нами додаток таким же шляхом c:\openvpn. Створюємо папку ssl та файли openvpn.log, openvpn-status.log
Створюємо clientVPN.ovpn у папці c:\openvpn\config та редагуємо його.

”clientVPN.ovpn”

dev tun
proto tcp
remote x.x.x.x 7777 (адреса сервера по мережі ip/dyndns)
route-delay 3
client
tls-client
ns-cert-type server
ca C:\OpenVPN\ssl\ca.crt
cert C:\OpenVPN\ssl\client.crt
key C:\OpenVPN\ssl\client.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

На сервері запускаємо файл server.ovpn (кнопка "StartOpenvpn ..." у контекстному меню), на клієнті clientVPN.ovpn. При необхідності змінюємо тип запуску нашої служби (OpenVPN Service) на "Автоматично". Тунель піднято, можете сміливо заходити на роботу, допустимо по RDP. Адреса сервера у нашій віртуальній мережі буде 192.168.0.1. Сподіваюся, цей пост скоротить час для налаштування OpenVpn, навіть для початківців до декількох хвилин.

Теги: openvpn

Ця стаття не підлягає коментуванню, оскільки її автор ще не є повноправним учасником спільноти. Ви зможете зв'язатися з автором лише після того, як він отримає запрошення від будь-кого з учасників спільноти. До цього моменту його username буде прихований псевдонімом.

Працюючи з хмарними сервісами важлива як швидкість обробки та передачі - перше місце висувається гарантований рівень безпеки. Дані, що зберігаються на зовнішньому ресурсі, у жодному разі не повинні потрапити до чужих рук. З іншого боку, завжди з'являються повідомлення про спроби країн щось і заблокувати. Напевно, тому в Останнім часомзріс інтерес до VPN-рішень, і поряд із вже традиційними IPsec/XFRM та OpenVPN у Linux стали активно розвиватися ще кілька проектів. Сьогодні на тебе чекають чотири цікаві екземпляри: SoftEther VPN, WireGuard, FreeLAN і GoVPN.

SoftEther VPN

SoftEther VPN – академічний проект японського Цукубського університету (University of Tsukuba), що розповсюджується під ліцензією GPLv2. Головною його особливістю є підтримка кількох VPN-протоколів, сумісних із оригінальними клієнтами. Це дозволяє замість парку серверів із пропрієтарних та open source рішень використовувати для підключення клієнтів, що працюють під управлінням різних ОС, одна програма. І просто вибирати потрібний протокол, залежно від конкретної ситуації. Підтримуються: SSL-VPN (HTTPS), IPsec, L2TP, MS-SSTP, L2TPv3, EtherIP та OpenVPN. SoftEther VPN працює в режимах remote-access та site-to-site, на рівнях L2 (Ethernet-bridging) та L3 (IP). У разі заміни OpenVPN ми отримуємо простішу конфігурацію. Існує генератор ovpn-файлів для швидкого підключення VPN-клієнта. Заміна SSTP VPN дозволяє відмовитись від використання серверів на базі Win2k8/2012, які потребують ліцензії. Власний протокол забезпечує проходження Ethernet поверх HTTPS (звідси і назва проекту – Software Ethernet), характеризується гарною пропускною здатністю та низькою латентністю. Його використання дає можливість прозоро з'єднати кілька мереж Ethernet в одну, тобто відпадає необхідність у додаткових рішеннях Ethernet-over-IP.

І головне - він сумісний з NAT і працює через стандартний 443 порт, який зазвичай не блокується брандмауерами провайдерів. Ця можливість дозволяє приховати взагалі використання VPN: з боку трафік виглядає звичайним і не виявляється технологіями Deep Packet Inspection. Власне, тому він і став дуже популярним у Китаї, де його використовують для обходу Великого китайського файрвола. При цьому на стороні клієнта реалізовано віртуальний мережевий адаптер Ethernet, а на сервері – віртуальний комутатор. Великий плюс - наявність NAT Traversal, включеної за умовчанням, тобто не потрібно просити адміна відкрити доступ до VPN-сервера, що знаходиться у внутрішній мережі. Але це ще не все. У мережах з обмеженим доступом, у яких блокуються всі TCP- та UDP-пакети (наприклад, публічні Wi-Fi), для створення VPN можна використовувати протоколи ICMP та DNS, які зазвичай не блокуються брандмауером. Підтримується Dynamic DNS, що дозволяє отримати доступ при динамічно змінній IP-адресі. Для цього реалізовано сервіс VPN Gate, званий VPN Azure Cloud Service, - до нього можна організувати з'єднання з внутрішньої мережі і потім за необхідності вільно потрапляти всередину мережі. Клієнтська частина містить спеціальний плагін VPN Gate, що дозволяє відстежувати зміну IP та швидко підключатися до VPN Gate.

Забезпечується висока продуктивність та швидкість з'єднання 1 Гбайт/с без істотних обмежень за обсягами ОЗП та мінімальним навантаженням на процесор. Тому вимоги до серверної частини дуже низькі. За тестами SoftEther VPN обходить на тому самому обладнанні оригінальні рішення. Підтримується шифрування AES-256 та RSA-4096, IPv4/IPv6, журналування трафіку та подій. Аутентифікація користувачів локальна, RADIUS та домен Windows.

Адміністрування облікових записів та параметри безпеки можуть бути налаштовані віддалено за допомогою графічного інтерфейсу Server Manager (локалізація тільки англійська, японська та китайська), який встановлюється на Win- або macOS-комп'ютері адміністратора або за допомогою утиліти командного рядка vpncmd. Можливе встановлення на Windows, Linux, macOS, FreeBSD та Solaris. Доступний вихідний код та архів зі скомпільованим додатком. Для встановлення потрібно вибрати ОС, платформу та компонент (сервер, клієнт, bridge...). Офіційно підтримуються Linux-ядра 2.4/2.6/3.x, але без проблем працює і в сучасних дистрибутивах із ядром 4.х. У Linux достатньо розпакувати архів і запустити файл.install.sh, після чого три рази прийняти умови ліцензії і після закінчення запустити сервер:

WireGuard

WireGuard – результат досліджень автора проекту Джейсона Доненфілда (Jason A. Donenfeld), глави компанії Edge Security. Продукт із вбудованою криптографією, одночасно простий у використанні та в реалізації (трохи більше 4000 рядків коду), що суттєво виділяє його серед інших рішень. Наприклад, його код легше проаналізувати, ніж усе, що написано в рамках *Swan/IPsec чи OpenVPN. Наймолодший проект огляду. Про нього заговорили в середині літа 2016 після публікації анонсу в списку розсилки розробників ядра Linux, де був представлений патч до ядра. Хоча сам проект розвивається вже кілька років і пройшов стадію рецензування криптографії, тобто можна впроваджувати його в основне ядро.

З'єднання VPN ініціалізується (handshake) шляхом обміну відкритими ключами і нагадує підхід, що застосовується в SSH. Все інше прозоро обробляється WireGuard, немає необхідності турбуватися про ключі, роутинг, контроль стану та інше, це все турбота WireGuard. Можливе використання симетричного шифрування, але це вимагатиме трохи більших налаштувань. Маршрутизація виконується за ключами шифрування, для цього до кожного мережного інтерфейсу прив'язується закритий ключ. Для оновлення ключів handshake відбувається через визначений часабо за сигналом, що ключі застаріли. Для узгодження ключів та з'єднання замість власного демона в просторі користувача використовується механізм Noise_IK з Noise Protocol Framework, схожий на підтримку authorized_keys у SSH, без ускладнень у вигляді підтримки x509 та ASN.1.

Для шифрування застосовуються потоковий шифр ChaCha20 та алгоритм автентифікації повідомлень (MAC) Poly1305. Для створення спільного секретного ключа - протокол Діффі - Хеллмана на еліптичних кривих у реалізації Curve25519, запропонованої Деніелом Бернштейном. Для хешування використовуються BLAKE2s (RFC 7693) та SipHash-2-4. Уникнути replay-атаки дозволяє мітка часу TAI64N, пакети з меншою міткою часу відкидаються.

Передача даних здійснюється на третьому рівні ISO через інкапсуляцію пакетів UDP. Підтримуються IPv4 і IPv6, інкапсуляція v4 в6 і v6 в4. Може працювати за NAT та файрволом. Підтримується зміна IP-адреси VPN-сервера без розриву з'єднання з автоматичним перенастроюванням клієнта.

Після встановлення в системі з'являється новий мережний інтерфейс wg0, який може бути налаштований штатними інструментами ipconfig/ip-address та route/ip-route. Спеціальна утиліта wg дозволяє встановити секретний ключ пристрою та вказати список асоціацій для клієнтів (його публічний ключ, дозволений IP).

Для встановлення знадобиться дистрибутив із ядром Linux >4.1. Пакет можна знайти у репозиторіях основних дистрибутивів Linux. Для Ubuntu 16.04 є PPA.

$ sudo add-apt-repository ppa:hda-me/wireguard $ sudo apt update $ sudo apt install wireguard-dkms wireguard-tools

Самостійне складання з вихідних текстів також нескладне. Піднімаємо інтерфейс, генеруємо пару ключів (наприклад зберігаємо у файлах privatekey і publickey):

$ sudo ip link add dev wg0 type wireguard $ wg genkey | tee privatekey | wg pubkey > publickey

Отримуємо публічний ключ від клієнта та створюємо з'єднання.

$ sudo wg set wg0 listen-port 1234 private-key ~/privatekey peer IKy1eCE9pP1w... allowed-ips 192.168.0.0/24 endpoint 1.2.3.4:9876

Можливе використання PresharedKey (генерується командою wg genpsk), який додає ще один рівень симетричного шифрування до наявного шифрування з відкритим ключем. Для бенкету можна вказати PersistentKeepalive, що дозволяє підтримувати з'єднання через NAT та файрвол. Піднімаємо інтерфейс:

$ sudo ip address add dev wg0 192.168.0.1

Дивимося налаштування:

$ sudo wg

Для зручності краще заздалегідь підготувати файл конфігурації, що містить секцію interface і секції peer. Формат можна побачити, ввівши wg showconf.

$ sudo wg setconf wg0 myconfig.conf

Підходить як для невеликих вбудованих пристроїв на зразок смартфонів, так і для магістральних маршрутизаторів. Тести показали, що WireGuard має приблизно вчетверо кращу пропускну спроможність і в 3,8 рази більш чуйний, ніж OpenVPN (256-bit AES з HMAC-SHA-2–256). Тут позначається як реалізація як модуля ядра, тоді як OpenVPN працює у userspace. Підвищення продуктивності обумовлено відмовою від використання CryptoAPI ядра, що працює досить повільно. Замість нього у WireGuard задіяні власні реалізації ChaCha20, Poly1305, BLAKE2s та Curve25519, які позиціонуються як швидкі та безпечні аналоги AES-256-CTR та HMAC, їх програмна реалізація дозволяє досягти фіксованого часу виконання без апаратної підтримки.

Також WireGuard завдяки меншим затримкам трохи краще виглядає у продуктивності в порівнянні з IPsec (256-bit ChaCha20 + Poly1305 і AES-256-GCM-128), але налаштування набагато простіше.

Поки WireGuard доступний лише Linux, після тестування передбачається портувати до інших ОС. Код розповсюджується під ліцензією GNU GPLv2.



FreeLAN

FreeLAN - мультиплатформний VPN-клієнт, який розповсюджується за ліцензією GNU GPL і відноситься до так званого класу Full Mesh, тобто використовує P2P технології. Проект щодо молодої, активно почав просуватися лише з 2013 року. Його головна відмінність від інших проектів - це вибір варіанта архітектури: клієнт-серверна (як звичний VPN, клієнти в залежності від установок можуть або не можуть обмінюватися даними один з одним, сервер може виступати як релей), P2P (клієнти підключаються один до одного безпосередньо ) і змішаний (обидва варіанти). Таким чином, можна гнучко настроїти VPN практично під будь-які умови. Наприклад, сервер може знадобитися, щоб отримувати доступ у внутрішню мережу або контролю з'єднань, в інших випадках можна дозволити підключатися безпосередньо.

Основою є власний протокол FSCP (FreeLAN Secure Channel Protocol), що базується на UDP. Може працювати як на рівні Ethernet, встановлюючи прямі з'єднання Ethernet між вузлами, так і на рівні IPv4/IPv6. Передбачена авторизація за секретним словом і X.509-сертифікатами, мінімальний розмір відкритого ключа RSA - 1024 біт, рекомендований - 2048 біт, як симетричний ключ використовується AES-256. Сесії мають обмежений термін служби, після закінчення якого перезапускаються, повідомлення містять лічильники та контролюють час, що дозволяє уникнути replay-атак. Для підтримки сеансу надсилаються повідомлення keep-alive. Заголовок повідомлення підписується приватним ключем або HMAC-SHA-256, якщо використовується pre-shared-ключ. Загалом вибір у налаштуваннях дуже великий.

Підтримуються Win, Linux, MacOS, Raspberry Pi. Пакет є у репозиторіях основних дистрибутивів, тому встановлення складнощів не викликає. За фактом програма є одним бінарником, тому створювати мережі дуже просто.

$ freelan --security.passphrase "secret"

За замовчуванням сервер відкриє UDP/12000 на всіх інтерфейсах, віртуальний інтерфейс отримає адресу 9.0.0.1. Використовуючи додаткові параметри, можна перевизначити, як і вказати сертифікати. Підключаємося до сервера з іншого вузла, надамо йому інший внутрішній IP:

$ freelan --security.passphrase "secret" --fscp.contact 1.2.3.4:12000 --tap_adapter.ipv4_address_prefix_length 9.0.0.2/24

Для зручності всі установки можна помістити в конфігураційний файл. При установці в Ubuntu вже є готовий шаблон /etc/freelan/freelan.cfg, який буде прочитаний під час запуску, а тому краще одразу внести до нього параметри. Альтернатива FreeLAN – PeerVPN або Cjdns, в яких також використовують розподілені технології.


GoVPN

GoVPN - легкий та простий у налаштуванні демон VPN, призначений для створення шифрованих та автентифікованих каналів зв'язку поверх UDP або TCP. Серед завдань проекту – безпечний код, який легко читати та аналізувати, безпеку, стійкість до DPI/цензури. Фактично GoVPN просто тунелює кадри Ethernet – ні більше ні менше. Немає особливих інструментів для керування IP, але для цього можна самостійно написати скрипти. Використовує мережні інтерфейси TAP, в налаштуваннях можна задавати його ім'я. MTU конфігуруються щодо кожного клієнта окремо. Написаний мовою Go та поширюється під ліцензією GPLv3. Для узгодження ключів використовується протокол із двосторонньою аутентифікацією сторін за парольною фразою (PAKE DH A-EKE: Diffie - Hellman Augmented Encrypted Key Exchange). Клієнт для підключення вводить парольну фразу, на серверній стороні зберігається верифікатор, який не можна використовувати з клієнтської сторони, тому навіть у разі злому сервера хакер не може видавати себе за клієнта.

Реалізовано три режими роботи:

  • звичайний (застосовується за умовчанням), коли у мережу йдуть просто зашифровані пакети;
  • noise (шумовий), коли пакети доповнюються шумом до постійної довжини;
  • CPR (постійна швидкість) - на додаток до noise пакети відправляються суворо через певний проміжок, якщо ні корисної інформації, надсилається шумовий пакет.

В останніх двох режимах завдяки генеруванню постійного шумового трафіку вдається приховувати довжину повідомлень і факт передачі корисного навантаження. Має властивість нульового нерозголошення, при якому неможлива offline-атака за словником, стійка до replay-атаків через використання одноразового коду автентифікації повідомлення (message authentication code) та синхронізацію часу (опціонально). Передбачено ротацію сесійних ключів та відправлення heartbeat для підтримки роботи через NAT або файрвол. Для хешування парольних фраз задіяно Balloon (у релізі 6.0). У релізі 5.0 це був Argon2d, раніше PBKDF2. Тому версії несумісні.

Є нешифрований режим, який також забезпечує конфіденційність та автентичність даних завдяки технології chaffing and winnowing. Він дозволяє обійти обмеження використання криптографічних інструментів у деяких країнах. Замість шифрування застосовуються алгоритми аутентифікації та передача безлічі зайвих пакетів (одержувач просто відбирає ті, що йому підходять). Але це збільшує кожен пакет на 4128 байт, тому режим вимогливий і до процесора, і до зайвого трафіку, що передається.

Сумісний з IPv4 та IPv6. Можливе підключення через зовнішній HTTP-проксі, клієнт також має вбудований режим HTTP-проксі, який можна використовувати для доступу до сервера. Для отримання статистики про підключених клієнтів у режимі реального часу в форматі JSON використовується вбудований HTTP-сервер. Підтримується робота в GNU/Linux та FreeBSD. Сервер конфігурується за допомогою YAML-файлу.

Готових пакетів проект не пропонує, тільки вихідні тексти, для збирання знадобляться пакети uml-utilities та golang. Хоча неофіційні порти з'явилися вже у деяких дистрибутивах. Дистрибутив постійно розвивається, і частина інструкцій із налаштування вже недійсна.


Висновок

Кожне з представлених рішень має свої плюси, варто придивитися і вибрати потрібне залежно від запланованих завдань.

І завантажуємо останню версію програми для відповідної версії Windows:

Запускаємо завантажений файл - натискаємо Next - I Agree- і виставляємо галочку OpenVPN RSA Certificate Management Scripts (потрібний для можливості згенерувати сертифікати):

знову Nextі Install- Почнеться встановлення. У процесі майстер може видати запит на підтвердження встановлення віртуального мережного адаптера – погоджуємось (Install).

Після завершення натискаємо Next- знімаємо галочку Show Readme - Finish.

Створення сертифікатів

Переходимо до папки установки OpenVPN (за замовчуванням, C:\Program Files\OpenVPN) і створюємо каталог ssl.

Після переходимо до папки C:\Program Files\OpenVPN\easy-rsa, створюємо файл vars.bat, відкриваємо його на редагування та наводимо до наступного виду:

set "PATH=%PATH%;%ProgramFiles%\OpenVPN\bin"
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=keys
set KEY_SIZE=2048
set KEY_COUNTRY=UA
set KEY_PROVINCE=Sankt-Petersburg
set KEY_CITY=Sankt-Petersburg
set KEY_ORG=Organization
set KEY_EMAIL=master@сайт
set KEY_CN=DMOSK
set KEY_OU=DMOSK
set KEY_NAME=server.domain.ru
set PKCS11_MODULE_PATH=DMOSK
set PKCS11_PIN=12345678

* у каталозі easy-rsa вже є файл vars.bat.sample - можна перейменувати та використовувати його.
** значення HOMEне змінюємо, якщо залишили шлях встановлення програми за умовчанням; KEY_DIR— каталог, куди генеруватимуться сертифікати; KEY_CONFIGможе бути різним – його краще подивитися у файлі vars.bat.sample або за назвою відповідного файлу у папці easy-rsa; KEY_NAMEбажано, щоб відповідав повного імені VPN-сервер; Інші опції можна заповнити довільно.

Запускаємо командний рядок від імені адміністратора:

Переходимо до каталогу easy-rsa:

cd %ProgramFiles%\OpenVPN\easy-rsa

Запускаємо vars.bat:

Чистимо каталоги від застарілої інформації:

Знову запускаємо vars.bat (після clean перевизначаються деякі змінні):

Тепер генеруємо послідовність центру сертифікації:

На всі запити натискаємо Enter.

Запускаємо build-dh.bat (сертифікат з використанням алгоритму Діффі-Хеллмана):

* команда може виконуватися довго – це нормально.
* Якщо процес зависне (5 хвилин), можна сформувати його вручну командою openssl dhparam -out dh2048.pem 2048. Після скопіювати отриманий сертифікат dh2048.pemу каталог keys.

Генеруємо сертифікат для сервера:

build-key-server.bat cert

* де cert- Ім'я сертифіката; на всі запити натискаємо Enter. Насамкінець підтверджуємо двічі коректність інформації введенням y.

Після переносимо вміст папки C:\Program Files\OpenVPN\easy-rsa\keysв C:\Program Files\OpenVPN\ssl.

Налаштування сервера

Переходимо до папки C:\Program Files\OpenVPN\configта створюємо файл server.ovpn. Відкриваємо його на редагування та наводимо до наступного виду:

port 443
proto udp
dev tun
dev-node "VPN Server"
dh "C:\Program Files\OpenVPN\ssl\dh2048.pem"
"C:\Program Files\OpenVPN\ssl\ca.crt"
cert "C:\Program Files\OpenVPN\ssl\cert.crt"
key "C:\Program Files\OpenVPN\ssl\cert.key"
server 172.16.10.0 255.255.255.0
max-clients 32
keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
cipher DES-CBC
status "C:\Program Files\OpenVPN\log\status.log"
log "C:\Program Files\OpenVPN\log\openvpn.log"
verb 4
mute 20

* де port— мережевий порт (443 дозволить уникнути проблем при використанні Інтернету в громадських місцях, але може бути будь-яким із вільних, наприклад 1723, зайняті порти у Windows можна подивитися командою netstat -a); dev-node- Назва мережевого інтерфейсу; server — підмережа, в якій працюватимуть як сервер, так і підключені до нього клієнти.
** Так як у деяких шляхах є прогалини, параметр заноситься в лапках.

У мережевих підключеннях Windows відкриваємо керування адаптерами - TAP-адаптер перейменовуємо на «VPN Server» (як у нас зазначено у конфігураційному файлі, розділі dev-node):

Сподобалася стаття? Поділитися з друзями: