После установки OpenVPN и rsa-key необходимо настроить ключи и сертификаты как для сервера, так и для клиента.
Перейдем в папку openvpn/easy-rsa и заменим переменные в файле vars на свои:
export EASY_RSA="/etc/openvpn/easy-rsa/" #Путь к easy-rsa.
export KEY_CONFIG="$EASY_RSA/openssl.cnf" #Конфиг OpenSSL
export KEY_DIR="/etc/openvpn/vpnet/keys" #Каталог, в котором будут храниться ключи.
export KEY_SIZE=2048 # Размер ключа
export CA_EXPIRE=3650 # Срок действия CA
export KEY_EXPIRE=3650 # Срок действия ключа
export KEY_COUNTRY="RU" # Двухбуквенный код страны
export KEY_PROVINCE="XX" # Province, не актуально
export KEY_CITY="Town" # Город
export KEY_ORG="Companyname" # Компания
export KEY_EMAIL="qq@ww.ru" # Email
Сохраняем файл vars и выполняем команды:
source ./vars #импортирувем переменные
./clean-all #удаляем старые ключи, если они были
openvpn --genkey --secret ta.key #Секретный ключ для TLS аутентификации
./build-dh #Ключ Диффи-Хеллмана
./pkitool --initca #Certificate Authority для сервера
./pkitool --server УникальноеИмяСервера #Сертификат для сервера
./pkitool УникальноеИмяКлиента1 #Сертификат для клиента
Перенесем сгенеренный ta.key в правильное место:
mv ./ta.key /etc/openvpn/vpnet/keys
Рекомендуется сразу переименовать:
ta.key в ta_УникальноеИмяСервера.key
ca.crt в ca_УникальноеИмяСервера.crt
В *.conf файл сервера вносим изменения:
mode server
tls-server
proto tcp-server
dev tap
port 5555 # Порт
daemon
tls-auth /etc/openvpn/vpnet/keys/ta_УникальноеИмяСервера.key 0
ca /etc/openvpn/vpnet/keys/ca_УникальноеИмяСервера.crt
cert /etc/openvpn/vpnet/keys/УникальноеИмяСервера.crt
key /etc/openvpn/vpnet/keys/УникальноеИмяСервера.key
dh /etc/openvpn/vpnet/keys/dh2048.pem
ifconfig 10.10.0.1 255.255.255.0 # Внутренний IP сервера
ifconfig-pool 10.10.0.2 10.10.0.128 # Пул адресов, выделяемый подключаемым клиентам
push "redirect-gateway def1" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать.
push "route-gateway 10.10.0.1"
duplicate-cn
verb 3
cipher DES-EDE3-CBC # Тип шифрования.
persist-key
log-append /var/log/openvpn.log # Лог-файл.
persist-tun
comp-lzo
Перезапускаем OpenVPN сервер:
service openvpn stop
service openvpn start
На клиента копируем файлы (ОБЯЗАТЕЛЬНО ЧЕРЕЗ ЗАЩИЩЕННЫЙ КАНАЛ, например используя WinSCP):
ca_УникальноеИмяСервера.crt
УникальноеИмяКлиента1 .crt
УникальноеИмяКлиента1 .key
ta_УникальноеИмяСервера.key
Редактируем клиентский конфиг *.conf:
tls-client
proto tcp-client
remote 212.212.212.212
dev tap
port 5555
cd /etc/openvpn/vpnet
pull
tls-auth /etc/openvpn/vpnet/client_keys/ta_УникальноеИмяСервера.key 1
ca /etc/openvpn/vpnet/client_keys/ca_УникальноеИмяСервера.crt
cert /etc/openvpn/vpnet/client_keys/УникальноеИмяКлиента1 .crt
key /etc/openvpn/vpnet/client_keys/УникальноеИмяКлиента1 .key
cipher DES-EDE3-CBC
log-append /var/log/openvpn.log
comp-lzo
Опции шифрования и компрессии на клиенте и сервере должны совпадать.
На этом генерация ключей и настройка OpenVPN закончена.
Перейдем в папку openvpn/easy-rsa и заменим переменные в файле vars на свои:
export EASY_RSA="/etc/openvpn/easy-rsa/" #Путь к easy-rsa.
export KEY_CONFIG="$EASY_RSA/openssl.cnf" #Конфиг OpenSSL
export KEY_DIR="/etc/openvpn/vpnet/keys" #Каталог, в котором будут храниться ключи.
export KEY_SIZE=2048 # Размер ключа
export CA_EXPIRE=3650 # Срок действия CA
export KEY_EXPIRE=3650 # Срок действия ключа
export KEY_COUNTRY="RU" # Двухбуквенный код страны
export KEY_PROVINCE="XX" # Province, не актуально
export KEY_CITY="Town" # Город
export KEY_ORG="Companyname" # Компания
export KEY_EMAIL="qq@ww.ru" # Email
Сохраняем файл vars и выполняем команды:
source ./vars #импортирувем переменные
./clean-all #удаляем старые ключи, если они были
openvpn --genkey --secret ta.key #Секретный ключ для TLS аутентификации
./build-dh #Ключ Диффи-Хеллмана
./pkitool --initca #Certificate Authority для сервера
./pkitool --server УникальноеИмяСервера #Сертификат для сервера
./pkitool УникальноеИмяКлиента1 #Сертификат для клиента
Перенесем сгенеренный ta.key в правильное место:
mv ./ta.key /etc/openvpn/vpnet/keys
Рекомендуется сразу переименовать:
ta.key в ta_УникальноеИмяСервера.key
ca.crt в ca_УникальноеИмяСервера.crt
В *.conf файл сервера вносим изменения:
mode server
tls-server
proto tcp-server
dev tap
port 5555 # Порт
daemon
tls-auth /etc/openvpn/vpnet/keys/ta_УникальноеИмяСервера.key 0
ca /etc/openvpn/vpnet/keys/ca_УникальноеИмяСервера.crt
cert /etc/openvpn/vpnet/keys/УникальноеИмяСервера.crt
key /etc/openvpn/vpnet/keys/УникальноеИмяСервера.key
dh /etc/openvpn/vpnet/keys/dh2048.pem
ifconfig 10.10.0.1 255.255.255.0 # Внутренний IP сервера
ifconfig-pool 10.10.0.2 10.10.0.128 # Пул адресов, выделяемый подключаемым клиентам
push "redirect-gateway def1" # Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать.
push "route-gateway 10.10.0.1"
duplicate-cn
verb 3
cipher DES-EDE3-CBC # Тип шифрования.
persist-key
log-append /var/log/openvpn.log # Лог-файл.
persist-tun
comp-lzo
Перезапускаем OpenVPN сервер:
service openvpn stop
service openvpn start
На клиента копируем файлы (ОБЯЗАТЕЛЬНО ЧЕРЕЗ ЗАЩИЩЕННЫЙ КАНАЛ, например используя WinSCP):
ca_УникальноеИмяСервера.crt
УникальноеИмяКлиента1 .crt
УникальноеИмяКлиента1 .key
ta_УникальноеИмяСервера.key
Редактируем клиентский конфиг *.conf:
tls-client
proto tcp-client
remote 212.212.212.212
dev tap
port 5555
cd /etc/openvpn/vpnet
pull
tls-auth /etc/openvpn/vpnet/client_keys/ta_УникальноеИмяСервера.key 1
ca /etc/openvpn/vpnet/client_keys/ca_УникальноеИмяСервера.crt
cert /etc/openvpn/vpnet/client_keys/УникальноеИмяКлиента1 .crt
key /etc/openvpn/vpnet/client_keys/УникальноеИмяКлиента1 .key
cipher DES-EDE3-CBC
log-append /var/log/openvpn.log
comp-lzo
Опции шифрования и компрессии на клиенте и сервере должны совпадать.
На этом генерация ключей и настройка OpenVPN закончена.