Pplware

Aprenda a criar um servidor de VPNs no Ubuntu 15.04

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.

Hoje vamos ensinar como podem criar um servidor de VPNs no Ubuntu 15.04 usando o OpenVPN.

O OpenVPN é um software multi-plataforma que permite a criação de uma VPN entre várias máquinas com sistemas operativos diferentes. Para proceder à instalação e configuração do OpenVPN e OpenSSL (obrigatório para a criação de certificados para o serviço), devem seguir os seguintes passos:

Passo 1) Instalar o Openvpn e Openssl

sudo apt-get install openvpn openssl

Passo 2) Copiar configuração de exemplo

O OpenVPN traz já uma configuração exemplo para ser usada como base. Vamos copiar essa configuração para /etc/openvpn

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn

Passo 3) Modificação do ficheiro de configuração do OpenVPN

Como resultado do passo anterior, passamos a ter em /etc/openvpn o ficheiro server.conf. Vamos editá-lo e incluir/alterar os seguintes parâmetros:

#Para encaminhar todo o trafego do cliente via VPN
push "redirect-gateway def1 bypass-dhcp"
#Servidores de DNS a serem usados pelo cliente
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Por questões de segurança, use o user e grupo nobody que têm poucas permissões
user nobody
group nobody

Passo 4) Cópia da estrutura easy-rsa

Após a instalação, é necessário gerar as chaves para o servidor e client. O openvpn traz já uma estrutura de exemplo, designada de easy-rsa, na qual podemos-nos basear para configurar a nossa VPN. Para isso, vamos usar essa estrutura em /etc/openvpn, copiando-a de /usr/share/easy-rsa.

sudo apt-get install easy-rsa
sudo cp -R /usr/share/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa/

Passo 5) 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:

nano -w /etc/openvpn/easy-rsa/vars

Nota: Adaptem os dados ao vosso cenário. Estes parâmetros podem ser posteriormente modificados, aquando da criação dos certificados.

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

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

Passo 6) Criação da Autoridade de certificação (CA)

Basicamente basta introduzir os comandos seguinte e depois, de forma interativa, ir confirmando ou alterando as informações solicitadas.

cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca

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

./build-key-server server

É necessário também gerar a chave Diffie Hellman para a troca inicial segura (entre cliente e servidor) das chaves.

./build-dh
cd /etc/openvpn/easy-rsa/keys
cp dh1024.pem ca.crt server.crt server.key /etc/openvpn

Por fim, para autenticar os clientes com base no certificado, é preciso criar um certificado por cada cliente. Para isso basta usar executar os seguintes comandos:

cd /etc/openvpn/easy-rsa
./build-key client

Configurações de Encaminhamento

De acordo com a configuração que temos no ficheiro server.conf,  o endereço 10.8.0.1 vai ser atribuído ao túnel do lado do servidor enquanto os restantes IPs da rede 10.8.0.0 passarão a estar disponíveis para os clientes.

Vamos então criar uma regra NAT no iptables para que todos os pacotes com origem na rede 10.8.0.0/24 sejam encaminhados via eth0

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo apt-get install iptables-persistent

Vamos agora activar o encaminhamento IP
nano -w /etc/sysctl.conf
net.ipv4.ip_forward = 1

E por fim vamos aplicar as configurações anteriores e iniciar o servidor OpenVPN

sysctl -p
/etc/init.d/openvpn start

Se tudo correr bem, podemos ver se o túnel já está criado usando o comando

ifconfig tun0

Com as configurações anteriores, criamos com sucesso a parte do servidor. Num próximo tutorial iremos ensinar a configurar um cliente, de forma a podermos estabelecer ligação VPN a partir de qualquer lugar. Estejam atentos, será em breve.

Exit mobile version