Налаштування VPN через MikroTik - OpenVPN

У попередній статті ми писали про налаштування VPN через MikroTik за допомогою протоколів PPPoE та PPTP. Це найпопулярніші способи тунелювання. Сьогодні ми зупинимося на OpenVPN - також поширеному рішенні VPN-тунелів на роутерах Мікротік.

 

Особливості OpenVPN на MikroTik

OpenVPN має багато переваг, завдяки яким він, як і раніше,  один з найпопулярніших протоколів для підняття VPN тунелів:

  • простота налаштування;
  • надійність та захищеність завдяки сертифікатам;
  • універсальність - віддалений доступ можна організувати з пристроїв із будь-якою операційною системою;
  • відсутність проблем із NAT.

 

Однак про те, що можливості  OpenVPN на MikroTik урізані:

  • немає стиснення LZO;
  • немає UDP, хоча саме він є кращим для OpenVPN як простий та легковажний транспорт;
  • швидкість передачі даних не надто висока;
  • немає можливості надавати адреси через інший DHCP, їх видає тільки сам Mikrotik.

 

Підняття  OpenVPN на MikroTik складається з трьох етапів:
 
  • генерація сертифікатів;
  • налаштування  OpenVPN сервера на  MikroTik;
  • налаштування клієнта.

 

ГЕНЕРАЦІЯ СЕРТИФІКАТІВ ДЛЯ  OPENVPN

Сертифікати для сервера та клієнта можна створити засобами  OpenVPN (Easy-RSA), а можна за допомогою ресурсу CAcert.org. Розглянемо створення самопідписаних сертифікатів за допомогою  Easy-RSA.

Завантажуємо та встановлюємо OpenVPN .

Ідемо на офіційний сайт  http://openvpn.net/  та завантажуємо версію ПЗ, яка підходить для нашої системи.
 
Встановлення OpenVPN
 
Далі встановлюємо OpenVPN, галочки можна зняти тільки з неважливих пунктів (наприклад, додавання ярлика програми на панель швидкого доступу та меню Пуск, асоціації файлів).

 

Встановлення OpenVPN для створення сертифікатів

  Редагуємо параметри  easy-rsa OpenVPN .

Після встановлення йдемо до папки з програмою, до каталогу easy-rsa

 

і відкриваємо за допомогою блокнота файл vars.bat.sample , редагуємо його.

Якщо ми створюємо дублікат папки easy-rsa (а в цьому є сенс) і працюємо в ньому, необхідно відредагувати рядок, прописавши в ньому новий шлях до папки:

set HOME=%ProgramFiles%\OpenVPN\easy-rsa

Значення рядка  set KEY_SIZE=1024  можна змінити на 2048 (як сказано у коментарях у файлі - якщо ви параноїк), але врахуйте, що продуктивність зменшиться.

Далі редагуємо наступні рядки, проставляючи в них актуальні для себе значення (порожні параметри залишати не можна):

set KEY_COUNTRY=UA

set KEY_PROVINCE=Harkiv
set KEY_CITY=Harkiv
set KEY_ORG=OpenVPN
set KEY_EMAIL=admin@lantorg.com
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=lantorg set PKCS11_MODULE_PATH=
changeme

Останні два параметри не можна змінювати.

Після чого зберігаємо файл під ім'ям vars.bat .

Якщо під час збереження vars.bat у цьому ж каталозі система видає помилку:

Помилка збереження vars.bat

то збережіть файл спочатку на робочому столі, та був перенесіть у цей каталог.

 Виконуємо створення сертифікатів для OpenVPN під MikroTik.

Працюємо у командному рядку Windows (cmd), запустивши її від імені адміністратора.

 Переходимо до потрібного каталогу:  cd "C:\Program Files\OpenVPN\easy-rsa"

 Набираємо команду vars і тиснемо ентер.

 Набираємо команду  clean-all і тиснемо ентер.

Наступний етап створення сертифікатів

Якщо бачимо напис, як у зображенні - "Скопійовано файлів - 1.", отже, все зроблено правильно.

 Набираємо команду  build-ca. Програма починає генерацію публічного сертифіката OpenVPN і запитує значення параметрів. Якщо питання в командному рядку ми просто тиснемо ентер, то програма підставляє значення за промовчанням, які ми вписали у файл vars.bat . Зупиняємось, коли знову з'являється рядок  C: Program Files Open VPN easy-rsa.

 Даємо  команду на генерацію сертифіката сервера OpenVPN для MikroTik: build-key-server имя_сертификата . У нашому випадку пишемо 

build-key-server server, питанням " Sign the certificate? " відповідаємо y, як і питання " 1 out of 1 certificate requests certified, commit?" , На інші просто тиснемо ентер.

 Даємо команду на генерацію сертифіката клієнта - build-key client . Ім'я сертифіката (Common Name) має бути унікальним і не співпадати з іншими сертифікатами. Тому на це запитання відповідаємо-  client . Тут також наприкінці з'являться два питання, як у попередньому пункті, і ми також відповідаємо на них –  y.

Все, тепер у папці  C:\Program Files\OpenVPN\easy-rsa\keys лежать усі створені ключі та сертифікати OpenVPN.

ВСТАНОВЛЕННЯ СЕРТИФІКАТІВ OPENVPN ТА НАЛАШТУВАННЯ СЕРВЕРА НА MIKROTIK

Зі створених нами сертифікатів та ключів нас цікавлять 3 файли:

  • ca.crt,
  • server.crt,
  • server.key.

 

 Імпортуємо сертифікати OpenVPN в ОС  MikroTik .

Заходимо за допомогою WinBox  на роутер Мікротик, на якому ми підніматимемо OpenVPN сервер. Копіюємо 3 вищезгадані файли з папки, де вони лежать, і вставляємо за допомогою меню: Files - Paste.
 
Вставка сертифікатів OpenVPN у Winbox MikroTik
 
Далі імпортуємо їх. Для цього використовуємо меню  WinBox:  System – Certificates – вибір сертифіката – кнопка Import .
Імпорт виробляємо у порядку: ca.crt => server.crt => server.key.
 
Після цього у вікні Certificate List додадуться два записи: публічного сертифіката CA та сертифіката OpenVPN сервера. У першому стовпці запису сертифіката сервера мають стояти дві літери – KR. Якщо ви бачите щось інше, спробуйте ще раз імпортувати файл ключа (*.key).
 
Сертифікати OpenVPN після імпорту
 
  Створюємо PPP-профіль  на роутері  MikroTik.
 
Якщо підключення за VPN-тунелем буде дозволено з декількох IP-адрес, нам потрібно створити їх пул. Ідемо в  IP -> Pool,  створюємо його та присвоюємо ім'я.
 
Якщо підключення тунелем буде здійснюватися з однієї   IP-адреси, то пропускаємо цей момент.
 
 Створюємо PPP-профіль. Для цього йдемо:  PPP – Profiles. Додаємо його кнопкою +.
 
У поля вписуємо:
 
  • ім'я профілю,
  • Local Address - адреса роутера Мікротик, до якого підключатимуться клієнти. Він повинен лежати в одій підмережі з Remote Address
  • Remote Address- тут пишемо або одну IP-адресу клієнта, або ім'я раніше створеного пулу адрес.

 

Інші налаштування не чіпаємо.

Налаштування сервера OpenVPN на MikroTik

 Налаштовуємо сервер  OpenVPN на роутері  MikroTik .

Ідемо в меню  PPP-Interface - OVPN Server .

  • Активуємо його, поставивши галочку у пункті Enabled.
  • У полі mode залишаємо IP (IP-тунелювання за замовчуванням) або виставляємо ethernet (режим мережного моста), це L3 та L2 відповідно. Найчастіше використовується IP.
  • Default Profile – вибираємо профіль, який ми створили раніше.
  • Certificate – сертифікат сервера.
  • require-client-certificate - якщо ставимо галку, сервер при підключенні перевіряє сертифікат клієнта. Якщо ні, то не перевіряє, і налаштування клієнта при цьому спрощується.

 

Налаштування OpenVPN сервера на мікротіку

 Створюємо та налаштовуємо користувача .

Ідемо:  PPP - Secrets і додаємо користувача. Тут все просто: ім'я, пароль, сервіс та профіль.

Створення користувача OpenVPN

Необхідно також у налаштуваннях клієнта передбачити синхронізацію часу із сервером. Спочатку переконуємося, що у нас виставлено правильну тайм-зону (меню System - Clock ). Далі йдемо в меню  System - SNTP Client і прописуємо адресу NTP сервера (на скріншоті вказана локальна, але можна взяти будь-яку, наприклад 85.21.78.91).

 Налаштовуємо дозвіл правило фаєрволла .

Ідемо IP - Firewall - Filter Rules  і дозволяємо трафік на порт OpenVPN:

  • У полі Chain ставимо input.
  • Protocol - 6(tcp).
  • Dst. Port – 1194.
  • In. Interface – прописуємо назву інтерфейсу, на який йде вхідний трафік.
 

Налаштування правила

Активуємо правило на вкладці Action:

Нагадаємо, що дозвільне правило у списку правил має бути вищим за забороняючі, інакше воно не працюватиме.

НАЛАШТУВАННЯ КЛІЄНТА  OPENVPN

Якщо ми не використовуємо клієнтські сертифікати (у налаштуваннях сервера не відзначали галочкою пункт  require-client-certificate), то налаштувати клієнт OpenVPN буде швидше та простіше. Нам не потрібно буде копіювати сертифікати для клієнта, тільки створити в меню PPP - Interfaces новий запис  OVPN Client  та на вкладці Dial Out прописати:

  • адреса OpenVPN сервера (поле  Connect To ),
  • логін та пароль користувача (поля  User та  Password ),
  • порт з'єднання,
  • тип аутентифікації та шифрування (поля  Auth та  Cipher ).

 

Якщо ми використовуємо сертифікати, читаємо далі.

 Налаштування другого роутера Мікротік як клієнта OpenVPN .

 Так само, як і при налаштуванні сервера, копіюємо з папки  C: Program Files OpenVPN easy-rsa keys  і вставляємо в розділ Files файли сертифікатів і ключів OpenVPN. Тільки тепер це будуть:

  • ca.crt,
  • client.crt,
  • client.key.

 

 Після цього імпортуємо їх по черзі, використовуючи меню System – Certificates - вибір сертифіката - кнопка Import .

 Після успішного імпорту у рядку сертифіката мають з'явитися літери KT

Імпорт сертифіката клієнта OpenVPN

 Далі налаштовуємо з'єднання практично так само, як і у випадку без сертифікатів. Створюємо в меню  PPP - Interfaces  новий запис  OVPN Client  і на вкладці  Dial Out  прописуємо:

  • адреса OpenVPN сервера (поле  Connect To ),
  • логін та пароль користувача (поля  User  та  Password ),
  • порт з'єднання,
  • найменування сертифіката
  • тип аутентифікації та шифрування (поля  Auth  та  Cipher ).

 

Налаштування клієнта OpenVPN

Все залишилося перевірити, чи піднялося з'єднання.

 Налаштування клієнта OpenVPN у Windows .


 Копіюємо раніше створені нами файли  ca.crt,  client.crt,  client.key з  папки  C:\Program Files\OpenVPN\easy-rsa\keys до каталогу  C:\Program Files\OpenVPN\config .

 Створюємо тут звичайний текстовий файл, який зберігаємо як  auth.cfg (зверніть увагу, змінюємо і розширення теж).

 Відкриваємо файл  auth.cfg для редагування в блокноті і вписуємо в нього 2 рядки: перший - логін користувача, другий - пароль,  які ми задали на сервері. Зберігаємо файл.

 Створюємо ще один текстовий файл, який зберігаємо як  client.ovpn (включно із зміною розширення).

 Файл  client.ovpn редагуємо так:

  1. proto tcp-client
  2. remote 123.123.123.123 # тут зовнішня адреса нашого роутера MikroTik 
  3. dev tap
  4. nobind persist-key
  5. tls-client
  6. ca ca.crt #вказуємо ім'я CA сертифіката 
  7. cert client.crt #вказуємо ім'я сертифіката клієнта 
  8. key client.key # вказуємо ім'я файла-ключа для клієнта 
  9. ping 10
  10. verb 3  # чим вищий цей параметр - тим вищий рівень логування
  11. ns-cert-type server
  12. cipher AES-256-CBC
  13. auth SHA1
  14. pull
  15. auth-user-pass auth.cfg  # тут ім'я файлу з логіном-паролем користувача
  16. route-method exe 
  17. route-delay 2 
  18. route 192.168.1.0 255.255.255.0 172.21.108.1 # цей рядок задає маршрут, тут  172.21.108.1 - адреса мікротика з PPP-профілю, а  192.168.1.0 с255.25. 
 
 Файл зберігаємо. Запускаємо OpenVPN GUI  (виконуваний файл лежить у папці C: Program Files OpenVPN bin)

 

Запускаємо обов'язково від імені адміністратора!