Revogando certificados e bloqueando clientes

Uma parte importante do gerenciamento dos certificados no OpenVPN é a revogação dos certificados que não devem mais ser utilizados.

O processo de revogação dos certificados consiste em criar um arquivo contendo a lista dos certificados revogados e configurar o servidor para utilizá-lo. A partir daí, não importa mais se os arquivos do certificado revogados sejam distribuídos, já que eles não terão mais serventia alguma.

Para criar a lista, acesse o diretório “/etc/openvpn/easy-rsa” no servidor e carregue as variáveis do arquivo “vars” :

root@debian:~# cd /etc/openvpn/easy-rsa
root@debian:/etc/openvpn/easy-rsa# . ./vars

Execute o comando “revoke-full”, especificando o certificado que será revogado:

root@debian:~# ./revoke-full cliente1

Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Revoking Certificate 08.
Data Base Updated
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
cliente1.crt: /C=BR/ST=SP/O=GDH/CN=cliente1/emailAddress=foo@bar.com
error 23 at 0 depth lookup:certificate revoked

A mensagem “error 23” indica que o certificado foi revogado com sucesso, ou seja, ela não é exatamente uma mensagem de erro e sim uma confirmação.

O comando gera o arquivo “crl.pem”, dentro do diretório “/etc/openvpn/easy-rsa/keys”. O próximo passo é copiar o arquivo para o diretório “/etc/openvpn” do servidor, mesma pasta utilizada pelos arquivos com os certificados.

Para que ele passe a ser utilizado pelo OpenVPN, adicione o parâmetro “crl-verify” na configuração do servidor, especificando a localização do arquivo, como em:

crl-verify /etc/openvpn/crl.pem

Para que a alteração entre em vigor, reinicie o OpenVPN:

root@debian:~# /etc/init.d/openvpn restart

Com isso, o cliente perde imediatamente o acesso à VPN e passa a receber um erro “TLS Error: TLS handshake failed” ao tentar se conectar novamente.

Para revogar mais chaves, repita o processo, não se esquecendo de copiar o arquivo atualizado para a pasta “/etc/openvpn” do servidor a cada alteração.

Para que o OpenVPN leia o arquivo atualizado, use o parâmetro “reload” do serviço. Isso atualiza a configuração sem derrubar os clientes conectados:

root@debian:~# /etc/init.d/openvpn reload

Fonte: http://www.hardware.com.br/tutoriais/openvpn_2/pagina5.html


Voltar

linux/artigos/ovpn-revog-cert.txt · Última modificação: 13/01/2015 10:44 (edição externa)