OpenVPN + Bridge no Ubuntu Server

Este artigo mostra como utilizar uma bridge para unir duas redes diferentes, através de um link de comunicação utilizando OpenVPN.

[ Hits: 72.759 ]

Por: alessandro em 15/09/2010


Configuração do cliente



Para a configuração dos clientes deve-se copiar basicamente os mesmos arquivos que foram utilizados na configuração do servidor, só que correspondente a cada cliente, são eles:
  • parâmetros de DH, é o mesmo criado no servidor.
  • certificado "ca" do servidor, é o mesmo criado no servidor.
  • "certificado do cliente" e "chave do cliente", é a chave do cliente criada no servidor (estes dois são mais importantes e devem ter nome único para cada cliente).

Recomenda-se cuidado ao transferir arquivos para clientes, evitando e-mail e transferência via FTP, recomenda-se utilizar shell seguro, SFTP, ou copiar em pendrive e levar aos clientes, aí fica a critério de cada um na transferência dos arquivos, como estou utilizando máquinas virtuais para realizar este artigo, vou fazer transferência via pendrive.

Arquivos necessários no cliente:
  • cliente.key
  • cliente.crt dh1024.pem ca.crt

OpenVPN tem clientes para Linux e Windows, em ambos os casos é necessária a criação de uma pasta para colocar os certificados e ter o OpenVPN instalado no cliente. Para Linux baseado em Debian ou Ubuntu é só instalar o OpenVPN com comando*:

sudo apt-get install openvpn

* Procedimento é o mesmo utilizado para instalação do servidor.

Dentro do diretório /etc/ crie também o diretório openvpn e dentro dele o diretório Keys, copie as chaves geradas no servidor para esse diretório.

Para clientes Windows é só baixar o cliente OpenVPN no site openvpn.se/download.html. A instalação é basicamente next-next-finish, sem segredos, e copiar as chaves para diretório de instalação do OpenVPN, geralmente em c:\Arquivos de Programas\OpenVpn\Config|keys.

Agora vamos gerar o arquivo de configuração dos clientes, é nele que devem estar contidos os parâmetros para realizar a conexão com servidor OpenVPN. No caso do Linux esses arquivos podem ser colocados na pasta /etc/openvpn ou em outra que desejar, no caso do Windows deve-se colocar obrigatoriamente na pasta c:\Arquivos de Programas\OpenVpn\Config.

Exemplo do nosso cliente.conf (utilize um editor para criar o arquivo cliente.conf):

remote 192.168.137.254 //endereço servidor
dev tap0 //interface vpn
comp- lzo
keeplive 5 30 //tempo de vida
persist-key //chave persistente
tls-client //padrão de cliente
client //avisa servidor que é cliente
pull //pede um endereço ip ao servidor.
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/cliente.crt
key /etc/openvpn/keys/cliente.key

Abaixo um exemplo de configuração de um cliente para Windows.

remote 192.168.137.254
dev tap
comp-lzo
keepalive 5 30
persist-key
tls-client
client
pull
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/macgyver.crt
key keys/macgyver.key

Cada cliente deve ter seu arquivo de configuração de acordo com o seu sistema operacional e também nome das chaves que é único para cada cliente, lembre-se disso.

Uma dica importante é manter seus computadores com relógios sincronizados, pois a conexão VPN depende de relógios sincronizados para poder estabelecer uma conexão.

Comando para ajustar a hora a um servidor NTP:

# ntpdate -u a.ntp.br ou pool.ntp.org

Página anterior     Próxima página

Páginas do artigo
   1. Objetivo
   2. Gerando chaves
   3. Configuração do servidor
   4. Configuração do cliente
   5. Criando a Bridge
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Como instalar o SVN no Slackware 10.2 utilizando o Apache2 como servidor

"Usando" 2 Slackwares instalados no mesmo HD - O problema: vmlinuz

Entendendo o processo de boot

Apache2 + PHP5 + VirtualHosts no Debian e Ubuntu

MUGPIS 14.1

  
Comentários
[1] Comentário enviado por obernan em 15/09/2010 - 09:43h

Primeiramente parabens pelo artigo e obrigado pela contribuicao, estou louco para testar seu tutorial, mas so tenho uma duvida, se a rede do servidor 192.168.137.0/24 e a dos clientes e 172.16.0.0/24, porque que na conf do servidor vc colocou "server-bridge 192.168.0.254 255.255.255.0 192.168.0.100 192.168.0.110" //aqui endereço do servidor e sua configuração para suporte a bridge e também faixa de endereços para clientes.
Porque pelo que eu pude endender nao precisa adicionar rotas, os clientes pegam a mesma faixa de ip da matriz.

[2] Comentário enviado por obernan em 15/09/2010 - 09:55h

Ah !!!!! E com relaçao as portas vc nao sitou ai, tem que colocar nas confs, fazer redirecionamento de porta !!!!!!!!

[3] Comentário enviado por macgyver_rp em 15/09/2010 - 09:57h

Ow obrigado ...
desculpa falha nossa..coloquei arquivo editado e dei print da tela..me enganei na hora do ip correto é abaixo como você observou bem.

"server-bridge 192.168.137.254 255.255.255.0 192.168.137.100 192.168.137.110'" .

[4] Comentário enviado por macgyver_rp em 15/09/2010 - 10:10h

Outra observação , quem tem IP valido de internet exemplo 189.23.159.10 de alguma operadora vai ter colocar no arquivo de configuração do cliente endereço valido internet do servidor.
Tem opção de informar a porta no config sim e rota de acordo com configuração de sua rede.

exemplo

push "route xxx.xxx.xxx.xxx mmm.mmm.mmm.m" onde x é seu ip e m sua mascara de rede e adiciona linha no config do servidor caso sua rota com internet ou rede seja diferente dos padrões e porta voce adiciona opção no cliente config caso porta não seja a padrão do openvpn-server 1194 udp.
segue link abaixo que tem dicas boas.
http://www.dicas-l.com.br/arquivo/openvpn_com_os_clientes_na_mesma_rede.php

[5] Comentário enviado por obernan em 16/09/2010 - 23:10h

Oh rapa, to testando, quando terminar posto aqui !!!!
Brigadao, valeu mesmo !!!!
Abraço

[6] Comentário enviado por tiagozappa em 15/02/2012 - 10:57h

Muito show o arquivo, tenho uma dúvida referente a configuração do servidor.
Segue a descrição do meu ambiente.

MATRIZ.
Rede interna 192.168.0.0/24
Ip rede interna do servidor (eth0) 192.168.0.1 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL

Filial
Rede interna 192.168.1.0/24
Ip rede interna do servidor (eth0) 192.168.1.1 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL

Minha dúvida é referente a configuração do servidor.
a opção do server-bridge, deixo assim:
server-bridge 192.168.0.1 255.255.255.0 192.168.0.200 192.168.0.230

Ou estou usando tudo errado, e para usar a opção de serve brigde, eu usaria na matriz e filial a mesma rede (192.168.0.0/24)
Colocando a seguinte configuração:
MATRIZ.
Rede interna 192.168.0.0/24
Ip rede interna do servidor (eth0) 192.168.0.1 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL

Filial
Rede interna 192.168.0.0/24
Ip rede interna do servidor (eth0) 192.168.0.200 255.255.255.0
IP rede internet (eth1) 172.0.0.2 -- é o ip de saída para o ADSL
GW do servidor (eth1) 172.0.0.1 -- é o ip do modem ADSL

E daí usando a opção:
server-bridge 192.168.0.1 255.255.255.0 192.168.0.200 192.168.0.230
(aqui no range, começa pelo ip do primeiro client? ou seja; o ip do servidor da filial?)

Ou seja, eu divido a faixa de ip da rede 192.168.0.0 e deixo tanto matriz, como filial com a mesma faixa de ip, e faço os dois server conversarem com a vpn+bridge, assim, as duas redes conversam????

Deu para entender o que quiz dizer?? qual das duas soluções posso executar??? obrigado. f

[7] Comentário enviado por macgyver_rp em 15/02/2012 - 16:16h

Boa Tarde Tiago,

Respondendo sua Duvida, essa solução serve para tanto unir redes com IP´s diferentes ou para unir redes de mesma faixa separadas pela rede wan da operadora de internet.

Você pode usar faixa diferente da sua rede da matriz na filial...resultado - pc´s da filial não acessam matriz.
mesma faixa - pc da filial recebe endereço da mesma faixa - pcs filial acessam matriz.

Bridge
matriz uma faixa 192.168.0.0/24
filial uma faixa 192.168.1.0/24
bridge uma faixa 192.168.2.0/24 - com um só cliente o servidor da filial

quando server da filial se conectar a matriz - vai assumir ip da bridge 192.168.2.100 por exemplo ai redirecionar trafego da interface eth0 para eth1 depois para interface br0 - bridge uni a rede wan a lan usando VPN garante mais segurança dentro de túnel criptografado. então tanto faz endereço da rede interna da matriz ou da filial estarem na mesma faixa...importante é que para evitar conflitos de IP determinar ranges diferentes na matriz e da filial para evitar ter 2 hosts com mesmo ip por serem servidores DHCP diferentes... ideal serem de faixas diferentes como você coloca na opção 1 ..unica coisa que na bridge você tem colocar faixa diferente da faixa da eth0. .
No exemplo do artigo estava rede local -
se voce tem ip fixo na matrix nos arquivos de config devera usar ip dado pela sua operadora. porque na hora de conectar filial com matriz na filial no config tem estar ip da matrix valido de internet não ip 172.0.0.2 .

espero que tenha ajudado.
site abaixo tem dica legal.
http://www.dicas-l.com.br/arquivo/openvpn_com_os_clientes_na_mesma_rede.php#.Tzv2Mk4geuk



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts