OpenVPN легкая-rsa ключевая для сборки автоматизация?

Я избежал бы каждый раз, когда возможное выполнение этого - можно работать в действительно затенить объединяющие в сеть/регистрируемые проблемы разрешения (Как Дождливая Крыса уже упомянула).

Однако, если Вы имеете к, почему не только отображают долю Samba как сетевой диск? Хороший и простой!

17
задан 19 August 2010 в 23:28
11 ответов

Если Вы смотрите на источник build-key, Вы найдете, что это звонит pkitool. Я записал обертку для укутываний ключей cilent и соответствующих openvpn файлов конфигурации в tarball, который я мог затем дать своим пользователям:

#!/bin/bash

client=$1

if [ x$client = x ]; then
    echo "Usage: $0 clientname"
    exit 1
fi

if [ ! -e keys/$client.key ]; then
    echo "Generating keys..."
    . vars
    ./pkitool $client
    echo "...keys generated." 
fi

tarball=./keys/$client.tgz

if [ ! -e $tarball ]; then
    echo "Creating tarball..."
    tmpdir=/tmp/client-tar.$$
    mkdir $tmpdir
    cp company.ovpn $tmpdir/company.ovpn
    cp keys/ca.crt $tmpdir 
    cp keys/$client.key $tmpdir/client.key
    cp keys/$client.crt $tmpdir/client.crt
    tar -C $tmpdir -czvf $tarball .
    rm -rf $tmpdir
    echo "...tarball created" 
else
    echo "Nothing to do, so nothing done. (keys/$client.tgz already exists)" 
fi
14
ответ дан 2 December 2019 в 20:28

Вещь, которая прибывает по моему мнению самое быстрое, expect; это позволяет Вам автоматизировать эти виды взаимодействий командной строки.

2
ответ дан 2 December 2019 в 20:28
  • 1
    ожидает, путь излишество для этого; легкий-rsa все сценарии оболочки, настолько легко hackable. –  pjz 23 August 2010 в 20:53

try - batch flag

./build-key --batch client1
18
ответ дан 2 December 2019 в 20:28

У меня была такая же проблема.

Я нашел решение:

echo -en "\ n \ n \ n \ n \ n \ n \ n \ ny \ ny \ n" | ./build-key client1

1
ответ дан 2 December 2019 в 20:28

Новая версия EasyRSA сейчас поставляется в виде единого двоичного файла. Чтобы автоматизировать создание клиентского ключа, теперь вы можете использовать файл «vars» (просто поместите его в тот же каталог, что и двоичный файл easyrsa):

if [ -z "$EASYRSA_CALLER" ]; then
    echo "You appear to be sourcing an Easy-RSA 'vars' file." >&2
    echo "This is no longer necessary and is disallowed. See the section called" >&2
    echo "'How to use this file' near the top comments for more details." >&2
    return 1
fi

set_var EASYRSA        "$PWD"
set_var EASYRSA_OPENSSL        "openssl"
set_var EASYRSA_PKI            "$EASYRSA/pki"
set_var EASYRSA_DN     "org"

set_var EASYRSA_REQ_COUNTRY    "Country"
set_var EASYRSA_REQ_PROVINCE   "Province"
set_var EASYRSA_REQ_CITY       "City"
set_var EASYRSA_REQ_ORG        "Org Ltd"
set_var EASYRSA_REQ_EMAIL      "vpn@example.com"
set_var EASYRSA_REQ_OU         "Infrastructure"

set_var EASYRSA_KEY_SIZE       2048

set_var EASYRSA_ALGO           rsa

set_var EASYRSA_CA_EXPIRE      3650
set_var EASYRSA_CERT_EXPIRE    365
set_var EASYRSA_CRL_DAYS       180

set_var EASYRSA_TEMP_FILE      "$EASYRSA_PKI/extensions.temp"

и используйте двоичный файл EasyRSA:

./easyrsa build-client-full client1 nopass
2
ответ дан 2 December 2019 в 20:28

Это похоже на то, что я использую. Надеюсь, это кому-то поможет, мне потребовались часы, чтобы понять это. Убедитесь, что вы выполняете в каталоге easy-rsa, и не забудьте указать источник ./vars

(echo -en "\n\n\n\n\n\n\n\n"; sleep 1; echo -en "\n"; sleep 1; echo -en "\n"; sleep 3; echo -en "yes"; echo -en "\n"; sleep 3; echo -en "yes"; echo -en "\n") | ./build-key $key_id 
1
ответ дан 2 December 2019 в 20:28

ഞാൻ പി‌ജെ‌എസ് പോലുള്ള ഒരു റാപ്പർ ഉണ്ടാക്കി, പക്ഷേ ആവശ്യമായ എല്ലാ ഫയലുകളും സിംഗിൾ .ovpn ഫയലിലേക്ക് ബണ്ടിൽ ചെയ്തുകൊണ്ട്, ഇത് നേരിട്ട് ഉപയോഗിക്കാൻ കഴിയും

#!/bin/bash
cd /etc/openvpn/easy-rsa/2.0
client=$1

if [ x$client = x ]; then
    echo "Usage: $0 clientname"
    exit 1
fi

if [ ! -e keys/$client.key ]; then
    echo "Generating keys..."
    . vars
    ./pkitool $client
    echo "...keys generated."
fi

bundle=./keys/$client.ovpn

if [ ! -e $bundle ]; then
    echo "Creating bundle..."
    cat keys/template.ovpn >> $bundle
    echo '' >> $bundle
    cat keys/ca.crt >> $bundle
    echo '' >> $bundle
    echo '' >> $bundle
    echo '' >> $bundle
    awk '/BEGIN CERTIFICATE/,0' keys/$client.crt >> $bundle
    echo '' >> $bundle
    echo '' >> $bundle
    echo '' >> $bundle
    cat keys/$client.key >> $bundle
    echo '' >> $bundle
    echo '' >> $bundle
    echo "...bundle created"
else
    echo "Nothing to do, so nothing done. (keys/$client.ovpn already exists)"
fi
0
ответ дан 2 December 2019 в 20:28

Я только что попытался сделать то же самое, беззвучно генерируя пользователей openvpn на компьютере с freeBSD.

Это привело к созданию нового файла с подходящим названием ./ build-key -quiet

#!/bin/sh

# Make a certificate/private key pair using a locally generated
# root certificate.
# JP - automating my time away

cd /root/openvpn

client=$1

if [ x$client = x ];
    then
    echo "Usage: $0 clientname"
    exit 1
fi

if [ ! -e keys/$client.key ];
  then
    echo "Generating keys..."
    . ./vars
    ./pkitool $client
    echo "Great Success ...keys generated."
fi

echo 'Generating ovpn Files'
cd /root/clients
./make-client-config.sh $client
rm -rf /tmp/*.ovpn
cp /root/clients/files/$client.ovpn /tmp/
chmod 777 /root/clients/files/*.ovpn

echo "cleaning up /tmp/ of old ovpn files..."
echo "OVPN file generated and copied into /tmp/$client.ovpn"
0
ответ дан 2 December 2019 в 20:28
(echo -en "\n\n\n\n\n\n\n\n"; sleep 1; echo -en "\n"; sleep 1; echo -en "\n"; sleep 3; echo -en "yes"; echo -en "\n"; sleep 3; echo -en "yes"; echo -en "\n") | ./build-key $key_id
0
ответ дан 2 December 2019 в 20:28

просто отредактируйте файл ключа сборки и удалите параметр - взаимодействовать самый простой из известных мне способов

-2
ответ дан 2 December 2019 в 20:28

Я пробовал это, но общим именем был адрес сервера

. Вам нужно установить KEY_CN перед запуском pkitool

#!/bin/bash
$USER_NAME="$1"
source ./vars
KEY_CN=${USER_NAME}
export EASY_RSA="${EASY_RSA:-.}"
"$EASY_RSA/pkitool" ${USER_NAME}
0
ответ дан 25 February 2020 в 11:18

Теги

Похожие вопросы