Давно ми не розширювали наші володіння можливості нашого пристрою з прошивкою 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
Сторінка налаштувань OpenVPN
Додамо сервер. Для цього придумуємо ім'я латинськими буквами, без гасел і прогалин, вибираємо тип Server configuration for routed multi-client VPN і тиснемо кнопку «Додати»
Додавання процесу OpenVPN
Нас перекине на сторінку з основними настройками процесу.
Тут нам необхідно додати 4 додаткових поля (нижня частина сторінки)
Отже, додаємо наші згенеровані файли
ca -> ca.crt
dh -> dh1024.pem
cert -> server.crt
key -> server.key
Після додавання цих файлів наш сервер VPN запуститься автоматично.
Перевірити, чи все пройшло правильно можна командою ifconfig в консолі. Повинен з'явитися інтерфейс tun0:
Призначення зони брандмауера
Тепер нам треба додати трохи естетики і зручності, щоб не повзати зайвий раз знову таки в консоль.
Для початку зайдемо на в розділ Мережа -> Інтерфейси
І додамо новий інтерфейс
Додавання нового інтерфейсу для VPN-з'єднання
Протокол - некерований
Інтерфейс - tun0
Тиснемо Застосувати і вибираємо Налаштування брандмауера
Додаємо зону для VPN-з'єднання
Додаємо зону VPN
Тепер зберігаємо, застосовуємо і переходимо безпосередньо в настройки фаєрвола.
Мережа -> Брандмауер
Знаходимо внизу сторінки нашу новоспечену зону і переходимо до її редагування.
- Вхідний - приймати
- Вихідний - приймати
- Перенаправлення - приймати
- Маськарадінг - вкл
- Дозволити перенаправлення в зони призначення - lan
- Дозволити перенаправлення з зон-джерел - lan
Налаштування зони VPN для брандмауера
Так само зберігаємо і застосовуємо.
Відкриваємо порт для OpenVPN-сервера
Останнє, що мало не забув - нам же треба відкрити порт, щоб клієнти могли підключитися ззовні
Мережа -> Брандмауер -> Правила для трафіку
Шукаємо розділ Відкрити порти на маршрутизаторі і додаємо наш порт:
Читайте також:
- OpenWRT - OpenVPN-клієнт
- Samba, Transmission і розмір OpenWRT
- OpenWRT - дружба з DIR-300 B5, B6 і B7
- OpenWRT - OpenVPN і маршрутизація
- OpenWRT і Samba - перетворюємо роутер в NAS-сервер
- OpenWRT - встановлюємо Transmission