GNU/Linux >> Linux Esercitazione >  >> Linux

OpenVPN easy-rsa Automazione build-key?

Soluzione 1:

prova --batch bandiera

./build-key --batch client1

Soluzione 2:

Se guardi la fonte di build-key , scoprirai che chiama pkitool . Ho scritto un wrapper per raggruppare le chiavi del cilent e i file di configurazione di openvpn appropriati in un tarball che potrei poi dare ai miei utenti:

#!/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

Soluzione 3:

La nuova versione di EasyRSA si presenta come un singolo binario in questo momento. Per automatizzare la creazione di una chiave client, ora puoi utilizzare il file "vars" (basta posizionarlo nella stessa directory di easyrsa binary):

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      "[email protected]"
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"

e usa il binario di EasyRSA:

./easyrsa build-client-full client1 nopass

Soluzione 4:

La cosa che mi viene in mente più velocemente è expect; ti consente di automatizzare questo tipo di interazioni da riga di comando.

Soluzione 5:

Ho avuto lo stesso problema.

La soluzione che ho trovato è stata :

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


Linux
  1. ${!foo} E Zsh?

  2. Amazon Aws (amazon Ami) Installare Openvpn?

  3. Cosa fa Eco $? Fare??

  4. Utilizzo di Esporta in .bashrc?

  5. Cambia carattere nel comando Echo?

16 Esempi di comandi Echo in Linux

Come installare server e client OpenVPN con Easy-RSA 3 su CentOS 7

Come installare server e client OpenVPN con Easy-RSA 3 su CentOS 8

Come installare OpenVPN su AlmaLinux 8, Centos 8 o Rocky Linux 8

Come fare eco in un file

Origine di un thread kworker