Главная Форумы SOFTWARE System settings Установка OpenVPN-GOST 3.0 на Debian 9 Stretch

В этой теме 1 ответ, 1 участник, последнее обновление  Esmertec 3 нед., 4 дн. назад.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)
  • Автор
    Сообщения
  • #163

    Esmertec
    Хранитель

    Устанавливаем Debain 9 стандартным способом, я взял образ mini-cd, устанавливаем только системные утилиты, чтоб не занимать много места + вся основная работа будет через консоль…

    После установки ОС настраиваем статически ip адрес серверу openvpn (ниже указаны адреса для моей сети, настраивайте под свою сеть сами):

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    
    source /etc/network/interfaces.d/*
    
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    allow-hotplug eth0
    iface eth0 inet static
    address 10.59.0.116
    netmask 255.255.255.0
    gateway 10.59.0.1
    dns-nameservers 10.59.0.1 178.161.161.161 8.8.8.8

    перезагружаем ОС для вступления изменений в силу. После перезагрузки устанавливаем пакеты, которые пригодятся нам для развертывания сервера для этого вводим последовательно:

    apt-get update
    apt-get upgrade
    apt-get install ssh mc vsftpd nano net-tools

    ssh — SSH сервер для удаленного управления
    mc — Midnight Commander файловый менеджер с графической оболочкой
    vsftpd — FTP сервер
    nano — текстовый редактор (можете не устанавливать если используете другой)
    net-tools — набор системных сетевых утилит, не включены в образ Debian 9 mini-cd, устанавливаем отдельно.

    После установки настраиваем vsftpd сервер, как это сделать смотрим ТУТ.

    После настройки vsftpd подключаемся к серверу и копируем дистрибутивы openvpn-gost и openssl и устанавливаем их.

    dpkg -i /home/administrator/FTP/openssl-r_1.0.2m-6cc.around.debian_amd64.deb
    Пакет попросит ввести лицензионный ключ, после успешного ввода создастся файл cryptocom.lic

    Далее т.к. в debain по умолчанию используется openssl, нужно будет изменить его приоритет, чтоб подгружалась ГОСТовская база библиотек, для этого вводим команды:

    mv /usr/bin/openssl /usr/bin/openssl-1
    update-alternatives --install /usr/bin/openssl openssl /usr/bin/openssl-1 10
    update-alternatives --install /usr/bin/openssl openssl /opt/cryptopack3/bin/openssl 50
    update-alternatives --config openssl

    1 — переименовывает стандартный набор openssl в openssl-1
    2 — выставление приоритета использования снижаем до 10 (сток 50)
    3 — предоставляем альтернативу и выставляем на 50 приоритет запроса
    4 — смотрим какой из openssl задействован, и подтверждаем выбором нужного

    В итоге по команде openssl version видим «CryptoPack 3.0 OpenSSL 1.0.2m»

    Далее ставим пакет openvpn-gost

    dpkg -i /home/administrator/FTP/openvpn-gost_2.3.17-6cc.around.debian_amd64.deb

    После того как пакет установится копируем файлы easy-gost в папку openvpn-gost, на сколько я понял ее положение не зависит от чего-либо, т.е. ее можно скопировать куда угодно в на сервере, ключи будут генерироваться в любом месте, но при генерации все ключи будут храниться в папке ./keys вместе с файлами build-ca и т.д., по этому я подумал, что будет удобно скопировать все файлы в директорию openvpn-gost:

    После этого можно генерировать ключи, если Вы скопировали все файлы как у меня в директорию openvpn-gost, то переходим в нее

    cd /etc/openvpn-gost

    Выставляем полные права доступа на исполняемые файлы:

    chmod +x build-ca
    chmod +x build-key-server
    chmod +x build-key

    Генерируем необходимые ключи:

    ./build-ca

    Создаем ключ сервера
    ./build-key-server server

    Добавляем права доступа к ключу сервера:

    chmod 700 /etc/openvpn-gost/keys/server.key

    Cоздаем ключ для tls-аутификации. Для этого переходим в директорию криптоком

    cd /opt/openvpn-gost/sbin

    Создаем ta.key:

    openvpn --genkey --secret keys/ta.key

    Так же создаем ключ Диффи-Хеллмана

    openssl dhparam -out dh2048.pem 2048

    Ключи появится в тоже директории, т.е. в /opt/openvpn-gost/sbin, поэтому их нужно перенести в папку с openvpn-gost

    далее копируем или переименовываем конфиг server.conf.sample в server.conf

    mv /etc/openvpn-gost/server.conf.sample /etc/openvpn-gost/server.conf

    И редактируем его, в данном случае, нужно поменять только порт и немного добавить параметров и отредактировать путь до ключей:

    # tap or tun
    dev             tap
    # Which TCP/UDP port should OpenVPN listen on?
    port            1194
    # tcp or udp. If GOST - TCP only
    proto           tcp
    
    # Log-file
    log             /var/log/openvpn-gost.log
    
    # Verbosity 0-11
    verb            3
    
    # Ping every 10 seconds, assume that remote peer
    # is down if no ping received during a 120 second
    # time period.
    keepalive       10 120
    
    persist-key
    persist-tun
    
    #comp-lzo       yes
    #push comp-lzo  yes
    
    # Server mode, ip pool and netmask
    server  10.9.1.0 255.255.255.0
    
    # Engine gost if demo
    # engine gost
    
    # Engine cryptocom if commercial
    engine          cryptocom
    auth            gost-mac
    cipher          gost89
    tls-cipher      GOST2012-GOST8912-GOST8912
    ca              /etc/openvpn-gost/keys/ca.crt
    cert            /etc/openvpn-gost/keys/server.crt
    key             /etc/openvpn-gost/keys/server.key
    tls-auth        /etc/openvpn-gost/keys/ta.key 0
    dh              /etc/openvpn-gost/keys/dh2048.pem
    
    # Указыем, где хранятся файлы с настройками IP-адресов клиентов (создадим ниже)
    client-config-dir /etc/openvpn-gost/ccd
    
    # Если нужно, чтобы клиенты видели друг друга раскомментируйте
    client-to-client
    
    # Максимум клиентов
    max-clients 250
    
    user nobody
    group nogroup
    
    status openvpn-status.log
    log /var/log/openvpn.log
    
    # Детальность логирования
    verb 9
    
    # Защита от повторов (максимум 20 одинаковых сообщений подряд)
    mute 20

    Т.е. оставляем весь конфиг стоковый от криптоком, меняем только порт на нужный Вам + я добавил client-config-dir\max-clients\client-to-client

    Далее создадим директорию для клиентских конфигов

    mkdir /etc/openvpn-gost/ccd

    Можно запускать наш сервер OpenVPN

    service openvpn-gost start

    Смотрим список интерфейсов

    ifconfig

    Если среди прочих видим

    tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 10.9.1.1  netmask 255.255.255.0  broadcast 10.9.1.255
    inet6 fe80::ec9c:56ff:fe28:d185  prefixlen 64  scopeid 0x20         ether ee:9c:56:28:d1:85  txqueuelen 100  (Ethernet)
    RX packets 177  bytes 33649 (32.8 KiB)
    RX errors 0  dropped 4  overruns 0  frame 0
    TX packets 19  bytes 1378 (1.3 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    значит VPN-сервер завелся. Если нет, то смотрим лог

    tail -f /var/log/openvpn-gost.log

    Создание ключей и сертификатов
    Переходим в созданную директорию, где и займемся генерацией ключей и сертификатов

    cd /etc/openvpn-gost

    После этого генерируем ключи для клиентов

    ./build-key Client1

    Client1 — имя сертификата, меняем на любое по своему выбору.

    Присвоение статических адресов клиентам
    Если Вы хотите присвоить каждому клиенту свой IP адрес, либо у вас много пользователей и нужно использовать 240+ IP адресов в одной защищенной сети, нужно создать файл в папке ccd в директории с openvpn сервера, имя файла должно быть такое же как имя сертификата, т.е. если Вы сгенерировали сертификат Client1, то и файл в папке ccd должен называть Client1

    touch /etc/openvpn-gost/ccd/Client1

    После чего открываем файл

    nano /etc/openvpn-gost/ccd/Client1

    и редактируем его

    ifconfig-push 10.9.1.10 255.255.255.0 - Желаемый статический IP адрес и маска сети клиента
    iroute 10.59.0.0 255.255.255.0 - Локальная сеть сервера

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

    systemctl enable openvpn-gost

    После этого пользователь с сертификатом Client1 будет постоянно получать ip адрес 10.9.1.10. На этом настройка сервера завершена, идем за ПК пользователя и устанавливаем пакеты cryptopack30_64_MinGW_171207-175933.exe и openvpn64-2.3.17-gostr.exe, в той же последовательности как на сервере, т.е. сначала cryptopack30_64_MinGW_171207-175933.exe — вводим лицензионный ключ, а потом сам пакет openvpn (важно openvpn поставить в корень диска C:\). Создаем папку ssl и копируем туда ca.crt\Client1.crt\Client1.key\ta.key копируем из папки sample-config файл gost-client.ovpn в папку C:\OpenVPN\config и редактируем его…

    Создание файла конфигурации клиента
    Конфигурация клиента мало чем отличается от сервера, оно и понятно, но есть не большие изменения:

    #dev tun
    dev tap
    engine cryptocom
    auth gost-mac
    cipher gost89
    #tls-cipher GOST2001-GOST89-GOST89
    tls-cipher GOST2012-GOST8912-GOST8912
    #comp-lzo yes
    
    ca C:\\OpenVPN\\ssl\\ca.crt
    cert C:\\OpenVPN\\ssl\\Client1.crt
    key C:\\OpenVPN\\ssl\\Client1.key
    tls-auth C:\\OpenVPN\\ssl\\ta.key 1
    
    remote-cert-tls server
    
    client
    remote 10.59.0.116 1194
    keepalive 10 120
    proto tcp
    socket-flags TCP_NODELAY
    
    persist-key
    persist-tun

    На этом настройка полностью завершена, можно пользоваться vpn!)

    Ты знаешь, что такое безумие? Безумие - это точное повторение одного и того же действия, раз за разом, в надежде на изменение.

    #414

    Esmertec
    Хранитель
    UPD 16.11.18

    настройка клиента производилась на Windows ПК, если нужно настроить на Linux просто копируем сэмпл клиентского конфига с сервера и дописываем, то что добавили со стороны сервера

    Ты знаешь, что такое безумие? Безумие - это точное повторение одного и того же действия, раз за разом, в надежде на изменение.

Просмотр 2 сообщений - с 1 по 2 (из 2 всего)

Для ответа в этой теме необходимо авторизоваться.