Проблемы с OpenVPN после обновления OS

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
wawan
рядовой
Сообщения: 27
Зарегистрирован: 2015-12-25 6:28:08

Проблемы с OpenVPN после обновления OS

Непрочитанное сообщение wawan » 2019-05-08 9:32:54

Привет всем.
Подскажите в чом может быть проблема стояла ОС FreeBSD 11 обновился до 12 всё хорошо все работает прошло без ошибок.
В системе был поднят сервер OpenVPN понадобилось добавить сертификат для нового подключения но не тут то оно было, при добавление выдаётся ошибка и что с ней делать не знаю уже третий день бьюсь.
ТехИнформация

Код: Выделить всё

$ uname -a
FreeBSD 12.0-RELEASE-p1 FreeBSD 12.0-RELEASE-p1 ROUTER1  amd64

Код: Выделить всё

$ pkg version | grep openssl easy-rsa
openssl-1.0.2r,1
easy-rsa-3.0.6
Попатка создать сертификат

Код: Выделить всё

$ cd /usr/local/share/easy-rsa
$ ./easyrsa.real gen-req test1 nopass
Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1a-freebsd  20 Nov 2018
Generating a RSA private key
..+++++
.................+++++
writing new private key to '/usr/local/share/easy-rsa/pki/private/test1.key.uOilGMWdeV'
-----
unable to find 'distinguished_name' in config
problems making Certificate Request
34371039232:error:0E06D06C:configuration file routines:NCONF_get_string:no value:/usr/src/crypto/openssl/crypto/conf/conf_lib.c:273:group=req name=distinguished_name

Easy-RSA error:

Failed to generate request
И вот что с этим делать ума не приложу. Хотя старые сертификаты (12 шт) которые были созданы до обновления прекрасно работают :st:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

lazhu
сержант
Сообщения: 254
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Проблемы с OpenVPN после обновления OS

Непрочитанное сообщение lazhu » 2019-05-08 15:19:25

А .vars перед этим прочитали?
Вообще easyrsa - г.. редкостное.
Вот вам мой стандартный генератор, которому уже лет 5 как. Пользуйтесь на здоровье.

Код: Выделить всё

#!/bin/sh

if [ $# -eq 0 ]
    then echo "
    --- Client keys generator for OpenVPN.

    Usage: keygen.sh <name1> [[name2] [name3] [...] [nameN]]"
    exit
fi

KEYS=$*
PREFIX="/usr/local"
WORKDIR="${PREFIX}/etc/openvpn"
KEYSDIR="${WORKDIR}/keys"
CERTSDIR="${WORKDIR}/certs"
REQDIR="${WORKDIR}/req"
DESTDIR="${WORKDIR}/ready"
ssl=`which openssl`
sed=`which sed`
enc=`which uuencode`
mail=`which mail`
tar=`which tar`

echo -n 'Enter e-mail to send keys to: '
read MAILTO

for KEY in ${KEYS}; do
    export KEY_NAME=${KEY}
    ARCHIVE="${KEY}.tar.gz"
    cd ${WORKDIR}
        ${ssl} req -new -nodes -config openssl.cnf -keyout ${KEYSDIR}/K${KEY}.pem -out ${REQDIR}/R${KEY}.pem
        ${ssl} ca -batch -config openssl.cnf -out ${CERTSDIR}/C${KEY}.pem -infiles ${REQDIR}/R${KEY}.pem
    cd ${DESTDIR}
        mkdir ${KEY}
        cp openvpn.ovpn ${WORKDIR}/CA_cert.pem ${WORKDIR}/ta.key ${KEYSDIR}/K${KEY}.pem ${CERTSDIR}/C${KEY}.pem ${KEY}
    cd ${KEY}
        ${sed} -i '' "s/Cert/C${KEY}/;s/Key/K${KEY}/" openvpn.ovpn
        ${tar} -czf ${ARCHIVE} *
        ${enc} ${ARCHIVE} ${ARCHIVE} | ${mail} -s "vpn keys for ${KEY}" ${MAILTO}
done

lazhu
сержант
Сообщения: 254
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Проблемы с OpenVPN после обновления OS

Непрочитанное сообщение lazhu » 2019-05-08 15:34:54

кусок конфига опенссл:

Код: Выделить всё

~  cat /usr/local/etc/openvpn/openssl.cnf
#====================================
# Default variables.
# Put your own values here.
#------------------------------------
KEY_SIZE=2048
KEY_DIR=/usr/local/etc/openvpn
KEY_COUNTRY=
KEY_PROVINCE=
KEY_CITY=
KEY_ORG=
KEY_ORGUNIT=
KEY_EMAIL=root
KEY_PASS=""
#====================================
[ ca ]

default_ca             = CA_default

[ CA_default ]

dir                    = $ENV::KEY_DIR
crl_dir                = $dir/crl
database               = $dir/index.txt
new_certs_dir          = $dir/certs
certificate            = $dir/CA_cert.pem
serial                 = $dir/serial
crl                    = $dir/crl/crl.pem
private_key            = $dir/private/CA_key.pem
RANDFILE               = $dir/private/.rand
x509_extensions        = usr_cert
default_days           = 3650
default_crl_days       = 3650
шаблон клиентского конфига опенвпн:

Код: Выделить всё

~  cat /usr/local/etc/openvpn/ready/openvpn.ovpn
client
dev          tun
proto        udp
nobind
remote       openvpn_host_ip
tls-client
verify-x509-name openvpn_host_name name
ca           "CA_cert.pem"
cert         "Cert.pem"
key          "Key.pem"
tls-auth     "ta.key" 1
remote-cert-tls server
comp-lzo
tun-mtu      1500
mssfix       1450
verb         3

wawan
рядовой
Сообщения: 27
Зарегистрирован: 2015-12-25 6:28:08

Проблемы с OpenVPN после обновления OS

Непрочитанное сообщение wawan » 2019-05-13 8:19:26

lazhu Спасибо за скрипт но дело скорее всего в системе так как пробовал создать сертификаты при помощи вашего скрипта и получил следующию ошибку

Код: Выделить всё

Can't open openssl.cnf for reading, No such file or directory
34371039232:error:02001002:system library:fopen:No such file or directory:/usr/src/crypto/openssl/crypto/bio/bss_file.c:72:fopen('openssl.cnf','r')
34371039232:error:2006D080:BIO routines:BIO_new_file:no such file:/usr/src/crypto/openssl/crypto/bio/bss_file.c:79:
Generating a RSA private key
...........+++++
................+++++
writing new private key to '/usr/home/test/keys/Ktest.pem'
req: Can't open "/usr/home/test/keys/Ktest.pem" for writing, No such file or directory
34371039232:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:/usr/src/crypto/openssl/crypto/conf/conf_lib.c:270:
Using configuration from openssl.cnf
Can't open openssl.cnf for reading, No such file or directory
34371039232:error:02001002:system library:fopen:No such file or directory:/usr/src/crypto/openssl/crypto/bio/bss_file.c:72:fopen('openssl.cnf','r')
34371039232:error:2006D080:BIO routines:BIO_new_file:no such file:/usr/src/crypto/openssl/crypto/bio/bss_file.c:79:

guest
проходил мимо

Проблемы с OpenVPN после обновления OS

Непрочитанное сообщение guest » 2019-05-13 13:29:19

lazhu Спасибо за скрипт но дело скорее всего в системе так как пробовал создать сертификаты при помощи вашего скрипта и получил следующию ошибку
дело не в системе, а в понимании генерации сертификатов SSL.

- во время первой ошибки была четкая диагностика про "distinguished_name" которая ссылается на секцию "req_dn"
или "req_distinguished_name"
- во время второй ошибки, скрипт или openssl просто не знал по какому пути у Вас конфиг файл cnf

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

Код: Выделить всё

Секция [ req ] используется при создании сертификатов и csr запросов
на подпись:

[ req ]
# Options for the `req` tool (`man req`).
default_bits        = 2048
distinguished_name  = req_distinguished_name
string_mask         = utf8only

# SHA-1 is deprecated, so use SHA-2 instead.
default_md          = sha256

# Extension to add when the -x509 option is used.
x509_extensions     = v3_ca

Секция [ req_distinguished_name ] объявляет информацию требуемую
для CSR запроса, в ней можно задать определенные defaults

[ req_distinguished_name ]
# See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
countryName                     = Country Name (2 letter code)
stateOrProvinceName             = State or Province Name
localityName                    = Locality Name
0.organizationName              = Organization Name
organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name
emailAddress                    = Email Address

# Optionally, specify some defaults.
countryName_default             = RU
stateOrProvinceName_default     = Russian
localityName_default            =
0.organizationName_default      = My Company Ltd
#organizationalUnitName_default =
#emailAddress_default           =
выше лишь пример из руководства, комментарии для себя.

Определить default'ную OPENSSLDIR (OPENSSL_CONF=$OPENSSLDIR):
# openssl version -d
OPENSSLDIR: "/etc/ssl"
#
Ниже пример указания где конфиг, by default будет использоваться OPENSSLDIR=/etc/ssl
которая задается при сборке openssl

# openssl req -config openssl.cnf ...

Без обид, прочитайте про openssl и при осознанном подходе, все срастется.