Установка і настройка сервера openvpn на debian

Інструкція з встановлення та налаштування OpenVPN-сервера на базі Linux -дістрібутіва Debian 8 Jessie.

Для роботи OpenVPN необхідна підтримка TUN / TAP інтерфейсу на сервері. Якщо ви встановлюєте OpenVPN на фізичній машині, або використовуєте віртуалізацію KVM, в з цим не повинно виникнути проблем.
У разі використання OpenVZ, необхідно активувати підтримку TUN / TAP в налаштуваннях контейнера.

Перевіряємо підтримку в системі tun / tap-інтерфейсів:

Клієнти будуть використовувати на сервері аутентифікацію по ключу. Для цього створимо директорію в яку будуть скопійовані згенеровані ключі:

І скопіюємо в неї утиліти і конфіги для роботи з ключами:

переходимо в створену директорію:

У файлі vars можна налаштувати параметри ключів і сертифікатів. Даний пункт не обов'язковий і при бажанні його можна пропустити.

Міняємо (за бажанням) такі рядки:

Інше залишаємо за замовчуванням.

Після редагування vars инициализируем змінні і очищаємо каталог keys / server від старих сертифікатів і ключів:

створення сертифікатів

Створюємо кореневий сертифікат:

Генеруємо сертифікати сервера і клієнта:

Для кожного клієнта повинні бути згенеровані окремі ключі.

Генеруємо ключ Діффі - Хеллмана:

Створена ключ для tls-аутіфікаціі:

Всі згенеровані сертифікати і ключі знаходяться в директорії / etc / openvpn / easy-rsa / keys /
Копіюємо сертифікати і ключі сервера в директорію OpenVPN:

На клієнтську машину OpenVPN необхідно скопіювати наступні ключі та сертифікати:

client1.crt
client1.key
ca.crt
ta.key

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

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

Приклад конфігураційного файлу OpenVPN розташований в директорії /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz. копіюємо і розпаковуємо його в / etc / openvpn:

# Cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz / etc / openvpn /
# Gzip -d /etc/openvpn/server.conf.gz

Залежно від потреб, змінюємо настройки сервера OpenVPN:

Ось моя конфігурація:

Таким чином шлюзом за замовчуванням для клієнтів у вас стане OpenVPN - сервер.

Створюємо директорію для клієнтських налаштувань і перезавантажуємо сервер:

Після завершення налаштування OpenVPN, перезавантажуємо сервер:

У разі успішного запуску OpenVPN в системі повинен з'явитися новий tun0 інтерфейс:

Наявність даного інтерфейсу означає, що OpenVPN Запущено і працює. Якщо з яких-небудь причин він не з'явився, то дивимося лог-файл на наявність помилок:

Налаштування маршрутизації для клієнтів OpenVPN

Після підключення клієнта до сервера OpenVPN, якщо він (клієнт) знаходиться в локальній мережі, потрібно додатково налаштувати маршрутизацію для доступу до ресурсів усередині мережі. Для цього створюємо файл в каталозі ccd з тим же ім'ям ключа клієнта:

Додамо в файл наступні параметри:

Перший рядок додає маршрут в локальну мережу клієнта. Простіше кажучи - говорить клієнту OpenVPN "ходити" в мережу 192.168.2.0 через сервер OpenVPN. Якщо ваша локалка пов'язана ще з будь-якої підмережею, то її також потрібно вказати.

Другий рядок задає DNS-сервер, який буде використовуватися після підключення (Якщо у вашій локальній мережі DNS-сервер відсутній, то можна вказати ns від Google - 8.8.8.8, або не вказувати взагалі.

Включаємо NAT на OpenVPN сервері

Щоб використовувати OpenVPN для виходу в інтернет, на сервері необхідно задати правило для маршрутизації трафіку з мережі OpenVPN в локальну мережу або мережу інтернет-провайдера і назад.

Застосовуємо зміни (завантажуємо змінні ядра):

Не забуваємо прописати правила iptables. Нам потрібно дозволити клієнтам з підмережі 10.10.10.0/24 доступ в інтернет, дозволити приймати пакети з інтернету і пропустити трафік клієнтів через NAT.

У першому рядку ми дозволяємо форвардного пакетів на інтерфейсі tun0.
Другий рядок дозволяємо форвардного з tun0 на eth0.
Третин - дозволяємо формардінг з eth0 на tun0.

Замініть eth0 на ім'я свого зовнішнього інтерфейсу. Слід зазначити, що MASQUERADE створює навантаження на процесор. Тому, краще використовувати SNAT:

Зберігаємо правила і додаємо їх в автозавантаження:

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

Якщо OpenVPN не встановлено, то встановимо його ::

Копіюємо на комп'ютер клієнта наступні ключі та сертифікати:

Потім переносимо їх в директорію OpenVPN - / etc / openvpn /

Копіюємо і розпаковуємо приклад конфігураційного файлу в вміст директорії OpenVPN:

і редагуємо його:

Додамо в вміст файлу наступні параметри:

Для Windows-машин потрібно покласти файл client.ovpn в папку:

Опції протоколу, шифрування і стиснення у клієнта і сервера повинні бути однакові.

На цьому настройка OpenVPN в Debian закінчена, перевіряємо його працездатність:

Підключаємося з клієнтської машини до OpenVPN-сервера. і пінгуем з неї OpenVPN-сервер:

Якщо пінг проходить, то все добре, якщо ж ні, то дивимося логи і перевіряємо настройки маршрутизації.

P.S. Якщо у вас на сервері динамічний IP, то можете скористатися скриптом заміни IP в конфіги OpenVPN. і подальшої його відправкою на email.

Схожі статті