Главная страница

4 Лабораторная работа VPN. Лабораторная работа 4 Виртуальные частные сети Цель работы


Скачать 110.03 Kb.
НазваниеЛабораторная работа 4 Виртуальные частные сети Цель работы
Дата01.06.2022
Размер110.03 Kb.
Формат файлаdocx
Имя файла4 Лабораторная работа VPN.docx
ТипЛабораторная работа
#561181

Лабораторная работа № 4 Виртуальные частные сети

Цель работы

Изучить технологии виртуальных частных сетей для организации защищенных каналов связи через сети общего пользования (Интернет), получить практические навыки настройки виртуальных частных сетей на примере программного продукта OpenVPN.

Теоретические сведения

OpenVPN— свободная реализация технологии виртуальных частных сетей (VirtualPrivateNetwork, VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами находящимися за NAT-firewall без необходимости изменения его настроек. OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.

Для обеспечения безопасности управляющего канала и потока данных, OpenVPN использует библиотеку OpenSSL. Благодаря этому задействуется весь набор шифров, доступных в данной библиотеке. Также может использоваться пакетная авторизация HMAC, для обеспечения большей безопасности, и аппаратное ускорение для улучшения производительности шифрования. Эта библиотека использует OpenSSL, а точнее протоколы SSLv3/TLSv1. OpenVPN используется на Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X и Microsoft Windows.

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

OpenVPNпроводит все сетевые операции черезTCP, либоUDP(предпочтительнее) порт. Также возможна работа через большую часть прокси-серверов, включая HTTP, через NAT и сетевые фильтры. Сервер может быть настроен на назначение сетевых настроек клиенту. Например: IP адрес, настройки маршрутизации и параметры соединения. OpenVPN предлагает два различных варианта сетевых интерфейсов, используя драйвер TUN/TAP. Возможно создание Layer 3 based IP туннель, называемый TUN, и Layer 2 based Ethernet — TAP, способный передавать Ethernet трафик. Также возможно использование библиотеки компрессии LZO, для сжатия потока данных. Используемый порт 1194 выделен Internet Assigned Numbers Authority для работы данной программы. Версия 2.0 позволяет контролировать несколько одновременных туннелей, в отличие от версии 1.0, позволявшей создавать только 1 туннель на 1 процесс.

Использование OpenVPN стандартных протоколов TCP и UDP позволяет ему стать альтернативой IPsec в ситуациях, когда Интернет-провайдер блокирует некоторые VPN протоколы.

Задание

Настроить безопасное взаимодействие двух IP-сетей между собой через сеть общего пользования (Интернет), средствами программного продукта OpenVPN. Создать ключи и сертификаты безопасности. Настроить конфигурационный файл VPN-сервера и VPN-клиента.



Схема ЛВС

В приведённых схемах ЛВС для лабораторной работы указана примерная адресация для компьютеров. При выполнении работы адресация должна соответствовать варианту.



Физическая схема лвс



Логическая схема лвс. Ip-сеть 1 имеет адрес 10.2.5.0/24, ip-сеть 2 имеет адрес 10.2.10.0/24

Порядок выполнения

Перед выполнением лабораторной работы необходимо:

  1. Подготовить схемы сети с указанием IP-адресов в соответствии с вариантом.

  1. Подготовить виртуальные машины PC-1,PC-2,PC-3,PC-4, на которых должна быть установлена сетевая операционная система Microsoft Windows XP или другая сетевая операционная система, например Linux (необходимо удостовериться, что существует дистрибутив OpenVPN для выбранной ОС).

    1. Подготовить виртуальные машины, которые будут выполнять роли VPN-сервера и VPN-клиента. Для этого установить на соответствующие машины программный продукт OpenVPN. При выборе компонентов установки и пути установки рекомендуется использовать настройки по умолчанию.

Выполнение лабораторной работы включает следующие этапы:

  1. Подключение и запуск рабочих станций pc-1,pc-2

Цель данного этапа состоит в подготовке моделей IP-сетей, взаимодействие между которыми будет настраиваться в лабораторной работе.

  1. Подключить образ виртуальной машины в системе Virtual Box на одном из компьютеров лаборатории. В настройках виртуальной машины в разделе «Сеть» включить 2 сетевых адаптера, для первого указать тип подключения «Сетевой мост» и сетевой адаптер «Realtek8029» или «3COM» (в зависимости от компьютера), для второго указать тип подключения «Внутренняя сеть» и название.

  2. Запустить виртуальную машину.

  3. Настроить IP-адрес сетевого интерфейса виртуальной машины в соответствии с вариантом.

  4. Повторить шаги 1-4 для 2-ой виртуальной машины (на другом компьютере).

  1. Подключение и запуск рабочих станций pc-3,pc-4

Цель данного этапа состоит в подготовке моделей IP-сетей, взаимодействие между которыми будет настраиваться в лабораторной работе.

  1. Подключить образ виртуальной машины в системе Virtual Box на одном из компьютеров лаборатории. В настройках виртуальной машины в разделе «Сеть» включить 1 сетевой адаптер, для него указать тип подключения «Внутренняя сеть» и название (ВНИМАНИЕ!!! Названия внутренних сетей должны совпадать для рабочих станцийPC1 иPC3, а также дляPC2 иPC4).

  2. Запустить виртуальную машину.

  3. Настроить IP-адрес сетевого интерфейса виртуальной машины в соответствии с вариантом.

  4. Повторить шаги 1-4 для 2-ой виртуальной машины (на другом компьютере).

  1. Создание сертификатов и ключей для OpenVPN сервера и клиента.

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

Все действия по созданию ключей и сертификатов проводятся на Open VPN сервере.

Последовательность действий

  1. Создание основного Certificate Authority (CA) сертификата и ключа

  2. Создание сертификата и ключа сервера

  3. Создание сертификатов и ключей для 3-х клиентов

  4. Создание параметров Diffie Hellman

  5. Файлы ключей и сертификатов

3.1. Создание основного Certificate Authority (ca) сертификата и ключа

В Windows зайти в командную строку (cmd.exe) и выполнить cd %Program Files%/OpenVPN/easy-rsaВыполнить командный файлinit-config. При этом исходными файлами заменятся файлы конфигурации vars.bat и openssl.cnf

Отредактируем vars файл (называется vars.bat) и установим KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, и KEY_EMAIL параметры. Эти параметры заполнять обязательно (нельзя оставлять пустыми!).

Затем инициализируем PKI: vars clean-all build-ca

Последняя команда (build-ca) создает certificate authority (CA) сертификат и ключ при помощи интерактивной openssl команды

Generating a 1024 bit RSA private key ............++++++ ...........++++++ writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [KG]: State or Province Name (full name) [NA]: Locality Name (eg, city) [BISHKEK]: Organization Name (eg, company) [OpenVPN-TEST]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:OpenVPN-CA Email Address [me@myhost.mydomain]:

В приведенной выше последовательности многие параметры по умолчанию имеют значения из файла vars.bat. Подробно нужно указать параметр Common Name. В примере используется "OpenVPN-CA".

3.2. Создание сертификата и ключа сервера

build-key-server server

Как и на предыдущем шаге, большинство параметров можно оставить по умолчанию. Когда запросит Common Nameвведем "server". Два других вопроса требуют положительного ответа (Yes): "Sign the certificate?[y/n]" и "1 out of 1 certificate requests certified, commit? [y/n]".

3.3. Создание сертификатов и ключей для клиента

Создание сертификатов клиента похоже на предыдущий шаг: build-key client1

Если вы хотите защитить паролем ключи клиента, используйте скрипт build-key-pass.

Помните, что каждому клиенту нужно ввести свое Common Name, т.е. "client1", "client2", "client3" и т.д. Для каждого клиента всегда нужно использовать уникальное имя.

3.4. Создание параметров Diffie Hellman

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

Diffie Hellman параметры должны быть созданы для OpenVPN сервера.

build-dh

Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time .................+........................................... ...................+.............+.................+......... ......................................

3.5. Файлы ключей и сертификатов

В результате шагов 3.1-3.4 подкаталоге keysсоздаются ключи и сертификаты.

Имя файла

Где нужен

Назначение

Секретный

ca.crt

сервер + все клиенты

Root CA certificate

НЕТ

ca.key

ключ подписывающей машины

Root CA key

ДА

dh{n}.pem

только на сервере

Diffie Hellman параметры

НЕТ

server.crt

только на сервере

Server сертификат

НЕТ

server.key

только на сервере

Server ключ

ДА

client1.crt

только на client1

Client1 сертификат

НЕТ

client1.key

только на client1

Client1 ключ

ДА

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

  1. Создание файлов конфигурации OpenVPN сервера и клиентов.

4.1. Пример конфигурационных файлов

Свою конфигурацию рекомендуется базировать на исходных конфигурационных файлах OpenVPN. Их можно найти в меню (Пуск -> Программы -> OpenVPN -> OpenVPN Sample Configuration Files) или на диске (%ProgramFiles%/OpenVPN/sample-config)

В Linux, BSD, или UNIX-подобных ОС файлы конфигураций называютсяserver.confиclient.conf, а в Windows называютсяserver.ovpnиclient.ovpn.

4.2. Редактирование файла конфигурации сервера

При конфигурации сервера рекомендуется основываться на примере этого файла из OpenVPN. VPN создается с использованием виртуального сетевого интерфейса, с ожиданием подключения клиентов на UDP порт 1194(официальный номер порта OpenVPN), и распределением виртуальных адресов подключаемых клиентов из заданной подсети (Для примера –10.1.0.0/24.)

Перед использованием примера файла конфигурации необходимо установить ca, cert, key, и dh параметры на файлы, полученные при создании PKI.

Уже на этом шаге файл конфигурации готов к использованию. Или можно поменять следующие настройки:

  • dev [tun | tap](сервер, клиент) - указание типа интерфейса и режима работы: tun = L3-туннель, tap = L2-туннель.

L3 и L2- 3-ий и 2-ой уровни в обеих распространённых моделях сетевых протоколов - и ISO OSI Reference Model (Эталонная модель взаимодействия открытых систем) и Internet Protocol Suite. Точное название термина - Layer 3, однако иногда говорят и Level 3.

  • L3 (Layer 3)- 3-ий уровень - Network Layer, сетевой уровень, уровень Internet. Если идёт речь об IP-маршрутизации, то это как раз L3, соответственно, на уровне 3 находится IP-протокол (не путать с TCP, UDP и т.п. - они выше). Хосты, соединённые через маршрутизаторы, могут напрямую (без технологий инкапсуляции) обмениваться только данными 3 уровня (более высокие уровни вложены в него), то есть IP-пакетами (и соответственно не могут обмениваться L2-кадрами). Важно также запомнить, что термин пакет относится именно к данному уровню и подразумевает именно IP-пакет.

  • L2 (Layer 2)- 2-ой уровень - Data Link Layer, канальный уровень. Если идёт речь о коммутации, то это как раз L2. Хосты, соединённые через коммутаторы или мосты, могут напрямую обмениваться данными 2 уровня (более высокие уровни вложены в него), то есть Eth-кадрами (L2-кадрами). Важно также запомнить, что термин кадр (frame, фрейм) относится именно к данному уровню и подразумевает именно Eth-кадр.

  • Если используете Ethernet bridging, необходимо указатьserver-bridgeиdev tapвместоserverиdev tun.

  • Если ваш OpenVPN сервер прослушивает TCP порт вместо UDP порта, используйте proto tcpвместоproto udp(если необходимо прослушивать и TCP и UDP порты, необходимо запустить две независимые копии OpenVPN).

  • При необходимости использования другого виртуального IP адресного пространства (вместо 10.1.0.0/24), нужно модифицировать директивуserver. Помните, что это адресное пространство не должно использоваться вашей сетью.

  • Раскомментируйте директиву client-to-client, если хотите, чтобы клиенты могли устанавливать между собой соединения при помощи VPN. По умолчанию клиенты могут подключаться только к серверу.

4.3. Редактирование конфигурационных файлов клиентов

В примере конфигурационного файла клиента (client.confв Linux/BSD/Unix илиclient.ovpnв Windows) директивы по умолчанию отражают значения из примера конфигурационного файла сервера.

Как и в серверном файле конфигурации, вначале отредактируйте значения параметров ca,cert иkey , указав файлы, сгенерированные в PKI. Помните, что каждый клиент должен иметь свою пару сертификат/ключ (cert/key). Толькоca файл один и тот же на сервере и всех клиентах.

Затем отредактируйте remote директиву для указания хоста/IP адреса и номера портаOpenVPNсервера (если вашOpenVPNсервер запущен за межсетевым экраном или NAT'ом, укажите реальный IP адрес шлюза, а также номер порта, который проброшен со шлюза к вашемуOpenVPNсерверу).

В завершении проверьте, совпадают ли директивы в конфигурационном файле клиента и сервера. Проверьте совпадение директив dev (tun илиtap) иproto (udp илиtcp). Также проверьте, чтобыcomp-lzo иfragment, если используются, присутствовали в конфигурационных файлах сервера и клиента.

  1. Настройка маршрутизации

  1. Подключение VPN-клиента кVPN-серверу. Проверка работоспособности канала.

  2. Включение на машинах VPN-клиента иVPN-сервера службы маршрутизации. Мой компьютер -> Управление -> Службы и приложения -> Службы -> Маршрутизация и удаленный доступ -> Тип запуска – Авто, Состояние – Пуск.

  1. Проверка защищенности соединения



  1. Подключить рабочие станции через концентратор для обеспечения возможности «прослушивания» сетевого трафика.

  2. Подключить дополнительно 3-ий компьютер, с которого будет выполняться «прослушивание». Запустить на этом компьютере сетевой анализатор Wiresharkдля нужного сетевого интерфейса.

  3. Отключить VPN-соединение. Передать произвольный текстовый файл между сетями, убедиться в том, что файл может быть доступен «злоумышленнику» при использовании сетевого анализатора.

  4. Включить VPN-соединение. Повторить передачу текстового файла и проанализировать структуру передаваемых данных дляVPN-туннеля средствами сетевого анализатора с компьютера «злоумышленника». Убедиться, что содержание файла и факт использования протокола передачи файла не могут быть известны «злоумышленнику».

Содержание отчета

  1. Титульный лист

  2. Цель работы, задание

  3. Схемы ЛВС с указанием IP-адресов по варианту

  4. Содержание конфигурационных файлов OpenVPN:

    1. Содержание файла server.ovpnдля сервера.

    2. Содержание файла client.ovpnдля клиента.

  5. Трассировка маршрута между сетями через VPN-туннель.

  6. Структура пакетов при передаче текстового файла между сетями при незащищенном соединении.

  7. Структура пакетов при передаче текстового файла между сетями при OpenVPNсоединении.

Контрольные вопросы

Литература

Приложение 1. Пример конфигурационного файла сервера

#Адрес прослушки.

local 192.168.200.1

#Порт прослушки.

port 3579

#Протокол .

proto udp

#Тип соединения .

dev tap

#Необходимые ключи.

ca ca.crt

cert server.crt

key server.key

#Проверка ключей файлом.

dh dh1024.pem

#Подсеть.

server 10.1.0.0 255.255.255.0

#Восстановление Ip-адресса при подключении.

ifconfig-pool-persist ipp.txt

#Позволяет клиентам видеть друг друга в сети.

client-to-client

#Проверка ответа другой стороны.

keepalive 10 120

#Включить сжатие на VPN линии.

comp-lzo

#Нужные настройки (для прав подключения).

persist-key

persist-tun

#Log - файл с ошибками ...

status openvpn-status.log

#Уровень логирования

verb 3

Приложение 2. Пример конфигурационного файла клиента

#Тип ключа

client

#Протокол

proto udp

#Тип соединения

dev tap

#Сервер

remote 192.168.200.1 3579

#Необходимые ключи

ca ca.crt

cert client.crt

key client.key

#Переопределить настройки сети

;redirect-gateway

#Пытаться соединиться с сервером

resolv-retry infinite

#Включить сжатие на VPN линии.

comp-lzo

#Нужные настройки (для прав подключения).

persist-key

persist-tun

#Уровень логирования

verb 3

Приложение 3. Варианты адресов сетей



VirtualBox

Int. Network 1

VirtualBox

Int. Network 2



VirtualBox

Int. Network 1

VirtualBox

Int. Network 2

1

10.100.1.0/24

10.100.200.0/24

21

10.100.21.0/24

10.100.180.0/24

2

10.100.2.0/24

10.100.199.0/24

22

10.100.22.0/24

10.100.179.0/24

3

10.100.3.0/24

10.100.198.0/24

23

10.100.23.0/24

10.100.178.0/24

4

10.100.4.0/24

10.100.197.0/24

24

10.100.24.0/24

10.100.177.0/24

5

10.100.5.0/24

10.100.196.0/24

25

10.100.25.0/24

10.100.176.0/24

6

10.100.6.0/24

10.100.195.0/24

26

10.100.26.0/24

10.100.175.0/24

7

10.100.7.0/24

10.100.194.0/24

27

10.100.27.0/24

10.100.174.0/24

8

10.100.8.0/24

10.100.193.0/24

28

10.100.28.0/24

10.100.173.0/24

9

10.100.9.0/24

10.100.192.0/24

29

10.100.29.0/24

10.100.172.0/24

10

10.100.10.0/24

10.100.191.0/24

30

10.100.30.0/24

10.100.171.0/24

11

10.100.11.0/24

10.100.190.0/24

31

10.100.31.0/24

10.100.170.0/24

12

10.100.12.0/24

10.100.189.0/24

32

10.100.32.0/24

10.100.169.0/24

13

10.100.13.0/24

10.100.188.0/24

33

10.100.33.0/24

10.100.168.0/24

14

10.100.14.0/24

10.100.187.0/24

34

10.100.34.0/24

10.100.167.0/24

15

10.100.15.0/24

10.100.186.0/24

35

10.100.35.0/24

10.100.166.0/24

16

10.100.16.0/24

10.100.185.0/24

36

10.100.36.0/24

10.100.165.0/24

17

10.100.17.0/24

10.100.184.0/24

37

10.100.37.0/24

10.100.164.0/24

18

10.100.18.0/24

10.100.183.0/24

38

10.100.38.0/24

10.100.163.0/24

19

10.100.19.0/24

10.100.182.0/24

39

10.100.39.0/24

10.100.162.0/24

20

10.100.20.0/24

10.100.181.0/24

40

10.100.40.0/24

10.100.161.0/24

Приложение 4. Варианты адресов OpenVPN-туннеля



Подсеть OpenVPN-туннеля



Подсеть OpenVPN-туннеля

1

10.200.21.0/24

21

10.200.1.0/24

2

10.200.22.0/24

22

10.200.2.0/24

3

10.200.23.0/24

23

10.200.3.0/24

4

10.200.24.0/24

24

10.200.4.0/24

5

10.200.25.0/24

25

10.200.5.0/24

6

10.200.26.0/24

26

10.200.6.0/24

7

10.200.27.0/24

27

10.200.7.0/24

8

10.200.28.0/24

28

10.200.8.0/24

9

10.200.29.0/24

29

10.200.9.0/24

10

10.200.30.0/24

30

10.200.10.0/24

11

10.200.31.0/24

31

10.200.11.0/24

12

10.200.32.0/24

32

10.200.12.0/24

13

10.200.33.0/24

33

10.200.13.0/24

14

10.200.34.0/24

34

10.200.14.0/24

15

10.200.35.0/24

35

10.200.15.0/24

16

10.200.36.0/24

36

10.200.16.0/24

17

10.200.37.0/24

37

10.200.17.0/24

18

10.200.38.0/24

38

10.200.18.0/24

19

10.200.39.0/24

39

10.200.19.0/24

20

10.200.40.0/24

40

10.200.20.0/24


написать администратору сайта