СОФТЕРРА: Успехи сетевой приватизации: Создание виртуальной частной сети в домашних условиях
Автор: Ралько, Андрей
Интернет порой напоминает огромную шумную рыночную площадь: не слишком подходящее место для разговора с глазу на глаз, проведения совещаний или обмена важными документами. Большинство использующихся сетевых протоколов небезопасны, поскольку информация по ним обычно передается в незашифрованном виде и легко может быть перехвачена не в меру любопытным сотрудником провайдера или юным хакером, только-только узнавшим, что такое сниффер.
Возникает желание создать собственный уголок в этом хаосе — тихий и скрытый от посторонних глаз. Таким «уголком» являются VPN (Virtual Private Network), виртуальные частные сети. Данные в них передаются через Интернет, но при этом подключенные к VPN компьютеры искренне считают, что находятся в одной локальной сети. Эта технология использует механизм туннелирования: информация передается через виртуальный защищенный туннель. У каждого туннеля имеется инициатор, шифрующий пакеты локальной сети и включающий их в IP-пакеты, передаваемые через Интернет, и терминатор, извлекающий пакеты на принимающей стороне. Алгоритмы проверки целостности данных гарантируют, что во время передачи по публичным сетям они не были модифицированы в результате ошибки или намеренно.
Помимо криптографической защиты, VPN в первую очередь полезна для объединения нескольких территориально удаленных друг от друга локальных сетей и подключения удаленных пользователей к локальной сети. Поэтому рассматриваемая технология оказалась очень привлекательна для бизнеса, обеспечивая прозрачный для пользователя механизм построения единой корпоративной информационной среды без дорогих выделенных каналов связи. Преимущества VPN оценили и провайдеры — владельцы домовых и районных сетей. Многие производители сетевого оборудования в настоящее время предлагают аппаратные и программные средства для построения VPN.
Приватизируем сами
Помимо сложных и дорогих решений, зачастую требующих специального аппаратного обеспечения или дорогого ПО, существуют продукты, позволяющие организовать VPN буквально «на коленке», без особых навыков и затрат. Они могут уступать корпоративным в скорости, но должны быть простыми в конфигурировании, гибкими в использовании, мультиплатформными, доступными, желательно открытыми. Создание такого ПО стало возможно с появлением концепции интерфейсов TUN/TAP, которые представляют собой виртуальные сетевые адаптеры. Интерфейс TUN эмулирует устройство типа точка-точка (например, модем), а TAP — карту Ethernet. Для решения задачи безопасности в этих продуктах применяются либо собственные варианты известных криптографических алгоритмов, либо реализации широко распространенного и проверенного стандарта SSL.
Обычным пользователям, как правило, требуется объединить несколько территориально распределенных (и подключенных к Интернету через различных провайдеров) компьютеров в одноранговую виртуальную сеть с единым адресным пространством. Помимо безопасности связи, подобная сеть позволяет использовать все преимущества «локального» соединения — например, обмениваться файлами с помощью встроенных средств Windows или играть в многопользовательские игры без подключения к центральному серверу.
Рассмотрим две программы, использующие механизм TUN/TAP-интерфейсов: OpenVPN и Hamachi. Первая из них является полностью открытым решением, а вторая — свободно распространяемым, но closed-source-продуктом.
Золотая рыбка Hamachi
Начнем с Hamachi (hamachi.cc). Она представляет собой небольшую утилиту для создания безопасных соединений между компьютерами через Интернет. Для туннелирования служит протокол UDP. В процессе подключения используется третий компьютер — backend-сервер Hamachi, который необходим лишь для управления и не участвует непосредственно в передаче трафика. У Hamachi существуют версии для Windows 2000/XP/2003, Linux и Mac OS X, для двух последних операционных систем — только в консольном варианте.
После установки в системе появится дополнительный сетевой адаптер. Если установлен файрволл, необходимо уточнить его настройки для этого виртуального устройства. При первом запуске программа соединяется с backend-сервером и получает адрес, уникальный в пределах сети Hamachi. Он становится первичным идентификатором и используется для связи с другими подключенными компьютерами. Для удобства система позволяет кроме адреса определить также и ник.
Читать дальше