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