Зелене Мишко настройка openvpn, vpn через http (https) проксі

Отже, після проведення деякого дослідження, вибір припав на openvpn. І ось як я його налаштовував:

1: установка OpenVPN


У мене було дві машини: мій ноутбук (note) і домашній сервер vpn.mydomain.ru (який виконує у мене функції інтернет-шлюзу, кешрующего проксі, тестового веб-сервера, Файлосховище, і багато чого іншого).

Установка і на тому і на іншому пройшла дуже легко (строго кажучи, він у мене вже був встановлений "на всякий випадок"):
Зазначу корисний USE-прапор: examples. Він включає установку прикладів конфігураційних файлів, якими можна скористатися як основою для написання своїх.

2: конфігурація сервера


Перше що потрібно зробити, це згенерувати всі необхідні ключі, це можна зробити за допомогою скриптів, що входять в комплект openvpn:


Після цього в піддиректорії keys з'являться всі необхідні ключі.
Перемістіть їх в яке-небудь надійне і захищене місце.
Передайте файли ca.crt і note. * На клієнт.

Строго кажучи, можна було згенерувати пару ключів на клієнті і передати на сервер публічний ключ для підпису. Але оскільки у мене був захищений канал (ssh) між клієнтом і сервером, я згенерував все в одному місці.

Далі потрібно написати конфігураційний файл для openvpn. У мене вийшло так:

Запуск сервера відбувається командою openvpn /etc/openvpn/server.conf.
Перед запуском треба довантажити модуль tun.

3: Конфігурація клієнта


Ось конфігураційний файл:

Після подгрузки модуля tun і запуску клієнта, можна переконатися що інтерфейс піднімається, і сервер пінгуєтся.
Увага: після підняття vpn, openvpn перепише шлюз по умолчнію, так що потрібно заздалегідь додати статичні маршрути (якщо таких немає) до проксі-сервера і місцевої локальних ресурсів.

Однак після підняття vpn, зовнішні ресурси все ще не будуть працювати. А все тому що потрібно виконати крок

4: настройка NAT


По-перше, дозволяємо сервера маршрутизировать пакети. Для цього пишемо в / etc / sysctl наступне:
Після чого виконуємо sysctl -a.

Далі потрібно засобами iptables налаштувати правила маськарадінг. Для цього зручно написати sh-скриптик, який в подальшому буде зручно поповнювати і редагувати. У мене він має приблизно такий вигляд (скорочено):

Після виконання скрипта досить зробити /etc/init.d/iptables save і додати iptables в runlevel: rc-update add iptables default

Схожі статті