+ Responder ao Tópico



  1. #1
    Avatar de escastilhomg
    Ingresso
    Apr 2011
    Localização
    São Sebastião Do Paraíso, Minas Gerais, Brazil, Brazil
    Posts
    6

    Padrão Dúvidas para implementar uma rede VPN

    Pessoal, boa noite!

    Estou quebrando a cabeça aqui com uma configuração de VPN com o OpenVPN, gostaria de pedir ajuda de vocês, abaixo vou descrever tudo o que foi feito até o momento, se tiver algo errado me mostrem por favor.

    Estou configurando para interligar duas empresas de cidades diferentes, ambas utilizam conexão ADSL com IP Dinâmico, sendo assim, criei uma conta no NO-IP e instalei o aplicativo na Matriz, segue abaixo as configurações que foram feitas no servidor Firewall/Proxy de ambas as empresas.

    Configurações de IP's da loja matriz
    Código :
    IP Rede Local: 192.168.0.0/24
    Gateway: 192.168.0.1
    VPN: 10.0.0.0/16

    Configurações de IP's da loja filial
    Código :
    IP Rede Local: 192.168.1.0/24
    Gateway: 192.168.1.1
    VPN: 10.1.0.0/16

    Foram feitas as seguintes configurações nos servidores da matriz e da filial:

    1º Passo: instalação da biblioteca lzo:
    download: http://www.oberhumer.com/opensource/...zo-2.04.tar.gz
    descompactar:
    Código :
    # tar -zxvf lzo-2.04.tar.gz
    em seguida, dentro do diretório descompactado, foi executado os seguintes comandos:
    Código :
    # ./configure
    # make
    # make install
    # ldconfig

    O processo foi feito com sucesso.

    2º Passo: instalação do OpenVPN
    download: http://swupdate.openvpn.net/communit...n-2.1.4.tar.gz
    descompactar:
    Código :
    # tar -zxvf openvpn-2.1.4.tar.gz
    em seguida, dentro do diretório descompactado, foi executado os seguintes comandos:
    Código :
    # ./configure
    # make
    # make install

    O processo foi feito com sucesso

    Após as instalações acima, deu-se início a configuração da VPN:
    Foi criado um diretório com o nome openvpn, dentro do diretório /etc
    Código :
    # mkdir /etc/openvpn

    dentro do diretório, openvpn foi criada a chave de criptografia, com o comando:
    Código :
    # openvpn --genkey --secret chave.key

    Logo após foi criado o arquivo de configuração, com o seguinte conteúdo:
    Código :
    # Arquivo de Configuração simples (Matriz)
    #
    proto udp
    dev tun
    ifconfig 10.0.0.0 10.1.0.0
    secret /etc/openvpn/chave.key
    port 5900

    Todo o procedimento acima feito no servidor da Matriz foi feito também no servidor da Filial, exceto o arquivo de configuração que foi configurado conforme abaixo:
    Código :
    # Arquivo de Configuração simples (Filial)
    #
    proto udp
    remote matrizac.no-ip.info
    dev tun
    ifconfig 10.1.0.0 10.0.0.0
    secret /etc/openvpn/chave.key
    port 5900

    Após estas configurações, foi criada uma conta no site do No-IP - Dynamic DNS, Static DNS for Your Dynamic IP e um host com o IP dinâmico da Matriz. Depois feita a instalação do aplicativo NO-IP
    no servidor da Matriz, com o endereço 'matrizac.no-ip.info' e iniciado o serviço do NO-IP.

    Foi executado o seguinte comando no servidor Matriz:
    Código :
    # openvpn --config /etc/openvpn/matriz.conf &

    e depois o mesmo comando no servidor Filial
    Código :
    # openvpn --config /etc/openvpn/filial.conf &

    Após executar os comandos acima, foram criados em cada servidor uma nova interface 'tun0'

    Para finalizar a configuração foram criadas as duas rotas, para a Matriz e Filial, com os seguintes comandos abaixo:

    Matriz:
    Código :
    # route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.1.0.0

    Filial:
    Código :
    # route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.0

    Por fim foram acrescentadas algumas linhas nos Firewalls de ambas Empresas:

    Matriz:
    Código :
    iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE
    iptables -A FORWARD -i tun0 -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT

    Filial:
    Código :
    iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE
    iptables -A FORWARD -i tun0 -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT

    Foram feitas também a liberação da porta 5900 em ambos servidores.

    Fazendo a configuração acima, o correto seria a matriz 'enxergar' a filial e vice-versa, mas quando tento fazer o Ping, nenhuma responde.

    Esta tudo correto com as configurações ou estou errando em algum lugar?

  2. #2

    Padrão Re: Dúvidas para implementar uma rede VPN

    Ola,
    O erro mais comum quando se configura o openvpn eh configura-lo para comunicacao host a host com a opcao:
    ifconfig 10.0.0.0 10.1.0.0 ( com esta opcao tem que ter um tunel para cada cliente conectado na rede ) o correto neste caso é usar:
    server 10.0.0.0 255.255.255.0
    pois isto ira configurar uma rede em comum entre os pontos da vpn, ou seja, um unico tunel para todos os clientes.
    Para que os clientes da vpn enxerguem a rede da matriz eh preciso o comando:
    push "route 192.168.0.0 255.255.255.0"
    Para que o servidor reconheca as redes atras dos clientes eh preciso usar a opcao ccd:
    client-config-dir ccd
    Bem como dizer as redes dos clientes:
    route 192.168.1.0 255.255.255.0

    Agora na sua configuracao soh tem um probleminha, para o ccd funcionar, vc tem que usar gerar um arquivo de controle individual para cada cliente, o arquivo que tem extensao .crt, com isto feito, dentro do diretorio ccd, crie um arquivo com o mesmo nome do arquivo .crt usado no cliente com o seguinte conteudo:
    iroute 192.168.1.0 255.255.255.0
    Por exemplo:
    criar chave e crt para o cliente com o nome filial01
    e no diretorio ccd, criar um arquivo com o nome filial01

  3. #3

    Padrão Re: Dúvidas para implementar uma rede VPN

    Tambem para o ccd funcionar vc precisa usar certificados tanto no servidor como no cliente, no tutorial do openvpn tem como gerar os certificados, segue abaixo como seria sua configuracao para usar certificados:

    ### matriz.conf
    port 5900
    proto udp
    dev tun
    # Certificados gerados
    ca ca.crt
    cert server.crt
    key server.key
    dh dh1024.pem
    server 10.0.0.0 255.255.255.0
    push "route 192.168.0.0 255.255.255.0"
    client-config-dir ccd
    route 192.168.1.0 255.255.255.0
    # Neste arquivo serão guardados os IPs dos clientes
    # para conectarem com o mesmo IP da proxima vez
    ifconfig-pool-persist ipp.txt
    client-to-client

    # Ative para permitir dois clientes com o mesmo
    # certificado - não recomendável
    ;duplicate-cn
    keepalive 10 120

    # Compressão, privilégios do cliente
    comp-lzo
    max-clients 150
    user nobody
    group nobody

    # Logs e etc
    persist-key
    persist-tun
    status /var/log/openvpn-status.log
    log /var/log/openvpn.log
    log-append /var/log/openvpn.log
    verb 3

    *Obs: nao esquecer que no diretorio ccd tem que ter um arquivo com o nome filial01 com o comando iroute, pois este eh o nome do certificado usado pelo cliente.

    ### filial.conf
    client
    dev tun
    proto udp
    remote matrizac.no-ip.info 5900
    resolv-retry infinite
    nobind

    persist-key
    persist-tun

    ca ca.crt
    cert filial01.crt
    key filial01.key

    ns-cert-type server
    comp-lzo
    verb 3

    status /var/log/openvpn-status.log
    log /var/log/openvpn.log
    log-append /var/log/openvpn.log

    Obs: nao precisa criar rotas, nem fazer mascaramento neste caso
    somente preciso colocar:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    tanto no servidor como no cliente

  4. #4
    Avatar de escastilhomg
    Ingresso
    Apr 2011
    Localização
    São Sebastião Do Paraíso, Minas Gerais, Brazil, Brazil
    Posts
    6

    Padrão Re: Dúvidas para implementar uma rede VPN

    Primeiramente obrigado pelas respostas, entendi quase tudo o que o Sr. citou, só estou com dúvida com relação a este 'ccd'. O que exatamente o Sr. quis dizer sobre isso?

  5. #5

    Padrão Re: Dúvidas para implementar uma rede VPN

    CCD vem de:
    Client-Config-Dir ccd,
    que eh o diretorio onde ficarao os arquivos que indicam as rotas para cada rede conectada atraves dos clientes da vpn.
    Por exemplo: vamos dizer que vc em uma cidade tenha 3 filiais ( filial01 - 192.168.1.0/24 , filial02 - 192.168.2.0/24 e filial03 - 192.168.3.0/24 ), e que estas filiais sao conectadas entre si por uma rede wireless e uma delas possua conexao com internet. Neste caso a filial que possui a conexao com a internet vai rodar o cliente da vpn e tera o nome de filial01, o certificado gerado no servidor tera o nome de filial01.crt, no diretorio /etc/openvpn/ccd, deve ter um arquivo como o nome filial01, dentro deste arquivo deve ter os comandos:
    iroute 192.168.1.0 255.255.255.0
    iroute 192.168.2.0 255.255.255.0
    iroute 192.168.3.0 255.255.255.0
    pois isto ira indicar ao servidor para rotear para as filiais 02 e 03 a partir da filial 01.

    A opcao do ccd, evita ter que usar os comandos abaixo:

    Matriz:
    Código :
    # route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.1.0.0



    Filial:
    Código :
    # route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.0



    Por fim foram acrescentadas algumas linhas nos Firewalls de ambas Empresas:

    Matriz:
    Código :
    iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE iptables -A FORWARD -i tun0 -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT



    Filial:
    Código :
    iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE iptables -A FORWARD -i tun0 -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT

  6. #6
    Avatar de escastilhomg
    Ingresso
    Apr 2011
    Localização
    São Sebastião Do Paraíso, Minas Gerais, Brazil, Brazil
    Posts
    6

    Padrão Re: Dúvidas para implementar uma rede VPN

    É, realmente não funciona...

  7. #7
    Avatar de escastilhomg
    Ingresso
    Apr 2011
    Localização
    São Sebastião Do Paraíso, Minas Gerais, Brazil, Brazil
    Posts
    6

    Padrão Re: Dúvidas para implementar uma rede VPN

    Você cita que não é correto usar ifconfig 10.0.0.0 10.1.0.0 só que quando coloco a opção server 10.0.0.0 255.255.255.0 dá erro e não consigo criar a interface tun0 e todos os tutoriais que estou vendo e um livro que eu comprei para auxiliar na criação dessa VPN cita para fazer o ifconfig.

    Dessa forma que você me explicou realmente não esta dando certo em meu ambiente.

    Antes de mais nada preciso de fazer uma ponta enxergar a outra, para isso tem a necessidade de utilizar certificados?
    Última edição por escastilhomg; 27-04-2011 às 23:16.

  8. #8

    Padrão Re: Dúvidas para implementar uma rede VPN

    A diferenca entre a opcao ifconfig e a server, eh que a ifconfig cria um tunel ponto a ponto, a opcao server, cria um tunel multiponto.

    Vc soh pode fazer o roteamento entre as redes do servidor e do cliente se usar certificado.

    Uma situacao muito util da multiponto e a seguinte:
    1 Matriz, 1 Filial, 1 suporte que queira acessar de casa, 1 diretor que viaje mas precisa estar conectado

    Sobre os tutoriais, jah vi muitos e principalmente vale a maxima: cada caso é um caso.
    O tutorial que uso como base eh este:
    OpenVPN Server On CentOS 5.2 | HowtoForge - Linux Howtos and Tutorials

    Na secao de documentacao do Openvpn:
    Multiplos clientes:
    HOWTO
    Acessando a rede atras do servidor como a rede atras dos clientes:
    HOWTO

  9. #9

    Padrão Re: Dúvidas para implementar uma rede VPN

    Minha situacao:
    01 Matriz
    01 Cliente ( 9 redes atras deste cliente - centro de Campina Grande/PB )
    01 Cliente ( 3 redes atras deste cliente - centro de Natal/RN )
    01 Cliente ( 3 redes atras deste cliente - bairro do Alecrim, Natal/RN )
    01 Cliente ( 2 redes atras deste cliente - shopping Midway de Natal/RN )
    01 Cliente ( 1 rede - shopping na praia de Natal/RN )
    01 Cliente ( 3 redes atras deste cliente - shopping Joao Pessoa/PB )
    12 Clientes ( Dona da Empresa ( 4 computadores ), 3 Gerentes de Compras , 5 suporte CPD )

  10. #10

    Padrão Re: Dúvidas para implementar uma rede VPN

    amigo, não sei se vc só não citou, ou se não fez, mas em seu relato, não vi o momento que vc enviou a chave do servidor para o cliente.

  11. #11
    Avatar de escastilhomg
    Ingresso
    Apr 2011
    Localização
    São Sebastião Do Paraíso, Minas Gerais, Brazil, Brazil
    Posts
    6

    Padrão Re: Dúvidas para implementar uma rede VPN

    Citação Postado originalmente por srgnetwork Ver Post
    amigo, não sei se vc só não citou, ou se não fez, mas em seu relato, não vi o momento que vc enviou a chave do servidor para o cliente.
    Você se referiu a minha configuração ou a configuração que o colega amaia sugeriu?

    Na minha inseri tanto no servidor como no cliente a opção

    secret /etc/openvpn/chave.key

    Ainda não consegui fazer uma rede se comunicar com a outra.

  12. #12

    Padrão Re: Dúvidas para implementar uma rede VPN

    Citação Postado originalmente por escastilhomg Ver Post
    Você se referiu a minha configuração ou a configuração que o colega amaia sugeriu?

    Na minha inseri tanto no servidor como no cliente a opção

    secret /etc/openvpn/chave.key

    Ainda não consegui fazer uma rede se comunicar com a outra.
    Sim, a sua, eu vi vc passando um passo a passo da sua config. quase dá pra montar um tutorial...rs
    vc gerou a chave e informou a localização, mas vc enviou uma copia da chave do servidor para o cliente?

  13. #13
    Avatar de escastilhomg
    Ingresso
    Apr 2011
    Localização
    São Sebastião Do Paraíso, Minas Gerais, Brazil, Brazil
    Posts
    6

    Padrão Re: Dúvidas para implementar uma rede VPN

    Boa tarde,

    Gostaria de agradecer a todos que me ajudaram na solução deste problema em especial ao usuário 'amaia' que me ajudou muito particularmente.

    RESOLVIDO!

    Atenciosamente
    Erik Castilho

  14. #14

    Padrão Re: Dúvidas para implementar uma rede VPN

    Como foi resolvido, para que sua duvida seja a solucao de outras pessoas tb.