Script para criar certificados de forma automatizada no OpenVpn
Publicado por Maria Eduarda Santos Silva (última atualização em 06/04/2024)
[ Hits: 2.421 ]
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"
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
paginação dos favoritos não funciona no vivaolinux[BU... (4)
Driver da nvidia e desempenho em jogos (2)
A escola é altamente ineficiente e ineficaz! (13)
Sincronização Horario Estação de trabalho máquinas domínio com samba N... (2)