OpenVPN у Windows

Матеріал із Xgu.ru

Якщо ви вважаєте, що її варто було б допрацювати якнайшвидше, будь ласка, скажіть про це.

Зміст

[ред.] Організація з'єднання з використанням статичних ключів

У цьому розділі розглядається підготовка та організація vpn з'єднання з використанням статичного ключа. Як сервер використовується комп'ютер з операційною системою Debian GNU/Linux Etch на ядрі 2.6.18-4-686, а як клієнт - Windows 2003 SP2.

Налаштування мережевих інтерфейсів сервера та клієнта:

Тепер необхідно проінсталювати необхідне програмне забезпечення прийнятим для кожної операційної системи способом.

На сервері під керуванням ОС Debian GNU/Linux достатньо виконати команду:

Крім цього, перевірте, чи має Ваше ядро ​​підтримку TUN/TAP пристроїв. Зробити це можна, виконавши наступну команду:

Якщо Ваше ядро ​​не підтримує ці пристрої:

то для продовження Вам необхідно скомпілювати цей модуль.

На клієнті, під керуванням ОС Windows 2003 SP2, необхідно насамперед отримати інсталяційний файл. Завантажити його можна за допомогою посилання. На момент написання статті поточна версія OpenVPN – 2.0.9. Потім необхідно інсталювати отримане програмне забезпечення звичайним викликом .exe файлу. Під час інсталяції залиште всі значення за промовчанням.

Після встановлення необхідно згенерувати статичний ключ будь-якому комп'ютері - сервері чи клієнті, скопіювати його в інший комп'ютер і відредагувати конфігураційні файли сервера і клієнта.

  • Для створення статичного ключа в ОС Debian необхідно виконати таку команду:
  • Для створення статичного ключа в ОС Windows необхідно запустити наступну команду:Пуск-> Програми -> OpenVPN -> Generate a static OpenVPN key. В результаті буде створено файлC:\Program Files\OpenVPN\config\key.txt. Потім необхідно скопіювати цей ключ іншого учасника з'єднання.

Далі відредагуйте конфігураційні файли сервера та клієнта:

  • конфігураційний файл сервера/etc/openvpn/sample.conf:
  • конфігураційний файл клієнтаC:\Program Files\OpenVPN\config\sample.ovpn:

З зазначених вище конфігураційних файлів видно, що відмінність серверного і клієнтського конфігів дуже мало, і сервером буде той комп'ютер, який не вказаний параметрremote

Виконаємо команду на сервері:

Потім на windows:

єднання

Запустити сервіс OpenVPN під Windows можна і з cmd:

Тепер перевірте стан інтерфейсів за допомогою команди/sbin/ifconfigна сервері:

І на windows-клієнті за допомогою командиipconfig /all:

І перевірте щойно встановлений тунель:

На цьому організація VPN з'єднання з використанням статичних ключів завершена.

[ред.] Створення сертифікатів на Windows за допомогою easy-rsa

Насамперед необхідно створити каталогc:\Progam Files\OpenVPN\easy-rsa\keysі скопіювати в нього файли serial.start та index.txt.start без суфікса .start. Зробити це можна за допомогою наступної команди, запущеної в cmd:

Потім необхідно скопіювати файли vars.bat.sample та openssl.cnf.sample у vars.bat та openssl.cnf відповідно. Зробити це можна, виконавши batch файлC:\Program Files\OpenVPN\easy-rsa\init-config.batза допомогою наступної команди:

Потім необхідно відредагувати файлvars.bat:

Потім необхідно внестизміни у середовище оточення згідно файлуvars.bat. Зробити це можна з cmd за допомогою наступної команди:

  • Потім необхідно створити Diffie-Hellman key:

В результаті в каталозіC:\Program Files\OpenVPN\easy-rsa\keysз'явиться файлdh1024.pem:

  • Тепер потрібно створити Certificate Authority. Створюється він шляхом виконання файлуbuild-ca.bat:

В результаті виконання цієї команди в каталозіkeysбуло створено два файлиca.crtтаca.key:

  • Далі необхідно створити ключі сервера та клієнта.

Для цього необхідно виконати файлbuild-key-server.batз параметром імені сервера, у нашому випадку цеwin0:

В результаті в каталозі:

  • Тепер створимо ключ клієнта:

В результаті в каталозі:

  • Тепер необхідно скопіювати roman.crt, roman.key та ca.crt у каталог /etc/openvpn.
  • mkdir /etc/openvpn/keys
  • Тепер необхідно виправити конфіги:

Якщо під час старту сервера на Windows виникне помилка:

Необхідно перемістити каталог c:\Progam Files\OpenVPN\easy-rsa\keys в з:\keys і після цього модифікувати конфіг:

Тепер запустимо сервер vpn із cmd під Windows за допомогою наступної команди:

Потім на клієнта дамо команду:

І дивимося на продовження виведення на сервер:

[ред.] Створення сертифікатів на Debian за допомогою easy-rsa

Запуск openvpn на сервері:

Запуск на Windows клієнта з cmd:

[ред.] Налаштування парольної автентифікації системних користувачів для встановлення підключення

Для цього необхідно у файлі /etc/openvpn/student1.conf дописати такі рядки:

А в клієнтськійконфізі:

[ред.] Налаштування OpenVPN для роботи як сервера

  • По-перше, необхідно створити файл конфігурації сервера. Його можна скопіювати з каталогу/usr/share/doc/openvpn/examples/sample-config-files/і потім розпакувати:
  • Потім потрібно відредагувати цей файл:
  • port 1194- порт для прослуховування демоном openvpn

  • proto tcp-server- вказівка ​​протоколу з'єднання. Якщо опція не вказана, використовується протокол не гарантованої доставки udp. Для tcp з'єднання необхідно вказати онду з опційtcp-serverабоtcp-clientдля сервера та клієнта відповідно. Демон, запущений з опцієюtcp-server, очікує вхідні з'єднання. Демон, запущений з опцієюtcp-client, ініціюватиме з'єднання і в разі невдачі буде здійснювати повторні спроби підключення через кожні 5 секунд (визначаєтьсяconnect-retryопцією, 5 секунд - значення за замовчуванням ).

  • ca keys/ca.crt- Опціяcaвизначає кореневий (root) сертифікат, яким підписані клієнтські пари сертифікат/ключ. Значення цієї опціїkeys/ca.crtвказує розташування цього сертифіката щодо каталогу /etc/openvpn. (Або, іншими словами, це відкритий ключ сервера)

  • cert keys/serzh.crt- Кожен учасник OpenVPN з'єднання в режимі TLS повинен мати власний сертифікат і файл із закритим ключем. Кожен сертифікат повинен бути підписаний закритим ключем центру сертифікатів, відкритий ключ якого вказується в опціїca.

  • key keys/serzh.key- Закритий ключ, який генерується разом із сертифікатом, зазначеним у опціїcert

  • dhkeys/dh1024.pem- Файл, що містить параметри Diffie Hellman

  • ifconfig-pool-persist ipp.txt- Файл асоціацій client virtual IP.

де перше поле - ім'я сертифіката, що використовується з TLS режимі.

  • server-bridge 172.16.0.1 255.255.255.0 172.16.0.2 172.16.0.253- Використання сервера в режимі моста. Це дає можливість бачити клієнтам не тільки сервер, але й інших клієнтів (при вказівці опціїclient-to-client).

  • client-config-dir ccd- Опція визначає каталог /etc/openvpn/ з конфігураційними файлами клієнтів. У цих файлах можуть бути перевизначені опції основного файлу конфігурації для кожного з клієнтів.

  • persist-key- Не перечитувати заново файли ключів при отриманні сигналу SIGUSR1 (переустановка з'єднання) або через інтервал, вказаний опцієюping-restart n(переустановити з'єднання через n секунд після надсилання останнього icmp пакета клієнту, який залишився без відповіді)

  • persist-tun- Не закривати або перевідкривати пристрої TUN/TAP при отриманні сигналу SIGUSR1 або після інтервалу n опціїping-restart n.

  • status openvpn-status.log 3500- У файл /etc/openvpn/openvpn-status.log записуватиметься статус активних підключень кожні 5 хвилин

  • verb 3- Рівень виведення налагоджувальної інформації.

  • plugin /usr/lib/openvpn/openvpn-auth-pam.so login- Підключення модуля аутентифікаціїopenvpn-auth-pam.soта використання програмиloginдля автентифікації користувачів під час встановлення з'єднання.

Конфігураційний файл клієнта:

[ред.]Openvpn FreeBSD

Копіюємо на Windows static.key C:\Program Files\OpenVPN\static.key

Потім створюємо конфігураційний файл клієнта openvpn - C:\Program Files\OpenVPN\config на Windows: