OpenVPN установка и настройка сервера под Gentoo linux

Материал из AlexNook
Перейти к навигацииПерейти к поиску
OpenVPN

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Более подробно можно почитать на WikiPedia

Встала у меня необходимость подключаться к компьютеру с серым IP, у которого нет никакой возможности получить белый IP. Однако, вспомнив, что у меня есть домашний мини-сервер в белый постоянным IP было решено установить на него VPN сервер, к которому сможет подключиться компьютер с серым IP, а дальше уже, после подключения, сервер мог бы направлять запросы на клиента с серым IP.

Настройка конфигурации ядра

Для начала нам нужно пересобрать ядро системы с включённой опциец TUN/TAP. Я включил её не как отдельный LKM, а встроил в ядро.

Linux Kernel Configuration: 3.1.6 kernel config с поддержкой TUN/TAP
Device Drivers --->
	[*] Network device support --->
		<*>   Universal TUN/TAP device driver support

Для того, чтобы вспомнить, как собрать ядро можно почитать краткий мануал. После пересборки ядра незабываем загрузиться в него.

Установка OpenVPN под Gentoo

В Gentoo пакет ставится следующим образом: net-misc/openvpn-2.2.2

Проверям USE флаги. Use Flags: pam ssl (?) Остальные USE флаги были выключенны.

Далее как обычно

emerge openvpn

Генерация сертификатов, ключей, а так же параметров Диффи-Хеллмана

Процедура достаточно простая, однако, для более глубокого познания процесс можно почитать вот тут.

Настройка параметров ключей

До генерации можно занести в конфиг базовые параметры (дефолтные) ключей и сертификатов, чтобы каждый раз не вводить их руками. Для этого выполняем:

cd /usr/share/openvpn/easy-rsa/
nano vars
Note: Важно, чтобы параметры KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, и KEY_EMAIL не были пустыми. В самом низу этого конфига можно заполнить и другие параметры заранее.

У меня получилось что-то типа:

tail -n 11 /usr/share/openvpn/easy-rsa/vars
File: /usr/share/openvpn/easy-rsa/vars
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Russia"
export KEY_CITY="Moscow"
export KEY_ORG="Donik Corporation"
export KEY_EMAIL="admin@donik.org"
export KEY_EMAIL=admin@donik.org
export KEY_CN=donik.org
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

В принципе всё это не так важно =)

Процедура выпуска ключей

Теперь выполняем команды из той же папки, куда мы перешли чуть ранее /usr/share/openvpn/easy-rsa/:

source ./vars
./clean-all
./build-ca
Note: Последняя команда генерирует ключ и сертификат "Удостоверяющего центра" ;)

После инициализации приступаем к выпуску ключей для сервера и клиента.

Выпускаем сертификат для сервера

./build-key-server server

Большинство параметров пройдут как и раньше по дефолту благодаря нашей подготовке в самом начале. На вопрос Common Name ввести server.

Так же даём утвердительные ответы на 2 последних вопроса:

Sign the certificate? [y/n] и 1 out of 1 certificate requests certified, commit? [y/n]

Выпускаем сертификат для клиента

./build-key client

На вопрос Common Name нужно ввести имя клиента: client, client2, client3 и т. д. если у нас много разных клиентов.

Note: На вопросы о защите ключей паролем я везде оставлял поле пустым (дефолтное значение) - то есть ключи без паролей.

Конфигурирование OpenVPN сервера

Конфигурирование OpenVPN клиента под Windows 7 64 bit

Ссылки