Instale o OpenVPN no seu PC Linux
Após configurar um servidor VPN, o próximo passo é instalar e configurar o OpenVPN.
O OpenVPN cria um túnel criptografado entre dois pontos, evitando que terceiros acessem o tráfego da sua rede. Ao configurar seu servidor de rede privada virtual (VPN), você se torna seu próprio provedor de VPN. Muitos serviços VPN populares já usam OpenVPN, então por que vincular sua conexão a um provedor específico quando você pode ter controle total?
O primeiro artigo desta série demonstrou como instalar e configurar um PC Linux para servir como servidor OpenVPN. Também discutiu como configurar seu roteador para que você possa acessar seu servidor VPN de uma rede externa.
Este segundo artigo demonstra como instalar o software do servidor OpenVPN usando etapas personalizadas do wiki do OpenVPN.
Instale o OpenVPN
Primeiro, instale o OpenVPN e o aplicativo easy-rsa
(para ajudá-lo a configurar a autenticação em seu servidor) usando seu gerenciador de pacotes. Este exemplo usa o Fedora Linux; se você escolheu algo diferente, use o comando apropriado para sua distribuição:
$ sudo dnf install openvpn easy-rsa
Isso cria alguns diretórios vazios:
/etc/openvpn
/etc/openvpn/client
/etc/openvpn/server
Se estes não forem criados durante a instalação, crie-os manualmente.
Configurar autenticação
OpenVPN depende dos scripts easy-rsa
e deve ter sua própria cópia deles. Copie os scripts e arquivos easy-rsa
:
$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp -rai /usr/share/easy-rsa/3/* \
/etc/openvpn/easy-rsa/
A autenticação é importante e o OpenVPN leva isso muito a sério. A teoria é que se Alice precisar acessar informações privadas dentro da empresa de Bob, é vital que Bob tenha certeza de que Alice realmente é Alice. Da mesma forma, Alice deve ter certeza de que Bob é realmente Bob. Chamamos isso de autenticação mútua.
As práticas recomendadas atuais verificam um atributo de dois dos três fatores possíveis:
- Algo que você tem
- Algo que você sabe
- Algo que você é
Há muitas escolhas. Esta configuração OpenVPN usa:
- Certificados: algo que o cliente e o servidor possuem
- Senha do certificado: algo que as pessoas sabem
Alice e Bob precisam de ajuda para se autenticarem mutuamente. Como ambos confiam em Cathy, Cathy assume uma função chamada autoridade certificadora (CA). Cathy atesta que Alice e Bob são quem afirmam ser. Como Alice e Bob confiam em Cathy, agora eles também confiam um no outro.
Mas o que convence Cathy de que Alice e Bob são realmente Alice e Bob? A reputação de Cathy na comunidade depende de fazer isso da maneira certa e, portanto, se ela quiser que Danielle, Evan, Fiona, Greg e outros também confiem nela, ela testará rigorosamente as afirmações de Alice e Bob. Depois que Alice e Bob convencem Cathy de que eles realmente são Alice e Bob, Cathy assina certificados para eles compartilharem entre si e com o mundo.
Como Alice e Bob sabem que Cathy – e não alguém se passando por ela – assinou os certificados? Eles usam uma tecnologia chamada criptografia de chave pública:
- Encontre um algoritmo de criptografia que criptografe com uma chave e descriptografe com outra.
- Declare uma chave privada e compartilhe a outra chave com o público.
- Cathy compartilha sua chave pública e uma cópia em texto simples de sua assinatura com o mundo.
- Cathy criptografa sua assinatura com sua chave privada. Qualquer pessoa pode descriptografá-lo com sua chave pública.
- Se a assinatura descriptografada de Cathy corresponder à cópia em texto simples, Alice e Bob podem confiar que Cathy realmente a assinou.
Você usa essa mesma tecnologia sempre que compra bens e serviços online.
Implementar autenticação
A documentação do OpenVPN sugere a configuração de uma CA em um sistema separado ou pelo menos em um diretório separado no servidor OpenVPN. A documentação também sugere a geração de certificados de servidor e cliente a partir do servidor e dos clientes. Como esta é uma configuração simples, você pode usar o servidor OpenVPN como sua própria CA e colocar os certificados e chaves em diretórios especificados no servidor.
Gere certificados do servidor e copie-os para cada cliente como parte da configuração do cliente.
Esta implementação usa certificados autoassinados. Isso funciona porque o servidor confia em si mesmo e os clientes confiam no servidor. Portanto, o servidor é a melhor CA para assinar certificados.
No servidor OpenVPN, configure a CA:
$ sudo mkdir /etc/openvpn/ca
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa build-ca
Use uma senha fácil de lembrar, mas difícil de adivinhar.
Configure o par de chaves do servidor e a solicitação de certificado:
$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-req OVPNserver2020 nopass
Neste exemplo, OVPNServer2020
é qualquer nome de host que você atribuiu ao seu servidor OpenVPN no primeiro artigo desta série.
Gerar e assinar certificados
Agora você deve enviar uma solicitação do servidor para a CA e gerar e assinar o certificado do servidor.
Esta etapa essencialmente copia o arquivo de solicitação de /etc/openvpn/server/pki/reqs/OVPNserver2020.req
para /etc/openvpn/ca/pki/reqs/OVPNserver2020.req
para prepará-lo para revisão e assinatura:
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020
Revise e assine a solicitação
Você gerou uma solicitação e agora deve revisar e assinar os certificados:
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
show-req OVPNserver2020
Assine como servidor:
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
sign-req server OVPNserver2020
Coloque uma cópia do servidor e dos certificados CA onde eles pertencem para que o arquivo de configuração possa buscá-los:
$ sudo cp /etc/openvpn/ca/pki/issued/OVPNserver2020.crt \
/etc/openvpn/server/pki/
$ sudo cp /etc/openvpn/ca/pki/ca.crt \
/etc/openvpn/server/pki/
Em seguida, gere parâmetros Diffie-Hellman para que os clientes e o servidor possam trocar chaves de sessão:
$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-dh
Quase lá
O próximo artigo desta série demonstrará como configurar e iniciar o servidor OpenVPN que você acabou de construir.
Este artigo é baseado no blog de D. Greg Scott e é reutilizado com permissão.