Главная › Форумы › SOFTWARE › System settings › Установка OpenVPN-GOST 3.0 на Debian 9 Stretch
Помечено: 3.0, Debian, OpenVPN-GOST, Stretch, Установка
- В этой теме 2 ответа, 1 участник, последнее обновление 5 лет, 10 месяцев назад сделано E-tec.
-
АвторСообщения
-
31.07.2018 в 16:52 #163
Устанавливаем 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
И редактируем его, в данном случае, нужно поменять только порт и немного добавить параметров и отредактировать путь до ключей:
# Which TCP/UDP port should OpenVPN listen on? port 1194 # tcp or udp. If GOST - TCP only proto tcp # tap or tun dev tap # Engine cryptocom if commercial engine cryptocom 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 dh /etc/openvpn-gost/keys/dh2048.pem # Server mode, ip pool and netmask server 10.9.1.0 255.255.255.0 # Указыем, где хранятся файлы с настройками IP-адресов клиентов (создадим ниже) client-config-dir /etc/openvpn-gost/ccd # Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения. ifconfig-pool-persist ipp.txt # Указываем сети, в которые нужно идти через туннель (сеть-клиента) это возможные адреса удаленных клиентов. route 192.168.0.0 255.255.255.0 route 192.168.1.0 255.255.255.0 # Включаем TLS tls-server tls-auth /etc/openvpn-gost/keys/ta.key 0 tls-timeout 120 auth gost-mac cipher gost89 # Если нужно, чтобы клиенты видели друг друга разкомментируйте client-to-client # Ping every 10 seconds, assume that remote peer # is down if no ping received during a 120 second # time period. keepalive 10 120 #push comp-lzo yes # Сжатие трафика #comp-lzo yes # Максимум клиентов max-clients 250 user nobody group nogroup # Не перечитывать ключи, не закрывать и переоткрывать TUN\TAP устройство, после получения SIGUSR1 или ping-restart persist-key persist-tun status openvpn-status.log # Log-file log /var/log/openvpn-gost.log # Verbosity 0-11 verb 3 # Защита от повторов (максимум 20 одинаковых сообщений подряд) mute 20 # отозванные сертификаты, полный путь к файлу! crl-verify /etc/openvpn-gost/keys/crl.pem
Т.е. оставляем весь конфиг стоковый от криптоком, меняем только порт на нужный Вам + я добавил 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 должен называть Client1touch /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 и редактируем его…
Создание файла конфигурации клиента
Конфигурация клиента мало чем отличается от сервера, оно и понятно, но есть не большие изменения:client remote 10.59.0.116 1194 proto tcp dev tap engine cryptocom tls-cipher GOST2012-GOST8912-GOST8912 auth gost-mac cipher gost89 #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 keepalive 10 120 socket-flags TCP_NODELAY persist-key persist-tun
Отзыв сертификата
Для отзыва сертификата выполните следующие действия, перейдите в каталог openvpn-gostcd /etc/openvpn-gost
выполните шаги отзыва сертификата:
source ./vars sh ./revoke-full Client1
Где client1 — сертификат, который нужно отозвать. Увидите ответ сервера:
Revoking Certificate ... Data Base Updated
После этого ОБЯЗЯТЕЛЬНО ВЫСТАВЛЯЕМ ПРАВА ДЛЯ ФАЙЛА crl.pem 644, иначе работать не будет.
chmod 644 /etc/openvpn-gost/keys/crl.pem
После этой операции рестартуем openvpn-gost
service openvpn-gost restart
Все, после этих шагов, пользователь с сертификатом client1 не сможет подключиться к серверу!
На этом настройка полностью завершена, можно пользоваться vpn!)
16.11.2018 в 12:15 #414UPD 16.11.18настройка клиента производилась на Windows ПК, если нужно настроить на Linux просто копируем сэмпл клиентского конфига с сервера и дописываем, то что добавили со стороны сервера
18.01.2019 в 16:13 #495UPD 10.01.19Оптимизировал конфигурационные файлы openvpn-gost
log file:
[spoiler=log]
Fri Jan 18 15:55:45 2019 OpenVPN 2.3.17 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [IPv6] built on Dec 6 2017
Fri Jan 18 15:55:45 2019 Windows version 6.2 (Windows 8 or greater) 64bit
Fri Jan 18 15:55:45 2019 library versions: CryptoPack 3.0 OpenSSL 1.0.2m, LZO 2.10
Enter Management Password:
Fri Jan 18 15:55:46 2019 Initializing OpenSSL support for engine ‘cryptocom’
Fri Jan 18 15:55:46 2019 Control Channel Authentication: using ‘C:\OpenVPN\ssl\ta.key’ as a OpenVPN static key file
Fri Jan 18 15:55:46 2019 Attempting to establish TCP connection with [AF_INET]10.59.0.116:1194 [nonblock]
Fri Jan 18 15:55:47 2019 TCP connection established with [AF_INET]10.59.0.116:1194
Fri Jan 18 15:55:47 2019 TCPv4_CLIENT link local: [undef]
Fri Jan 18 15:55:47 2019 TCPv4_CLIENT link remote: [AF_INET]10.59.0.116:1194
Fri Jan 18 15:55:47 2019 [server] Peer Connection Initiated with [AF_INET]10.59.0.116:1194
Fri Jan 18 15:55:49 2019 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Jan 18 15:55:49 2019 open_tun, tt->ipv6=0
Fri Jan 18 15:55:49 2019 TAP-WIN32 device [Ethernet 2] opened: \\.\Global\{82AE0F29-CCB5-4874-AC22-59E672BD9F2F}.tap
Fri Jan 18 15:55:49 2019 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.9.1.17/255.255.255.0 on interface {82AE0F29-CCB5-4874-AC22-59E672BD9F2F} [DHCP-serv: 10.9.1.0, lease-time: 31536000]
Fri Jan 18 15:55:49 2019 Successful ARP Flush on interface [10] {82AE0F29-CCB5-4874-AC22-59E672BD9F2F}
Fri Jan 18 15:55:54 2019 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Fri Jan 18 15:55:54 2019 Initialization Sequence Completed
[/spoiler] -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.