OpenVPN + Bridge
Configuração do OpenVPN em modo bridge e autenticação por par de chaves, onde será criada uma C.A. no próprio servidor e os clientes que se autenticarem neste ganharão um ip na interface tap válido na rede interna, com seu gateway e DNS caso possua.
Parte 7: Revogando um certificado
Se algum colaborador ou cliente se desligar da empresa e você quiser barrar a entrada dele na VPN, basta apenas revogar o certificado do mesmo.
Primeiro vamos copiar os arquivos revoke-full e vars do diretório /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/ para o diretório /etc/ssl/ca:
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/vars /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/revoke-full /etc/ssl/ca
Entre no diretório /etc/ssl/ca:
# cd /etc/ssl/ca
Modifique o arquivo vars com seu editor preferido:
# vim vars
Modificando a linha 15 de:
export EASY_RSA="`pwd`"
Para:
E modifique a linha 29 de:
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
Para:
Depois altere a linha 39 de:
export KEY_DIR="$EASY_RSA/keys"
Para:
E edite as últimas linhas com a mesma DN utilizada no certificado da C.A.
Neste exemplo foram:
Ajuste conforme como foi criado na C.A., salve e saia do arquivo.
Agora torne os dois arquivos executáveis. No terminal digite:
# chmod +x revoke-full vars
Para revogar o certificado, primeiro deve-se executar o script vars e depois o revoke-full, assim:
# source ./vars
E então o script revoke-full seguido do nome do certificado, neste exemplo foi cliente, não precisa colocar extensão nenhuma.
# ./revoke-full cliente
Pronto, o certificado cliente e sua chave foram revogados, sendo inutilizados para conexão com esta OpenVPN.
Reinicie o servidor.
Agora toda vez que alguém estiver fora da empresa, basta se conectar na OpenVPN que estará dentro da rede da mesma, obtendo acesso a seus serviços.
Primeiro vamos copiar os arquivos revoke-full e vars do diretório /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/ para o diretório /etc/ssl/ca:
# cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/vars /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/revoke-full /etc/ssl/ca
Entre no diretório /etc/ssl/ca:
# cd /etc/ssl/ca
Modifique o arquivo vars com seu editor preferido:
# vim vars
Modificando a linha 15 de:
export EASY_RSA="`pwd`"
Para:
export EASY_RSA="/etc/openvpn"
E modifique a linha 29 de:
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
Para:
export KEY_CONFIG="/usr/share/ssl/openssl.cnf"
Depois altere a linha 39 de:
export KEY_DIR="$EASY_RSA/keys"
Para:
export KEY_DIR="$EASY_RSA/ca/"
E edite as últimas linhas com a mesma DN utilizada no certificado da C.A.
Neste exemplo foram:
KEY_COUNTRY = BR
KEY_PROVINCE = SC
KEY_CITY = Florianopolis
KEY_ORG = nome da sua empresa
KEY_EMAIL = seu email
KEY_PROVINCE = SC
KEY_CITY = Florianopolis
KEY_ORG = nome da sua empresa
KEY_EMAIL = seu email
Ajuste conforme como foi criado na C.A., salve e saia do arquivo.
Agora torne os dois arquivos executáveis. No terminal digite:
# chmod +x revoke-full vars
Para revogar o certificado, primeiro deve-se executar o script vars e depois o revoke-full, assim:
# source ./vars
E então o script revoke-full seguido do nome do certificado, neste exemplo foi cliente, não precisa colocar extensão nenhuma.
# ./revoke-full cliente
Pronto, o certificado cliente e sua chave foram revogados, sendo inutilizados para conexão com esta OpenVPN.
Reinicie o servidor.
Agora toda vez que alguém estiver fora da empresa, basta se conectar na OpenVPN que estará dentro da rede da mesma, obtendo acesso a seus serviços.
Vou testar logo que possa.
Parabéns!