Трохи про VPN: Короткий огляд програмних реалізацій



/ фото reynermedia CC

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

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

Перш ніж перейти до порівняння, окреслимо коло завдань, які вирішує VPN:

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

Однак у наші дні VPN використовується і для вирішення більш простих, приземлених завдань, що робить не менш важливими критеріями вибору реалізації такі особливості, як її кросплатформеність і простота установки.

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

  • PPTP (Point-to-Point tunneling protocol),
  • IPSec (IP Security),
  • L2TP (Layer 2 Tunneling Protocol) і L2TP+IPSec,
  • OpenVPN,
  • SSTP (Secure Socket Tunneling Protocol).

PPTP (Point-to-Point Tunneling Protocol)

PPTP був створений корпорацією Microsoft і випущений ще в далекому 1999 році, але, незважаючи на солідний вік, застосовується донині. Він використовує TCP для встановлення з'єднання протокол MPPE (від тієї ж Microsoft) для шифрування переданих даних. Аутентифікація клієнтів, як правило, забезпечується механізмом MS-CHAPv2.

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

А от з точки зору безпеки PPTP себе скомпрометував – на сьогоднішній день в ньому виявлено велику кількість вразливостей в пристрої протоколу MMPE (наприклад зміна вихідного потоку RC4), так і в елементі аутентифікації MS-CHAP (в 2012 році навіть з'явився онлайн-сервіс, який підбирає ключ MS-CHAPv2 за 23 години). Незважаючи на те що остання проблема вирішується зміною механізму аутентифікації з MS-CHAP на PEAP, сама компанія Microsoft тепер рекомендує використовувати L2TP або SSTP.

IPsec (IP Security)


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

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

Шифрування з'єднання IPsec забезпечується такими протоколами і алгоритмами, як IKE (Internet Key Exchange Protocol), ISAKMP (Internet Security Association and Key Management Protocol), НАЗАД (Authentication Header Protocol), STS (Station to Station protocol), SHA-1 (Security Hash Algorithm) та ін

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

IPsec підтримується всіма сучасними операційними системами (серверними, настільними, мобільними), а також поряд роутерів, причому при налаштування VPN на останніх відпадає необхідність проведення будь-яких маніпуляцій з клієнтами, що знаходяться за маршрутизаторами. Завдяки вищеописаним характеристиками IPsec вважається одним з кращих рішень для розгортання VPN.

Однак і тут не обійшлося без недоліків. Відомо, що при роботі в транспортному режимі ця реалізація може піддаватися атакам, спрямованим на протокол ISAKMP. Крім цього, при роботі IPsec без заголовків AH, зловмисник може зробити ін'єкцію власних даних передані пакети, що, зрозуміло, буде мати несприятливі наслідки для одержувача. Також відомий спосіб атаки, при якому підміняється маршрут передачі пакетів. Більше того, існує експлойт, що дозволяє розшифрувати трафік IPsec через уразливість в IKE.

L2TP (Layer 2 Tunneling Protocol)


L2TP – це протокол тунелювання для віртуальних приватних мереж. Являє собою симбіоз протоколу L2F (Layer 2 Forwarding) від компанії Cisco і описаного вище PPTP. Дозволяє створювати VPN-мережі з розмежуванням прав доступу, але має один недолік – не шифрує трафік.

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

L2TP/IPsec присутній у всіх сучасних ОС і легко налаштовується з боку клієнта. Проте варто пам'ятати, що L2TP використовує порт UDP 500, який іноді блокується, якщо ви перебуваєте за NAT. У зв'язку з цим може знадобитися додаткове налаштування брандмауера або маршрутизатора (переадресація портів), яка не потрібна для рішень, що використовують стандартний для HTTPS TCP-порт 443.

LT2P/IPsec на даний момент вважається досить безпечним рішенням при використанні таких алгоритмів шифрування, як AES, але оскільки він інкапсулює дані двічі, то працює трохи повільніше реалізацій, що використовують SSL (наприклад OpenVPN або SSTP).

З точки зору стабільності роботи L2TP/IPsec заслуговує відмінної оцінки. Мінусом LT2P/IPsec є те, що він використовує майже в два рази більше обчислювальних ресурсів процесора для забезпечення подвійного інкапсулювання.

SSTP (Secure Socket Tunneling Protocol)

Протокол безпечного тунелювання сокетів – ще одне дітище Microsoft, представлене з виходом Windows Vista. На сьогоднішній день в якості SSTP-сервера може виступати вже не тільки Windows Server 2008/2012, але і машина під управлінням Linux або RouterOS, хоча в останніх випадках це рішення не можна назвати повнофункціональним.

Завдяки підтримці SSL v.3 SSTP може працювати без конфігурування маршрутизатора/міжмережевого екрану, а інтегрованість у Windows спрощує настройку і забезпечує стабільну роботу. Для шифрування використовується стійкий AES.

При тому що SSTP має безліч плюсів і являє собою молоду розвивається технологію, найкраще він працює в Windows-мережах – в інших випадках можна зіткнутися з обмеженнями.

OpenVPN

OpenVPN – це відносно молода (побачила світ у 2002 році) відкрита реалізація VPN, яка розповсюджується під ліцензією GNU GPL. Безпека розвертають тунелів тут забезпечується бібліотекою OpenSSL, яка, в свою чергу, пропонує великий асортимент інструментів шифрування (Blowfish, AES, Camelia, 3DES, CAST). Від обраного алгоритму залежить швидкість роботи OpenVPN, але, як правило, ця реалізація виявляється швидше і споживає менше ресурсів, ніж L2TP/IPsec.

Ще один істотний плюс OpenVPN – можливість проходити через NAT і брандмауер без їх додаткової конфігурації за стандартним для HTTPS порту TCP 443 завдяки SSL/TLS-інкапсуляції. Передбачена робота по протоколу UDP – саме цей варіант встановлюється за замовчуванням.

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

В OpenVPN також передбачається інструмент LZO для стиснення даних. Завдяки широким можливостям конфігурації і підтримки більшості ОС OpenVPN став дуже популярним рішенням. Єдиний нюанс – необхідно встановлювати стороннє ПЗ.

Гнучкість OpenVPN може породити лише одну проблему – зробити конфігурацію досить стомлюючої, проте це питання вирішується підготовкою преднастроенных настановних клієнтських пакетів або, наприклад, використанням OpenVPN Remote Access Server.

Серед наших мінлива ви знайдете покрокові інструкції з базової налаштування OpenVPN-сервера на Ubuntu/Debian, CentOS, <a href=«1cloud.ru/help/windows/setup_openvpnserver_win>Windows. Для розгортання віртуальної приватної мережі ви можете використовувати наш хмарний VPS сервер. У цій реалізації також передбачено ряд додаткових можливостей безпеки приватної мережі. Огляд основних з них ви можете знайти у нашій базі знань.

Висновок

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

IPsec може працювати з великою кількістю алгоритмів шифрування і аутентифікації для VPN, хоча сам по собі не є реалізацією технології віртуальних приватних мереж, а стеком протоколів для захисту IP-пакетів при їх передачі. При цьому IPsec цілком підходить для розгортання virtual private network, «заточених» на безпеку.

Раніше для цих цілей, як правило, IPsec використовувався в зв'язці з L2TP, але в наші дні ситуація починає змінюватися. В цілому широкі можливості IPsec дозволяють вважати його одним з кращих рішень для VPN.

L2TP в зв'язці з IPsec добре себе показує і з точки зору безпеки, і в плані сумісності з популярними ОС. Тут, правда, може знадобитися додаткове налаштування портів. Другий мінус – подвійна інкапсуляція, призводить до уповільнення роботи тунелю.

SSTP зручний в конфігурації, стабільний і досить безпечний, але при цьому є продуктом компанії Microsoft, тому його робота сильно зав'язана на ОС Windows. В інших системах функціональність SSTP часто виявляється не такою привабливою.

OpenVPN можна назвати розумним вибором увазі збалансованість таких показників, як швидкість (за рахунок стиснення LZO і роботі через UDP за замовчуванням), стабільність (особливо при роботі через TCP), гнучкість конфігурації, кросплатформеність (наявність клієнтських додатків для більшості сучасних ОС), безпека (завдяки роботі з усіма інструментами бібліотеки OpenSSL).

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

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

Більш надійним і гнучким сценарієм бачиться самостійна настройка VPN на фізичному або віртуальний сервер (VPS/VDS). Наприклад, ви можете створити віртуальну приватну мережу OpenVPN за однією з наших покрокових інструкцій (<a href=»1cloud.ru/help/windows/setup_openvpnserver_win>Windows, Linux), використовуючи хмарний VPS/VDS сервер від 1cloud.

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

P. S. Ми завжди раді поділитися своїм досвідом розробки IaaS-провайдера 1cloud, тому підготували для вас кілька матеріалів:

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.