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: