Pplware

Tutorial OpenVPN + OpenSSL no Raspberry PI (Parte I)

Na semana passada foram publicados dois tutoriais a ensinar a instalar e a configurar um servidor de VPNs no Ubuntu, usando o OpenVPN. Mas como será no Raspberry Pi? Será que podemos usar o “mini PC” para funcionar como servidor até porque é um dispositivo bastante eficiente em termos energéticos? A resposta é sim, e a instalação e configuração é muito idêntica à que já apresentamos.


Como sabem, uma rede privada virtual (VPN – Virtual Private Network) garante a segurança das comunicações ponto a ponto, nomeadamente a privacidade, integridade e autenticidade dos dados. Para isso esta tecnologia faz a encriptação dos pacotes, garantindo que estes não sejam lidos por terceiros.

O OpenVPN é um software multi-plataforma que permite a criação de uma VPN entre várias máquinas com sistemas operativos diferentes, e ao contrário do protocolo PPTP, que garante uma criptografia considerada básica, este, para além de conseguir garantir uma elevada criptografia, garante também um elevado desempenho.

Algumas características do OpenVPN

Vamos então começar com a instalação e configuração.

Passo 1)  Instalar os serviços de OpenVPN e OpenSSL

sudo apt-get install openvpn openssl

Passo 2) Copiar a configuração de exemplo do easy-rsa

cd /etc/openvpn && sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa

Passo 3) Modificação do ficheiro “vars”

A ferramenta easy-rsa inclui o ficheiro “vars” que podemos editar e mudar alguns parâmetros definidos por omissão e que serão depois úteis na hora de criar os certificados. Para editar o ficheiro basta usar o comando e editar confirme mostra a figura seguinte.

sudo nano easy-rsa/vars

Nota: Depois de editar o ficheiro, pressionar as teclas: Ctrl + X (sair), seguido de Y para gravar e Enter.

Vamos agora copiar o ficheiro /etc/openvpn/easy-rsa/openssl-1.0.0.cnf para /etc/openvpn/easy-rsa/openssl.cnf para que não haja problemas ao nível do OpenSSL.

sudo cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Passo 4)  Criação da Public Key Infrastructure usando osscripts easy-rsa

source ./vars
./easy-rsa/vars && sudo -E ./easy-rsa/clean-all

Nota2: -E: Indica que o utilizador deseja preservar as variáveis de ambiente existentes.

— Configuração do servidor — 

Uma vez instalado o OpenVPN, vamos proceder à configuração do servidor. Para isso, vamos começar por criar o ficheiro da Autoridade de certificação (CA), onde irá ser pedido ao utilizador para completar alguns dados como o Nome, País, etc, que podem ser preenchidos ou não.

Passo  6) – Criar o ficheiro da Autoridade de certificação (CA)

cd easy-rsa && sudo -E ./build-ca VPN

Passo  7)  Criação do certificado do servidor

Agora que temos a CA criada, vamos criar o próprio certificado para o servidor OpenVPN

sudo -E ./build-key-server server

O procedimento de preenchimento é o mesmo do anterior, acrescentando apenas um parâmetro ao qual devem responder sim (Y), sendo ele a assinatura do certificado. Se tiver alguma dificuldade veja aqui o nosso tutorial.

Passo  8) Gerar um certificado de cliente

sudo -E ./easy-rsa/build-key ipad

O nome dado ao certificado foi “ipad”, mas foram criados mais dois certificados (android e pc) para usar futuramente em cada dispositivo . Cada um pode criar os certificados que entender.

É necessário também gerar a chave Diffie Hellman para a troca inicial segura (entre cliente e servidor) das chaves. Para isso basta usar o seguinte comando:

sudo -E ./easy-rsa/build-dh

De seguida, vamos proceder à configuração propriamente dita do serviço OpenVPN, definindo alguns parâmetros importantes, como os certificados, servidor, DNS…

Passo  9) Criar ficheiro de configuração

Para criar um ficheiro com o nome server.conf podem usar o editor nano:

sudo nano /etc/openvpn/server.conf

O conteúdo do ficheiro deverá seguir o seguinte exemplo. Não se esqueçam de verificar se têm os certificados criados em /etc/openvpn/easy-rsa/keys.

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
# Chave Diffie Hellman 
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
dev tun
server 10.8.0.0 255.255.255.0
proto udp
port 1194
#DNS Server
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn
comp-lzo
client-to-client
#Para encaminhar todo o trafego do cliente via VPN
push "redirect-gateway def1"

Como se pode verificar na configuração acima, a porta definido para correr o serviço é o 1194. Por omissão, o serviço OpenVPN usa esta porta, mas podem sempre alterar alterar assim como os DNS entre outros parametros.

E está feito. No próximo tutorial vamos ensinar como podem configurar o NAT no Raspberry e também o Port Forwarding,  no router Technicolor TG784n v3. Estejam atentos, a segunda parte sai já amanha.

Exit mobile version