Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
OpenVPN. OpenVPN – це система, що дозволяє створювати шифровані тунелі між комп'ютерами за технологією VPN (Virtual Private Network⇐ ПредыдущаяСтр 14 из 14
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. Відповісти на ключові питання.
|