VPN (скорочення від  — віртуальна приватна мережа) — узагальнена назва клієнт-серверних технологій, які дають змогу створювати віртуальні захищені мережі поверх інших мереж із нижчим рівнем довіри. VPN-тунель, який створюється між двома вузлами, дозволяє приєднаному пристрою чи користувачу бути повноцінним учасником віддаленої мережі і користуватись її сервісами — внутрішніми сайтами, базами, принтерами, політиками виходу в інтернет. Безпеку передавання інформації через загальнодоступні мережі реалізовано за допомогою шифрування, внаслідок чого створюється закритий для сторонніх канал обміну інформацією. Технологія дозволяє об'єднати декілька географічно віддалених мереж (або окремих клієнтів) у єдину мережу з використанням для зв'язку між ними непідконтрольних каналів. Багато провайдерів пропонують свої послуги як з організації VPN-мереж для бізнес-клієнтів, так і для виходу в інтернет.

Прикладом створення віртуальної мережі є інкапсуляція протоколу PPP в будь-який інший протокол — IP (цю реалізацію називають також PPTP — Point-to-Point Tunneling Protocol) або Ethernet (PPPoE). Деякі інші протоколи також надають можливість формування захищених каналів (SSH).

VPN з побутової точки зору

VPN набув популярності серед пересічних користувачів як засіб обходу блокувань доступу до окремих вебресурсів. Якщо фахівці зазвичай інтуїтивно розуміють його суть, то для загального користувача доцільно подати додаткові пояснення.

Насамперед варто згадати про три рівні адресації в Інтернеті: Фізичний (MAC-адреса, призначена мережевому адаптеру пристрою); Мережевий (IP-адреса та номер порту, які визначають маршрут і цільову програму); Символьний (DNS-ім’я, яке зручно сприймається людиною і транслюється у відповідну IP-адресу).

Коли комп’ютер надсилає пакет даних у мережу, він зазвичай проходить через кілька шарів інкапсуляції. Зовнішнім контейнером є Ethernet-кадр, що містить MAC-адреси відправника й одержувача, а також службову інформацію. У ньому розміщено IP-пакет, який, у свою чергу, містить TCP-сегмент, а далі — можливо, зашифрований протокол HTTPS. Заголовок HTTPS може містити поле SNI (Server Name Indication), у якому вказується ім’я вебсайту. Весь інший вміст, включно з URL і даними сторінки, зазвичай зашифровано. Наприкінці пакета можуть міститися контрольні суми.

Коли користувач відкриває вебсайт без VPN, провайдер бачить як IP-адресу ресурсу, так і DNS-запит або поле SNI в HTTPS-запиті, що дозволяє ідентифікувати відвідуваний сайт і, за потреби, заблокувати доступ до нього.

Якщо ж з'єднання здійснюється через VPN, IP-пакет користувача інкапсулюється та шифрується, і надсилається до VPN-сервера. VPN-сервер розшифровує пакет, виконує NAT-трансляцію (тобто змінює IP-адресу відправника на власну, а також підмінює номер порту клієнта на свій порт з пулу вільних). Потім сервер надсилає пакет до кінцевого ресурсу. У зворотному напрямку сервер отримує відповідь, знову підмінює адресу й порт на початкові значення та передає зашифровану відповідь клієнту.

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

Уточнене визначення VPN з прикладної точки зору:

VPN — це послуга-посередник, що встановлює зашифроване з’єднання з клієнтом, інкапсулює його IP-пакети, і від імені клієнта надсилає та приймає трафік у загальнодоступній мережі.

Коли використовують архітектуру VPN Мета віртуальних приватних мереж полягає в тому, щоб дозволити мережевим хостам (ПК, серверам тощо) обмінюватися мережевими повідомленнями з приватним вмістом через іншу мережу, ніби вони є частиною тієї ж мережі, так, щоб зробити перетин із мережею-носієм повністю прозорим, починаючи з певного рівня і вище.

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

У протилежному випадку , завдяки чому в ненадійній мережі частина власної мережевої інфраструктури ізолюється у віртуальних сегментах так, щоб вміст кожного сегмента був закритим відносно інших. Це робить придатними для побудови PPVPN багато інших протоколів тунелювання, навіть зі слабкими функціями безпеки або без них (наприклад, у VLAN).

Структура VPN

VPN складається з двох частин: «внутрішня» (підконтрольна) мережа, яких може бути кілька, і «зовнішня» мережа, через яку проходять інкапсульовані з'єднання (зазвичай використовують інтернет).

Можливе також під'єднання до віртуальної мережі окремого комп'ютера.

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

Принцип роботи VPN Фактична робота VPN залежить від того, на яких технологіях і протоколах вона побудована. Для передавання мережевих повідомлень з одного боку на інший використовують протоколи тунелювання. Їхня мета — отримувати мережеві повідомлення від застосунків (які працюють на рівні 7 OSI) на одному боці тунелю та відтворювати їх на іншому боці, вони фактично замінюють нижчі рівні мережі або зв'язку. Щоб повідомлення програм проходили через VPN, немає потреби змінювати програми, оскільки віртуальна мережа або посилання доступні для ОС.

Програми, які реалізують функції тунелювання або проксі-сервера для себе, не роблячи такі функції доступними як мережевий інтерфейс, не вважаються реалізаціями VPN, але можуть частково відповідати тій самій або подібній меті кінцевого користувача щодо обміну приватним вмістом із віддаленою мережею (наприклад, перегляд інтранету через автентифікований проксі).

Класифікація За типом використовуваного середовища VPN поділяють на захищені та довірчі.

Захищені Найпоширеніший варіант віртуальних приватних мереж. З його допомогою можна створити надійну та захищену підмережу на основі ненадійної мережі, зазвичай, інтернету. Прикладом захищених протоколів VPN є: IPsec, SSL та PPTP. Прикладом використання протоколу SSL є програмне забезпечення OpenVPN.

Довірчі Використовують у випадках, коли середовище, яким передають дані, можна вважати надійним і потрібно розв'язати лише завдання створення віртуальної підмережі в рамках більшої мережі. Питання безпеки стають у цьому разі неактуальними. Прикладами подібних VPN-рішень є: MPLS і L2TP. (Коректніше сказати, що ці протоколи перекладають завдання забезпечення безпеки на інших, наприклад L2TP, як правило, використовують разом з IPsec).

Конфігурації топології VPN

Конфігурації віртуальних приватних мереж можна класифікувати залежно від призначення віртуального розширення, що робить різні стратегії тунелювання відповідними для різних топологій:

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

Місце-місце Конфігурація «місце-місце» з'єднує дві мережі. Ця конфігурація розширює мережу в географічно розрізнених місцях. Тунелювання здійснюється лише між двома пристроями (наприклад, маршрутизаторами, брандмауерами, шлюзами VPN, серверами тощо), розташованими в обох мережевих розташуваннях. Потім ці пристрої роблять тунель доступним для інших хостів локальної мережі, яким потрібно досягти будь-якого хоста з іншого боку. Це корисно, щоб підтримувати стабільний зв'язок місць між собою, наприклад, мережі офісу з головним офісом або центром обробки даних. У цьому випадку будь-яку сторону можна налаштувати на ініціювання зв'язку, якщо вона знає, як зв'язатися з іншою стороною всередині мережі. Якщо обидві сторони відомі одна одній, а вибраний протокол VPN не прив'язаний до дизайну клієнт-сервер, зв'язок може ініціювати будь-хто з двох, щойно вони побачать, що VPN неактивний або якийсь локальний хост намагається зв'язатися з іншим один, про який відомо, що він розташований на іншому боці.

У контексті конфігурацій типу «місце-місце» терміни інтранет і екстранет описують два різні випадки використання. VPN типу «місце-місце» в інтранеті описує конфігурацію, в якій місця, з'єднані через VPN, належать одній організації, тоді як VPN типу «місце-місце» в екстрамережі об'єднує місця, що належать кільком організаціям.

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

Окрім загальної конфігурації топології, VPN також характеризують: протокол тунелювання, який використовується для тунелювання трафіку; розташування кінцевої точки тунелю, наприклад, на клієнта або межі постачальника мережі; надані функції безпеки; рівень OSI, який вони надають для з'єднувальної мережі, наприклад зв'язок/пристрій рівня 2 або підключення до мережі рівня 3; кількість одночасно дозволених тунелів; відносини між суб'єктом, який реалізує VPN, і власником/провайдером мережевої інфраструктури, і чи довіряє перший середовищу другого, чи ні.

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

VPN-міст

Зазвичай, при створенні VPN використовують приєднання типу «точка-точка» до певного сервера, або встановлення ethernet-тунелю з певним сервером, при якому тунелю призначають певну підмережу. Сервер VPN при цьому виконує функції маршрутизації та фільтрування трафіку для доступу до локальної мережі через VPN.

За використання такого підходу все ще є можливість фільтрувати трафік через спосіб під'єднання (наприклад, використовувати для локальної мережі та для віддалених користувачів різні фільтри), але усунуто потребу налаштування маршрутизації, а віддалені машини включаються прямо в локальну мережу, бачать ресурси, навіть спроможні використовувати широкосмугові посилки взагалі без додаткового налаштування. Через таку VPN у них відображаються всі комп'ютери локальної мережі Windows, усі доступні XDMCP-сервери при XDMCP broadcast.

Реалізація Існують реалізації віртуальних приватних мереж під TCP/IP, IPX і AppleTalk. Нині спостерігається тенденція до загального переходу на протокол TCP/IP, і абсолютна більшість VPN рішень підтримує саме його. Адресація в ньому найчастіше вибирається згідно зі стандартом RFC 5735, з діапазону приватних мереж TCP/IP.