Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






OpenVPN. OpenVPN – це система, що дозволяє створювати шифровані тунелі між комп'ютерами за технологією VPN (Virtual Private Network






OpenVPN – це система, що дозволяє створювати шифровані тунелі між комп'ютерами за технологією VPN (Virtual Private Network, віртуальна приватна мережа) [1].

Основні плюси цієї системи:

– просте налаштування займає менше години і не вимагає спеціальних знань;

– економія трафіка за допомогою бібліотеки компресії lzo (Lempel - Ziv - Oberhumer);

– безпечне шифрування трафіка ключами завдовжки 1024 біта і вище, а клієнти розділені між собою в окремі підмережі.

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

OpenSSL – криптографічний пакет з відкритим початковим кодом для роботи з SSL/TLS. Дозволяє створювати ключі RSA (Rivest, Shamir і Adleman), DH, DSA (Digital Signature Algorithm) і сертифікати X.509, підписувати їх, формувати CSR і CRT. Також є можливість шифрування даних і тестування SSL/TLS з'єднань.

RSA (буквена абревіатура від прізвищ Rivest, Shamir і Adleman) – криптографічний алгоритм з відкритим ключем.

RSA став першим алгоритмом такого типу, придатним і для шифрування, і для цифрового підпису. Алгоритм використовується у великому числі криптографічних застосувань.

На 2009 рік система шифрування на основі RSA вважається надійною, починаючи з розміру в 1024 біта.

Групі учених зі Швейцарії, Японії, Франції, Нідерландів, Німеччини і США вдалося успішно обчислюти дані, зашифровані за допомогою криптографічного ключа стандарту RSA завдовжки 768 біт. За словами дослідників, після їх роботи в якості надійної системи шифрування можна розглядати тільки RSA -ключі довжиною 1024 біта і більше. Причому, від шифрування ключем завдовжки в 1024 біт варто відмовитися в найближчі три-чотири роки.

Система RSA використовується для захисту програмного забезпечення і в схемах цифрового підпису.

DSA (Digital Signature Algorithm) – алгоритм з використанням відкритого ключа для створення електронного підпису, але не для шифрування (на відміну від RSA і схеми Эль-Гамаля). Підпис створюється таємно, але може бути публічно перевірений. Це означає, що тільки один суб'єкт може створити підпис повідомлення, але будь-хто може перевірити його коректність. Алгоритм, заснований на обчислювальній складності узяття логарифмів у кінцевих полях.

Алгоритм був запропонований Національним інститутом стандартів і технологій (США) в серпні 1991 і є запатентованим U.S. Patent 5231668 (англ.), але НИСТ зробив цей патент доступним для використання без ліцензійних відрахувань. Алгоритм разом з криптографічною хеш-функцией SHA – 1 є частиною DSS (Digital Signature Standard), уперше опублікованого в 1994 (документ FIPS – 186 (Federal Information Processing Standards)). Пізніше були опубліковані 2 оновлених версії стандарту: FIPS 186-2 (27 січня 2000 року) і FIPS 186-3(червень 2009).

Стандарт X.509 визначає формати даних і процедури розподілу загальних ключів за допомогою сертифікатів з цифровими підписами, які надаються сертифікаційними органами (CA). RFC 1422 створює основу для PKI на базі X.509.

У діючих стандартах визначений сертифікат X.509 версія 3 і список відгуку сертифікатів (CRL) версія 2.

Шифрований зв'язок досягається цифровим підписом довіреного CA під кожним сертифікатом. Сертифікат має обмежений термін дії, вказаний в його підписаному змісті. Оскільки користувач сертифікату може самостійно перевірити його підпис і термін дії, сертифікати можуть поширюватися через незахищені канали зв'язку і серверні системи, а також зберігатися в кеш-пам'яті незахищених призначених для користувача систем. Зміст сертифікату має бути однаковим в межах усього PKI. Нині в цій області пропонується загальний стандарт для Інтернет з використанням формату X.509 v3: номер версії, серійний номер, емітент, суб'єкт, публічний ключ суб'єкта (алгоритм, ключ), період дії, додаткові (необов'язкові) значення, алгоритм підпису сертифікату, значення підпису сертифікату.

SSL (англ. Secure Sockets Layer – рівень захищених сокетів) – криптографічний протокол, який забезпечує встановлення безпечного з'єднання між клієнтом і сервером. SSL спочатку розроблений компанією Netscape Communications. Згодом, на підставі протоколу SSL 3.0 був розроблений і прийнятий стандарт RFC, що отримав ім'я TLS.

Протокол забезпечує конфіденційність обміну даними між клієнтом і сервером, які використовують TCP/IP, причому, для шифрування використовується асиметричний алгоритм з відкритим ключем. При шифруванні з відкритим ключем використовується два ключі, причому будь-який з них може використовуватися для шифрування повідомлення. Тим самим, якщо використовується один ключ для шифрування, то відповідно для розшифровки треба використовувати інший ключ. У такій ситуації можна отримувати захищені повідомлення, публікуючи відкритий ключ, і зберігаючи в таємниці секретний ключ.

TLS (англ. Transport Layer Security) – криптографічний протокол, що забезпечує захищену передачу даних між вузлами в мережі Інтернет.

TLS - протокол заснований на протоколі Netscape SSL версії 3.0 і складається з двох частин – TLS Record Protocol і TLS Handshake Protocol. Відмінності між SSL 3.0 і TLS 1.0 незначні, тому далі в тексті ті

TLS надає можливості автентифікації і безпечної передачі даних через інтернет з використанням криптографічних засобів. Часто відбувається лише автентифікація сервера, тоді як клієнт залишається не автентифікованим. Для взаємної автентифікації кожна із сторін повинна підтримувати інфраструктуру відкритого ключа (PKI), яка дозволяє захистити клієнт-серверні застосування від перехоплення повідомлень, редагування існуючих повідомлень і створення підробних.

SSL включає три основні фази:

Діалог між сторонами, метою якого є вибір алгоритму шифрування.

Обмін ключами на основі криптосистем з відкритим ключем або автентифікація на основі сертифікатів.

2. Хід роботи

2.1. Налаштування ядра cервера на ОС Linux

 

Зазначимо, на цьому етапі треба бути украй обережним і уважним. Ядро повинне містити опції подані нижче. На клієнтові потрібні тільки TUN і ipv4.

У ядрі нам знадобиться наступний функціонал, витяги з конфігурації:

CONFIG_NF_NAT=m

CONFIG_NF_NAT_PPTP=m

CONFIG_NETFILTER=y

CONFIG_TUN=m

Ну і розуміється підтримка ipv4, мережевої карти.

Якщо ці опції встановлені, то пропускаємо пункт конфігурація ядра ОС Linux і переходимо до конфігурації OpenVpn.

Збираємо і встановлюємо ядро. Можна скористатися make, make modules, make modules_install. Перезавантажуємося.

Після перезавантаження, перейдемо до установки ПО OpenVpn.

cd /usr/local/src/openvpn – перехід в настановну директорію

configure – задаємо конфігурацію

make – збираємо – створюємо бінарні файли

make install – встановлюємо ПО

 

2.2. Генерація ключів

 

Перейдемо в /еtс/openvpn/easy - rsa/. Відкриємо файл vars і перевіримо нижчеподані параметри, якщо їх немає, то впишемо:

export EASY_RSA=" /etc/openvpn/easy - rsa/" #Шлях до easy - rsa.

export KEY_CONFIG='$EASY_RSA/whichopensslcnf $EASY_RSA' #Конфиг OpenSSL

export KEY_DIR=" $EASY_RSA/keys" #Каталог, в якому ми триматимемо ключі.

export KEY_SIZE=1024 # Розмір ключа

export CA_EXPIRE=3650 # Термін дії CA

export KEY_EXPIRE=3650 # Термін дії ключа

export KEY_COUNTRY=" UA"

export KEY_PROVINCE=" UA"

export KEY_CITY=" ODAC"

export KEY_ORG=" ODAC"

export KEY_EMAIL=" me@admin.odac"

Якщо були зміни, то імпортуємо зміни: source./vars

Тепер створимо ключі, якщо вони створені і не були змінені, то цей пункт пропускаємо.

./clean - all - Очищаємо старі ключі, якщо вони були.

openvpn --genkey --secret ta.key - ключ TLS - auth

./build - dh - ключ Діффі-Хеллмана.

./pkitool --initca – сертифікат автентифікації для сервера.

./pkitool --server vpsrv - сертифікат сервера.

./pkitool vpclient - сертифікат клієнта.

 

Усе, ключі готові.

 

2.3. Налаштування сервера Оpenvpn

 

Переходимо в /etc/openvpn/, відкриваємо openvpn.conf і перевіряємо наступні параметри, якщо якісь параметри відсутні, то змінюємо [2]:

mode server # задаємо режим – сервер;

port 1194 # задаємо порт;

proto tcp # задаємо транспортний протокол;

dev tun # задаємо тип пристрою;

tls - server # задаємо тип сервера;

local 192.168.0.122 # задаємо локальну адресу сервера;

server 192.168.21.0 255.255.255.0 # задаємо діапазон, що виділяється клієнтам під мережу;

keepalive 10 120 # встановлюємо час життя з'єднання;

persist - key # використовуємо постійні ключі;

persist - tun # використовуємо постійне тунель-з'єднання;

status openvpn - status.log # задаємо log файл;

client - config - dir /etc/openvpn/ccd # вказуємо директорію для клієнтських сертифікатів;

push " route 192.168.21.0 255.255.255.0" # задаємо маршрут за замовчуванням;

duplicate - cn # дублюємо cn;

ca /etc/openvpn/keys/ca.crt # кореневий сертифікат

verb 3 # рівень деталізації

cert /etc/openvpn/keys/vpnserver.crt # сертифікат сервера

key /etc/openvpn/keys/vpnserver.key # ключ сервера

dh /etc/openvpn/keys/1.pem # ключ за Діффі-Хеллмана

 

Клієнтові необхідно передати файли:

ca.crt

vpclient.crt

vpclient.key

І їх також записати на сервері в директорії /etc/openvpn/ccd.

Після того, як усі файли перевірені і внесені зміни, необхідно запустити openvpn в режимі сервера.

Можливі варіанти запуску:

openvpn --config /etc/openvpn.conf

openvpn --config /etc/openvpn.conf --dev tunX.

Детальніше можна подивитися за допомогою команди довідки - man openvpn або підказки параметрів - openvpn - h.

Після запуску сервера openvpn потрібно активувати захоплення пакетів за допомогою tcpdump.

Здійснити підключення клієнта openvpn з ОС Windows.

Запустити команду ping на адресу сервера.

Від'єднати підключення.

Зупинити захоплення пакетів.

 

3. Ключові питання

 

1. Що таке SSL?

2. Що таке TLS?

3. Які відмінності між TLS і SSL?

4. Для чого застосовується стандарт X.509?

5. Яким алгоритмом згенерований сертифікат клієнта, сервера ОpenVPN в цій лабораторній роботі?

6. Який алгоритм використовується для шифрування трафіка?

7. Які пристрою tun або tap застосовуються у OpenVPN?

 

4. Домашнє завдання

 

1. Вивчити формування OpenVPN тунелю. Основні можливості OpenVPN.

2. Визначити, які основні алгоритми авторизації та шифрування застосовуються в OpenVPN.

3. З’ясувати, які основні програмні продукти будуть застосовуватися у лабораторній роботі.

4. Відповісти на ключові питання.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.013 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал