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. Imagine o caso de um notebook que foi roubado, por exemplo. Se os certificados não forem revogados, qualquer um em posse deles poderá (a menos que você inclua uma senha ao gerar os certificados) se conectar à VPN e, a partir daí, ter acesso à rede interna da empresa.

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 (ou na máquina que estiver usando para gerar os certificados) e carregue as variáveis do arquivo “vars”:

# cd /etc/openvpn/easy-rsa
# source vars

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

# ./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/keys” do servidor, a 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/keys/crl.pem

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

# /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/keys” do servidor a cada alteração. Se você está gerando as chaves usando o próprio servidor, pode também especificar diretamente o arquivo na pasta “/etc/openvpn/easy-rsa/keys” na opção; assim você elimina a necessidade de copiar manualmente o arquivo a cada alteração. Um exemplo de configuração seria:

crl-verify /etc/openvpn/easy-rsa/keys/crl.pem

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:

# /etc/init.d/openvpn reload

:. Leia mais sobre servidores Linux

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X