[OpenVPN] Revogar certificado

Esse tutorial demonstra de forma prática como revogar um certificado de um usuário no servidor OpenVPN. 

É muito comum, quando estamos lidando com VPNs empresariais, a saída de funcionários da empresa e que por consequência não deveriam mais ter acesso a VPN. Além disso, um usuário pode ter esquecido sua senha ou mesmo ter a private key exposta.  

Portanto, torna-se uma necessidade básica no dia a dia de uma empresa saber como revogar um certificado de forma correta e precisa. 

Nesse tutorial, estamos usando um servidor OpenVPN que está instalado em uma máquina Linux. Além disso, como prova de conceito, vamos usar um cliente OpenVPN com um usuário Alice. 

Além disso, estamos usando o mesmo cenário que usamos no artigo:
[OpenVPN] Instalando no Linux Server Ubuntu/Debian

Revogando o certificado no OpenVPN 

O primeiro passo para revogar um certificado é entrar no diretório que contém o arquivo easyrsa. Em nossa instalação prévia do OpenVPN Server, o arquivo easyrsa está no diretório easy-rsa. Portanto, para acessá-lo vamos usar o comando abaixo. 

cd ~/easy-rsa/ 

Depois disso, vamos usar o comando easyrsa revoke para revogar o certificado do usuário Alice. Para isso vamos usar o comando abaixo. 

./easyrsa revoke Alice 

O sistema vai perguntar se deseja continuar e vamos digitar yes e depois pressionar ENTER

Gerando o CRL (certificate revocation list) 

Agora vamos gerar um CRL (certificate revocation list) para que a revogação do certificado da Alice tenha efeito. Ao usar o comando “./easyrsa gen-crl“  será criado um arquivo de lista de revogação de certificado chamado “crl.pem”

./easyrsa gen-crl 

Podemos ver que o arquivo crl.pem foi criado dentro do diretório “~/easy-rsa/pki/”. Se desejarmos verificar, podemos usar o comando abaixo para entrar no diretório e depois usar o comando “ls” para listar o conteúdo do diretório. 

Dessa forma, vamos ver que agora temos o arquivo de lista de revogação de certificado chamado “crl.pem”

cd ~/easy-rsa/pki/  && ls

Copiando o arquivo de CRL (certificate revocation list) 

Agora vamos copiar o arquivo CRL ( lista de certificado de revogação) “crl.pem” para o diretório de configuração do openvpn. Para isso, vamos usar o comando abaixo.  

sudo cp crl.pem /etc/openvpn/server/ 

Editando o arquivo de configuração do OpenVPN 

Agora, vamos editar o arquivo de configuração do servidor OpenVPN para identificar o arquivo de CRL (certificate revocation list). Para isso, vamos usar o comando abaixo para editar o arquivo “/etc/openvpn/server/server.conf” usando o editor de textos nano. 

sudo nano /etc/openvpn/server/server.conf 

Ao final do arquivo “server.conf”, vamos inserir uma linha que indica a verificação do CRL (certificate revocation list). Portanto, devemos copia a instrução abaixo e colar no final do arquivo de configuração“server.conf. 

crl-verify crl.pem 

Reiniciando o servidor OpenVPN 

Agora vamos reiniciar o servidor OpenVPN para que as alterações tenham efeito. 

Para isso, vamos usar o comando abaixo. 

sudo systemctl restart openvpn-server@server.service 

Testando o certificado OpenVPN revogado 

Agora vamos testar se o usuário ainda consegue usar o certificado revogado do OpenVPN. Para isso, vamos na máquina cliente e vamos tentar conectar na VPN com o usuário Alice. 

Em nosso caso, como estamos usando uma máquina Linux como cliente, usaremos o comando abaixo para fazer a conexão do usuário na VPN. 

sudo openvpn --config Alice.ovpn  

Podemos observar que o usuário Alice não conseguiu conectar na VPN e além disso, apareceram erros de “TLS key negotiation failed to occur” e também “TLS handshake failed”. Consequentemente, podemos verificar que depois de revogar o certificado do usuário Alice, esse usuário não consegue mais entrar na VPN. 

Referência: https://simplificandoredes.com/openvpn-revogar-certificado/

CATEGORIES:

Software Livre

Comments are closed