Настройка сервера OpenVPN на OpenVZ

Читайте также: How to Install OpenVPN on CentOS 7 актуально на 2022.

Окружение:

  • Инсталлируем VE Ubuntu для OpenVZ
    # cd /vz/template/cache/
    # wget -c http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz
    # vzctl create 111 --layout simfs --ostemplate ubuntu-14.04-x86_64-minimal
    CT configuration saved to /etc/vz/conf/111.conf
  • Настраиваем VE 111.conf.
  • Все остальные настройки производим уже в установленной VE
    # vzctl enter 111
  • Создание ключей при помощи утилиты Easy-RSA. Ранее эта утилита входила в дистрибутив сервера OpenVPN, сейчас она отдельный проект. Последнюю версию утилиты можно скачать с сайта OpenVPN, но правильнее использовать версию поставляемую с вашим дистрибутивом ОС.
    aptitude install easy-rsa
  • Перед тем как запустить демон OpenVPN, нам нужны в каталоге /etc/openvpn/keys
    openssl.cnf — файл конфигурации OpenSSL;
    server.conf — файл конфигурации сервера OpenVPN;
    ca.crt — cертификат удостоверяющего центра;
    vpn-server.crt — cертификат сервера OpenVPN;
    server.key — приватный ключ сервера OpenVPN, секретный;
    crl.pem — cписок отзыва сертификатов;
    dh.pem — файл Диффи-Хелмана для обеспечения защиты трафика от расшифровки;
    ta.key — ключ HMAC для дополнительной защиты от DoS-атак и флуда
  • Копируем директорию easy-rsa в то место где будем создавать инфраструктуру публичных ключей (Public Key Infrastructure, PKI)
    cp -R /usr/share/easy-rsa /etc/openvpn/
    cd /etc/openvpn/easy-rsa

    Изменяем параметры по умолчанию для сертификатов в файле vars

    export KEY_COUNTRY="US"
    export KEY_PROVINCE="CA"
    export KEY_CITY="SanFrancisco"
    export KEY_ORG="Fort-Funston"
    export KEY_EMAIL="me@myhost.mydomain"
    export KEY_OU="MyOrganizationalUnit"

    Создадим переменные окружения.

    source ./vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

    Очистим от предыдущих экспериментов. Создадим ключ Диффи-Хелмана (ключ создается некоторое время).

    ./clean-all
    ./build-dh
    Generating DH parameters, 2048 bit long safe prime, generator 2
    This is going to take a long time
    ...
  • Создадим директорию для хранения приватных ключей сервера OpenVPN. Скопируем туда файл Диффи-Хелмана (dh2048.pem)
    mkdir /etc/openvpn/keys
    cp keys/dh2048.pem /etc/openvpn/keys/
  • Статический ключ Алгоритм HMAC для OpenVPN для с целью дополнительной защиты от Что такое DoS (DDoS) -атака-атак и flood.
  • Создадим удостоверяющий центр CA. Создадутся ca.crt и ca.key. Файл ca.key представляет собой приватный ключ центра CA, он секретный, и его нельзя переносить на другие узлы вашей сети. Файл сертификата удостоверяющего центра ca.crt, напротив, открытый, и он будет нужен на узлах серверов и клиентов OpenVPN.
    ./pkitool --initca
  • Создадим сертификат для сервера с именем vpnluxor
    ./pkitool --server vpnluxor

    Созданные файлы vpnluxor.crt и vpnluxor.key копируем в директорию /etc/openvpn/keys/

  • Создадим сертификат для клиента client1 с одноименном параметром CommonName . Отдельный ключ для каждого клиента.
    ./pkitool client1
  • Установим OpenVPN 2.3 в VE(Хостинг VPS/VDS на Ubuntu 14.04.1 LTS)
    aptitude install openvpn

    Для запуска раскомментируем строку

    nano /etc/default/openvpn
    ...
    AUTOSTART="all"
    ...
  • Копируем openvpn.conf
    cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
    gunzip server.conf.gz

    Пробуем запустить, OpenVPN останавливает свою работу из-за несуществующих сертификатов ca.crt, dh1024.pem и других. Создаем нужные ключи.

  • В директории ccd хранятся индивидуальные настройки для каждого клиента.
    mkdir /etc/openvpn/ccd

Читайте также: Лучшие VPN и Прокси Сервисы

PQ VPS сервера в 28+ странах.