Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Технологии Интернет,
Информационные Технологии
Лабораторная работа 6
Виртуальные частные сети VPN
Киров 2016
Виртуальная частная сеть или просто VPN (Virtual Private Network) – это технология, при
которой происходит обмен информацией с удаленной локальной сетью по виртуальному каналу
через сеть общего пользования с имитацией частного подключения «точка-точка». Под сетью
общего пользования можно подразумевать как Интернет, так и другую интрасеть.
На рисунке ниже изображен вариант организации обычной частной сети небольшой
компанией с 2 филиалами.
Доступ во внешнюю сеть может осуществляться как через центральный офис, так и
децентрализовано. Данная организация сети обладает следующими неоспоримыми
преимуществами:
высокая скорость передачи информации, фактически скорость при таком соединении будет
равна скорости локальной сети предприятия;
безопасность, передаваемые данные не попадают в сеть общего пользования;
за пользование организованной сетью ни кому не надо платить, действительно капитальные
вложения будут только на стадии изготовления сети.
На следующем рисунке изображен аналогичный вариант организации сети учреждения с
филиалами, но только с использованием виртуальных частных сетей.
В данном случае преимущества, приведенные для частных сетей, оборачиваются
недостатками для виртуальных частных сетей, но так ли значительны эти недостатки? Давайте
разберемся:
скорость передачи данных. Провайдеры могут обеспечить достаточно высокоскоростной
доступ в Интернет, однако с локальной, проверенной временем 100/1000 Мбит сетью он все
равно не сравнится. Но так ли важно каждый день перекачивать сотни мегабайт
информации через организованную сеть? Для доступа к локальному сайту предприятия,
пересылки электронного письма с документом вполне достаточно скорости, которой могут
обеспечить Интернет-провайдеры;
безопасность передаваемых данных. При организации VPN передаваемая информация
попадает во внешнюю сеть, поэтому об организации безопасности придется позаботиться
заранее. Но уже сегодня существуют достаточно стойкие к атакам алгоритмы шифрования
информации, которые позволяют владельцам передаваемых данных не беспокоиться за
безопасность;
за организованную сеть никому не надо платить. Достаточно спорное преимущество,
поскольку в противовес дешевизне пользования сетью стоят большие капитальные затраты
на ее создание, которые могут оказаться неподъемными для небольшого учреждения. В то
же время плата за использование Интернет в наши дни сама по себе достаточно
демократичная, а гибкие тарифы позволяю выбрать каждому оптимальный пакет.
При организации такой схемы подключения требуется (не всегда) наличие VPN серверов
равное количеству связываемых офисов. Данный способ целесообразно использовать как для
обыкновенных филиалов, так и для мобильных офисов, которые будут иметь доступ к ресурсам
«материнской» компании, а также без проблем обмениваться данными между собой.
3. Extranet VPN. Используется для сетей, к которым подключаются «внешние»
пользователи (например, заказчики или клиенты). Уровень доверия к ним намного ниже, чем к
сотрудникам компании, поэтому требуется обеспечение специальных «рубежей» защиты,
предотвращающих или ограничивающих доступ последних к особо ценной, конфиденциальной
информации. Набирает широкое распространение в связи с популярностью электронной
коммерции. В этом случае для удаленных клиентов будут очень урезаны возможности по
использованию корпоративной сети, фактически они будут ограничены доступом к тем ресурсам
компании, которые необходимы при работе со своими клиентами, например, сайта с
коммерческими предложениями, а VPN используется в этом случае для безопасной пересылки
конфиденциальных данных. Средства защиты информации – протоколы шифрования
4. Internet VPN. Используется для предоставления доступа к интернету провайдерами,
обычно в случае, если по одному физическому каналу подключаются несколько пользователей.
5. Client/Server VPN обеспечивает защиту передаваемых данных между двумя узлами (не
сетями) корпоративной сети. Особенность данного варианта в том, что VPN строится между
узлами, находящимися, как правило, в одном сегменте сети, например, между рабочей станцией и
сервером. Такая необходимость очень часто возникает в тех случаях, когда в одной физической
сети необходимо создать несколько логических сетей. Например, когда надо разделить трафик
между финансовым департаментом и отделом кадров, обращающихся к серверам, находящимся в
одном физическом сегменте. Этот вариант похож на технологию VLAN, но вместо разделения
трафика, используется его шифрование.
Примечание:
PAP - протокол простой проверки подлинности, предусматривающий отправку имени
пользователя и пароля на сервер удаленного доступа открытым текстом (без шифрования).
Протокол PAP крайне ненадежен, поскольку пересылаемые пароли можно легко читать в
пакетах PPP, которыми обмениваются стороны в ходе проверки подлинности. Обычно PAP
используется только при подключении к старым серверам удаленного доступа, которые не
поддерживают никакие другие протоколы проверки подлинности.
CHAP - широко распространённый алгоритм проверки подлинности, предусматривающий
передачу не самого пароля пользователя, а косвенных сведений о нём. При использовании CHAP
сервер удаленного доступа отправляет клиенту уникальную строку запроса, например дату и
время. На основе этой строки и пароля пользователя клиент вычисляет хеш-код MD5 и передает
его серверу. Хеш-функция является алгоритмом одностороннего (необратимого) шифрования,
поскольку значение хеш-функции для блока данных вычислить легко, а определить исходный блок
по хеш-коду с математической точки зрения невозможно за приемлемое время. Сервер, которому
доступен пароль пользователя, выполняет те же самые вычисления и сравнивает результат с
хеш-кодом, полученным от клиента. В случае совпадения учётные данные клиента удалённого
доступа считаются подлинными.
MS-CHAP - протокол, разработанный корпорацией Microsoft для выполнения процедур
проверки подлинности удалённых рабочих станций Windows. Протокол MS-CHAP генерирует
запрос и ответ с помощью алгоритма хеширования MD4 и алгоритма шифрования DES;
предусмотрены также механизмы возврата сообщений об ошибках подключения и возможности
изменения пароля пользователя.
PPP инкапсулирует IP пакеты внутри PPP фреймов (кадров), поэтому в описании PPP часто
встречается аббревиатура Framed. PPP используется для установки прямых соединений между
двумя узлами. Широко применяется для соединения компьютеров с помощью телефонной линии.
Также используется поверх широкополосных соединений. Многие интернет-провайдеры
используют PPP для предоставления коммутируемого доступа в Интернет. Кроме того, PPP
используется в мобильной связи (в частности, в сетях GSM) для соединения терминалов с
Интернетом.
Чтобы передавать кадры PPP по существующим сетям, требуется их инкапсуляция в
протоколы данных сетей. При передаче по физическим одноранговым сетям на канальном уровне
(городские кабельные сети, технологии xDSL) используется протокол PPPoE (PPP over Ethernet),
для передачи по сетям 3-го уровня (IP сети, Интернет) используются протоколы PPTP и L2TP.
PPPoE - это туннелирующий протокол, который позволяет инкапсулировать IP или другие
протоколы через соединения Ethernet, но с программными возможностями PPP соединений, и
поэтому используется для виртуальных «звонков» на соседнюю Ethernet-машину и устанавливает
соединение точка-точка, которое используется для транспортировки IP-пакетов.
Это позволяет применять традиционное PPP-ориентированное ПО для настройки
соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (как
Ethernet), чтобы организовать классическое соединение с логином и паролем для Интернет-
соединений. Также, IP-адрес по другую сторону соединения назначается только когда PPPoE
соединение открыто, позволяя динамическое переиспользование IP адресов.
Работа PPPoE осуществляется следующим образом. Существует Ethernet-среда, то есть
несколько соединённых сетевых карт (в случае городской кабельной сети – очень много сетевых
карт), которые адресуются MAC-адресами. Заголовки Ethernet-кадров содержат адрес отправителя
кадра, адрес получателя кадра и тип кадра. Одну из карт прослушивает PPPoE сервер. Клиент
посылает широковещательный Ethernet кадр, на который должен ответить PPPoE сервер (адрес
отправителя кадра — свой MAC-адрес, адрес получателя кадра — FF:FF:FF:FF:FF:FF и тип кадра
— PPPoE Discovery Initiation). PPPoE сервер посылает клиенту ответ (адрес отправителя кадра —
свой MAC-адрес, адрес получателя кадра — МАС-адрес клиента и тип кадра — PPPoE Discovery
offer). Если в сети несколько PPPoE серверов, то все они посылают ответ. Клиент выбирает
подходящий сервер и посылает ему запрос на соединение. Сервер посылает клиенту
подтверждение с уникальным идентификатором сессии, все последующие кадры в сессии будут
иметь этот идентификатор. Таким образом, между сервером и клиентом создается виртуальный
канал, который идентифицируется идентификатором сессии и MAC-адресами клиента и сервера.
Затем в этом канале поднимается PPP соединение, а уже в PPP пакеты упаковывается IP-трафик.
PPTP Point-to-point tunneling protocol - туннельный протокол типа точка-точка,
разработанный Microsoft, позволяющий компьютеру устанавливать защищённое соединение с
сервером за счёт создания специального туннеля в стандартной, незащищённой сети. PPTP
помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например
Интернет. PPTP может также использоваться для организации туннеля между двумя локальными
сетями. РРТР использует дополнительное TCP-соединение (порт 1723) для обслуживания туннеля.
Дополнительно может использоваться протокол Microsoft Point-to-Point Encryption MPPE
для шифрования данных поверх соединений PPP. Он использует поточный алгоритм RC4,
разработанный RSA Security. MPPE поддерживает 40- и 128-битные ключи, которые меняются в
течение сессии.
Ядро алгоритма состоит из функции генерации ключевого потока. Эта функция генерирует
последовательность битов (ki), которая затем объединяется с открытым текстом (mi) посредством
суммирования по модулю два (исключающее ИЛИ, XOR). Так получается шифрограмма (ci):
.
Расшифровка заключается в регенерации этого ключевого потока (ki) и сложении его и
шифрограммы (ci) по модулю два. В силу свойств суммирования по модулю два на выходе мы
получим исходный незашифрованный текст(mi):
2 вариант
Адрес маршрутизатора 10.53.0.252, имя Cisco2
Сеть для виртуальных машин 192.168.11.0/24
3 вариант
Адрес маршрутизатора 10.53.0.253, имя Cisco3
Сеть для виртуальных машин 192.168.12.0/24
Настройка FreeRADIUS
Сервер RADIUS использует для работы протокол транспортного уровня UDP, порт 1812
для аутентификации, и 1813 для учета. Рассмотрим, как отреагирует NAS при поступлении
запроса пользователя на аутентификацию:
1. пользователь пытается пройти аутентификацию на NAS
2. NAS посылает пакет для установки связи на RADIUS сервер (запрос на доступ)
3. если ответ не получен в течение определённого времени, то NAS либо опрашивает
RADIUS сервер ещё раз, либо ищет альтернативный сервер
4. RADIUS сервер по IP адресу NAS проверяет ключ симметричного шифрования, если IP
адрес и ключ соответствуют тому, что задано в конфигурационном файле, то связь
продолжается, иначе клиенту (NAS) посылается пакет Invalid Key. Проверка
осуществляется генерацией и шифрацией случайной строки. Далее передаваемые между
NAS и сервером RADIUS данные шифруются данным ключом.
5. сервер RADIUS проверяет пароль пользователя (по сети передается MD5 хеш пароля),
помимо пароля сервер может также проверить IP адрес и порт NAS, если эти данные
неверны, то сервер посылает NAS пакет "Доступ запрещён", содержащий код ошибки,
который также может содержать текстовое описание ошибки, отображаемое для
пользователя.
6. если же данные пользователя верны, то сервер посылает NAS пакет "Доступ разрешён",
содержащий данные о сервисе (PPP, login) и некоторые специфические параметры сервиса,
например, IP адрес, номер подсети, MTU для PPP сервиса, адрес DNS сервера, скорость
соединения и т.п. в виде пар параметр=значение (Attribute=Value, AV пар).
client 10.53.0.251 {
secret = lab4
shortname = cisco
}
Параметр secret определяет общий секретный ключ, который должен совпадать с тем, что
будет указан далее при настройке маршрутизатора. Shortname служит для определения имени при
ведении log файлов сервером FreeRADIUS, его значение ни на что не влияет.
Файл users.conf содержит учетные записи пользователей, которых необходимо
аутентифицировать, а так же дополнительные параметры для соединений. Символ # означает
комментарий, т.е. данная строка в конфигурации не участвует:
Запись описывает пользователя test с паролем 123 для аутентификации протокола PPP, сам
процесс аутентификации будет проходить по протоколу MS-CHAP (или его второй версии MS-
CHAP-v2), для шифрования соединения будет использоваться протокол MPPE. Следует отметить,
что в конце каждой строки параметров ставится запятая.
Запуск FreeRADIUS осуществляется файлом radius.cmd, прервать сервер – комбинация
Ctrl+C. Сервер читает свои файлы настроек только при запуске, поэтому если настройки
изменились (добавили/удалили/изменили пользователя), то сервер необходимо перезапустить.
Если в конфигурационных файлах были допущены ошибки, сервер сообщит о них и запускаться
не будет.
Cisco1(config)#int f1
Cisco1(config-if)#switchport access vlan 2
Cisco1(config-if)#no shut
Cisco1(config-if)#exit
Cisco1(config)#int vlan 2
Cisco1(config-if)#ip address 192.168.10.1 255.255.255.0
Cisco1(config-if)#end
В отличие от Cisco 3640, маршрутизатор модели 871 работает с более новой версией Cisco
IOS, которая сама создает vlan’ы при выделении портов. Убедитесь что в настройках виртуальной
машины выставлен тип подключения – мост. Запустите виртуальную машину, назначьте ей адрес,
например 192.168.10.2, и проверьте командой ping видимость маршрутизатора.
Далее включим на маршрутизаторе режим ААА, и зададим параметры аутентификации –
при подключении пользователей по telnet сессиям (aaa authentication login) они будут проверяться
по локальной базе маршрутизатора, для PPP сессий (authentication ppp) будет использоваться
RADIUS, авторизация доступа к сети тоже будет проходить через RADIUS (authorization network):
Cisco1(config)#aaa new-model
Cisco1(config)#aaa authentication login default local
Cisco1(config)#aaa authentication ppp default group radius
Cisco1(config)#aaa authorization network default group radius
Cisco1(config)#ip radius source-interface vlan 1
Cisco1(config)#radius-server host 10.53.0.2 auth-port 1812 acct-port 1813
Cisco1(config)#radius-server key lab4
Параметры RADIUS сервера задаются командой radius-server, указывается его адрес (адрес
компьютера, на котором запущен FreeRADIUS), порты и общий секретный ключ, который был
ранее задан в настройках сервера FreeRADIUS в файле clients.conf. Команда ip radius source-
interface однозначно определяет, с какого сетевого интерфейса отправлять запросы к RADIUS
серверу, так как в настройках сервера жестко указан адрес NAS, который должен совпадать с IP
адресом источника запросов. В данном случае команда необязательна, так как маршрутизатор
соединен с сервером только одним интерфейсом общей сети vlan 1, но в распределенных IP сетях
это не всегда так, и возможных маршрутов (а значит и интерфейсов) может оказаться несколько.
Все подключающиеся VPN клиенты будут получать адреса из общей сети, для этого
создается пул (диапазон) IP адресов с именем VPN_POOL и адресами от 10.53.0.200 до 203
(использовать заглавные символы необязательно, здесь и далее имена, выбираемые
администратором маршрутизатора, будут отмечаться в верхнем регистре для выделения и удобства
чтения):
Для каждого клиента VPN при подключении будет создаваться динамический сетевой
интерфейс для обмена данными, который автоматически уничтожается после завершения сеанса.
Чтобы задавать параметры для динамических интерфейсов используются шаблоны, называемые
виртуальными интерфейсами. Такая система похожа на принцип работы редактора Microsoft Word,
который хранит шаблон с параметрами (отступы от краев страницы, размер шрифта, стиль т т.п.),
и назначает их для каждого нового документа. Для создания виртуального интерфейса-шаблона
используется имя virtual-template и номер, например 1:
Cisco1(config)#int virtual-template 1
Cisco1(config-if)#ip unnumbered vlan 2
Cisco1(config-if)#peer default ip address pool VPN_POOL
Cisco1(config-if)#ppp encrypt mppe auto
Cisco1(config-if)#ppp authentication ms-chap-v2
Cisco1(config-if)#end
Cisco1(config)#vpdn enable
Cisco1(config)#vpdn-group VPN_PPTP
Cisco1(config-vpdn)#accept-dialin
Cisco1(config-vpdn-acc-in)#protocol pptp
Cisco1(config-vpdn-acc-in)#virtual-template 1
Cisco1(config-vpdn-acc-in)#end
Теперь, когда сервер NAS готов и ждет подключений, можно настроить VPN соединение на
клинте. В виртуальной машине Выберите Пуск \ Настройка \ Панель управления \ Сетевые
подключения (или вызовите свойства у ярлыка Сетевое окружение на рабочем столе), в меню
выберите Файл \ Новое подключение, при этом запустится мастер создания подключений, нажмите
Далее:
Cisco1#sh vpdn
LocID Remote Name State Remote Address Port Sessions VPDN Group
5 estabd 192.168.10.2 1048 1 VPN_PPTP
LocID RemID TunID Intf Username State Last Chg Uniq ID
5 0 5 Vi3 test estabd 00:01:41 4
При этом видно, что клиент с адресом 192.168.10.2 был подключен службой VPDN с
именем VPN_PPTP под именем test, для сессии был создан временный динамический интерфейс
Vi3. Можно также посмотреть и свойства самого интерфейса:
Интерфейс использует адрес от vlan 2, скорость 100000 Кбит/c (100 Мбит), протокол
инкапсуляции PPP, интерфейс был создан по шаблону Virtual-Template 1.
Чтобы посмотреть свойства интерфейса со стороны клиента, выполните команду
ipconfig /all на виртуальной машине:
Интерфейсу был назначен первый свободный адрес из пула, так как соединение точка-
точка, то маска по умолчанию назначается 255.255.255.255, при этом в таблице маршрутизации
(команда route print) появился маршрут по умолчанию:
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 10.53.0.200 10.53.0.200 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
Таким образом, все пакеты, которые адресуются за пределами локальной сети, будут
передаваться через созданное VPN соединение, что позволяет Интернет провайдерам
предоставлять доступ в сеть интернет посредством VPN.
Попробуйте сделать команду ping на адрес реального компьютера в дисплейном классе, так
как выдаваемые IP адреса находятся в той же сети 10.53.0.0 / 24, то пинг будет работать. Такая же
система используется интернет провайдерами, когда клиентам выдаются реальные IP адреса
интернета, только в данном случае вместо адресов интернета используется сеть дисплейного
класса.
Выдаваемый адрес выбирается из пула адресов как первый свободный, т.е. если подключить
еще одного VPN клиента, то он получит адрес 10.53.0.201, следующий клиент получит 202 и т.д.,
однако если третий клиент попробует подключиться после того, как первый разорвет соединение,
то он получит адрес 200 как первый освободившийся. Это приведет к тому, что если первый
клиент вновь захочет соединиться, то его адрес будет 202, а не «00 как был до этого. Для
большинства пользователей это не имеет значения, так как доступ к частной сети (или интернет)
будет работать независимо от выбранного адреса, но в ряде случаев такой подбор адресов
нежелателен. Обычно это касается тех клиентов, кто содержит сетевые сервисы: HTTP или FTP
сервер, файлообменный торрент или DC HUB и т.п., чтобы другие клиенты могли без проблем
пользоваться такими услугами, желательно чтобы у них был постоянный IP адрес, независимо от
того, когда они подключились к VPN и кто уже к нему подключен.
Естественно, если есть спрос на такие услуги, то всегда будет и предложение. Многие
провайдеры предоставляют услугу выделения постоянного IP адреса, хоть и за отдельную плату. С
точки зрения настройки, выделение постоянного адреса задается параметром Framed-IP-Address в
свойствах пользователя RADIUS сервера (файл users.conf):
Перезапустите сервер чтобы изменения вступили в силу, теперь пользователь test всегда
будет получать адрес 10.53.0.200. Помимо назначения адресов, RADIUS может назначать и
множество других параметров, например адрес DNS сервера. Добавьте пользователю test
следующий параметр и перезапустите сервер:
Cisco-AVPair = "ip:dns-servers=10.53.0.9",
Теперь у клиента есть оба необходимых параметра для организации доступа в интернет –
шлюз по умолчанию и адрес DNS сервера. Осталось только сообщить маршрутизатору, куда
направлять пакеты, адресуемые в Интернет:
Cisco1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Cisco1(config)#ip route 0.0.0.0 0.0.0.0 10.53.0.9
Cisco1(config)#end
Попробуйте сделать ping или зайти на любой сайт в Интернете для проверки.
Неотъемлемой частью предоставления услуг доступа как к частной сети, так и Интернет,
является понятие тарифного плана, который, как правило, задает объем доступного трафика и его
скорость. Ограничения по трафику основаны на учете передаваемых пакетов и их размера,
FreeRADIUS поддерживает механизм учета, но для нормальной работы данного сервиса
необходимо использование SQL сервера, что выходит за рамки лабораторной работы. Наложение
ограничения по скорости не требует дополнительных сервисов, и может быть выполнено как на
самом маршрутизаторе, чтобы ограничивать всех VPN клиентов, так и на сервере RADIUS, для
индивидуальных ограничений, т.е. у каждого пользователя свой тарифный план.
Cisco1(config)#int virtual-template 1
Cisco1(config-if)#rate-limit output 512000 96000 192000 conform-action transmit
exceed-action drop
Cisco1(config-if)#rate-limit input 1024000 192000 384000 conform-action transmit
exceed-action drop
В настроенной VPN топологии остается одна уязвимость – клиенты VPN могут получить
доступ к RADIUS серверу, так как находятся с ним в одной сети, и провести атаку на него, или
осуществить подбор логинов/паролей. В реальных условиях RADIUS сервер соединяют с NAS
отдельной изолированной сетью, в нашем случае доступ можно запретить с помощью фильтрации
пакетов по списку доступа:
Настроить NAS сервер маршрутизатор Cisco 871 для удаленного доступа VPN по
протоколам PPTP и L2TP/IPSec с выделением адресов для клиентов (виртуальных машин) из
заданного диапазона и авторизацией через сервер RADIUS. Обеспечить доступ клиентам в сеть
Интернет, задать требуемые скоростные характеристики соединений, ограничить доступ клиентов
к серверу RADIUS, а так же к другим адресам в соответствии с заданием. Для некоторых клиентов
обеспечить выделение постоянного IP адреса.
Вариант 1
Вариант 2
Вариант 3