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 ]
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:
#!/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"
Script de Instalação de Layer7 no CentOS 6.0
Ajudem a melhorar este script IPTABLES
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta