Скачать 1.03 Mb.
|
3.2 Импорт виртуальных машин.Виртуальная среда не может быть функционировать без виртуальных машин, созданных и настроенных для реализации схем: сеть-сеть, хост-сеть, хост-хост. Импорт должен производиться с носителя, приложенного к данному руководству. Носителем является жесткий диск, в корне которого расположены 12 виртуальных машин. Импорт производится нажатием кнопок Файл->Импорт конфигураций; или сочетанием горячих клавиш ctrl+I (рис. 1.2). Рисунок 1.2 Импорт конфигураций виртуальных машин После импорта конфигураций, будет список из виртуальных машин, перечисленных в таблице 1. Таблица 1. Список импортированных виртуальных машин
Виртуальные машины в таблице 1, принадлежат к разным моделям соединений. Существуют следующие модели:
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. Рисунок 1.3 Схема соединения сеть-сеть по протоколу OpenVPN 4.1.2 Установка OpenVPN
portsnap fetch portsnap extract
cd /usr/ports/security/openvpn22/ make install clean
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
Изменение файла необходимо для того, чтобы при запуске скриптов, создающих сертификаты, были подставлены нужные значения. После чего из файла 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 туннель поднят и соединяет две сети. |
Пояснительная записка к дипломному проекту На тему: «Разработка crm-системы... В данном дипломном проекте разрабатывается система управления взаимоотношениями с клиентами на основе Mayral Framework | Пояснительная записка к дипломному проекту На тему: ≪Разработка виртуальной... На тему: ≪Разработка виртуальной среды для освоения протоколов распределенной аутентификации и авторизации пользователей≫ | ||
Пояснительная записка к курсовому проекту по дисциплине «Разработка... Курсовой проект содержит: страниц –19, источников – 5, рисунков – 6, таблиц – 2 | Пояснительная записка к курсовому проекту по дисциплине «Разработка... Курсовой проект содержит: страниц – 22, источников – 8, рисунков – 9, таблиц – 1 | ||
Руководство по подключению к vpn-серверу по протоколу pptp из локальной... Рртр (Point to Point Tunneling Protocol) является протоколом 2 уровня, инкапсулирующим в дейтаграммы ip пакеты ppp, и применяется... | Дипломному проекту На тему: «Проектирование и разработка автоматизированной... Охватывают различные подразделения, начиная с приема больного в стационаре и заканчивая его выпиской. В медицинских учреждениях работает... | ||
Пояснительная записка к курсовому проекту по дисциплине «Разработка сапр» Целью работы является разработка и реализация библиотеки элементов «Отвертка» на базе системы компас 3D, с использованием методов... | Пояснительная записка к курсовому проекту по дисциплине: «Разработка сапр» Целью данной работы является разработка и реализация модуля к сапр «Зубчатая передача с пересекающимися осями колес» на базе системы... | ||
Пояснительная записка к дипломному проектированию на тему: «Исследование... Федеральное государственное автономное образовательное учреждение высшего профессионального образования | Пояснительная записка к курсовому проекту по дисциплине Схемотехника... Усилительный каскад, транзистор, коэффициент передачи, частотные искажения, напряжение, мощность, термостабилизация, скважность,... | ||
Пояснительная записка к дипломному проекту «Совместное моделирование... Лирования, описан инструментарий, базовые идеи и принципы. Осуществлен выбор существующих программных средств и произведена интеграция... | Пояснительная записка к дипломному проекту на тему: «Изучение роли... «Изучение роли температурных эффектов при оформлении и защите выпускной квалификационной работы» | ||
Пояснительная записка к проекту профессионального стандарта «Ветеринарный врач» введение Их разработка и внедрение в практику будет способствовать появлению современных нормативов как объективных оценочных средств для... | Пояснительная записка к проекту профессионального стандарта «Ветеринарный врач» введение Их разработка и внедрение в практику будет способствовать появлению современных нормативов как объективных оценочных средств для... | ||
Пояснительная записка к курсовому проекту "разработка технологического... Цель курсового проекта систематизировать и закрепить теоретические знания, полученные при изучении данного курса | Дипломному проекту На тему: Прогнозирование безотказности современных... Охватывает вопросы конструирования, исследования и принципов применения интегральных микросхем |