Wiki nastrojka_openvpn - Пакети opkg для ZyXEL Keenetic
Перший етап налаштування OpenVPN – генерація ключів для серверної та клієнтської частин OpenVPN, необхідні для безпечного підключення. Ми розглянемо найпоширеніший варіант роботи – один ключ сервера та необмежену кількість ключів клієнтів. Для їх створення знадобиться інсталяційний файл OpenVPN для Windows, який можна взяти за посиланням: Windows Installer (32-bit або 64-bit). Після його встановлення необхідно перейти в папку із встановленим OpenVPN (за замовчуванням: "C:\Program Files\OpenVPN"), відкрити папку "easy-rsa", скопіювати файл "vars.bat" (або якщо його немає, то файл "vars .bat.sample») і перейменувати на «vars-server.bat», відкрити його в будь-якому блокноті для редагування та замінити рядки як у прикладі (або просто натиснути на ім'я файлу в прикладі для того, щоб скачати його собі на комп'ютер):
Далі необхідно ще раз скопіювати файл «vars.bat», але цього разу дати йому ім'я «vars-client.bat», відкрити його та замінити рядки (будьте уважні – кілька рядків відрізняються від попереднього блоку коду):
Далі потрібно запустити Командний рядок Windows (можна зробити за допомогою клавіш Win+R, або вибрати в меню Пуск > Всі програми > Стандартні) ввести в неї послідовно:
Далі після введення команди, через пробіл, необхідно ввести Ім'я_сервера, яке ми вводили в коді файлу "vars-server", після чого в консолі можуть виникати питання на які потрібно відповідати "yes" (якщо надається вибір "y/n" або просто натискати "Enter" коли запитуються дані (ми їх уже вказали у файлі "vars-server").
Наступні дії дуже схожі на попередні - після введення команди через пробіл необхідно ввести Ім'я_клієнта, яке ми вводили в коді файлу «vars-client», після чого в консолі можуть виникати питання на які потрібновідповідати "yes" (якщо надається вибір "y/n" або просто натискати "Enter" коли запитуються дані (ми їх вже вказали у файлі "vars-client")).
Після чого для перевірки створення ключів зайдіть у папку C:\Program Files\OpenVPN\easy-rsa\keys, там мають бути такі файли:
Якщо всі вони там присутні, можна сміливо приступати до наступного етапу.
Встановлення пакетів, необхідних для роботи OpenVPN
Для встановлення пакетів OpenVPN необхідно підключившись SSH до консолі ввести наступну команду:
Підготовка OpenVPN
Якщо планується постійне використання OpenVPN, то найзручніше буде налаштувати його автозапуск, для чого потрібно ввести наступну команду в консолі:
Перше, що необхідно зробити - це скопіювати файли згенерованих ключів у папку /media/DISK_A1/system/etc/openvpn/keys.
Налаштування сервера OpenVPN
Протокол, яким буде йти з'єднання.
Тип інтерфейсу та режим роботи: tun = L3-тунель, tap = L2-тунель.
Файл, який містить параметри Diffie Hellman.
Опція ca визначає кореневий сертифікат, яким підписані клієнтські пари сертифікат/ключ. Значення цієї опції keys/ca.crt вказує розташування цього сертифіката щодо каталогу openvpn. (Або, іншими словами, це відкритий ключ сервера).
Кожен учасник OpenVPN з'єднання в режимі TLS повинен мати власний сертифікат і файл із закритим ключем. Кожен сертифікат повинен бути підписаний закритим ключем центру сертифікатів, відкритий ключ якого вказується в опції ca.
Закритий ключ, який генерується разом із сертифікатом, зазначеним у опції cert.
Використання режиму TLS:
Режим роботи сервера. За промовчанням OpenVPN працює в p2p-режимі (point-to-point або один до одного), приВказівки mode server він працює в режимі сервера з багатьма клієнтами.
Якщо ви хочете, щоб клієнти могли бачити один одного, необхідно додати наступне:
Макрокоманда «пінгувати» протилежну сторону тунелю із зазначеним періодом 10 сек, за відсутності зустрічних пінгів протягом 120 сек, вважати тунель таким, що впав і запускати переєднання.
Не перечитувати заново файли ключів при отриманні сигналу SIGUSR1 (перевстановлення з'єднання) або через інтервал, вказаний у опції «keepalive m n» (перевстановлення з'єднання через n секунд після надсилання останнього icmp пакета клієнту, який залишився без відповіді).
Не закривати або перевідкривати пристрої TUN/TAP при отриманні сигналу SIGUSR1 або після інтервалу n опції «keepalive m n».
Використання компресії для зменшення обсягу переданого трафіку.
Збереження інформації про поточні з'єднання сервера:
Зберігати або додавати лог у зазначений файл:
Встановлює рівень деталізації подій для логів.
Встановлює обмеження на повторювані події в логах.
У результаті має вийти щось подібне до наступного файлу:
Налаштування клієнта OpenVPN
Ця команда змушує клієнта перевірити сертифікат, пред'явлений сервером. Перевіряється, що сертифікат саме серверний.
У результаті має вийти щось подібне до наступного файлу:
Завдання правил IPTABLES
Для успішного функціонування OpenVPN нам знадобиться додати правила до IPTABLES. Найпростіше це зробити створивши (змінивши) файл /media/DISK_A1/system/etc/firewall.d/fw.sh, в який внести необхідні рядки. Обов'язковий лише перший рядок, а далі в залежності від налаштувань: Якщо наш OpenVPN налаштований на порт 1194 і використовує для з'єднання tcp:
Якщо наш OpenVPN налаштований на порт 1194 та використовує для з'єднання udp: