Сравнение OpenVPN и IPsec.

Введение

Меня тут вовсю спрашивали насчёт сравнения OpenVPN и IPsec. Я не буду сравнивать уровни безопасности, потому что я в это всё равно ничего толком не понимаю. Я просто просуммирую то, что читал, слышал, видел. Где-то я, безусловно, могу ошибаться, но уверен, что я ошибаюсь существенно меньше, чем многие другие писатели статей в блогах. Ниже вы найдёте слегка изменённую короткую обзорную статью из внутренней документации нашей компании.

Сравнение OpenVPN и IPsec

Существуют два варианта организации VPN: IPsec и OpenVPN. (я не беру в расчёт всякие проприетарные штуки, для которых требуются специальные клиенты и которые стоят малых и немалых денег).

IPsec

IPsec обычно используется в трёх конфигурациях: туннель (нет возможности пробиться за NAT, поскольку шифруется весь пакет, а nat его корёжит), транспорт (шифруется содержимое пакета, может идти за NAT) и транспорт + PPTP (L2TP), где IPsec занимается шифрованием трафика, идущего в туннеле образованного другой программой.

По сути, как таковой технологии "IPsec" не существует, есть только набор RFC которые описывают отдельные её части, как-то установление соединение, обмен ключами, как и чем шифровать. Причём алгоритм шифрования у IPsec свой. И, судя по записям в сети, в нём достаточно часто находят какие-то уязвимости.

В общем и целом IPsec - сложная технология, чистый IPsec поддерживается малым количеством клиентов, поэтому его используют только как средство шифрования трафика, поверх которого работает L2TP туннель. Так что помимо конфигурации собственно IPsec требуется настраивать ещё и что-то, обслуживающее L2TP туннели.

В Linux существует два стека драйверов (NETKEY, встроенный в ядро, и KLIPS, который написали разработчики OpenSwan), и несколько userspace приложений которые позволяют использовать эти драйверы. KLIPS чуть более совершенная версия стека IPsec, но поддерживается только openswan.

Непосредственно чистый IPsec используют в основном для соединения и работы в зашифрованой локальной сети нескольких серверов. Причём конфигурация сети может быть очень сложной.

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

OpenVPN

OpenVPN может тоже работать в двух режимах, но имеет решающее преимущество - намного более качественная работа за NAT. Причём, в отличие от IPsec, обе стороны могут находиться за фаерволами, лишь бы был открыт тем или иным образом udp/1194.

Как по мне, OpenVPN обладает более прозрачной, чистой и понятной конфигурацией. Клиенты есть для всех OS, кроме iOS, хотя и часто требуют административных прав для установки.

Да и с точки зрения шифрования OpenVPN более привлекателен. Обмен ключами происходит аналогично IPsec при помощи алгоритма Диффи-Хелмана, а дальше весь трафик шифруется при помощи SSL, который и в браузере есть и где угодно.

Суммирую:

IPsec

Плюсы:

Минусы:

OpenVPN

Плюсы:

Минусы:

Если у вас остались вопросы, напишите мне письмо.