2.5.5.6 Создание защищенных VPN-туннелей, использующих контроль заголовков IP-пакетов в соответствии с ГОСТ Р 34.12-2015
Скачать документ Установка
Cоздание ключей для OpenVPN-туннеля средствами утилиты openssl
Настройка сервера OpenVPN
Настройка VPN-подключения по протоколу OpenVPN в Network Manager
Проверка работы OpenVPN-сервера
Установка
Перейдите в сеанс пользователя root:
su –
Здесь и далее команды будут выполняться от пользователя root, если не указано иное.
Установка openvpn-gost выполняется командой:
dnf swap openvpn openvpn-gost --allowerasing
Установка openssl-gost-engine выполняется командой:
dnf install openssl-gost-engine
Затем необходимо сменить конфигурацию:
openssl-switch-config gost
Cоздание ключей для OpenVPN-туннеля средствами утилиты openssl
Для того чтобы создать ключи для OpenVPN-туннеля необходимо выполнить следующие действия:
1 Изменить значение параметра policy в файле /etc/pki/tls/openssl.cnf для возможности подписывать любые сертификаты:
policy = policy_anything
1.1 Изменить пути создания сертификатов; для этого в секции [CA_default] и [tsa_config1] привести строки «dir =» к следующему виду:
dir = /root/CA/demoCA
2 Создать каталоги:
mkdir -p /root/CA/demoCA cd /root/CA mkdir -p ./demoCA/newcerts
2.1 Создать файл базы с действующими и отозванными сертификатами:
touch ./demoCA/index.txt
2.2 Создать файл индекса для базы ключей и сертификатов:
echo '01' > ./demoCA/serial
2.3 Создать файл индекса для базы отозванных сертификатов:
echo '01' > ./demoCA/crlnumber
3 Создать «самоподписанный» сертификат my-ca.crt и закрытый ключ my-ca.pem, которыми будут заверяться/подписываться ключи и сертификаты клиентов, желающих подключиться к серверу, с помощью следующей команды:
openssl req -new -x509 -keyout my-ca.pem -out my-ca.crt
Потребуется ввести пароль для закрытого ключа и ответить на запросы о владельце ключа.
4 Создать пару «ключ-сертификат» для сервера и каждого клиента, желающего подключиться к серверу. Для этого необходимо сгенерировать ключ и запрос на сертификат для сервера:
openssl req -new -nodes -keyout server.pem -out server.crs
4.1 Подписать запрос на сертификат своим «самоподписанным» my-ca.crt сертификатом и ключом my-ca.pem с помощью следующей команды:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -days 3650 -in server.crs -out server.crt
4.2 Сгенерировать ключ и запрос на сертификат для клиента:
openssl req -new -nodes -keyout client.pem -out client.crs
4.3 Подписать запрос на сертификат своим my-ca.crt сертификатом и ключом my-ca.pem:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -days 365 -in client.crs -out client.crt
5 Задать параметры Диффи-Хеллмана для сервера:
openssl dhparam -out server.dh 2048
6 Разместить ключи и сертификаты в каталогах сервера и клиента следующим образом:
my-ca.pem — только для подписи сертификатов (лучше хранить на отдельном от OpenVPN-сервера компьютере);
my-ca.crt, server.crt, server.dh, server.pem — для сервера OpenVPN;
my-ca.crt, client.crt, client.pem — для клиента OpenVPN.
7 Для новых клиентов создать новые ключи и передать комплект my-ca.crt, новый_сертификат.crt, новый_ключ.pem.
8 Для создания списка отзыва сертификатов необходимо выполнить следующие действия:
8.1 Выполнить команду:
openssl ca -cert my-ca.crt -keyfile my-ca.pem -gencrl -out crl.pem
8.2 Обновить список (обязательно после каждого отзыва сертификата):
openssl ca -cert my-ca.crt -keyfile my-ca.pem -gencrl -out crl.pem
8.3 Просмотреть crl.pem:
openssl crl -noout -text -in crl.pem
8.4 Поместить файл crl.pem в каталог /etc/openvpn-gost.
Настройка сервера OpenVPN
Файл конфигурации должен быть размещен в /etc/openvpn-gost/, все ключи – в /etc/openvpn-gost/keys, файлы настроек клиентов – в /etc/openvpn-gost/ccd/.
Ранее созданные ключи и сертификаты необходимо перенести в каталог /etc/openvpn-gost/keys/.
Важно правильно указать права доступа. Ключи должны быть доступны только администратору, конфигурации клиентов должны быть доступны на чтение пользователю openvpn.
Каждый файл конфигурации по маске /etc/openvpn-gost/*.conf является конфигурацией отдельного экземпляра демона openvpn.
Для настройки OpenVPN-сервера можно использовать образец файла конфигурации OpenVPN, для этого следует скопировать файл /usr/share/doc/openvpn-gost/sample/sample-config-files/server.conf в каталог /etc/openvpn-gost/.
В файле конфигурации должны быть указаны:
ifconfig-pool-persist и status — без полного пути либо с путем /cache/;
ca, dh, cert, key — с путем /etc/openvpn-gost/keys/;
client-config-dir — с путем /etc/openvpn-gost/ccd;
- ncp-disable — для возможности использования шифра, отличного от AES-256-GCM.
Пример конфигурации:
cat /etc/openvpn-gost/server.conf
port 1194 proto udp dev tun ca /etc/openvpn-gost/keys/my-ca.crt cert /etc/openvpn-gost/keys/server.crt key /etc/openvpn-gost/keys/server.pem dh /etc/openvpn-gost/keys/server.dh comp-lzo server 10.8.0.0 255.255.255.0 tls-server cipher grasshopper-cbc tls-cipher GOST2012-GOST8912-GOST8912 ncp-disable verb 3 mute 10 keepalive 10 60 user openvpn group openvpn persist-key persist-tun status openvpn-status.log ifconfig-pool-persist server_ipp.txt verb 3 client-to-client management localhost 1194 push "route 10.8.0.0 255.255.255.0" push "dhcp-option DNS 192.168.0.122" ;client-config-dir /etc/openvpn-gost/ccd
Ключи и сертификаты необходимо перенести в каталог /etc/openvpn-gost/keys/.
Запустить сервер OpenVPN можно командой:
openvpn /etc/openvpn-gost/server.conf
Настройка VPN-подключения по протоколу OpenVPN в Network Manager
Установите пакет openvpn-gost:
dnf install openvpn-gost
Если ранее был установлен пакет openvpn, то установка выполняется командой:
dnf swap openvpn openvpn-gost
На компьютере, который нужно подключить к VPN, установите пакеты openssl-gost-engine и NetworkManager-openvpn-gnome:
dnf install openssl-gost-engine NetworkManager-openvpn-gnome
Включите поддержку алгоритмов ГОСТ командой:
openssl-switch-config gost
Откройте окно настроек управления сетью, нажав ПКМ на ярлык NetworkManager в панели управления.
В открывшемся окне «Сетевые соединения», нажмите на кнопку «+» слева снизу. В следующем открывшемся окне выберите тип соединения «OpenVPN»:
В следующем окне укажите IP-адрес OpenVPN-сервера, сертификат УЦ, приватный ключ и сертификат пользователя:
Нажмите кнопку «Дополнительно», чтобы указать параметры подключения. На вкладке «Безопасность» укажите алгоритм шифрования:
Сохраните внесенные изменения, нажав кнопку «ОК» и затем «Сохранить». Выполнить подключение можно, нажав ЛКМ на ярлык NetworkManager и выбрав Соединения VPN. При этом вы увидите появившееся VPN-Соединение 1 (имя, присвоенное вашему соединению).
Выполнить настройку OpenVPN-клиента можно также в командной строке. Для этого:
скопируйте файл /usr/share/doc/openvpn-gost/sample/sample-config-files/server.conf в каталог /etc/openvpn-gost/;
скопируйте ранее сгенерированные ключи и сертификаты в каталог /etc/openvpn-gost/keys/ и укажите их в /etc/openvpn-gost/client.conf.
В файле /etc/openvpn-gost/client.conf в поле remote укажите IP-адрес OpenVPN-сервера, другие параметры приведите в соответствии с настройками сервера, например:
client remote 192.168.0.102 1194 ca /etc/openvpn-gost/keys/my-ca.crt cert /etc/openvpn-gost/keys/client.crt key /etc/openvpn-gost/keys/client.pem cipher grasshopper-cbc tls-cipher GOST2012-GOST8912-GOST8912 dev-type tun dev tun tls-client comp-lzo
Запустите клиент OpenVPN:
openvpn /etc/openvpn-gost/client.conf
Проверка работы OpenVPN-сервера
Для проверки работы сервера нужно внести в конец файла /etc/openvpn-gost/server.conf следующую строку:
log /etc/openvpn-gost/openvpn.log
После запуска сервера начнет записываться лог.
Просмотреть лог можно командой:
cat /etc/openvpn-gost/openvpn.log
Дата последнего изменения: 09.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.