1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Guia OpenVPN Lan-to-Lan

Discussão em 'Dúvidas e Suporte Técnico - GNU/Linux & *nix' iniciada por kasmafan, 13 de Outubro de 2012. (Respostas: 12; Visualizações: 2554)

  1. kasmafan

    kasmafan Power Member

    Boas

    Não sei se já existe algo do género por aqui mas eu não encontrei.
    Como tive de fazer o documento para a empresa partilho aqui convosco.
    Nota isto é um ponto de partida, cada um saberá as necessidades das vossas redes, por exemplo no guia não estão contempladas regras de iptables e o mesmo assume que o a máquina de vpn será o gateway nas respectivas redes, senão o for já sabem nos vossos routers terão de criar rotas para o tráfego destinado á vpn ir parar à máquina que estabelece a vpn.

    OpenVPN
    Lan-to-Lan


    Requisitos:
    • 2 Máquinas com ubuntu server. Estas máquinas deverão ter no mínimo 2 interfaces de rede cada uma.
    • Openvpn
    Cenário:
    • Servidor VPN SITE A
      • interface wan 172.16.0.1
      • interface lan 192.168.1.254 (gateway das máquinas dessa rede)
    • Cliente VPN SITE B
      • interface wan 172.17.0.1
      • interface lan 192.168.2.254 (gateway das máquinas dessa rede)
    Apóster instalado o SO nas respetivas máquinas:
    • sudo apt-get update
    • sudo apt-get install openvpn
    • sudo mkdir /etc/openvpn/easy-rsa/
    • sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa
    • sudo vi /etc/openvpn/easy-rsa/vars
      Alterem o que está entre aspas para o que quiserem.
    exportKEY_COUNTRY="PT"
    exportKEY_PROVINCE="LX"
    exportKEY_CITY="Lisbon"
    exportKEY_ORG="MyCompany"
    exportKEY_EMAIL="[email protected]"

    Geraros certificados para o server:
    • sudo su
    • mkdir /etc/openvpn/easy-rsa/keys
    • mkdir /etc/openvpn/ccd
    • cd /etc/openvpn/easy-rsa/
    • source ./vars
    • ./clean-all
    • ./build-dh
    • ./pkitool --initca
    • ./pkitool --server server
    • cd keys
    • cp server.crt server.key ca.crt dh1024.pem /etc/openvpn
    • exit
    Criaro ficheiro de configuração para o servidor:
    • cd /etc/openvpn
    • vi server.conf

    local172.16.0.1
    port 1194
    proto udp
    dev tun0
    caca.crt
    cert server.crt
    key server.key
    dhdh1024.pem
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persistipp.txt
    push "route 192.168.1.0255.255.255.0"
    client-config-dir /etc/openvpn/ccd
    route192.168.2.0 255.255.255.0
    client-to-client
    keepalive 10120
    user nobody
    groupnogroup
    persist-key
    persist-tun
    status/var/log/openvpn-status.log
    log-append /var/log/openvpn.log
    verb 3



    Geraros certificados para a máquina cliente:
    • cd /etc/openvpn/easy-rsa
    • sudo su
    • source ./vars
    • ./pkitool hostname-da-maquina-cliente
    • vi /etc/openvpn/ccd/hostname-da-maquina-cliente
      iroute 192.168.2.0 255.255.255.0
    • exit
    Copiarpara a máquina cliente os certificados (em /etc/openvpn):
    • ca.crt
    • hostname-da-maquina-cliente.crt
    • hostname-da-maquina-cliente.key
    Criaro ficheiro de configuração da máquina cliente:

    • vi /etc/openvpn/client.conf
      client
      dev tun
      proto udp
      remote 172.16.0.1 1194
      nobind
      user nobody
      group nogroup
      persist-key
      persist-tun
      ca ca.crt
      cert hostname-da-maquina-cliente.crt
      key hostname-da-maquina-cliente.key
      verb 3
      keepalive 10 60
    Ativaro routing entre interfaces em ambas as máquinas
    • vi /etc/rc.local
    echo “1” >/proc/sys/net/ipv4/ip_forward


    REBOOTàs máquinas



    Qualquer comentário/sugestão/crítica será bem vindo
    Obrigado
     
    Última edição: 13 de Outubro de 2012
  2. Nemesis11

    Nemesis11 Power Member

    Não tenho muita experiência com openvpn, mas do que usei, pareceu-se bastante bom.

    Numa ligação lan-to-lan é site to site, certo? Nas duas máquinas é criado um serviço do openvpn que arranca com as máquinas?
     
  3. kasmafan

    kasmafan Power Member

    Sim as máquinas assim que arrancam, ligam o openvpn e estabelecem a ligação e mantêm-na up sempre que haja conectividade.
    Sim é site to site
     
  4. ticoo-pt

    ticoo-pt Power Member

    Boas.

    Aproveitei este tutorial para configurar o openvpn no meu raspberry pi.
    Consigo estabelecer ligação com o servidor mas não consigo aceder à Internet nem a nenhum endereço local.

    Alguma ideia do que poderei ter configurado mal?
    Obrigado. :)
     
  5. pimpaz

    pimpaz Power Member

    Se te consegues ligar ao servidor não fizeste nada mal, a questão é que não está a haver encaminhamento do tráfego.

    Tens de configurar o ficheiro das IPTables para fazerem o reencaminhamento e depois abrir a porta no router.

    Eu devo ter seguido esse tutorial e mais uns quantos e embora estivesse tudo bem configurado o problema estava sempre no encaminhamento.

    O meu IP para o openvpn é o 10.8.0.1, e usei esta regra ->

     
  6. barricas

    barricas Power Member

    Talvez te falte isto (correr no terminal cada linha):

    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -o eth0 -j ACCEPT
    iptables -A FORWARD -i eth0 -o tun0 -m state -–state ESTABLISHED,RELATED -j ACCEPT

    PS: Tendo em conta que a gama de IPs da VPN seja 10.8.0.0/24, a interface principal eth0 e o tun, o tun0.

    Se for isto deve funcionar logo à primeira.
     
  7. ticoo-pt

    ticoo-pt Power Member

    Olá,

    Obrigado, vou tentar e darei feedback!
     
  8. ticoo-pt

    ticoo-pt Power Member

    Resolveu! Obrigado. :)
     
  9. barricas

    barricas Power Member

    NP, já instalei alguns servidores de OpenVPN, fiz sempre isso e deu ;)

    Secalhar era boa ideia adicionar ao tut do tópico.
     
  10. ticoo-pt

    ticoo-pt Power Member

    Queria agora configurar o cliente para apenas usar a vpn para endereços locais e usar a minha ligação à internet para todos os outros endereços.
    Estive a pesquisar, e tenho de definir as "route"s no ficheiro de configuração do cliente, mas não consegui chegar a nenhuma conclusão. Consegues dar-me umas dicas que me ajudem a configurar isto desta forma? :)
     
  11. barricas

    barricas Power Member

    Hmmm sendo assim tiras a linha do server push "redirect-gateway def1" e metes:

    push "route 192.168.1.0 255.255.255.0" (tal como indicado no tutorial do post)

    O problema é que se tiveres a rede onde está com endereços 192.168.1.X a rede de destino tem de ter diferente, ex: 192.168.2.X e no push mudas o 192.168.1.X para 192.168.2.X
     
  12. ticoo-pt

    ticoo-pt Power Member

    Mas nesse caso todos os clientes que se liguem têm essa limitação certo?
    Eu queria que cada cliente pudesse escolher a configuração desejada.
     
  13. barricas

    barricas Power Member

    A única maneira é mudar nas configurações do client. Mas nunca experimentei.
    Mas queres que quisesse escolher como assim? Que a VPN em vez de server só para endereços locais também fizesse routing a todo o trafego?

    Ficas com 2 versões de configuração de client: Uma apenas para ligações locais e outra para todo o trafego. Depois na GUI escolhes qual usar.
     

Partilhar esta Página