огою бібліотеки LZO. Процес стиснення є адаптивним, тобто спроби упакувати передані дані будуть зроблені, тільки якщо є сенс їх упаковувати. Ця можливість може бути легко відключена за бажанням користувача, як і будь-які інші компоненти.
l Підтримуються два типи тунелів: IP і Ethernet, відповідно звані routed і bridged. Таким чином, з'являється можливість туннелировать як IP-підмережі, так і віртуальні Ethernet-адаптери.
l Відмінно працює в мережах, де адреси розподіляються за допомогою DHCP. Допомагає підключатися до VPN-клієнтам, що потрапляють в Інтернет через dial-up.
l Дозволяє створити тунелі поверх NAT, незважаючи на те, що NAT змінює вміст заголовків переданих пакетів.
l Дає можливість працювати з будь-якими механізмами шифрування, вбудованими в OpenSSL для захисту переданого трафіку. А це, в свою чергу, дозволяє кожному клієнту вибрати тип, режим роботи (CBC, CFB, OFB) і розмір ключа шифру відповідно до індивідуальних переваг.
l У разі якщо в переданих даних є повторювані послідовності, для їх приховування буде використаний алгоритм explicit IV.
l Кожна датаграма позначається за допомогою спеціальних ID, створюваних на основі часу відправлення та номера послідовності. Таким чином, запобігає можливість повторного програвання зловмисником послідовності записаних пакетів.
l В якості додаткової міри безпеки може бути використаний протокол TLS, що дозволяє аутентифікувати сесію за допомогою динамічного обміну сертифікатами. Досить великий оптимізації швидкодії при динамічному обміні SSL / TLS-ключами дозволяє домогтися використання мультіпоточной бібліотеки pthread. Таким чином, навіть частий обмін між сервером і клієнтом ключами розміром більш ніж 2048 байт практично не впливає на швидкість передачі туннеліруемих даних.
l Для збільшення безпеки OpenVPN дозволяє перемістити себе в chroot-оточення і знижує свої привілеї після старту так, щоб відмінно працювати від імені самого безправного користувача системи.
l Ще одним корисним, з точки зору безпеки, властивістю є наявність ключа - mlock. Він дозволяє заборонити OpenVPN записувати в процесі роботи на жорсткий диск-яку інформацію, пов'язану з секретними ключами і даними, переданими по тунелю.
l У зв'язку з тим, що дана програма є всього лише звичайним користувальницьким додатком, а не частиною ядра, вона може цілком мирно співіснувати з іншими додатками, що використовують tun / tap-тунелі.
l OpenVPN створювався для тісної інтеграції з користувацькими скриптами та іншими високорівневими додатками, що в свою чергу дає можливість за першою вимогою легко створювати і знищувати тунелі.
l Дозволяє зручно працювати через міжмережеві екрани з контролем стану з'єднання. У разі, якщо по тунелю не передаються дані, OpenVPN дозволяє через певні проміжки часу посилати ping, для того щоб не дати міжмережевих екранів розірвати з'єднання через неактивність.
Найбільш економічним і надійним варіантом на сьогоднішній день для створення Virtual Private Networks між Windows і Unix системами оптимальним рішенням є використання OpenVPN. Тому для реалізації захищеного каналу, я буду використовувати OpenVPN.
1.3 Платформи реалізації ...