Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ2 VPN.doc
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
78.34 Кб
Скачать

Московский Авиационный Институт

(Государственный Технический Университет)

Лабораторная работа по дисциплине «Методы защищенного доступа к распределенным информационным ресурсам»

на тему:

Использование виртуальных частных сетей для передачи конфиденциальной информации

Выполнила студент 4 курса

Группа№_________942________________

Студент:_Савельев А.М._____________

(фамилия и инициалы)

Принял:_______Боровков А.В.__________

Оценка:_____________________________

(дата, подпись, преподавателя)

Серпухов-2009

Определение

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

Чаще всего для создания виртуальной сети используется инкапсуляция протокола PPP в какой-нибудь другой протокол — IP (эта реализация называется так же PPTP — Point-to-Point Tunneling Protocol) или Ethernet (PPPoE). Некоторые другие протоколы так же предоставляют возможность формирования защищенных каналов (SSH или ViPNet).

Структура vpn

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

Типы vpn

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

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

Защищенные VPN-протоколы включают:

IPSec (IP security) — часто используется поверх IPv4.

SSL — используется для туннелирования всего сетевого стека. Например https.

PPTP (point-to-point tunneling protocol) — разрабатывался совместными усилиями нескольких компаний, включая Microsoft.

L2TP (Layer 2 Tunnelling Protocol) — используется в продуктах компаний Microsoft и Cisco.

L2TPv3 (Layer 2 Tunnelling Protocol version 3).

OpenVPN

В качестве программного решения для реализации VPN был выбран OpenVPN (http://openvpn.net). Данное программное средство распространяется под свободной лицензией GPL (GPL license version 2), т.е. является бесплатным. Среди поддерживаемых платформ есть ОС Windows. Это дает нам возможность сэкономить время на изучении UNIX-подобных систем и сразу приступить к настройкам.

Далее вручную был установлен два TAP-адаптера, один для клиента, другой для сервера.

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

Инфраструктура публичных ключей (public key infrastructure) состоит из:

  • Сепарированного сертификата (открытый ключ) и закрытого ключа для сервера и клиента.

  • Генерального сертификата, который необходим для подписи сертификатов сервера и клиентов.

Вы можете более подробно ознакомиться с процедурой аутентификации на официальном сайте проекта.

Генерируем CA. В Windows-версии программы уже есть bat-файлы, делающие всю работу по созданию сертификатов за вас. Остается только в нужном порядке исполнить нужные команды. Открываем командный интерпретатор (Пуск, Выполнить, cmd) и переходим в каталог со скриптами:

cd "C:\Program Files\OpenVPN\easy-rsa"

Р едактируем файл vars.bat (edit vars.bat или через проводник открываем в блокноте) на предмет таких директив, как KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL/ Не в коем случае не оставляйте эти переменные пустыми. Это необходимо при генерации CA.

Сохраняем файл и инициализируем PKI:

Init-config

vars

clean-all

build-ca

В моем случае получился следующий output:

C :\Program Files\OpenVPN\easy-rsa>vars

C:\Program Files\OpenVPN\easy-rsa>clean-all

Скопировано файлов: 1.

Скопировано файлов: 1.

C:\Program Files\OpenVPN\easy-rsa>build-ca

Loading 'screen' into random state - done

Generating a 1024 bit RSA private key

..............++++++

............................++++++

writing new private key to 'keys\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) [RU]:

State or Province Name (full name) [111]:

Locality Name (eg, city) [111]:

Organization Name (eg, company) [11]:

Organizational Unit Name (eg, section) [111]:

Common Name (eg, your name or your server's hostname) []:111

Email Address [mail@host.domain]:111@mail.ru

C:\Program Files\OpenVPN\easy-rsa>

Теперь сгенерируем сертификаты и ключи для клиентов и сервера. В нашем случае будет всего один клиент и один сервер:

build-key-server server

build-key client1

При генерации ключа Вам будет предложено ввести пароль. Оставьте это поле пустым. Очень важно ввести слово “server” в Common Name. Важные моменты помечены синим цветом. Ниже приведен пример ввода данных команд:

C:\Program Files\OpenVPN\easy-rsa>build-key-server server

Loading 'screen' into random state - done

Generating a 1024 bit RSA private key

.....................++++++

...................................++++++

writing new private key to 'keys\server.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) [RU]:

State or Province Name (full name) [111]:

Locality Name (eg, city) [111]:

Organization Name (eg, company) [111]:

Organizational Unit Name (eg, section) []:unit

Common Name (eg, your name or your server's hostname) []:server

Email Address [111@host.domain]:mail

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

Using configuration from openssl.cnf

Loading 'screen' into random state - done

Check that the request matches the signature

Signature ok

The Subject's Distinguished Name is as follows

countryName :PRINTABLE:'RU'

stateOrProvinceName :PRINTABLE:'MR'

localityName :PRINTABLE:'Protvino'

organizationName :PRINTABLE:'FortFunston'

organizationalUnitName:PRINTABLE:'unit'

commonName :PRINTABLE:'name'

emailAddress :IA5STRING:'mail'

Certificate is to be certified until Apr 13 19:15:42 2017 GMT (3650 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

C:\Program Files\OpenVPN\easy-rsa>

Аналогично с build-key client1.

Вводим параметры Диффи-Халмана (Диффи и Халман разработали протокол согласования ключей в 1976г.). http://www.rsa.com/rsalabs/node.asp?id=2248

build-dh

Вывод примерно такой (Придется подождать некоторое время. Зависит от крутизны вашего ПК):

C:\Program Files\OpenVPN\easy-rsa>build-dh

Loading 'screen' into random state - done

Generating DH parameters, 1024 bit long safe prime, generator 2

This is going to take a long time

...........................................................+....................

.............................................+................+.................

...........................................................................+....

................+..............+.....................+........+.......+.........

Следующая таблица показывает, какие файлы мы получили и какой файл для какой цели служит (каталог C:\Program Files\OpenVPN\easy-rsa\keys):

Filename

Needed By

Purpose

Secret

ca.crt

server + all clients

Root CA certificate

NO

ca.key

key signing machine only

Root CA key

YES

dh{n}.pem

server only

Diffie Hellman parameters

NO

server.crt

server only

Server Certificate

NO

server.key

server only

Server Key

YES

client1.key

client1 only

Client1 Key

YES

client1.crt

client1 only

Client1 Certificate

NO

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