Escolar Documentos
Profissional Documentos
Cultura Documentos
Aptitude update
Aptitude install openvpn
Modprobe tun
Echo tun >> /etc/modules
Mcedit /etc/init.d/rc.firewall “ descomentar as linha OpenVPN e mudar a porta de 5000 para 1194”
Nesse modo, você gera uma arquivo de texto no servidor, contendo a chave de encriptação e precisa apenas copiá-la para o
cliente e fazer uma configuração rápida para criar a VPN. Se você quer apenas criar uma VPN doméstica, ou criar uma VPN
temporária entre duas redes, esta é a configuração recomendada.
O grande problema em utilizar uma chave estática é que, como o nome sugere, a mesma chave é utilizada sessão após sessão,
sem nunca mudar. Com isso, existe uma pequena possibilidade de um atacante obstinado conseguir quebrar a VPN usando um
ataque de força bruta. Como a chave é um arquivo de texto, que é armazenado tanto no cliente quanto no servidor, existe
também a possibilidade de alguém conseguir copiá-lo, caso tenha acesso físico a uma das máquinas. Outra limitação é que
usando uma chave estática o servidor suportará a conexão de um único cliente por VPN.
Para VPNs com vários clientes, ou em redes empresariais, onde a segurança é prioridade, é recomendável utilizar uma estrutura
baseada em certificados X509, como veremos no tópico seguinte.
Vamos então à configuração de nossa primeira VPN. Para este exercício inicial, recomendo que utilize duas máquinas da rede
local, que não tenham firewall ativo. Depois de entender melhor como o sistema funciona, passaremos para uma configuração
mais elaborada.
O primeiro passo é gerar o arquivo com a chave, no servidor. O arquivo deve ser gerado dentro do diretório "/etc/openvpn" (o
diretório padrão de configuração), de forma que acessamos o diretório antes de executar o comando que gera a chave:
# cd /etc/openvpn
# openvpn --genkey --secret static.key
Isso gerará o arquivo "static.key", que contém a chave de encriptação que será usada para criar a conexão. Ele é um arquivo de
texto simples, que contém uma chave de 2048 bits, como em:
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
0600d007988a59c6f7895884d336d445
2679fd3d2c0b9e0b777b4da92ab97043
... (mais 13 linhas)
e871ed9077185a2a6904e67cd0869e15
-----END OpenVPN Static key V1-----
Este arquivo deve ser copiado para a pasta "/etc/openvpn" do cliente, usando (por exemplo) o SFTP. Você pode usar também um
pendrive, ou outra mídia de uso local, mas não é recomendável enviá-lo por meios não seguros (e-mail por exemplo), já que
qualquer um que tenha acesso ao arquivo poderá se conectar à sua VPN ou desencriptar todo o tráfego transmitido através dela.
Para acessar o servidor (a partir do cliente) via SFTP, use o comando "sftp ip" para se conectar e, em seguida, use os comandos
"cd /etc/openvpn" e "get static.key" para fazer a cópia, como em:
# cd /etc/openvpn
# sftp root@192.168.1.101
Password:
sftp> cd /etc/openvpn
sftp> get static.key
Fetching /etc/openvpn/static.key to static.key
sftp> quit
Com o arquivo contendo a chave presente nas duas máquinas, falta criar os arquivos de configuração que serão usados pelo
OpenVPN. Neste exemplo, criarei o arquivo "/etc/openvpn/server.conf" no servidor e o arquivo "/etc/openvpn/client.conf" no
cliente. Os nomes podem ser diferentes, mas os arquivos devem ser criados dentro da pasta "/etc/openvpn" e devem terminar
com a extensão ".conf"
A linha "ifconfig 10.0.0.1 10.0.0.2" inclui os endereços que serão usados pelas interfaces virtuais da VPN, no servidor e no cliente.
No exemplo, o servidor utilizará o endereço "10.0.0.1" e o cliente o endereço "10.0.0.2". Você pode utilizar outros endereços se
preferir. O importante é que os endereços utilizados na VPN devem ser sempre diferentes dos endereços usados na rede local.
A linha "secret static.key" especifica o arquivo com a chave de encriptação, que criamos no passo anterior. Não esqueça de
alterar a linha caso o nome do arquivo seja diferente.
remote 192.168.1.101
dev tun
ifconfig 10.0.0.2 10.0.0.1
secret static.key
A primeira linha especifica o endereço IP do servidor. No exemplo, estou utilizando um endereço de rede local, já que estamos
apenas testando a VPN, mas, em um exemplo real de uso, você utilizaria o endereço IP de Internet do servidor ou (ao utilizar
uma conexão com IP dinâmico) um domínio virtual utilizado por ele. Se você ainda não tem um, acesse o no-ip.com ou o
dyndns.org e faça o registro.
Com os arquivos de configuração criados, inicializar a VPN é incrivelmente simples. Você precisa apenas reiniciar o serviço
"openvpn" tanto no cliente quanto no servidor, usando o comando:
# /etc/init.d/openvpn restart
Ao ser iniciado, o serviço procura por arquivos ".conf" dentro do diretório "/etc/openvpn" e inicia as VPNs configuradas
automaticamente (desde que o serviço esteja configurado para subir durante o boot, o que é feito por padrão na maioria das
distribuições). Isso não apenas simplifica a configuração, mas faz com que a VPN passe a ser automaticamente restabelecida a
cada boot. Para desativá-la, basta parar o serviço:
# /etc/init.d/openvpn stop
Você pode, também, ativar o OpenVPN manualmente, usando (como root) o comando:
Este comando manual permite acompanhar as mensagens de inicialização e de conexão, o que ajuda a descobrir o que está
errado em casos em que a VPN não funciona, embora a configuração pareça estar correta.
Se a VPN é usada pelos clientes apenas esporadicamente, você pode criar um ícone no desktop, ou um pequeno script contendo o
comando, para que o usuário possa se conectar à VPN apenas quando precisar. Outra opção é instalar o kvpnc
(http://home.gna.org/kvpnc/), um cliente gráfico que pode ser usado para se conectar a VPNs baseadas em diversos protocolos,
incluindo o OpenVPN:
Depois de estabelecida a VPN, o cliente passará a ter uma nova interface de rede, a "tun0", com o endereço IP "10.0.0.2", que
funciona como um link ponto-a-ponto com a interface "tun0" do servidor, que recebe o endereço "10.0.0.1":
Teste a conexão usando o ping, ou acessando algum serviço disponível no servidor, como em:
# ssh 10.0.0.1
Depois do teste inicial, você pode fazer um teste realizando a conexão via Internet (você pode usar uma conexão discada ou
outra conexão temporária no cliente para fazer o teste). Para isso, você vai precisar apenas alterar a configuração no cliente,
adicionando o endereço de internet do servidor, como em:
remote guiadohardware.no-ip.org
dev tun
ifconfig 10.0.0.2 10.0.0.1
secret static.key
# /etc/init.d/openvpn restart