Сервер OpenVPN установка и настройка
Установка сервера OpenVPN
Debian/Ubuntu
Для Debian-based дистрибутивов (debian, ubuntu, mint...):
apt-get install -y openvpn
Создайте пользователя с именем, например, ca и перейдите в его домашний каталог:
# adduser ca # su ca $ cd
Настройка сервера OpenVPN
Для OpenVPN версии выше 2.3 набор скриптов easy-rsa не входит в инсталляцию по умолчанию, а скачивается отдельно:
mkdir ./src; cd ./src && wget https://github.com/OpenVPN/easy-rsa/archive/master.zip unzip master.zip cd ./easy-rsa-master ./build/build-dist.sh
Распакуем полученный архив:
tar zxvf EasyRSA-git-development.tgz && cd EasyRSA-git-development
переходим в каталог easyrsa3
cd ./easyrsa3
Конфигурируем сертификат
Скопируем шаблон и отредактируем его
*OPTIONAL* (Comment out the following lines if you do not want your certificates to expire)
#cp ./vars.example ./vars
В файле vars можно изменить данные для подписи ключей под себя, редактируем последние 6 строчек:
# mcedit ./vars
# меняем строки export KEY_SIZE=2048 # Длинна ключа export KEY_EXPIRE=3650 # Срок действия ключа в днях # описание сертификатов по-умолчанию
set_var EASYRSA_REQ_COUNTRY<--->"RU"
set_var EASYRSA_REQ_PROVINCE<-->"RUS"
set_var EASYRSA_REQ_CITY<------>"Perm"
set_var EASYRSA_REQ_ORG>"Copyleft Certificate Co"
set_var EASYRSA_REQ_EMAIL<----->"admin@adminunix.ru"
set_var EASYRSA_REQ_OU<><------>"adminunix"
На первом шаге создайте инфраструктуру публичных ключей (Public Key Infrastructure, PKI): $ ./easyrsa init-pki
Если у нас есть удостоверяющий центр то пропускаем следующий шаг и переходим генериррованию сертификата X.509 для сервера
Сгенерируем корневой Certificate Authority для сервера
: ./easyrsa build-ca
Попросит дважды ввести новый пароль для ca.crt. Получим:
./pki/ca.crt
Сгенерируем сертификат X.509 для сервера
(Чтобы ключи (сервера и клиентов) не были защищены паролем необходимо добавлял параметр nopass (его можно установить позже в любое время).)
./easyrsa build-server-full server
Попросит дважды ввести новый пароль для PEM и один раз повторить пароль, сгенерированный ранее для ca.crt
Получим:
./pki/private/server.key
Сгенерируем ключи для клиента:
./easyrsa build-client-full client1
Попросит дважды ввести новый пароль для PEM и один раз повторить пароль, сгенерированный ранее для ca.crt
Получим:
./pki/private/client1.key ./pki/issued/client1.crt
exit
Для экспорта ключей в формат PKCS12
./easyrsa export-p12 client2
Сгенерируем файл с параметрами Диффи-Хеллмана (dh.pem):
./easyrsa gen-dh
Это может занять продолжительное время.
Получим:
./pki/dh.pem
Создадим статический ключ HMAC (ta.key):
Для создания ключа HMAC используйте команду openvpn с опциями --genkey и --secret:
# cd /etc/openvpn # openvpn --genkey --secret ta.key
Перенесём полученные файлы в /etc/openvpn/ для удобства:
mv ./pki/dh.pem /etc/openvpn/dh1024.pem mv ./pki/private/client1.key /etc/openvpn/ mv ./pki/private/server.key /etc/openvpn/ mv ./pki/ca.crt /etc/openvpn/ mv ./pki/issued/client1.crt /etc/openvpn/ mv ./pki/issued/server.crt /etc/openvpn/
Файлы client1.crt, client1.key, ca.crt нужно скопировать на компьютер клиента, который будет подключаться к OpenVPN-серверу:
cd /etc/openvpn mkdir ovpn-client cp -rp client1.crt client1.key ca.crt ./ovpn-client/ zip ovpn-client.zip ./ovpn-client/*