Как сделать личный VPN? Объединение удаленных офисов. VPN (Virtual Private Networks)

VPN (Virtual Private Network) – широко распространённая технология, позволяющая организовывать виртуальные сети поверх существующих реальных сетей. В данной статье речь пойдёт о терминологии и общих принципах, настройка таких сетей будет рассматриваться отдельно.

Не смотря на слово «Private» в названии технологии, существует возможность организации и общедоступных – нешифрованных сетей. Вообще, организация VPN может осуществляться огромным количеством способов с использованием разных технологий (SSL VPN, IPSec, GRE и др.).

Любое построение VPN-а означает создание туннелей, под туннелем подразумевается канал между двумя устройствами, по которому передаётся данные. Важное условие – данные изолированы от особенностей построения канала. Устройство, передающее полезные данные делает это так, как будто бы никакого туннеля нет, а настройка самого туннеля при этом выделяется в отдельную задачу. Существует два типа VPN туннелей:

  1. Remote access VPN – означает, что туннель организуется между приложением на компьютере клиента и каким-либо устройством, которое выступает в качестве сервера и организовывает подключения от различных клиентов (например, VPN-концентратор, маршрутизатор, Cisco ASA и т.п.)
  2. Site-to-site VPN – подразумевает наличие двух устройств (например, маршрутизаторов), между которыми имеется перманентный туннель, в этом случае, пользователи находятся за устройствами, в локальный сетях и на их компьютерах не требуется установки какого-либо специального программного обеспечения.

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

В туннеле обычно используется три прослойки протоколов:

  1. Транспортный протокол (например, IP). Это протокол, на котором построена существующая реальная сеть, то есть, он изначально не связан с VPN-ом, но используется для транспортировки инкапсулированных пакетов, содержащих внутри себя зашифрованную, или открытую информацию, относящуюся ко внутренней сети туннеля.
  2. Протокол инкапсуляции (например, GRE) – используется как прослойка между транспортным протоколом и внутренним транспортируемым протоколом.
  3. Инкапсулированный (транспортируемый) протокол (например, IP, IPX, IPSec) – это собственно пакеты внутритуннельной сети, пользователь, подключенный к VPN-у отправляет пакеты, которые на входе в туннель становятся инкапсулированными, например, в GRE, который, в свою очередь, инкапсулируется в транспортный протокол.

Таким образом, общий порядок инкапсуляции, в случае использования site-to-site VPN следующий: пользователь отправляет обычный пакет, пакет доходит до устройства, на котором поднят туннель, устройство заворачивает этот полезный пакет в поле «data» протокола инкапсуляции, который, в свою очередь заворачивается в поле «data» транспортного протокола. После чего из устройства выходит с виду обычный, например, ip пакет, в котором, на самом деле, в поле с полезными данными содержится GRE-пакет, в котором, в свою очередь, содержится другой внутренний IP пакет. Это позволяет использовать независимую адресацию внутри туннеля и снаружи туннеля. Когда целевое устройство получает такой пакет, оно разворачивает его, декапсулируя из него GRE и потом внутренний IP пакет. После чего внутренний пакет направляется получателю. В данной ситуации, как не сложно догадаться, отправитель и получатель ничего не знаю о наличии туннеля, и работают так, как будто бы его нет. При этом в транспортном протоколе используется одна адресация (например, публичные IP адреса), а в транспортируемом протоколе могут использоваться приватные адреса, что не мешает ему транспортироваться через интернет (так как маршрутизация осуществляется для внешнего, транспортного пакета).

В последнее время в мире телекоммуникаций наблюдается повышенный интерес к виртуальным частным сетям (Virtual Private Network – VPN) . Это обусловлено необходимостью снижения расходов на содержание корпоративных сетей за счет более дешевого подключения удаленных офисов и удаленных пользователей через сеть Internet. Действительно, при сравнении стоимости услуг по соединению нескольких сетей через Internet, например, с сетями Frame Relay можно заметить существенную разницу в стоимости. Однако необходимо отметить, что при объединении сетей через Internet, сразу же возникает вопрос о безопасности передачи данных, поэтому возникла необходимость создания механизмов позволяющих обеспечить конфиденциальность и целостность передаваемой информации. Сети, построенные на базе таких механизмов, и получили название VPN.

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

VPN имеет перспективу на широкое распространение по всему миру.

1. Понятие и классификация VPN сетей, их построение

1.1 Что такое VPN

VPN (англ. Virtual Private Network – виртуальная частная сеть) – логическая сеть, создаваемая поверх другой сети, например Internet. Несмотря на то, что коммуникации осуществляются по публичным сетям с использованием небезопасных протоколов, за счёт шифрования создаются закрытые от посторонних каналы обмена информацией. VPN позволяет объединить, например, несколько офисов организации в единую сеть с использованием для связи между ними неподконтрольных каналов.

По своей сути VPN обладает многими свойствами выделенной линии, однако развертывается она в пределах общедоступной сети, например Интернета. С помощью методики туннелирования пакеты данных транслируются через общедоступную сеть как по обычному двухточечному соединению. Между каждой парой «отправитель–получатель данных» устанавливается своеобразный туннель – безопасное логическое соединение, позволяющее инкапсулировать данные одного протокола в пакеты другого. Основными компонентами туннеля являются:

· инициатор

· маршрутизируемая сеть;

· туннельный коммутатор;

· один или несколько туннельных терминаторов.

Сам по себе принцип работы VPN не противоречит основным сетевым технологиям и протоколам. Например, при установлении соединения удаленного доступа клиент посылает серверу поток пакетов стандартного протокола PPP. В случае организации виртуальных выделенных линий между локальными сетями их маршрутизаторы также обмениваются пакетами PPP. Тем не менее, принципиально новым моментом является пересылка пакетов через безопасный туннель, организованный в пределах общедоступной сети.

Туннелирование позволяет организовать передачу пакетов одного

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

Существующая сетевая инфраструктура корпорации может быть подготовлена к использованию VPN как с помощью программного, так и с помощью аппаратного обеспечения. Организацию виртуальной частной сети можно сравнить с прокладкой кабеля через глобальную сеть. Как правило, непосредственное соединение между удаленным пользователем и оконечным устройством туннеля устанавливается по протоколу PPP.

Наиболее распространенный метод создания туннелей VPN – инкапсуляция сетевых протоколов (IP, IPX, AppleTalk и т.д.) в PPP и последующая инкапсуляция образованных пакетов в протокол туннелирования. Обычно в качестве последнего выступает IP или (гораздо реже) ATM и Frame Relay. Такой подход называется туннелированием второго уровня, поскольку «пассажиром» здесь является протокол именно второго уровня.

Альтернативный подход – инкапсуляция пакетов сетевого протокола непосредственно в протокол туннелирования (например, VTP) называется туннелированием третьего уровня.

Независимо от того, какие протоколы используются или какие цели

преследуются при организации туннеля, основная методика остается

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

1.2 Классификация VPN сетей

Классифицировать VPN решения можно по нескольким основным параметрам:

1. По типу используемой среды:

· Защищённые VPN сети. Наиболее распространённый вариант приватных частных сетей. C его помощью возможно создать надежную и защищенную подсеть на основе ненадёжной сети, как правило, Интернета. Примером защищённых VPN являются: IPSec, OpenVPN и PPTP.

· Доверительные VPN сети. Используются в случаях, когда передающую среду можно считать надёжной и необходимо решить лишь задачу создания виртуальной подсети в рамках большей сети. Вопросы обеспечения безопасности становятся неактуальными. Примерами подобных VPN решении являются: MPLS и L2TP. Корректнее сказать, что эти протоколы перекладывают задачу обеспечения безопасности на другие, например L2TP, как правило, используется в паре с IPSec.

2. По способу реализации :

· VPN сети в виде специального программно-аппаратного обеспечения. Реализация VPN сети осуществляется при помощи специального комплекса программно-аппаратных средств. Такая реализация обеспечивает высокую производительность и, как правило, высокую степень защищённости.

· VPN сети в виде программного решения. Используют персональный компьютер со специальным программным обеспечением, обеспечивающим функциональность VPN.

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

3. По назначению:

· Intranet VPN . Используют для объединения в единую защищённую сеть нескольких распределённых филиалов одной организации, обменивающихся данными по открытым каналам связи.

· Remote Access VPN. Используют для создания защищённого канала между сегментом корпоративной сети (центральным офисом или филиалом) и одиночным пользователем, который, работая дома, подключается к корпоративным ресурсам с домашнего компьютера или, находясь в командировке, подключается к корпоративным ресурсам при помощи ноутбука.

· Extranet VPN . Используют для сетей, к которым подключаются «внешние» пользователи (например, заказчики или клиенты). Уровень доверия к ним намного ниже, чем к сотрудникам компании, поэтому требуется обеспечение специальных «рубежей» защиты, предотвращающих или ограничивающих доступ последних к особо ценной, конфиденциальной информации.

4. По типу протокола:

Существуют реализации виртуальных частных сетей под TCP/IP, IPX и AppleTalk . Но на сегодняшний день наблюдается тенденция к всеобщему переходу на протокол TCP/IP , и абсолютное большинство VPN решений поддерживает именно его.

5. По уровню сетевого протокола:

По уровню сетевого протокола на основе сопоставления с уровнями эталонной сетевой модели ISO/OSI.

1.3. Построение VPN

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

· VPN на базе брандмауэров

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

В качестве примера VPN на базе брандмауэров можно назвать FireWall-1 компании Check Point Software Technologies. FairWall-1 использует для построения VPN стандартный подход на базе IPSec. Трафик, приходящий в брандмауэр, дешифруется, после чего к нему применяются стандартные правила управления доступом. FireWall-1 работает под управлением операционных систем Solaris и Windows NT 4.0.

· VPN на базе маршрутизаторов

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

В современных условиях развития информационных технологий, преимущества создания виртуальных частных сетей неоспоримы. Но прежде чем перечислить наиболее очевидные и полезные способы организации виртуальных частных сетей, необходимо определиться с самим понятием. Виртуальная частная сеть или просто VPN (Virtual Private Network) – это технология, при которой происходит обмен информацией с удаленной локальной сетью по виртуальному каналу через сеть общего пользования с имитацией частного подключения «точка-точка». Под сетью общего пользования можно подразумевать как Интернет, так и другую интрасеть.

Предыстория

История зарождения VPN уходит своими корнями далеко в 60-е годы прошлого столетия, когда специалисты инженерно-технического отдела нью-йоркской телефонной компании разработали систему автоматического установления соединений абонентов АТС – Centrex (Central Exchange). Другими словами это не что иное, как виртуальная частная телефонная сеть, т.к. арендовались уже созданные каналы связи, т.е. создавались виртуальные каналы передачи голосовой информации. В настоящее время данная услуга заменяется более продвинутым ее аналогом – IP-Centrex. Соблюдение конфиденциальности было важным аспектом при передаче информации уже достаточно длительное время, приблизительно в 1900 году до н.э. первые попытки криптографии проявляли египтяне, искажая символы сообщений. А в XV веке уже нашей эры математиком Леоном Батистом Альберти была создана первая криптографическая модель. В наше время именно виртуальная частная сеть может обеспечить достаточную надежность передаваемой информации вместе с великолепной гибкостью и расширяемостью системы.

VPN versus PN

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

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

  • высокая скорость передачи информации, фактически скорость при таком соединении будет равна скорости локальной сети предприятия;
  • безопасность, передаваемые данные не попадают в сеть общего пользования;
  • за пользование организованной сетью ни кому не надо платить, действительно капитальные вложения будут только на стадии изготовления сети.
На следующем рисунке изображен аналогичный вариант организации сети учреждения с филиалами, но только с использованием виртуальных частных сетей.

В данном случае преимущества, приведенные для частных сетей, оборачиваются недостатками для виртуальных частных сетей, но так ли значительны эти недостатки? Давайте разберемся:

  • скорость передачи данных. Провайдеры могут обеспечить достаточно высокоскоростной доступ в Интернет, однако с локальной, проверенной временем 100 Мбит сетью он все равно не сравнится. Но так ли важно каждый день перекачивать сотни мегабайт информации через организованную сеть? Для доступа к локальному сайту предприятия, пересылки электронного письма с документом вполне достаточно скорости, которой могут обеспечить Интернет-провайдеры;
  • безопасность передаваемых данных. При организации VPN передаваемая информация попадает во внешнюю сеть, поэтому об организации безопасности придется позаботиться заранее. Но уже сегодня существуют достаточно стойкие к атакам алгоритмы шифрования информации, которые позволяют владельцам передаваемых данных не беспокоиться за безопасность. Подробнее о способах обеспечения безопасности и алгоритмах шифрования чуть ниже;
  • за организованную сеть никому не надо платить. Достаточно спорное преимущество, поскольку в противовес дешевизне пользования сетью стоят большие капитальные затраты на ее создание, которые могут оказаться неподъемными для небольшого учреждения. В то же время плата за использование Интернет в наши дни сама по себе достаточно демократичная, а гибкие тарифы позволяю выбрать каждому оптимальный пакет.
Теперь разберемся с наиболее очевидными преимуществами VPN:
  • масштабируемость системы. При открытии нового филиала или добавления сотрудника, которому позволено пользоваться удаленным доступом не нужно никаких дополнительных затрат на коммуникации.
  • гибкость системы. Для VPN не важно, откуда вы осуществляете доступ. Отдельно взятый сотрудник может работать из дома, а может во время чтения почты из корпоративного почтового ящика фирмы пребывать в командировке в абсолютно другом государстве. Также стало возможным использовать так называемые мобильные офисы, где нет привязки к определенной местности.
  • из предыдущего вытекает, что для организации своего рабочего места человек географически неограничен, что при использовании частной сети практически невозможно.
Отдельным пунктом можно выделить создание не проводных частных сетей, а беспроводных. При таком подходе можно даже рассмотреть вариант со своим спутником. Однако в этом случае начальные затраты достигают астрономических высот, скорость снижается фактически до скорости пользования всемирной паутиной, а для надежного обеспечения безопасности необходимо применять опять таки шифрование. И в итоге получаем туже виртуальную частную сеть, только с неимоверно высокими начальными затратами и затратами на поддержание в рабочем состоянии всего оборудования. Способы организации В VPN наиболее целесообразно выделить следующие три основных способа: В этом случае для удаленных клиентов будут очень урезаны возможности по использованию корпоративной сети, фактически они будут ограничены доступом к тем ресурсам компании, которые необходимы при работе со своими клиентами, например, сайта с коммерческими предложениями, а VPN используется в этом случае для безопасной пересылки конфиденциальных данных. Средства защиты информации – протоколы шифрования Поскольку данные в виртуальных частных сетях передаются через общедоступную сеть, следовательно, они должны быть надежно защищены от посторонних глаз. Для реализации защиты передаваемой информации существует множество протоколов, которые защищают VPN, но все они подразделяются на два вида и работают в паре:
  • протоколы, инкапсулирующие данные и формирующие VPN соединение;
  • протоколы, шифрующие данные внутри созданного туннеля.
Первый тип протоколов устанавливает туннелированное соединение, а второй тип отвечает непосредственно за шифрование данных. Рассмотрим некоторые стандартные, предлагаемые всемирно признанным мировым лидером в области разработки операционных систем, решения. В качестве стандартного набора предлагается сделать выбор из двух протоколов, точнее будет сказать наборов:
  1. PPTP (Point-to-Point Tunneling Protocol) – туннельный протокол «точка-точка», детище Microsoft и является расширением PPP (Point-to-Point Protocol), следовательно, использует его механизмы подлинности, сжатия и шифрования. Протокол PPTP является встроенным в клиент удаленного доступа Windows XP. При стандартном выборе данного протокола компанией Microsoft предлагается использовать метод шифрования MPPE (Microsoft Point-to-Point Encryption). Можно передавать данные без шифрования в открытом виде. Инкапсуляция данных по протоколу PPTP происходит путем добавления заголовка GRE (Generic Routing Encapsulation) и заголовка IP к данным обработанных протоколом PPP.
  2. L2TP (Layer Two Tunneling Protocol) – более совершенный протокол, родившийся в результате объединения протоколов PPTP (от Microsoft) и L2F (от Cisco), вобравший в себя все лучшее из этих двух протоколов. Предоставляет более защищенное соединение, нежели первый вариант, шифрование происходит средствами протокола IPSec (IP-security). L2TP является также встроенным в клиент удаленного доступа Windows XP, более того при автоматическом определении типа подключения клиент сначала пытается соединиться с сервером именно по этому протоколу, как являющимся более предпочтительным в плане безопасности.
Инкапсуляция данных происходит путем добавления заголовков L2TP и IPSec к данным обработанным протоколом PPP. Шифрование данных достигается путем применения алгоритма DES (Data Encryption Standard) или 3DES. Именно в последнем случае достигается наибольшая безопасность передаваемых данных, однако в этом случае придется расплачиваться скоростью соединения, а также ресурсами центрального процессора. В вопросе применения протоколов компания Microsoft и Cisco образуют некий симбиоз, судите сами, протокол PPTP – разработка Microsoft, но используется совместно с GRE, а это продукт Cisco, далее более совершенный в плане безопасности протокол L2TP – это ни что иное, как гибрид, вобравший в себя все лучшее PPTP (уже знаем чей) и L2F, да правильно, разработанный Cisco. Возможно именно поэтому VPN, при правильном подходе в организации, считается надежным способом передачи конфиденциальных данных. Рассмотренные здесь примеры протоколов не являются единственными, существует множество альтернативных решений, например, PopTop – Unix реализация PPTP, или FreeSWAN – протокол для установления IPSec соединения под Linux, а также: Vtun, Racoon, ISAKMPD и др.

Практическая реализация

Теперь перейдем от теории к практике, ведь, как известно: «практика – критерий истины». Попробуем организовать простой вариант виртуальной частной сети, изображенный на рисунке ниже.

Удаленный сотрудник или сотрудница находится вне офиса и имеет доступ в сеть общего пользования, пускай это будет Интернет. Адрес сети, к которой необходимо получить доступ 11.7.0.0 маска подсети соответственно 255.255.0.0. Данная корпоративная сеть – это доменная сеть, под управлением Windows 2003 Server Corporate Edition. На сервере имеется два сетевых интерфейса с IP адресами, внутренним для корпоративной сети 11.7.3.1 и внешним 191.168.0.2. Следует отметить, что при проектировании сети VPN сервер ставится в самую последнюю очередь, поэтому Вы сможете без особых проблем организовать VPN доступ к уже отлаженной и сформированной сети организации, но, в тоже время, если в управляемой сети произошли существенные изменения, то, возможно, Вам потребуется перенастроить VPN сервер. В нашем случае имеется уже сформированная сеть, с адресами, описанными выше, необходимо настроить VPN сервер, а также разрешить определенным пользователям доступ из внешней сети. В корпоративной сети имеется внутренний сайт, к которому мы и попытаемся получить доступ посредствам виртуальной частной сети. В Windows 2003 Server установка роли VPN сервера осуществляется достаточно просто.

Следуя подсказкам мастера, устанавливаем необходимые параметры: на втором шаге выбираем удаленный доступ (VPN или модем); потом удаленный доступ через Интернет; на 4-м шаге указываем интерфейс сервера, подключенный к Интернету, в нашем случае 191.168.0.2; далее определяем способ назначения адресов удаленным клиентам, в нашем случае это будут автоматически назначенные адреса; если у Вашей сети имеется RADIUS сервер, для централизованной проверки подлинности подключений, выберете его, если нет, тогда оставьте эту задачу VPN серверу. Итак, VPN сервер создан, после проделанных установок, переходим к управлению пользователями нашего домена и для работников, которые нуждаются в удаленном доступе к внутренней сети организации, разрешаем этот самый доступ, установив на вкладке «Входящие звонки» соответствующий переключатель.

При конфигурировании виртуальной частной сети следует помнить, что для корректной работы необходимо, чтобы установленный брандмауэр разрешал протоколы, используемые VPN. С серверной частью закончили, переходим к созданию клиента виртуальной частной сети на удаленном компьютере. Для этого необходимо запустить мастер сетевых подключений. На втором шаге, следуя подсказкам, выбрать пункт «Подключить к сети на рабочем месте». На третьем шаге «Подключение к виртуальной частной сети». Следующий шаг – вводим название подключения. Пятый шаг – выбираем, следует ли предварительно подключаться к Интернету (если Вы подключаетесь с места с постоянным доступом, выберете «нет», если же используете, например, мобильный телефон в качестве модема, тогда следует выбрать предварительный набор номера для подключения к Интернету). На предпоследнем шаге вводим IP-адрес сервера, к которому осуществляется доступ.

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

Проверка

Конфигурирование удаленного доступа завершено, пришло время проверить его работоспособность. Начнем традиционно, со всеми любимой команды «ping», просто попробуем «пропинговать» какую-нибудь рабочую станцию из нашей корпоративной сети.

Отлично, компьютеры видны, однако удаленному работнику вряд ли понадобится это, попробуем зайти на локальный сайт организации.

Все отлично работает, осталось замерить производительность работы созданной виртуальной частной сети. Для этого скопируем файл через VPN подключение, а также, не используя его, на VPN сервер. В качестве физической среды передачи информации выступит 100 Мбит сеть, в этом случае пропускная способность сети не является ограничивающим фактором. Итак, копирование файла размером 342 921 216 байт происходило 121 секунду. С подключением VPN – 153 секунды. В целом потеря во времени копирования составила 26%, что естественно, поскольку при передаче информации через VPN появляются дополнительные накладные расходы в виде шифрования/дешифрования данных. В нашем случае использовался протокол PPTP, при использовании других видов протоколов потеря во времени также будет варьировать. В настоящее время Microsoft рекомендует использовать протокол L2TP IPSec вместе со смарт-картами для обеспечения максимальной защиты при проверке подлинности и передачи информации.

Выводы

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

Организация каналов между удаленными сетями посредством VPN-соединения одна из самых популярных тем на нашем сайте. В тоже время, как показывает читательский отклик, наибольшие затруднения вызывает правильная настройка маршрутизации, хотя мы специально уделяли внимание этому моменту. Проанализировав наиболее часто задаваемые вопросы, мы решили посвятить теме маршрутизации отдельную статью. Есть вопросы? Надеемся, что после прочтения данного материала их станет меньше.

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

Возьмем произвольную рабочую станцию, подключенную к сети, каким образом она определяет куда посылать тот или иной пакет? Для этой цели предназначена таблица маршрутизации , которая содержит перечень правил для всех возможных адресов назначения. На основании этой таблицы хост (или маршрутизатор) принимают решение, на какой интерфейс и адрес назначения отправить пакет, адресованный определенному получателю.

Route print

В итоге мы увидим следующую таблицу:

Все очень просто, нас интересует секция IPv4 таблица маршрута , первые две колонки содержат адрес назначения и маску сети, затем следует шлюз - узел которому следует перенаправить пакеты для указанного назначения, интерфейс и метрика. Если в колонке Шлюз указано On-link , то это означает что адрес назначения находится в одной сети с хостом и доступен без маршрутизации. Метрика определяет приоритет правил маршрутизации, если адрес назначения имеет в таблице маршрутов несколько правил, то используется тот, что имеет меньшую метрику.

Наша рабочая станция принадлежит к сети 192.168.31.0 и, согласно таблице маршрутов, все запросы к данной сети отправляет на интерфейс 192.168.31.175, что соответствует сетевому адресу это станции. Если адрес назначения находится в одной сети с адресом источником, то доставка информации происходит без использования IP-маршрутизации (сетевой уровень L3 модели OSI), на канальном уровне (L2). В противном случае пакет отправляется узлу, указанному в соответствующему сети назначения правилу таблицы маршрутов.

Если такого правила нет, то пакет отправляется по нулевому маршруту , который содержит адрес основного шлюза сети. В нашем случае это адрес роутера 192.168.31.100. Нулевым этот маршрут называется потому, что адресом назначения для него указывается 0.0.0.0. Этот момент является очень важным для дальнейшего понимания процесса маршрутизации: все пакеты, не принадлежащие данной сети и не имеющие отдельных маршрутов, всегда отправляются основному шлюзу сети.

Что сделает маршрутизатор, получив такой пакет? Прежде всего разберемся, чем отличается маршрутизатор от обычной сетевой станции. Если говорить крайне упрощенно, то маршрутизатором (роутером) является сетевое устройство, которое настроено передавать пакеты между сетевыми интерфейсами. В Windows это достигается включением службы Маршрутизация и удаленный доступ , в Linux заданием опции ip_forward .

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

Route -n

Как видим, наш роутер содержит маршруты к известным ему сетям 192.168.31.0 и 192.168.3.0, а также нулевой маршрут к вышестоящему шлюзу 192.168.3.1.

Адрес 0.0.0.0 в колонке шлюза (Gateway) обозначает, что адрес назначения доступен без маршрутизации. Таким образом все пакеты с адресами назначения в сетях 192.168.31.0 и 192.168.3.0 будут отправлены на соответствующий интерфейс, а все остальные пакеты будут переданы дальше по нулевому маршруту.

Следующий важный момент - адреса приватных (частных) сетей, они же "серые", к ним относятся три диапазона:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Данные адреса могут свободно использоваться любым желающим и поэтому они не маршрутизируются . Что это значит? Любой пакет с адресом назначения принадлежащим одной из этих сетей будет отброшен маршрутизатором, если для него нет отдельной записи в таблице маршрутизации. Проще говоря, маршрут по умолчанию (нулевой) для таких пакетов маршрутизатором не применяется. Также следует понимать, что данное правило применяется только при маршрутизации, т.е. при передаче пакетов между интерфейсами, исходящий пакет с "серым" адресом будет отправлен по нулевому маршруту, даже если данный узел сам является маршрутизатором.

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

Самое время проверить, как это все работает. Попробуем с нашего узла 192.168.31.175 пропинговать узел 192.168.3.106, который находится в сети за роутером. Как видим, это нам удалось, хотя таблица маршрутов узла не содержит никаких сведений о сети 192.168.3.0.

Как это стало возможным? Так как узел-источник ничего не знает о сети назначения, то он отправит пакет на адрес шлюза. Шлюз проверит свою таблицу маршрутов, обнаружит там запись для сети 192.168.3.0 и отправит пакет на соответствующий интерфейс, в этом несложно убедиться выполнив команду трассировки, которая покажет весь путь нашего пакета:

Tracert 192.168.3.106

Теперь попробуем выполнить пинг узла 192.168.31.175 с узла 192.168.3.106, т.е. в обратном направлении. У нас ничего не вышло. Почему?

Давайте внимательно посмотрим таблицу маршрутизации. Никаких записей для сети 192.168.31.0 она не содержит, поэтому пакет будет отправлен маршрутизатору 192.168.3.1, как основному шлюзу сети, который данный пакет отбросит, так как никаких данных о сети назначения не имеет. Как быть? Очевидно, что следует отправить пакет тому узлу, который содержит нужную информацию и может передать пакет по назначению, в нашем случае это роутер 192.168.31.100, который в данной сети имеет адрес 192.168.3.108.

Чтобы пакеты для сети 192.168.31.0 отправлялись именно ему, нам нужно создать отдельный маршрут.

192.168.31.0 mask 255.255.255.0 192.168.3.108

В дальнейшем мы будем придерживаться такой записи маршрутов, что она значит? Все просто, пакеты для сети 192.168.31.0 с маской 255.255.255.0 следует отправлять узлу 192.168.3.108. В Windows маршрут можно добавить командой:

Route add 192.168.31.0 mask 255.255.255.0 192.168.3.108

Route add -net 192.168.31.0 netmask 255.255.255.0 gw 192.168.3.108

Попробуем.

Давайте проанализируем результат, в таблице маршрутизации появился маршрут и все пакеты к сети 192.168.31.0 теперь отправляются роутеру этой сети, что видно из ответа команды ping, но до назначения не доходят. В чем дело? Самое время вспомнить, что одной из основных задач роутера является не только маршрутизация, но и функция сетевого экрана, который явно запрещает доступ из внешней сети внутрь. Если мы временно заменим данное правило разрешающим, то все будет работать.

Добавленные вышеуказанными командами маршруты сохраняются до перезагрузки узла, это удобно, даже если вы сильно накуролесили, достаточно просто выполнить перезагрузку, чтобы отменить внесенные изменения. Чтобы добавить постоянный маршрут в Windows выполните команду:

Route add 192.168.31.0 mask 255.255.255.0 192.168.3.108 -p

В Linux в /etc/network/interfaces , после описания интерфейса, следует добавить:

Post-up route add -net 192.168.31.0 netmask 255.255.255.0 gw 192.168.3.108

Кстати, это не единственный способ настроить доступ из сети 192.168.3.0 в сеть 192.168.31.0, вместо того, чтобы добавлять маршрут для каждого узла, можно "научить" правильно отправлять пакеты маршрутизатор.

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

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

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

Самый простой случай, когда VPN-сервер (клиент) и маршрутизатор сети располагаются на одном хосте. Рассмотрим схему ниже:

Так как теорию, надеемся, вы усвоили и закрепили на практике, проанализируем маршрут пакетов из сети офиса 192.168.31.0 в сеть филиала 192.168.44.0, такой пакет будет отправлен на шлюз по умолчанию, который является также VPN-сервером. Однако данный узел ничего не знает о сети назначения и должен будет откинуть данный пакет. В тоже время мы уже можем обратиться к маршрутизатору филиала по его адресу в VPN-сети 10.8.0.2, так как данная сеть доступна с маршрутизатора офиса.

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

Теперь шлюз офиса, получив пакет для сети филиала, отправит его через VPN-канал маршрутизатору филиала, который, являясь узлом сети 192.168.44.0 доставит пакет по назначению. Для доступа из сети филиала в сеть офиса нужно прописать аналогичный маршрут на маршрутизаторе филиала.

Возьмем схему посложнее, когда маршрутизатор и VPN-сервер (клиент) являются разными узлами сети. Здесь возможны два варианта, передать нужный пакет непосредственно VPN-серверу (клиенту) или заставить это делать шлюз.

Сначала рассмотрим первый вариант.

Для того, чтобы пакеты для сети филиала попали в VPN-сеть мы должны добавить на каждый клиент сети маршрут к VPN-серверу (клиенту), в противном случае они будут отправлены шлюзу, который их отбросит:

Однако VPN-сервер ничего не знает о сети филиала, но может отправлять пакеты в пределах VPN-сети, где есть интересующий нас узел сети филиала, поэтому направим пакет туда, добавив на VPN-сервере (клиенте) маршрут:

192.168.44.0 mask 255.255.255.0 10.8.0.2

Недостаток данной схемы - необходимость прописывать маршруты на каждом узле сети, что не всегда удобно. Его можно использовать если устройств в сети немного или требуется выборочный доступ. В остальных случаях задачу маршрутизации будет правильнее переложить на основной маршрутизатор сети.

В этом случае сетевые устройства офиса ничего не знают о сети филиала и отправят пакеты для него по нулевому маршруту, шлюзу сети. Теперь задача шлюза перенаправить этот пакет VPN-серверу (клиенту), это просто сделать, добавив в его таблицу маршрутизации нужный маршрут:

192.168.44.0 mask 255.255.255.0 192.168.31.101

Про задачу VPN-сервера (клиента) мы упоминали выше, он должен доставить пакеты тому узлу VPN-сети, который является частью сети назначения или имеет маршрут к ней.

192.168.44.0 mask 255.255.255.0 10.8.0.2

Для доступа из сети филиала в сеть офиса потребуется добавить соответствующие маршруты на сетевые узлы филиала. Сделать это можно любым удобным способом, не обязательно также, как это сделано в офисе. Простой реальный пример: все компьютеры филиала должны иметь доступ к сети офиса, но не все компьютеры офиса должны иметь доступ в филиал. В таком случае в филиале добавляем маршрут к VPN-серверу (клиенту) на маршрутизаторе, а в офисе добавляем его только на нужные компьютеры.

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

  • Теги:

Please enable JavaScript to view the