VPN com openVPN no Slackware 11

Este artigo tem como objetivo configurar uma VPN site-to-site em 2 servidores Slackware e mostrar como uma VPN não é um bicho de sete cabeças.

[ Hits: 54.106 ]

Por: Perfil removido em 25/02/2007


Configuração



Precisamos criar a pasta das confs, pois ela não é criada por automático:

# mkdir /etc/openvpn

Depois de criada a pasta devemos gerar uma chave que será usada na criptografia para abrir o túnel:

# openvpn --genkey-secret /etc/openvpn/chave

Agora devemos criar o arquivo de configuração, dentro da pasta /etc/openvpn crie um arquivo chamado servidor1.conf, edite ele e dentro você irá colocar as linhas abaixo:

dev tun # irá usar a interface tun ( ex: tun0, tun1, tun2, ...)

ifconfig 1.0.0.1 1.0.0.2 # irá setar o IP do túnel com o do servidor1 de 1.0.0.1 e do servidor2 1.0.0.2

cd /etc/openvpn # irá definir a pasta de configuração do OpenVPN

secret chave # chave de criptografia

port 5000 # porta utilizada para a comunicação do túnel

comp-lzo # Usa a biblioteca lzo

ping 15 # pinga a cada 15 segundos para manter a conexão

verb 3 # nível de log

Pronto, salve o arquivo.

Para facilitar a vida de muitos utilizaremos um script para não ter de subir o daemon do openVPN na mão toda hora.

Crie um arquivo dentro de /etc/rc.d/ chamado rc.vpn:

# cd /etc/rc.d
# touch rc.vpn


Depois deixe ele executável:

# chmod +x rc.vpn

#!/bin/bash
IP_REMOTO="200.x.x.x" # IP válido do servidor2
IP_VPN_REMOTO="1.0.0.2"
IP_REDE_REMOTA="192.168.0.0"
MASQ_REDE_REMOTA="255.255.255.0"

iptables -I INPUT -j ACCEPT -p udp -s $IP_REMOTO --dport 5000

openvpn --config /etc/openvpn/server.conf --daemon

# Permitir trafego pela VPN
iptables -I FORWARD -j ACCEPT -i tun0
iptables -I FORWARD -j ACCEPT -o tun0

# Adicionando as rotas da VPN
route add -net $IP_REDE_REMOTA netmask $MASQ_REDE_REMOTA gw $IP_VPN_REMOTO.

Agora vamos configurar a filial.

Faça o mesmo procedimento no servidor da filial, se preferir pode até copiar as confs para lá, pois mudarão apenas algumas linhas. A chave que foi gerada deve ser a mesma, portanto copie do servidor da Matriz para o da Filial.

Crie o arquivo /etc/openvpn/servidor2.conf, para quem copiou a conf apenas renomeie:

dev tun

ifconfig 1.0.0.2 1.0.0.1 # Aqui fica IP do servidor2 e o IP do servidor1

cd /etc/openvpn

remote 200.x.x.x # Devemos colocar aqui o IP válido aonde fica o servidor1

secret chave # chave de criptografia deve ser a mesma que no servidor1

port 5000

comp-lzo

ping 15

verb 3

Vamos ao script:

#!/bin/bash
IP_REMOTO="200.x.x.x" # ip válido do Servidor1
IP_VPN_REMOTO="1.0.0.1"
IP_REDE_REMOTA="192.168.1.0"
MASQ_REDE_REMOTA="255.255.255.0"

iptables -I INPUT -j ACCEPT -p udp -s $IP_REMOTO --dport 5000

openvpn --config /etc/openvpn/server.conf --daemon

# Permitir trafego pela VPN
iptables -I FORWARD -j ACCEPT -i tun0
iptables -I FORWARD -j ACCEPT -o tun0

# Adicionando as rotas da VPN
route add -net $IP_REDE_REMOTA netmask $MASQ_REDE_REMOTA gw $IP_VPN_REMOTO.

Agora é só rodar os scripts nos servidores e pronto, está criada a VPN.

Página anterior    

Páginas do artigo
   1. Introdução e instalação
   2. Configuração
Outros artigos deste autor

Quero usar o Baiacu em casa, mas será que eu posso?

Ubuntu - configurando dois monitores numa mesma placa de vídeo

Um tour pelos visualizadores de imagem para Linux

Slapt-get 0.10.2s - Conceitos Básicos

Aprendendo a modelar forms no Kylix

Leitura recomendada

Quebrando a criptografia RSA

Squid 3 - Instalação no Debian/Ubuntu

AUDIT: Auditoria de arquivos no Linux para conhecer quem fez alterações em arquivos

Jails em SSH: Montando sistema de Shell Seguro

Descobrindo serviço através das portas

  
Comentários
[1] Comentário enviado por maiam em 25/02/2007 - 22:28h

muito bom estou ate usando ele

[2] Comentário enviado por y2h4ck em 26/02/2007 - 08:39h

Vale a pena comentar, e eu acho que deveria ter sido mencionado no artigo, que o openvpn, não e a forma mais segura de implementar uma infra-estrutura com ambiente Virtual Private Network, pois podemos citar algumas falhas de segurança que o mesmo possui:

- Toda a comunicação baseia-se em uma única troca de chaves SSL
- A Chave SSL é trocada mediante uma checagem de PSK (ja começa o erro aqui)
- Não a distinção de fases, ou seja, se um intruso capturar os dados do inicio da sessão irá conseguir o certificado SSL diretamente no Header.


Mas, melhor com openvpn, do que com nada !
:)

Belo artigo. Parabéns.

[3] Comentário enviado por jlsistemas em 26/02/2007 - 14:18h

muito bom o artigo bem explicado que até fica bem facinho (suponho) de implantar. mas só uma dúvida me ocorreu,

para implantar uma VPN eu preciso ter IP fixo nas filiais e na matriz???

desde de já muito grato..

e mais uma vez parabéns pelo artigo..

[4] Comentário enviado por removido em 26/02/2007 - 15:29h

eu aconselho a usar ip fixo por motivos de liberação no firewall.
mas pode usar ip dinamico usando algum ddns, no-ip, etc.
[]s

[5] Comentário enviado por luiscarlos em 08/03/2007 - 13:26h

Tem como eu usar autenticacao com o openvpn? usuario e senha, como faço?

[6] Comentário enviado por sektor em 15/05/2007 - 17:06h

sou meio novato nessa parte de vpn, gostaria de saber uma coisa, depois de toda essa configuração feita como faço para acessar uma maquina da filial ou da matriz e vice e versa, vai mostrar nos meus locais de rede do windows? as maquinas da filial por exemplo, sendo que estou na matriz, gostaria de saber mais detalhadamente isso...obrigado!

[7] Comentário enviado por ajas em 05/06/2007 - 16:07h

Prezados, primeiramente sou novado no mundo linux, acompanhei esso tutorial, porém com dois probleminhas: 1º depois que eu start meu openvpn o servidor ficar sem comunicação com a rede interna não dando nenhum ping tanto dele quanto dos outros pc da rede interna. 2º verificando os status no firewall não tem nenhuma passagem pela porta udp nem de entradanem saída. Como posso resolver?
Obrigado a todos

[8] Comentário enviado por antonioleite em 26/08/2007 - 17:48h

Amigo ja procurei por diversos artigos e livros e nada é o seguinte: Quando eu executo o ifconfig tun0 da o seguinte erro: TUN0: ERRO obtendo informações da interface: %s dispositivo não encontrado.
Só que eu ja reinstalei o Debian etch umas 1000 vezes e carrego o TUN "modprobe tun" o mesmo esta presente quando dou lsmod e sempre paro ai. Pergunto o que estou fazendo de errado se segui todos os passos acima, eu preciso estar com o outro computador conectado na filial para o TUN subir? Uma ajudinha por favor... Obrigado

[9] Comentário enviado por lipecys em 30/08/2007 - 15:41h

Valew cara, muito boa dica.

[10] Comentário enviado por sancmk em 14/09/2007 - 00:40h

Gostei deste tutorial, parabéns por contribuir com a comunidade. Gostaria no entanto de relatar algo que pode acontecer na configuração da VPN, aconteceu na minha configuração, após ter realizado os passos descritos neste tuto: a VPN não subia porque o módulo da interface que faz o túnel não tinha sido carregado, assim executei o comando "modprobe tun" para carregar o módulo "tun".

Os comandos relacionados são:

lsmod - lista os módulos carregado;
rmmod <modulo> - descarrega um módulo;

[11] Comentário enviado por removido em 18/05/2009 - 09:04h

Olá amigo eu instalei do jeito que ta no artigo, mas ta dando esse erro ao gerar a chave:

Unrecognized option or missing parameter(s) in [CMD-LINE]:1: genkey-secret (2.0.9)
Use --help for more information.


Você pode me dizer como resolver?

Alexandre

[12] Comentário enviado por removido em 18/05/2009 - 09:49h

A linha estava errada segue a linha correta.

openvpn --genkey --secret /etc/openvpn/chave

[13] Comentário enviado por vpf em 11/02/2010 - 12:16h

Amigo. Primeiramente parabéns pelo artigo. Fiz a implemetação e ficou ótimo. Agora preciso adicionar uma 2 filial. Como fica? É possível? O que devo fazer no script da segunda filial. Obrigado!

[14] Comentário enviado por ogaihtsm em 11/07/2011 - 12:05h

Olá a todos.
Muito bom artigo.
Encontrei o seguinte problema na configuração da minha vpn.
Tenho na matriz um servidor CentOS. Com o comando "service openvpn start" a interface da vpn na matriz funciona ok.
Agora na minha filial tenho um servidor Slackware. Ao dar o comando "openvpn --config /etc/openvpn/tun4 --daemon" a interface tun4 não aparece e a conexão entre os dois servidores nao acontece.
Com relação aos arquivos .conf .key e .up nos dois servidores estão, aparentemente, tudo ok.
Existe algum outro comando para subir a vpn no slackware? Não sei o que pode estar acontecendo.~
Desde-já muito obrigado a quem puder me ajudar!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts