Site menu OpenVPN - parte 3

OpenVPN - parte 3

Criando a Autoridade Certificadora

O OpenVPN pode operar com 3 tipos de criptografia. Nenhuma criptografia (apenas o túnel), criptografia com chaves estáticas, e no modo TLS, em que as chaves são trocadas periodicamente. No nosso exemplo, usaremos o TLS.

Para o OpenVPN operar com o TLS, iremos criar uma Autoridade Certificadora (CA), e criar certificados de segurança assinados por essa CA. Isso é feito com o utilitário OpenSSL encontrado na maioria das distribuições Linux.

Primeiramente, precisamos configurar algumas opções do OpenSSL. Para isso, edite o arquivo de configuração do OpenSSL que normalmente está em /etc/ssl/openssl.cnf ou em /usr/share/ssl/openssl.cnf. Dentro desse arquivo você deve especificar algum lugar para armazenar seus certificados, por exemplo, /root/certificados, na opção dir.

[ CA_default ]

dir             = /root/certificados    # Where everything is kept
certs           = $dir/certs            # Where issued certs are kept
crl_dir         = $dir/crl              # Where issued crl are kept
database        = $dir/index.txt        # database index file.
new_certs_dir   = $dir/newcerts         # default place for new certs

certificate     = $dir/my-ca.crt        # The CA certificate
serial          = $dir/serial           # The current serial number
crl             = $dir/crl.pem          # The current CRL
private_key     = $dir/my-ca.key # The private key
RANDFILE        = $dir/private/.rand    # private random number file

Você deve querer aumentar o tempo que o certificado será valido. Caso contrario, o sua VPN irá parar de funcionar exatamente um ano após o certificado ter sido criado. No nosso exemplo, vamos deixar em 3 anos.

default_days    = 1095                   # how long to certify for

Também é necessario que existam 2 arquivos dentro do diretório de certificados. O arquivos são index.txt e serial. O arquivo index.txt deve estar vazio, e arquivo serial, com um numero que possa ser incrementado. Como 01.

[root@toti root]# cd certificados/
[root@toti certificados]# touch index.txt
[root@toti certificados]# echo 01 > serial

Caso você tenha alguma paranoia quanto a segurança, você pode aumentar o tamanho da chave criptografica, de 1024 bits para 2048 bits.

[ req ]
default_bits            = 2048

Com o OpenSSL configurado, e com o diretório criado, você já pode criar sua CA, com o comando
openssl req -nodes -new -x509 -keyout my-ca.key -out my-ca.crt -days 1095

[root@toti certificados]# openssl req -nodes -new -x509 \
  -keyout my-ca.key -out my-ca.crt -days 1095

Generating a 1024 bit RSA private key
...........................................++++++
....++++++
writing new private key to 'my-ca.key'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a
Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:SANTA CATARINA
Locality Name (eg, city) []:JOINVILLE
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
      ARP INFORMATICA
Organizational Unit Name (eg, section) []:VPN
Common Name (eg, YOUR name) []:ARP
Email Address []:INFO@ALTORIOPRETO.COM.BR
[root@toti certificados]#

Agora você já tem sua Autoridade Certificadora! Tome cuidado dela, a segurança da sua VPN está toda nesse diretório. Note também que esses passos não precisam necessariamente ser executados em um computador que fará parte da VPN.

Para o OpenVPN operar em modo TLS, também é necessario a geração dos parametros Diffie-Hellman, que é um protocolo para a troca de chaves criptograficas durante a execução do OpenVPN.

Para isso, você deve utilizar o comando
openssl dhparam -out dh.pem 2048
Utilize 1024 se você estiver utilizando chaves de 1024 bits.

[root@toti certificados]# openssl dhparam -out dh.pem 2048
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.........................................
+....................*.............++*++*
[root@toti certificados]#

Parte 4: Configurando o OpenVPN -->