Este script gera o certificado e envia por email para facilitar a vida. Quando você rodar este script terá um arquivo compactado contendo as configurações para Windows e
Linux devidamente configurados, os certificados tanto para Windows como para Linux e o executável para Windows.
Crie um diretório no /home chamado certificados e um outro dentro com o nome "example":
# mkdir -p /home/certificados/example
Dentro do diretório /home/certificados/example, crie os arquivos de configuração dos clientes Windows e Linux.
Vamos criar o arquivo para Linux:
# vi /home/certificados/example/client.conf
Adicione as seguintes linhas nele:
client
dev tun
proto tcp-client
remote <IP SERVER> 1194
user nobody
group nogroup
persist-key
persist-tun
mute-replay-warnings
ca /etc/openvpn/ca.crt
cert /etc/openvpn/example-key.crt
key /etc/openvpn/example-key.key
ns-cert-type server
cipher DES-EDE3-CBC
keysize 192
comp-lzo
log /var/log/openvpn.log
status /var/log/openvpn.log
verb 3
tun-mtu 1500
tun-mtu-extra 32
Salve e saia.
<ESC> :wq <ENTER>
Agora crie o arquivo para Windows:
# vi /home/certificados/example/client.ovpn
Adicione as linhas:
client
dev tun
proto tcp-client
remote <IP SERVER> 1194
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert example-key.crt
key example-key.key
ns-cert-type server
cipher DES-EDE3-CBC
keysize 192
comp-lzo
verb 3
tun-mtu 1500
tun-mtu-extra 32
Salve e saia:
<ESC> :wq <ENTER>
Baixe o openvpn-X.X.X-install.exe e deixe no diretório /home/certificados/example.
Crie um arquivo no diretório /home/certificados/example/ com o nome message.txt.
Para finalizar, vamos configurar um "shellzinho" para criar o certificado, compactar, criar os arquivos de conf e enviar por email.
Crie um arquivo no /usr/local/bin/ com o nome:
# vi /usr/local/bin/criacertificado.sh
Neste arquivo adicione as linhas:
home=`pwd`
res_home=$home
echo "################################################"
echo "# GERADOR DE CERTIFICADOS #"
echo "# CRIADO POR ROBINSON CZELUSNIAK EM 04/02/09 #"
echo "################################################"
echo -n "DIGITE O NOME DO CERTIFICADO: ";
read cert;
cd /etc/easy-rsa
. ./vars
./build-key $cert
# copiando os certificados
cd /etc/easy-rsa/keys
#tar -c $cert.* > $cert.tar
mkdir /home/certificados/$cert
mkdir /home/certificados/$cert/tmp
mkdir /home/certificados/$cert/Conf-Windows
mkdir /home/certificados/$cert/Conf-Linux
cp $cert.* /home/certificados/$cert/tmp
cp /etc/easy-rsa/keys/ca.crt /home/certificados/$cert/tmp
sed s/example-key/$cert/ /home/certificados/example/client.conf > /home/certificados/$cert/Conf-Linux/client.conf
sed s/example-key/$cert/ /home/certificados/example/client.ovpn > /home/certificados/$cert/Conf-Windows/client.ovpn
cp /home/certificados/$cert/tmp/* /home/certificados/$cert/Conf-Linux/
cp /home/certificados/$cert/tmp/* /home/certificados/$cert/Conf-Windows/
cp /home/certificados/example/README.rtf /home/certificados/$cert/
cp /home/certificados/example/openvpn-X.X.X-install.exe /home/certificados/$cert/
rm -rf /home/certificados/$cert/tmp
cd /home/certificados/
tar -cz $cert/ >/home/certificados/$cert.tar.gz
chmod 777 /home/certificados/$cert.tar.gz
rm -rf /home/certificados/$cert/*
mv /home/certificados/$cert.tar.gz /home/certificados/$cert/
cd $res_home
echo " FORAM COPIADOS OS CERTIFICADOS PARA A PASTA /home/certificados/$cert ";
cd /home/certificados
LS=`ls ca.crt > /dev/null 2>&1`
res=$?
if [ "$res" == "0" ]
then
echo "OK"
#exit 1;
fi
if [ "$res" == "2" ] | [ "$res" == "1" ]
then
echo "O ARQUIVO ca.crt NÃO EXISTE NA PASTA /home/certificados, foi copiado para la"
fi
echo -n "Você deseja receber o certificado por email:[y/N] ";
read y;
if [ y = y ]
then
echo -n "Digite o endereço de email: ";
read email;
mailx $email -r postmaster@seudominio.com.br -s "Certificado OpenVPN" -a /home/certificados/$cert/$cert.tar.gz < /home/certificados/example/message.txt
else
echo "OS CERTIFICADOS ESTÃO EM /home/certificados/$cert ";
fi
cd $res_home
Salve e saia.
<ESC> :wq <ENTER>
Obs.: É necessário ter o mailx instalado na máquina, caso contrário instale ou utilize outra ferramenta para envio (será necessário rever os parâmetros).
E pronto, agora para criar um certificado basta logar e digitar "criacertificado.sh" para criar e enviá-lo por email.