Realizar VPN entre um server Linux (Debian) e um computador com windows xp

1º Passo
Instalar o lzo usando:
apt-get install lzop

ou baixando da internet e compilando

$ tar -xzvf lzo-1.08.tar.gz
$ cd lzo-1.08
$ ./configure
$ make
$ su
# make install

2º Passo
Instalar o openvpn
apt-get install openvpn

ou baixando da internet e compilando

$ tar -xzvf openvpn-1.5.0.tar.gz
$ cd openvpn-1.5.0
$ ./configure
$ make
$ su
# make install

Pronto. O OpenVPN já está instalado em nosso sistema com suporte à biblioteca de compressão de dados. Agora só resta a configuração de nossa VPN.

Configurando nossa VPN na Matriz:

O OpenVPN pode operar com 3 tipos de criptografia. Nenhuma criptografia (apenas o túnel), criptografia com chaves estáticas e no modo TLS, em que as chaves são trocadas periodicamente. No nosso exemplo, usaremos criptografia com chaves estáticas.

1 – Execute os seguintes comandos:

# mkdir /etc/openvpn

Criamos o diretório onde estarão todos os arquivos de configuração.

# openvpn –genkey –secret /etc/openvpn/chave

Foi gerada uma chave de criptografia com o nome de chave (pode ser qualquer nome de arquivo) dentro do diretório /etc/openvpn.

Para visualizar o conteúdo da chave criada usar:
# cat /etc/openvpn/chave

Criar um arquivo de configuração:
vi /etc/openvpn/matriz.conf

Crie esse arquivo com o seguinte conteúdo:
###### INICIO #######
# Usar como interface o driver TUN
dev tun
# 10.0.0.1 ip que será assumido na matriz
# 10.0.0.2 ip remoto, ou seja, esse será o ip da filial
ifconfig 10.0.0.1 10.0.0.2
# Entra no diretório onde se encontram os arquivos de configuração
cd /etc/openvpn
# Indica que esse túnel possui uma chave de criptografia
secret chave
# OpenVPN usa a porta 5000/UDP por padrão.
# Cada túnel do OpenVPN deve usar
# uma porta diferente.
# O padrão é a porta 5000
port 5000
# Usuário que rodará o daemon do OpenVPN
user nobody
# Grupo que rodará o daemon do OpenVPN
group nobody
Usa a biblioteca lzo
comp-lzo
# Envia um ping via UDP para a parte
# remota a cada 15 segundos para manter
# a conexão de pé em firewall statefull
# Muito recomendado, mesmo se você não usa
# um firewall baseado em statefull.
ping 15
# Nível de log
verb 3
#adicionar a rota de saida
#Manter o tunel ativo e chave em caso de perda de conexao
persist-tun
persist-key
#
##Escreve um pequeno status sobre a conexao, reescrito a cada minuto
status /var/log/openvpn/status-matriz.log
#
##Vamos utilizar um arquivo para o log da conexao de cada filial
log-append /var/log/openvpn/matriz.log
##Ativar rotas automaticamente
#up /etc/openvpn-matriz/rota.up
#Sendo que o arquivo rota.up seria criado no init e depois atribuido a permissa
# de execucao do mesmo e aos usuari
#exemplo
##!/bin/bash
# route add -net 192.168.4.0 netmask 255.255.255.0 gw 10.2.0.1

###### FINAL #######

Criar o grupo nobody:
groupadd nobody

Criar o diretório para o log
mkdir /var/log/openvpn

Em seguida, vamos iniciar a conexão no servidor, faltando apenas configurar a filial. Execute o seguinte comando no servidor da Matriz:

openvpn –config /etc/openvpn/matriz.conf –script-security 3 system -daemon &

# ifconfig tun0
tun0 Link encap:Point-to-Point Protocol
inet addr:10.0.0.1 P-t-P:10.0.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1
RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0
TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb)

Se aparecer algo assim ou parecido, o túnel na Matriz já está pronto e a espera da conexão do XP.
Para automatizar na inicialização é necessário a criação de um arquivo contendo:

vim /etc/init.d/openvpn.matriz
##### Conteudo ####
#!/bin/bash
openvpn –config /etc/openvpn/matriz.conf –script-security 3 system -daemon &
##### Fim conteudo ###

Após da permissão ao mesmo e torna-lo executável:
chmod 777 /etc/init.d/openvpn.matriz
chmod +x /etc/init.d/openvpn.matriz
Colocar na inicialização (no meu caso runlevel 2):
ln -s /etc/init.d/openvpn.matriz /etc/rc2.d/S99openvpn.matriz

Para verificar o log pode-se usar:
tail -f /var/log/openvpn/(qual log necessitar)

Configurações no Windows XP

– Baixar e instalar o openvpn para o windows:

Homepage

Criar um arquivo no wordpad com os dados da matriz e nomea-lo como openmatriz.ovpn
Conteúdo do arquivo openmatriz.ovpn

dev tun
ifconfig 10.0.0.2 10.0.0.1
secret chavematriz.key
port 5000
remote servermatriz.noip.net
user nobody
group nobody
comp-lzo
ping 15
verb 3

Criaremos um arquivo chamado chavematriz.key referenciado acima na conf da openvpn do windows, com o conteúdo da chave gerado no linux na qual criou-se nesse exemplo o arquivo chamado “chave”

Conteúdo do arquivo chavematriz.key (copiar de acordo com o gerado no linux em /etc/openvpn/chave)

# 2048 bit OpenVPN static key
#
—–BEGIN OpenVPN Static key V1—–
4i9302i420dkslfdkljfklsdfj239200
1399c096dd471f316f244e9af0657c57
2411d282b95c6c21bdc9690d7815116e
4593d234e8a01b7f0bd48e5fb7ca9153
oij4j32kl4j324k34j2kl2j4k324j32k
a531fceb9070bd7dd7a49516aac4ae33
64416befaf41f323d75ef277636a1c5b
99bd98b660184350748cecef71e1ffca
253853cdb2af0e6a89bb6ead375d60cf
fkdsjfsdiojfsdiofjdsiofjdsiofjsd
2d2b7b2bd797a71469eddc6716e2e038
028776be9943f83eb704a43aa35f318d
556ff7d5e19f04437f82f42d106df087
c292a4805a97f6adba192b870a040ecd
564e0a49701eeffa04df27901f69ce46
25f090d57ee8b7e6ced7c7dfe1b0ae1f
—–END OpenVPN Static key V1—–

Para teste:
Após criados e colocados na pasta raíz do diretório openvpn em Arquivos de Programas, clicar com o botão diteito sobre openmatriz.ovpn e escolher “Start OpenVpn on this config file”

Tudo pronto, o drive TAP de conexão do xp irá se conectar e no shell do linux verá uma vez que a openvpn foi startado em modo daemon nele.

Lembrar de criar a rota no windows para o ip da sua rede interna saindo pelo ip criado no TAP (drive openvpn criado no conexoes de rede). Neste exemplo minha rede interna da empresa matriz era 192.168.254.X
route add 192.168.254.0 mask 255.255.255.0 10.0.0.1

Antes colocar os arquivos da vpn (key e o .ovpn) dentro da pasta config (arquivos de programa/openvpn…)
Para deixar automática a inicialização ir em:
Painel de Control -> Ferramentas administrativas -> Serviços

Lá terá openvpn Service colocar o Tipo de Inicialização automático e após clicar em Iniciar.

Deixe um comentário