OPENVPN - The Easy Tutorial - Что такое OpenVPN?

openmaniak little square blue OpenVPN openmaniak little arrow right blue Что такое OpenVPN?
Last Update: Feb 04 2008


Tool
Install
Ergonomy
Forum



details Что такое OpenVPN?
Снимки экрана
Установка
Руководство по OpenVPN
-----SECURITY MODE-----------
Прозрачный туннель
Статический ключ
SSL & PKI (Сертификаты)
-----CASE STUDY-----------
IP VPN (TUN)
Ethernet VPN (TAP)
VPN Advanced Settings
----------------
Bridging
Routing

Russian translation by Sergiy Uvarov.




If you like our tutorials, don't hesitate to support us and visit our sponsors!
Si vous aimez nos tutoriaux, n'hésitez pas à nous supporter et visiter nos sponsors!



OpenVPN OpenSSL


openmaniak little square blue OPENVPN

Созданный в 2002 году, OpenVPN - это инструмент с открытым исходным кодом, используемый для построения site-to-site VPN сетей с использованием SSL/TLS протокола или с разделяемыми ключами. Он выполняет роль безопасного туннеля для передачи данных через один TCP/UDP порт в небезопасной сети как Интернет.

openmaniak openvpn tunnel picture

openmaniak little arrow right blue ЛЕГКОСТЬ

Преимущество OpenVPN заключается в легкости инсталляции и настройки, что является редким случаем для таких инструментов.

openmaniak little arrow right blue ПЕРЕНОСИМОСТЬ

OpenVPN может быть установлен практически на любую платформу включая: Linux, Windows 2000/XP/Vista, OpenBSD, FreeBSD, NetBSD, Mac OS X и Solaris.
Linux системы должны работать на ядре 2.4 или выше. Принципы конфигурирования одинаковы для всех платформ.

openmaniak little arrow right blue АРХИТЕКТУРА КЛИЕНТ/СЕРВЕР

OpenVPN использует клиент/сервер архитектуру. Он должен быть установлен на все узлы VPN сети, где один узел должен быть сервером, а остальные клиентами.

openmaniak little arrow right blue ТУННЕЛИРОВАНИЕ

OpenVPN создает TCP или UDP туннель, при этом данные проходящие через этот туннель шифруются. Стандартный порт для OpenVPN - UDP 1194, но можно использовать любой другой TCP или UDP порт. С версии 2.0 один и тот же порт можно использовать для нескольких туннелей на OpenVPN сервере. Начиная с версии 2.0, вы можете использовать любой другой TCP или UDP порт. На OpenVPN сервере один и тот же порт может быть использован для нескольких туннелей.

openmaniak little arrow right blue РЕЖИМЫ БЕЗОПАСНОСТИ:

При использовании статических ключей, VPN шлюзы используют один и тот же ключ для шифрования и дешифрования данных. В этом случае настройка будет довольно простой, но при этом возникает проблема передачи и безопастноси ключа. Если кто-то завладеет этим ключом, то он может дешифровать данные.
Для того чтобы избежать этой проблемы необходимо использовать Инфраструктуру Открытых Ключей (PKI). При этом каждый узел владеет двумя ключами: открытый ключ, известный всем и закрытый ключ доступный только его владельцу. Такую структуру использует OpenSSL, интегрированный в OpenVPN, для аутентификации VPN узлов перед тем как начать передавать зашифрованные данные.

Преимущества двух режимов:

Режим OpenVPN Разделяемые ключи SSL
Шифрование: Симметричное Aсимметричный/Симметричное
Реализация: Проще Сложнее
Скорость: Быстро Медленно
Загрузка процессора: Меньше Больше
Обмен ключами: Да Нет
Обновление ключей: Нет Да
Аутентификации узлов: Нет Да
Следующий раздел мы посвятим объяснению работы OpenVPN в режиме SSL (Асимметричное шифрование), как наиболее предпочитаемого.

openmaniak little arrow right blue МОСТ/МАРШРУТИЗАЦИЯ

Вы можете создать Ethernet (Мост) или IP (Маршрутизация) VPN сеть используя соответствующие сетевые драйвера TAP или TUN. TAP/TUN доступны на всех платформах и включены в ядро Linux начиная с версии 2.4.

openmaniak little arrow right blue ОПЦИИ

Опции подробно описаны в страницах справочного руководства (man pages). Если вы уже знакомы с SSL, то во можете перейти на Руководство OpenVPN, чтобы узнать как сконфугурировать OpenVPN.
Давайте обратим наше внимание на структуру сети и концепцию безопасных ключей для лучшего понимания OpenVPN.

Наверх



1. SSL 2. VPN 3. OPENSSL 4. IPSEC & SSL 5. IPSEC



openmaniak little square blue SSL

openmaniak little arrow right blue ВВЕДЕНИЕ:

В течении многих лет IPSec был единственным протоколом который мог обеспечить шифрование данных в site-to-site и клиент/сервер VPN сетях. К счастью ситуация изменилась с появлением SSL протокола. Предназначенный для обеспечения безопасности таких протоколов как HTTP, SSL позволяет сейчас обеспечить безопасность для любого приложения и шифровать TCP или UDP туннели в site-to-site и клиент/сервер VPN сетях.
В этом руководстве мы сфокусируем наше внимание на построение SSL site-to-site VPN сетей с использованием замечательного инструмента OpenVPN ...

openmaniak little arrow right blue ОПИСАНИЕ:

SSL (Secure Sockets Layers) был создан Netscape в 90-х. Было выпущено две версии v2 (1994) и v3 (1995). В 2001 IETF купила и обновила патент. В это же время SSL был переименован в TLS (Transport Layer Security) (RFC 2246).
Слово SSL часто используется для обозначения обоих SSL и TLS протоколов. Последняя версия TLS 1.1

openmaniak little arrow right blueЗАДАЧИ SSL:

SSL выполняет две основные задачи:

- Аутентификация сервера и клиента по средством Инфраструктуры Открытых Ключей (PKI).
- Создает шифрованное соединение между клиентом и сервером для обмена сообщениями.

openmaniak little arrow right blue OPENVPN И МОДЕЛЬ OSI:

Где мы можем разместить SSL протокол в модели OSI?
Стандартная модель OSI состоит из семи уровней, в то время как четырех уровневая модель наиболее подходит для TCP/IP, который используется огромным количеством приложений.

SSL разположен между транспортным уровнем и уровнем приложения и будет шифровать уровень приложения.
openmaniak osi model openvpn tcp/ip

openmaniak little arrow right blue ТИПЫ SSL VPN:

В прошлом SSL использовался специфичными приложениями как HTTP, однако сейчас, он может использоваться для обеспечения безопасного соединения через Интернет и создания шифрованных туннелей (VPN).

Доступны два типа VPN:
- Клиент-Сервер (или удаленный доступ) VPN, где клиенту необходимо иметь web браузер такой как Firefox.
- Site-to-site, необходимо специальное программное обеспечение, такое как OpenVPN

openmaniak little square blue Работа SSL:

Четыре этапа SSL/TLS:

SSL Handshake:
SSL Change Cipher Spec:
SSL Alert:
SSL Record:
Определяется метод шифрования для передачи данных
Создание и передача ключа между клиентом и сервером на эту сессию
Доставка сообщений SSL об ошибках между клиентом и сервером
Передача данных
Наверх   Меню концепция ключей



openmaniak little square blue ПРИНЦИПЫ VPN:

Аббревиатура VPN(Виртуальная Частная Сеть, Virtual Private Network) часто используется для обозначения шифрованного туннеля между двумя устройствами через небезопасную сеть, обычно Интернет.
Таким образом VPN будет объединять две локальные сети в одну частную сеть.
Слово "VPN" используется для обозначения как site-to-site так и клиент-сервер соединений. Напомнит что мы будем использовать OpenVPN для создания site-to-site VPN сети.

Для того чтобы считаться безопасным, VPN должен реализовывать следующие концепции:

-
 
 

-
 
 

-
 
 
Конфиденциальность:
Данные не должны передаваться в читаемом формате.
Типичные симметричные алгоритмы: DES, 3DES, AES, Blowfish.

Целостность
Данные не должны изменяться.
Типичные хэш-функции: sha1, md5.

Аутентификация
VPN шлюзы должны быть уверены в подлинности друг друга.
Типичные алгоритмы: RSA, DH.
Рисунок внизу изображает как происходит передача пакетов внутри локальной сети и VPN.

openmaniak openvpn packets tcp/ip description


Наверх    Меню концепция ключей



openmaniak little square blue OPENSSL:

Для шифрования и аутентификации OpenVPN использует OpenSSL, который является бесплатным и распространяется с открытым исходным кодом. OpenSSL это инструмент состоящий из:
- SSL библиотеки.
- Библиотеки шифрования.
- Инструментов командной строки.

Библиотеки шифрования реализует большое количество алгоритмов шифрования:
- Симметричные алгоритмы: Blowfish, DES, 3DES, AES ...
- Сертификаты: x509
- Хэш-функции: HMAC, MD5

Наверх    Меню концепция ключей



openmaniak little square blue СРАВНЕНИЕ IPSEC И SSL:

Цель у SSL и IPSec одинакова: шифрование данных между двумя устройствами одним и тем же алгоритмом. Но как вы увидите дальше, методы какими решаются эти задачи разные.
И конечно же IPSec и SSL не совместимы.

Давайте посмотрим на таблицу сравнения.

  IPSEC SSL
RFC: 2401 4346 (TLS 1.1)
Положение в OSI:
 
Интернет уровень
 
Между транспортным уровнем и уровнем приложения
Положение программной части: В пространстве ядра В пространстве пользователя
Инсталляция: Не зависит от разработчика Зависит от разработка
Конфигурация: Сложная Простая
NAT: Проблематично Без проблем
Firewall: Недружественный Дружественный
Совместимость с другими производителями: Да Нет
Давайте дадим несколько объяснений по таблице сравнения:

Протокол IPSec - это протокол 3 уровня, а это означает, что для его реализации необходимо изменить IP стек, который расположен в пространстве ядра, для всех IPSec устройств. А это приводит к тому, что каждая операционная система (Cisco, Windows, Nortel, Linux и т.д.) будет иметь свою реализацию IPSec.

OpenVPN ведет себя как стандартное приложение, так как оно реализовано в пространстве пользователя. И это дает ему приимущество в лучшей безопасности и переносимости.

-
 
 
 
 
 
 
-
 
 
Безопасность - в связи с тем, что IPSec тесно связанно с ядром, сбой в приложении может привести к сбою в ядре. Такой проблемы с OpenVPN не возникает, так как он полностью реализован в пространстве пользователя. Еще одна проблема с безопасностью может возникнуть в случает программного взлома, с помощью IPSec взломщик может получить доступа к ядру, или другими словами получить права администратора. OpenVPN не имеет такой уязвимости так как запускается под специальным пользователем с ограниченными правами.
Переносимость - OpenVPN практически можно установить на любую платформу и это с экономит ваше время, так как вам прийдется настраивать один и тот же программный продукт.
Наиболее серьезная проблема с которой приходиться сталкивать при использовании IPSec - это необходимость изменения правил фильтрации (firewall), чтобы разрешить протокол и преобразование адресов (NAT). Эта проблеме частично решена использованием протокола NAT-T.
Читайте подробно о проблемах связанных с использованием IPSec и NAT здесь.

При использовании OpenVPN необходимо открыть TCP или UDP порт в firewall, если он еще не открыт. OpenVPN может также работать через прокси сервера, что позволяет не менять правила фильтрации (firewall). Так так SSL не меняет IP уровень, то преобразование адресов (NAT) работает без дополнительных усилий
Создание site-to-site SSL туннеля намного проще чем IPSec. Сложность конфигурации IPSec часто приводит к проблемам с безопасностью или к пропуску настроек, даже если сеть строит администратор. К тому же настройки IPSec могут отличаться от производителя к производителю, в то время как настройки SSL и OpenVPN очень похожи на всех системах.

Большим преимуществом IPSec остается то, что он работает на любом производителе поддерживающем IPSec RFC. Например, практически возможно установить VPN соединение между Cisco и Nortel маршрутизаторами. Практически, потому что как показало время, даже если различные производители поддерживают IPSec стандарты, иногда остаются проблемы совместимости.
OpenVPN не возможно установить на маршрутизаторы таких основных производителей как Cisco, Checkpoint, Juniper и Nortel.

SSL очень быстро развивается в сегменте клиент-сервер VPN по сравнению с IPSec и постепенно заменит его. В site-to-site сегменте преимущество остается за IPSec, это связано с тем что не существует стандарта (RFC) на создание site-to-site SSL VPN сетей. Среди большого количества VPN сетей созданных на базе устройств с закрытым исходным кодом, IPSec остается лидеров в этом секторе.

Наверх    Меню концепция ключей



openmaniak little square blueIPSEC:

IPSec может быть представлен одним или двумя протоколами 3 уровня: ESP (IP протокол 50, RFC 2406), AH (IP протокол 51, RFC 2402). ESP может использоваться для целостности и конфидициальности данных, а AH только для целостности данных.

Следующие два протокола очень близко связанны с IPSec: ISAKMP (RFC 2408) и IKE (RFC 2409). ISAKMP (Internet Security Association and Key Management Protocol) используется для установления безопасного соединения, а IKE (Internet Key Exchange) для автоматического обмена ключами через UDP порт 50.

Наверх    Меню концепция ключей






If you liked our tutorials, don't hesitate to support us and visit our sponsors!
Si vous aimez nos tutoriaux, n'hésitez pas à nous supporter et visiter nos sponsors!