Openwrt - openvpn-сервер - denis yuriev

Давно ми не розширювали наші володіння можливості нашого пристрою з прошивкою OpenWRT.
Давно придивлявся до чудової можливості ця прошивки - OpenVPN клієнт / сервер, проте любитель графічних інтерфейсів, а не консолі і чекав, поки полагодять розширення для веб-інтерфейсу LuCI з управління ця дивом інтернет-технологій.






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

Навіщо потрібен OpenVPN?

Уявімо, що у нас є два офіси, між якими ні провід не прокласти, ні WiFi не бере, а ось об'єднати їх мережі треба.
Ось тут то нам і допоможуть технології віртуальних приватних мереж.

За точку звіту візьмемо
192.168.1.0/24 - перша підмережа, де буде розташовуватися наш OpenVPN-сервер
192.168.2.0/24 - друга підмережа, що підключається до першої за допомогою OpenVPN-клієнта

У цій статті ми розглянемо настройку сервера, який буде запущений на пристрої з OpenWRT прошивкою.

Збираємо OpenWRT з OpenVPN сервером

Як завжди, нам знадобиться додати пару пакетів в нашу прошивку. Можна, звичайно, доустановити, але я не шукаю легких шляхів і люблю, коли все відразу з коробки.
Згадуємо, як збирати прошивку OpenWRT і на етапі вибору компонентів додаємо:

Тепер подивимося, які бібліотеки для роботи з SSL у нас використовуються іншими пакетами. Навіщо? Так все бонально - якщо якийсь пакет залежностями тягне бібліотеки openssl. то і ми будемо використовувати ця бібліотеку для OpenVPN, інакше ж для економії розміру прошивки будемо використовувати polarssl

У мене ніхто ще не використовується, з цього відразу йду підключати пакет OpenVPN з підтримкою PolarSSL

Сподіваюся, логіка, зрозуміла.
Тепер можна збирати прошивку, як зазвичай

підготовка сертифікатів

Багато радять підключати ще один пакет, для генерації сертифікатів, але по мені так це маячня - додавати пару сотень кілобайт в прошивку, коли ці кілобайти будуть використовуватися лише один раз. Тому я буду генерувати сертифікати на комп'ютері зі встановленою Ubuntu
Встановимо невеликий пакет:

І перейдемо в каталог, куди це чудо встановилося (до слова, це диво - генератор сертифікатів):

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

Тепер налаштуємо інформацію в сертифікатах:

перед нами постане купа всяких ключів, нам потрібні лише деякі з них:

Відредагували? Зберігайте.
Тепер скопіюємо останню версію конфіга в файл openssl.cnf

Про всяк випадок почистимо від сміття

І створимо сертифікат сервера

На всі питання відповідаємо ствердно (він перепитає те, що в файлі відредагували).
Тепер пора створити ключ сервера

Знову таки з усім соглашаемсяtop

Тепер черга за ключем Діффі Хельман. Зізнаюся, навіть не став розбиратися поки в теорії. Одне лише скажу - якщо ви все таки генеруєте на роутері його, то ви зненавидить себе, так як навіть на комп'ютері генерація займає кілька хвилин. На роутере ж може зайняти годину.

Створили? Чудово. Тепер йдемо в вебінтерфейс нашого пристрою, щоб запустити новий сервер.







Налаштування OpenVPN-сервера в OpenWRT через веб-інтерфейс

Переходимо в веб-інтерфейсі на сторінку Сервіси -> OpenVPN

Openwrt - openvpn-сервер - denis yuriev

Сторінка налаштувань OpenVPN

Додамо сервер. Для цього придумуємо ім'я латинськими буквами, без гасел і прогалин, вибираємо тип Server configuration for routed multi-client VPN і тиснемо кнопку «Додати»

Openwrt - openvpn-сервер - denis yuriev

Додавання процесу OpenVPN

Нас перекине на сторінку з основними настройками процесу.
Тут нам необхідно додати 4 додаткових поля (нижня частина сторінки)
Отже, додаємо наші згенеровані файли
ca -> ca.crt
dh -> dh1024.pem
cert -> server.crt
key -> server.key
Після додавання цих файлів наш сервер VPN запуститься автоматично.
Перевірити, чи все пройшло правильно можна командою ifconfig в консолі. Повинен з'явитися інтерфейс tun0:

Призначення зони брандмауера

Тепер нам треба додати трохи естетики і зручності, щоб не повзати зайвий раз знову таки в консоль.
Для початку зайдемо на в розділ Мережа -> Інтерфейси
І додамо новий інтерфейс

Openwrt - openvpn-сервер - denis yuriev

Додавання нового інтерфейсу для VPN-з'єднання

Протокол - некерований
Інтерфейс - tun0
Тиснемо Застосувати і вибираємо Налаштування брандмауера

Openwrt - openvpn-сервер - denis yuriev

Додаємо зону для VPN-з'єднання

Додаємо зону VPN
Тепер зберігаємо, застосовуємо і переходимо безпосередньо в настройки фаєрвола.
Мережа -> Брандмауер
Знаходимо внизу сторінки нашу новоспечену зону і переходимо до її редагування.

  • Вхідний - приймати
  • Вихідний - приймати
  • Перенаправлення - приймати
  • Маськарадінг - вкл
  • Дозволити перенаправлення в зони призначення - lan
  • Дозволити перенаправлення з зон-джерел - lan

Openwrt - openvpn-сервер - denis yuriev

Налаштування зони VPN для брандмауера

Так само зберігаємо і застосовуємо.

Відкриваємо порт для OpenVPN-сервера

Останнє, що мало не забув - нам же треба відкрити порт, щоб клієнти могли підключитися ззовні
Мережа -> Брандмауер -> Правила для трафіку
Шукаємо розділ Відкрити порти на маршрутизаторі і додаємо наш порт:

Читайте також:

  • Openwrt - openvpn-сервер - denis yuriev
    OpenWRT - OpenVPN-клієнт
  • Openwrt - openvpn-сервер - denis yuriev
    Samba, Transmission і розмір OpenWRT
  • Openwrt - openvpn-сервер - denis yuriev
    OpenWRT - дружба з DIR-300 B5, B6 і B7
  • Openwrt - openvpn-сервер - denis yuriev
    OpenWRT - OpenVPN і маршрутизація
  • Openwrt - openvpn-сервер - denis yuriev
    OpenWRT і Samba - перетворюємо роутер в NAS-сервер
  • Openwrt - openvpn-сервер - denis yuriev
    OpenWRT - встановлюємо Transmission