OpenVPN se comportando como PPTP

Veja neste artigo como criar uma VPN fácil e segura usando o OpenVPN e o OpenVPN GUI.

[ Hits: 126.754 ]

Por: Pedro Pereira em 26/01/2009 | Blog: http://www.pedropereira.net


Criando a bridge no servidor



Antes de mais nada, é preciso instalar o pacote bridge-utils para que você consiga trabalhar com bridges no Linux. Para isso:

# yum install bridge-utils

No site do OpenVPN você encontra dois scripts muito úteis para configurar a bridge facilmente, um para inicializar a bridge e outro para pará-la. Seguem os scripts, basta copiar e colar em arquivos executáveis no seu servidor:

#!/bin/bash

#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

# Define qual o dispositivo da bridge
br="br0"

# Qual o dispositivo TAP será incluído na bridge
# Para incluir vários:
# tap="tap0 tap1 tap2"
tap="tap0"

# Define qual a interface ethernet que entrará na bridge.
# A interface deve ser a que se conecta à rede interna.
eth="eth0"
eth_ip="192.168.8.4"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.8.255"

# Não precisa editar mais nada!

for t in $tap; do
    openvpn --mktun --dev $t
done

brctl addbr $br
brctl addif $br $eth

for t in $tap; do
    brctl addif $br $t
done

for t in $tap; do
    ifconfig $t 0.0.0.0 promisc up
done

ifconfig $eth 0.0.0.0 promisc up

ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

Para parar a bridge:

#!/bin/bash

####################################
# Tear Down Ethernet bridge on Linux
####################################

# Interface da bridge
br="br0"

# Interface TAP utilizada pelo OpenVPN
tap="tap0"

ifconfig $br down
brctl delbr $br

for t in $tap; do
    openvpn --rmtun --dev $t
done

Para inicializar a bridge, entre no diretório onde você criou o script que inicializa a bridge e:

# chmod +x bridge-start.sh
# ./bridge-start.sh


Para pará-la:

# ./bridge-stop.sh

Para automatizar este processo e inicializar a bridge sempre que o OpenVPN for inicializado, adicione as duas linhas no final do arquivo de configuração da sua VPN:

up /etc/openvpn/vol-vpn/bridge-start.sh
down /etc/openvpn/vol-vpn/bridge-stop.sh

A primeira linha inicializa a bridge junto com o OpenVPN, a segunda para. Lembre-se que quando o seu sistema é configurado como bridge, ele perde o IP e fica inacessível pela rede. Para conseguir administrar seu servidor remotamente, pare a VPN ou coloque mais uma placa de rede que não participe da VPN apenas para conectar no servidor pelo SSH.

Página anterior     Próxima página

Páginas do artigo
   1. Cenário e opções
   2. Instalando o OpenVPN no CentOS 5.2 Linux
   3. Configuração do servidor
   4. Gerando os certificados
   5. Criando a bridge no servidor
   6. Configuração dos clientes
   7. Testando a conexão
   8. Considerações finais
Outros artigos deste autor

VPN com FreeS/WAN

Aplicando patches no kernel

Instalando o Ocomon 1.40 no FreeBSD 6.0

Auditando senhas com John The Ripper

Leitura recomendada

PacketFence em Debian 6

Segurança no SSH via plugins da PAM

Cheops: uma ótima ferramenta de rede

Introdução ao Anonimato na Web - Web Anonimity

Certificações em Segurança: para qual estudar?

  
Comentários
[1] Comentário enviado por paulorvojr em 26/01/2009 - 21:46h

Belo artigo!!,

ja usei muito o openvpn, alias foi a primeira solução de vpn que usei, o openvpn, muito bom recomendo.

o unico chato era que algumas pessoas (usuario chatos) nao queriam usar o cliente do openvpn em suas maquinas windows, ai tive que apelar pro PPTPD, ai o usuário so "disca" igual a uma vpn a la windows microsfot hehe.


recomendo a todos ae!! nao utilizei este artigo, mas pelo que li esta todo correto

parabéns!

[2] Comentário enviado por leandromoreirati em 27/01/2009 - 09:34h

Pogo,
Só nao entendi qual é a função da bridge nesse caso, pois tenhos alguns servidores com open e nao uso bridge nele axei interessante.
Outra coisa para deixa-la acessível na rede basta no script que carrega a bridge colocar um ip da valido na rede local, faço isso em alguns clientes e a maquina se torna uma bride mas com a acessibilide de um host linux da rede.

Att.

Moreira.

[3] Comentário enviado por pogo em 27/01/2009 - 10:43h

Moreira,

A bridge no caso é para que os protocolos que utilizem broadcast não dêem problemas e funcionem corretamente. Sem a bridge, a VPN é roteada e roteadores não fazem forward de broadcasts. Neste caso, o acesso a compartilhamentos com \\servidor\arquivos, por exemplo, não funcionariam (de acordo com o FAQ oficial do OpenVPN).

[]'s

Pedro.

[4] Comentário enviado por elgio em 30/01/2009 - 10:21h

Parabéns pelo artigo. Gostei muito de sua linguagem, explicando cada passo, indo além do que sempre costumamos ver no VOL: mera receita de bolo.

Respondendo ao leo_jfa: uma VPN em modo bridge se comportará logicamente como se fosse um switch. Imagina que tem um server ligado na porta 1 do switch e o outro server na porta 24, mas que o switch na verdade são dois, separados por KMs uma parte do outro e como não tem um cabo quilométrico para ligar as duas partes, se usa a VPN em modo bridge. Tudo que entra na porta 1 do "switch" passa pela VPN para sair na porta 24, tal qual um switch.

EU NÃO RECOMENDO bridge a menos que você realmente precise dela. Em modo roteador é muito mais eficiente pois os broadcasts serão cortados. Nosso amigo aqui explicou bem porque precisava de bridge e porque usou ele. Certíssimo, com a ressalva que compartilhamento de Windows dá para ser feito inter-redes, se houver um servidor de Wins disponível.

No mais, use bridge com moderação! Na maioria dos casos de VPN, usar em modo roteador atende as necessidades.

[5] Comentário enviado por matheus.silva em 31/01/2009 - 15:04h

Fala Pedro blz????

Cara. show de bola o artigo.. com certeza será de grande utilidade pra mim que tenho muitos clientes com servidores windows e uma situação parecida com a sua.

Parabéns!!

Matheus

[6] Comentário enviado por juniorarruda em 15/02/2009 - 10:34h

Parabens pelo artigo

Agora me tira uma dúvida, essa implantaçao seria caso eu quisesse colocar várias estações independentes se conectando diretamente ao servidor da matriz. Mas se em alguma filial eu tiver um servidor firewall, seria melhor eu fazer o firewall se conectar ao servidor VPN da matriz roteando o tráfego da sub-rede da filial para matriz ou fazer a conexão independente nas estação?

Obrigado

[7] Comentário enviado por pogo em 16/02/2009 - 08:46h

Bom dia Júnior,

Se você vai fazer uma VPN entre filiais, é melhor fazer uma VPN roteada entre 2 servidores. Assim, toda a sua rede interna sempre terá acesso à rede da outra filial sem necessidade de cada estação se conectar.

A VPN que descrevi no artigo só é interessante caso os usuários necessitem acessar a VPN quando estão fora de qualquer filial da empresa (como por exemplo em suas casas) e necessitam de algum recurso que só está disponível na rede interna.

Matheus,

Valeu pela força cara! Espero que o texto realmente te ajude =)

[]'s!

[8] Comentário enviado por doldan em 07/03/2009 - 07:49h

Muito bom artigo, para o fim a que se destina.
Tenho uma duvida que ainda não resovi, como posso configurar o openvpn apenas para conectar a uma vpn na matriz, não usamos certificados, no windows usamos o cisco vpnclient, colocamos os logins de acesso e pronto, quero passar essa conexão para o servidor linux debian, mas não consegui os parâmetros para configurar o openvpn.

[9] Comentário enviado por pogo em 07/03/2009 - 13:14h

doldan,

você pode usar as mesmas instruções que estão no texto, mas você não necessariamente vai precisar do openvpn gui. você pode inicializar o openvpn como um serviço no windows (instalando apenas o openvpn, não o openvpn gui).

qualquer dúvida é só deixar um comentário aqui =)

[]'s

pogo

[10] Comentário enviado por tomassoni em 26/03/2009 - 21:34h

Cara, estou com uma duvida para logar mais de um cliente é possível? tenho 9 filiais gostaria de conectar as 9 em um único ponto tem como com OpenVPN eu já dei um breve pesquisada e não encontrei muita coisa a respeito.

Agradeço desde já.

[11] Comentário enviado por pogo em 27/03/2009 - 11:21h

tomassoni,

Tem sim, sem problema nenhum. O OpenVPN não possui limite de clientes (se você não definir isso na confiugração, como foi mostrado no artigo).

[]'s

Pedro

[12] Comentário enviado por eduardo em 30/09/2009 - 15:14h

Boa tarde,

Muito bom o seu artigo, mas gostaria de saber se você tem como me dar um complemento. Preciso ustilizar o openVPN GUI com autenticação também. Pode ser com certificados e senha ou apenas senha.

Que alteração preciso fazer para habilitar a autenticação?

Desde já agradeço,
Abraços

[13] Comentário enviado por cabriocarico em 03/09/2010 - 10:36h

Bom dia,
Caro pogo, eu andei lendo seu artigo e achei muito interessante. Resolví entrar em contato para pedir ajuda na soluçÃO DE UM PROBLEMA.
Eu trabalho com o DEBIAN LENNY, e através de meu servidor, eu conseguime conectar com um VPN, onde o servidor MATRIZ fica em outro lugar.
NO meu servdior FILIAL, eu conectei sem muitos problemas. COnsigo pingar no IP da VPN.
Mas não estou conseguindo rotear para minha rede interna. Assim, ao ver o comentário [7], resolví solicitar sua ajuda.
As minhas estações da rede interna usam WINX XP, com endereços 192.168.0.XXX.
Quando dou tracert IP da VPN, nem se quer chega no meu servidor.
O que devo fazer para conseguir com que minha rede interna consiga pingar no IP da VPN?
OBS: SERVIDOR sem FIREWALL, sem PROXY, com DHCP e compartilhamento (INTERNET).

[14] Comentário enviado por pogo em 03/09/2010 - 11:00h

cabriocarico,

Você tem que verificar 2 detalhes:

* As redes que você está tentando interligar possuem o mesmo IP? Por exemplo, as duas redes são 192.168.0.X?
* Você tem regras no IPTables para permitir o roteamento entre as duas redes? O IP Forward no seu servidor gateway está habilitado?

Qualquer coisa posta aí :)

[]'s
Pedro Pereira

[15] Comentário enviado por cabriocarico em 05/09/2010 - 15:27h

Eu recebí os certificados gerados para eu poder me conectar com uma VPN e assim compartilhar para minha rede interna.
O meu servidor consegue se conectar, autentica a conexão, eu consigo pingar do meu servidor no ip da VPN 10.X.X.X. Sem problemas.
Mas de qualquer PC da minha rede interna eu não consigo pingar no ip da VPN 10.X.X.X.
Segue abaixo minha configuracao:
eth0: 192.168.X.X (VELOX)
eth1 192.168.0.1 (rede interna).
pc da rede interna 192.168.0.5

no arquivo rc.local

Modprobe tun
Openvpn -–daemon -–config /etc/openvpn/config-generic.ovpn
Iptables –t nat –A POSTROUTING –o tun0 –J MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Executa o arquivo e não dá erro nenhum. Mas nao compartilha a vpn com minha rede interna.

[16] Comentário enviado por pogo em 05/09/2010 - 15:33h

cabriocarico,

O problema pode ser alguma outra regra no seu firewall que está impedindo a comunicação entre as redes. Reveja as regras e verifique por alguma que esteja negando pacotes de ou para a rede remota.

[]'s
Pedro Pereira

[17] Comentário enviado por cabriocarico em 06/09/2010 - 00:12h

Pogo, o pior que no servidor, ainda não tem nenhum firewall e nem proxy (comentário 13). Mas ainda vou implementar.

[18] Comentário enviado por lflavio_sp em 17/10/2011 - 23:32h

Naum conheço mto de linux mas ja refiz esses passos mas não consegui conectar da essa mensagem sempre e estou precisando implantar urgente na empresa o q pode estar acontencendo ...
eth0 .: 192.168.0.1 local
eth1 .: 10.1.1.2
Na bridge estou colocando eth0 com esse ip
no openvpn bridge 192.168.0.1 255.255.255.0 192.168.0.10 192.168.0.20
on Oct 17 23:26:17 2011 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2006
Mon Oct 17 23:26:17 2011 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Mon Oct 17 23:26:17 2011 LZO compression initialized
Mon Oct 17 23:26:17 2011 UDPv4 link local (bound): [undef]:1194
Mon Oct 17 23:26:17 2011 UDPv4 link remote: 10.1.1.2:1194
log.:
tls error : Cannot Locate HMAC in incomming packet


Netstat mostra a porta 10.1.1.2:1194 mas qdo dou um nmap naum mostra, deveria mostrar ???



Se puder me ajudar agradeço .
Grato


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts