Пояснительная записка к дипломному проекту


Указания по настройке и работе с протоколами



страница11/13
Дата04.11.2016
Размер5.4 Mb.
Просмотров3327
Скачиваний0
1   ...   5   6   7   8   9   10   11   12   13

4. Указания по настройке и работе с протоколами


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

В работе серверами Server_1, FreeBSD_L2TP_server, FreeBSD_IPSEC_server используется “внешний” IP-адрес 192.168.5.23, а серверами Server_2, FreeBSD_L2TP_client, FreeBSD_IPSEC_client используется “внешний” IP-адрес 192.168.5.21.


4.1 Настройка OpenVPN для модели “сеть-сеть”

4.1.1 Настройка сервера Server_1 для работы с openvpn.


Будем настраивать сервер Server_1 в качестве сервера для реализации схемы сеть-сеть (рис. 1.3). В качестве openvpn-клиента будет выступать другой сервер – Server_2. Перейдем к настройке Server_1.

openvpn_сеть-сеть.jpg

Рисунок 1.3 Схема соединения сеть-сеть по протоколу OpenVPN

4.1.2 Установка OpenVPN


  1. Обновляем порты до текущей версии:

portsnap fetch

portsnap extract



  1. Переходим в католог, в котором находится OpenVPN и даем команду на сборку пакета:

cd /usr/ports/security/openvpn22/

make install clean



  1. Дожидаемся пока скомпилируется openvpn. Во всех всплывающих окнах оставляем параметры по-умолчанию.

4.1.3 Создание сертификата для сервера


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

cd /usr/local/share/doc/openvpn/easy-rsa/2.0/

Открываем файл vars любым текстовым редактором (например, nano):

nano vars

Далее, необходимо отредактировать файл в соответствии с нуждами, а именно:

меняем строку KEY_DIR=$EASY_RSA/keys на KEY_DIR=$ EASY_RSA /keys/server

Это необходимо, для того, чтобы все созданные ключи лежали в каталоге /keys/server. Для порядка.

Так же, устанавливаем значения следующих переменных:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="City"

export KEY_CITY="Moscow"


export KEY_ORG=" MIEM "


export KEY_EMAIL="Kuzmishchev@yandex.ru "


export KEY_CN=changeme


export KEY_NAME=changeme


export KEY_OU=institute

Значения каждой переменной представлены в таблице 2.

Таблица 2. Значения переменных файла vars

Переменная

Значение

KEY_COUNTRY

Страна

KEY_PROVINCE

Провинция

KEY_CITY

Город

KEY_ORG

Организация

KEY_EMAIL

Почтовый адрес

KEY_CN

Уникальное имя ключа

KEY_NAME

Имя ключа

KEY_OU

Имя подразделения

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

sh

chmod +x vars


chmod +x build-ca


chmod +x clean-all


chmod +x pkitool


chmod +x vars


chmod +x whichopensslcnf

. ./vars

Примечание: две точки в строке “. ./vars ” - это не опечатка.

Если все было сделано правильно, то вы увидите следующее сообщение:

NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/local/share/doc/openvpn/easy-rsa/2.0/server

Теперь очищаем от старых сертификатов и ключей папку:

./clean-all

Если при этом будет какое то сообщение:

Please source the vars script first (i.e. "source ./vars")

Make sure you have edited it to reflect your configuration.

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

Далее, необходимо создать Certificate Authority (центр сертификации) для сервера:

./build-ca

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





Рисунок 1.4 Создание центра сертификации для сервера

После выполнения выше приведенного действия, в папке keys/server появятся два новых файла ca.key и ca.crt.

Создаем сертификат X.509 для сервера с помощью скрипта build-key-server. Действия аналогичны созданию центра сертификации. Заполняем поля точно так же. Поля с паролями оставляем пустыми(!). В конце будет предложено подписать созданный сертификат – соглашаемся.

./build-key-server server

Ниже (рис. 1.5), представлен снимок экрана виртуальной машины, начиная с момента ввода пароля:



Рисунок 1.5 Создание ключа для сервера

4.1.4 Создание сертификата для клиента


Сертификат для клиента создается скриптом build-key, в качестве аргумента ему передается имя сертификата (как и в случае со скриптом build-key-server рис. 1.5):

./build-key client

В данном действии важно, указывая common name, помнить, что это поле должно быть отличным от server, т.к. common name – это имя-идентификатор, и оно должно быть отлично от ранее созданных и совпадать с именем сертификата, которое мы передаем скрипту build-key.

4.1.5 Создание ключа Диффи-Хеллмана


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

Данный алгоритм не применяется для шифрования сообщений или формирования электронной подписи. Его назначение – в распределении ключей.

Ключ Диффи-Хеллмана создается скриптом build-dh.

./build-dh

На рисунке 1.6, результат выполнения скрипта build-dh:



Рисунок 1.6 Создание ключа Диффи-Хеллмана

Подробнее об алгоритме Диффи-Хеллмана можно почитать на сайте Википедии:

http://ru.wikipedia.org/wiki/Алгоритм_Диффи-Хеллмана

Итак, в папке /usr/local/share/doc/openvpn/easy-rsa/2.0/keys/server мы должны увидеть новые файлы (рис.1.7):





Рисунок 1.7 Список файлов каталога /keys/server

Из всех этих файлов, серверу достанутся: ca.crt, dh1024.pem, server.crt, server.key.

Клиент получит следующие файлы: client.key, client.crt, dh1024.pem.

4.1.6 Создание Tls-ключа


Этот ключ необходим для TLS аутентификации клиентов на сервере. Он создается в одном экземпляре и передается клиентам. Для его создания, необходимо в каталоге /usr/local/share/doc/openvpn/easy-rsa/2.0/keys/server выполнить следующую команду:

openvpn --genkey --secret ta.key

После этого, в директории появится файл ta.key.

Примечание: файл ta.key так же необходимо передавать клиенту, т.к. без него клиент не пройдет аутентификацию.

4.1.7 Настройка сервера OpenVPN


Теперь необходимо определиться с каталогом, в котором будет запускаться openvpn. Создадим его:

mkdir /usr/local/etc/openvpn

Перейдя в этот каталог, создадим еще два:

cd /usr/local/etc/openvpn

mkdir ccd

mkdir keys

Где:

ccd – client config directory (папка, с файлами настроек для клиентов);

keys – папка с ключами.

Теперь, когда у нас есть все необходимые фалы, переносим в папку /usr/local/etc/openvpn/keys содержимое папки /usr/local/share/doc/openvpn/easy-rsa/2.0/keys/server:

cp ca.crt ta.key dh1024.pem server.crt server.key /usr/local/etc/openvpn/keys

Создаем конфигурационный файл сервера server.ovpn в директории /usr/local/etc/openvpn следующего содержания:

# порт на котором работает сервер

port 2000

# протокол обмена данными

proto tcp

# - используемый тип устройства и его номер

dev tun0


# указываем файл CA

ca /usr/local/etc/openvpn/keys/ca.crt

# указываем файл с сертификатом сервера

cert /usr/local/etc/openvpn/keys/server.crt

# указываем файл с ключем сервера

key /usr/local/etc/openvpn/keys/server.key

# указываем файл с ключем Диффи Хелмана

dh /usr/local/etc/openvpn/keys/dh1024.pem

# для дополнительной безопасности при

# использовании TLS, создайте файл ta.key

# для защиты от DoS атак и атак на порты.

# сгенерируйте с помощью следующей команды ключ:

#

# openvpn --genkey --secret ta.key



#

# сервер и каждый клиент должны иметь копию этого ключа.

# второй параметр (tls-auth) выставляется в '0' для сервера и '1' для клиентов.

tls-server

tls-auth keys/ta.key 0

# задаем IP-адрес сервера и маску подсети

# (виртуальной сети) - можно произвольную,

server 10.10.10.0 255.255.255.0

# задаем МАРШРУТ, который передаём клиенту

# и маску подсети для того, чтобы он "видел"

# сеть за openvpn сервером (сеть 192.168.1.0/24)

push "route 192.168.100.0 255.255.255.0"

# указываем, где хранятся файлы с

# настройками IP-адресов клиентов

client-config-dir ccd

# добавляем маршрут на сеть за клиентом

route 192.168.200.0 255.255.255.0

# включаем шифрование пакетов

cipher BF-CBC

# проверка связи каждые 10 секунд. Если в течении 120

# секунд ответа нет, то считается что соединение прервано

keepalive 10 120

# включаем сжатие трафика

comp-lzo


# максимальное количество клиентов

max-clients 2

persist-key

# не закрывать и переоткрывать TUN\TAP

# устройство, после получения

# сигнала SIGUSR1 или команды ping-restart

persist-tun

# логирование (не забудьте создать этот каталог /var/log/openvpn/)

status /var/log/openvpn/openvpn-status.log

log /var/log/openvpn/openvpn.log

# Уровень информации для отладки

verb 3


Теперь необходимо создать файл настроек для клиента (ccd/client):

ifconfig-push 10.10.10.2 10.10.10.1

iroute 192.168.200.0 255.255.255.0

На этом настройка сервера закончена. Остается добавить в главный конфигурационный файл /etc/rc.conf строки для автоматического запуска openvpn сервера:

openvpn_enable="YES" # YES or NO

openvpn_if="tun" # какой драйвер загружать, можно установить "tun", "tap" или "tun tap"

openvpn_configfile="/usr/local/etc/openvpn/server.ovpn" # путь к конфигурационному файлу

openvpn_dir="/usr/local/etc/openvpn" # каталог с настройками

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

Рисунок 1.8 Результат команды ifconfig tun0 на Server_1

4.1.4 Настройка Server_2 для работы с openvpn


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

4.1.5 Настройка клиента


Создадим конфигурационный файл client.ovpn в папке /usr/local/etc/openvpn со следующим содержанием:

dev tun0


proto tcp

remote 192.168.5.23# реальный IP сервера Server_1

port 2000 # порт по которому устанавливать соединение

client


ca keys/ca.crt

cert keys/client.crt

key keys/client.key

tls-client

tls-auth keys/ta.key 1

cipher BF-CBC

comp-lzo

persist-key

persist-tun

verb 3


После этого, необходимо скопировать с сервера Server_1 ключи и сертификаты для клиента в директорию /usr/local/etc/openvpn/keys. Нам нужны следующие файлы: ca.crt, ta.key, dh1024.pem, client.key, client.crt.

Так же, как и в случае с Server_1, добавляем в главный конфигурационный файл /etc/rc.conf сервера Server_2 добавляем строки:

openvpn_enable="YES" # YES or NO

openvpn_if="tun" # какой драйвер загружать, можно установить "tun", "tap" или "tun tap"

openvpn_configfile="/usr/local/etc/openvpn/client.ovpn" # путь к конфигурационному файлу

openvpn_dir="/usr/local/etc/openvpn" # директория с настройками

После перезагрузки, можно проверить работоспособность туннеля. Первым делом, проверим состояние виртуального интерфейса tun0, отвечающего за openvpn соединение. Делаем ifconfig tun0 на сервере Server_2 (рис. 1.9):

Рисунок 1.9 Результат команды ifconfig tun0 на Server_2

По результату команды видно, что поднят туннель между сервером Server_1 и Server_2. Об этом свидетельствуют адреса, выдаваемые на tun-интерфейсах. Server_1 получает адрес 10.10.10.1 (рис 1.8), а Server_2 получает адрес 10.10.10.2 (рис. 1.9). Теперь, необходимо убедиться в работоспособности туннеля. Проверим это командой ping с сервера Server_2 (рис. 1.10):



Рисунок 1.10 результат команды ping сервера Server_2 (по внутреннему адресу туннеля)

По результату видно, что обмен пакетами по внутренним адресам туннеля производится без проблем. Теперь, посмотрим что покажет tcpdump.

Запустим tcpdump на интерфейсе tun0 сервера Server_1. В свою очередь, на сервере Server_2 будем обмениваться пакетами с помощью команды ping с сервером Server_1 по адресу локальной сети, за которую он отвечает (рис. 1.11). Для этого, на сервере Server_1 введем команду:

tcpdump –i tun0

А на сервере Server_2 начинаем обмен пакетами с Server_1:

ping 192.168.100.1



Рисунок 1.11 результат работы tcpdump и ping

По результатам на рисунке 1.11 очевидно, что vpn туннель поднят и соединяет две сети.



Каталог: data -> 2013
2013 -> Федеральное государственное автономное образовательное
2013 -> «Визуальный образ персонажей массового кинематогрфа в историческом контексте»
2013 -> 2 раздел анализ предметной области 5
2013 -> Магистерская диссертация
2013 -> Влияние вовлеченности на готовность платить за коллекционные товары
2013 -> Выражение гендерных характеристик в англоязычном "глянцевом" дискурсе
2013 -> Продакт Плейсмент и перспективы его развития в сети Интернет
2013 -> 1Лекции первого полугодия
2013 -> «Правовое рассмотрение компьютерного мошенничества», Ницца, 22 октября 1992 года, грамота «весьма достойно»


Поделитесь с Вашими друзьями:
1   ...   5   6   7   8   9   10   11   12   13


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал