Script para criar certificados de forma automatizada no OpenVpn

Publicado por Maria Eduarda Santos Silva (última atualização em 06/04/2024)

[ Hits: 1.919 ]

Download ArqOvpn.sh




Esse script criar um certificado de OpenVpn, usando como base um certificado já criado chamado ArqBase.Ovpn, segue o link para baixar esse arquivo e o script do de criação de usuário: https://drive.google.com/drive/folders/1SOjwULVbyzv9r5TJOh6YDSsb4Ts9SX8B?usp=sharing

*Caso queira acessar a pagina o script de criação de usuário segue o link abaixo:
https://www.vivaolinux.com.br/contribuir/scripts/verScript.php?codigo=7354

ATENÇÃO!
Lembre-se de editar a parte de /sua_pasta/ dentro do script
Lembre-se de editar o ArqBase.vpn de acordo com as informações do seu servidor vpn, caso não saiba como fazer isso segue o link abaixo:

  



Esconder código-fonte

#!/bin/bash

# Caminho para o diretório easy-rsa
EASYRSA_DIR="/etc/openvpn/easy-rsa"

# Caminho para o diretório de destino
DEST_DIR="/sua_pasta/arqopenvpn"

# Caminho para o arquivo de modelo
MODEL_FILE="/sua_pasta/ArqBase.ovpn"

# Solicitar nome do usuário
read -p "Digite o nome do usuário: " USERNAME

# Verificar se o usuário já existe
if [ ! -e "$EASYRSA_DIR/pki/issued/$USERNAME.crt" ] || [ ! -e "$EASYRSA_DIR/pki/private/$USERNAME.key" ]; then
    echo "Erro: Certificados para o usuário $USERNAME não encontrados. Execute o script anterior para criar o usuário."
    exit 1
fi

# Copiar certificados e chaves para o diretório do cliente
CLIENT_DIR="$DEST_DIR"
cp "$EASYRSA_DIR/pki/ca.crt" "$DEST_DIR"
cp "$EASYRSA_DIR/pki/issued/$USERNAME.crt" "$DEST_DIR"
cp "$EASYRSA_DIR/pki/private/$USERNAME.key" "$DEST_DIR"

# Arquivo de modelo .ovpn
TEMPLATE_FILE="$DEST_DIR/ArqBase.ovpn"

# Arquivo de destino .ovpn
OUTPUT_FILE="$CLIENT_DIR/$USERNAME.ovpn"

# Copiar o modelo para o arquivo de destino
cp "$MODEL_FILE" "$OUTPUT_FILE"

# Conteúdo do certificado
CERT_CONTENT=$(cat "$EASYRSA_DIR/pki/issued/$USERNAME.crt")

# Conteúdo da chave
KEY_CONTENT=$(cat "$EASYRSA_DIR/pki/private/$USERNAME.key")

# Gerar o arquivo .ovpn usando awk
awk -v cert_file="$EASYRSA_DIR/pki/issued/$USERNAME.crt" -v key_file="$EASYRSA_DIR/pki/private/$USERNAME.key" '
  BEGIN {
    cert_start="<cert>"
    cert_end="</cert>"
    key_start="<key>"
    key_end="</key>"
    in_cert_block = 0
    in_key_block = 0
  }

  {
    if ($0 ~ cert_start) {
      in_cert_block = 1
      print $0
      while ((getline line < cert_file) > 0) {
        print "" line
      }
    } else if (in_cert_block && $0 ~ cert_end) {
      in_cert_block = 0
      print $0
    } else if ($0 ~ key_start) {
      in_key_block = 1
      print $0
      while ((getline line < key_file) > 0) {
        print "" line
      }
    } else if (in_key_block && $0 ~ key_end) {
      in_key_block = 0
      print $0
    } else if (!in_cert_block && !in_key_block) {
      print $0
    }
  }' "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp" && mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"

echo "Usuário $USERNAME criado com sucesso. Certificados e arquivo $USERNAME.ovpn foram copiados para $DEST_DIR"

Scripts recomendados

Backup compactado

Script de Instalação de Layer7 no CentOS 6.0

Backup em Fita DDS

Ajudem a melhorar este script IPTABLES

Rsync.conf


  

Comentários
[1] Comentário enviado por maurixnovatrento em 23/06/2024 - 17:24h

Muito bom.
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts