OpenVPN. Введение






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


С постепенным выходом в массы Интернет стала заполняться полезной, нужной, а иногда и секретной информацией. Конечно же проще и дешевле создать документ в электронном виде и передать его в другой конец страны за считанные секунды, чем организовывать курьерскую доставку. Естественно, с появлением чего-то «вкусненького», появились и люди, которые не прочь получить доступ к этому. Вот тут открытость протоколов и стандартов начала играть злую шутку. Закрывать протоколы передачи данных — не самая лучшая идея, ведь такой огромной популярностью Интернет на сегодня обязана именно открытости и доступности алгоритмов передачи данных. Выход был найден, я думаю, благодаря многоуровневой модели реализации сетевых протоколов, которая дала возможность скрывать информацию практически неограниченным количеством способов, не влияя при этом на стандарты передачи информации в целом.

На сегодняшний день многообразие решений для защиты сетевого трафика от чужих глаз поражает своим многообразием, но мне толком удалось пощупать только одно из них — OpenSource проект OpenVPN. О нем, собственно, и пойдет речь. OpenVPN — это набор системных и пользовательских утилит, позволяющих безопасно связывать между собой территориально распределенные сети, используя публичные сети, такие как Интернет, в качестве среды передачи данных.

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

Для примера возьмем два хоста. На каждом из них создается виртуальный сетевой интерфейс, называемый tun-интерфейсом. Для пользовательских приложений этот интерфейс ничем не отличается от, например, PPP-интерфейса: он имеет IP-адрес, может обрабатываться таблицами маршрутизации, фильтрации пакетов и тому подобное. «Фишка» tun-интерфеса заключается в том, что вместо того, чтобы отправлять полученные от приложений пакеты непосредственно в сеть (то есть передавать для обработки драйверу физического устройства), он инкапсулирует полученные IP-пакеты в UDP-пакеты и направляет их соответствующему сетевому интерфейсу «нормально» подключенному к сети. И, как вы уже догадались, перед инкапсуляцией драйвер tun-интерфеса шифрует данные.

На принимающей стороне все выглядит с точностью, но наоборот. Пришедший UDP-пакет направляется tun-драйверу, который этот пакет декапсулирует, извлекает шифрованный  IP-пакет, расшифровывает его и передает выше уровнем соответствующему приложению. Вот, в принципе, и все. Еще, наверное, стоит сказать о том, что помимо tun-интерфейсоа существует так называемый, tap-интерфейс. По принципу работы он абсолютно идентичен tun-у, за исключением того, что tap подобен Ethernet-интерфейсу, а не PPP. Подробней об этом, в качестве «вводного погружения» в OpenVPN, можно прочесть в небольшой презентации James Jonan — «The User-Space VPN and OpenVPN».




OpenVPN. Введение: 1 комментарий

  1. за ссылку на слайды большое спасибо. там все четко и по делу расписано. многое стало ясно в плане теории.

Комментарии запрещены.