Montando Uma VPN Com o OpenVPN

download Montando Uma VPN Com o OpenVPN

of 5

Transcript of Montando Uma VPN Com o OpenVPN

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    1/10

    Montando uma VPN com o OpenVPN

    Historicamente as empresas faziam sua ligação entre matriz e filial através de

    linhas de frame-relay. Esta conexão é feita por um link dedicado que oferece! "#its entre os pontos$ sendo que esta ligação tem um custo mensal$ edependendo da quantidade de links utilizado$ este valor ser% alterado. H%outros meios de fazer estas ligaç&es que são oferecidos por operadoras$ masem muitos casos o custo ' #enef(cio fica fora do orçamento de empresas de

     pequeno porte. )ara resolver esta questão de custo e de velocidade de link$surgiu a *irtual )rivate +et,ork.

    *)+ *irtual )rivate +et,ork é uma rede privada virtual$ na qual as

    informaç&es de uma rede local são passadas por um t/nel$ em uma rede pu#lica qualquer. Entretanto$ os dados estarão protegidos neste tunelamento$que est% usando recursos de criptografia de dados$ que no caso do 0pen*)+$são extra(dos da #i#lioteca do 0pen112$ a qual utiliza protocoloscriptogr%ficos como3 112 e 421$ protocolos das camadas 5 e 6 do modelo017. 0s dados trafegados neste t/nel virtual serão gerenciados por alguns

     protocolos$ que podem ser3 o 7)1ec 7nternet )rotocol 1ecurity$ 254) 2ayer5 4unneling )rotocol$ ))4) )oint-to-)oint 4unneling )rotocol e o 2582ayer 5 8or,arding$ um desses protocolos ir% tra#alhar no gerenciamento ena segurança da rede.

    Figura 1: Esquema de comunicação entre redes

    9 ligação de duas redes distintas utilizando *)+ oferece alguns #enef(cios. Essaconexão pode ser via 9:12 ou ca#o. :ependendo do fluxo de dados da rede$ h% umanecessidade de ter outra conexão para a *)+$ estes fatos devem ser analisados antes deimplementar a *)+ no local.

    http://www.devmedia.com.br/implementando-uma-vpn-revista-infra-magazine-3/22932http://www.devmedia.com.br/implementando-uma-vpn-revista-infra-magazine-3/22932

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    2/10

     +o nosso artigo utilizaremos o soft,are livre 0pen*)+ para fazer os testes da *)+. 00pen*)+ foi desenvolvido por ;ames =eneral )u#lic2icence. ? um soft,are destinado a *)+$ o qual tem muitos recursos paraadministração da *)+. 0 0pen*)+ est% dispon(vel para v%rios sistemas operacionais$entre eles3 @ac 01 '$ Aindo,s 1erverB')BC$ 2inux$ 1olaris e entre outros. 0

    0pen*)+ não é compat(vel com o protocolo 7)sec$ para a autenticação entre os pontosexiste varias formas. 0 0pen*)+ tra#alha com chaves secretas compartilhadas$autenticação de usu%rios com senha e autenticação com certificados. Existe umavantagem na utilização desse soft,are que é a forma de transmissão dos pacotes$ que

     pode utilizar o protocolo >:) ou 4D)$ sendo que o >:) é o mais adequado$ porqueeste protocolo transmite os pacotes diretamente$ sem repetição$ o que é melhor para odesempenho da rede.

    )ara maior segurança ser% instalado unto ao 0pen*)+$ o 0pen112 que é um soft,areque tra#alha com os protocolos 112 e 421$ e tFm a função de criptografar. Estes

     protocolos promovem a integridade e privacidade dos dados entre a comunicação das

    redes$ permitindo assim autenticação das duas partes envolvidas.

    Instalação e configuração

    )ara montar a *)+ utilizaremos o 0pen*)+. +este exemplo pr%tico$ ser% utilizada umam%quina para a Gempresa matriz com o sistema operacional 2inux :e#ian 1quezze$outra para o Gcliente que ter% o sistema operacional Aindo,s C$ e uma conexão de

    internet. 9pIs tais procedimentos começaremos a configuração da *)+.

    Instalação da Matriz

    Dom o 2inux 7nstalado$ vamos proceder a instalação dos pacotes necess%rios paramontar nossa *)+.

    Listagem 1: 8azendo a instalação do 0pen*)+ e do 0pen112

    # apt-get install openvpn openssl

    9pIs a instalação$ criaremos um diretIrio que rece#er% os arquivos de configuração queestão em uma diretIrio padrão3

    Listagem 2: Driando um diretIrio para os arquivos de configuração

    # mkdir /etc/openvpn/easy-rsa

    :epois de instalado$ é necess%rio efetuar cIpia dos arquivos do diretIrio padrão para odiretIrio que foi criado anteriormente$ da seguinte forma3

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    3/10

    Listagem 3: Dopiando arquivos

    # cp -rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/.

    /etc/openvpn/easy-rsa/

    9pIs copiar os arquivos$ devemos acessar a diretIrio BetcBopenvpnBeasy-rsaB e editar odocumento JvarsK$ serão feito algumas modificaç&es no final do arquivo. +esteexemplo utilizaremos o editor de texto vim$ mas é poss(vel utilizar qualquer editor desua preferFncia$ entre eles o nano$ emacs entre outros. :ando prosseguimento com aconfiguração$ faça as alteraç&es como no exemplo a#aixo3

    Listagem 4: Donte/do alterado do arquivo vars

    # vim /etc/openvpn/easy-rsa/vars

    export KEY_!"$%Y&'(%'

    export KEY_)%!*+E&',E'export KEY_+$Y&'racau'

    export KEY_!%&'!rgania1o'

    export KEY_E3+4&seumail5dominio.com

    4emos3 "E+4M< N )a(s$ "eyL)M0*7+DENEstado$ "E

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    4/10

    # ./6uild-ca

    9pIs a execução do #uild-ca$ vamos criar agora a chave do servidor utilizando ocomando #uild-key-server seguido do nome do servidor3

    Listagem 8: Driando a chave

    # ./6uild-key-server nome do servidor

    9s perguntas serão as mesmas$ mas pedir% uma senha$ que por motivos de segurançadeve ser informada. 9gora$ vamos criar as chaves de acesso para os usu%rios3

    Listagem 9: Driando chaves de acesso para usu%rios

    # ./6uild-key nome do usu7rio da vpn

    Mesponda Os opç&es e aceite a configuração no final com um JyK. 9pIs estaconfiguração$ executar o /ltimo script que pode demorar um pouco a terminar no

     processo3

    Listagem 10: Pltimo comando

    # ./6uild-dh

    9pIs criar as chaves$ entraremos no diretIrio JkeysK$ no qual criaremos a chave3

    Listagem 11: 9cessando diretIrio das chaves

    # cd /etc/openvpn/easy-rsa/Keys

    :entro do diretIrio$ primeiramente vamos verificar o conte/do com o comando Gls evamos verificar se tem os certificados gerados anteriormente. 1e não tiver estescertificados$ verificar o passo a passo novamente. :epois de analisar se tudo est%correto até aqui$ passaremos para a criação da chave.

    Listagem 12: Driação da chave

    # openvpn --genkey --secret chave.key

    9gora vamos criar o diretIrio JkeysK dentro do diretIrio openvpn$ para copiar oscertificados para este diretIrio$ pois no arquivo de configuração estar% o caminho doscertificados.

    Listagem 13: Driando o diretIrio keys

    # mkdir /etc/openvpn/Keys

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    5/10

    Este diretIrio deve conter cinco chaves de acesso$ são elas3 chave.key$ dhQR5!.pem$ca.crt$ servervpn.crt e servervpn.key. )ara isso é sI copiar estas chaves que estão nodiretIrio BetcBopenvpnBeasy-rsaBkeys para o diretIrio que foi criado antes.

    Listagem 14: Dopiando as chaves para o diretIrio "eys

    # cp -a /etc/openvpn/easy-rsa/keys/chave.key dh8029.pem

    ca.crt servervpn.crt server.key /etc/openvpn/Keys/

    :epois de criar todos os certificados e a chave$ vamos digitar o arquivo principal paradetalhar a configuração da *)+$ este arquivo deve ficar dentro do diretIrioBetcBopenvpn$ com o nome deseado pelo usu%rio. +este exemplo vamos utilizar comoserver.conf$ as configuraç&es seguem a#aixo3

    Observação: o que tiver ‘#’ são comentários, ou seja, explicações sobre os parâmetros

    descritos, portanto não á a necessidade de escrev!"los no arquivo de coni$uração%

    Listagem 15: 9rquivo de configuração da *)+

    # vim /etc/openvpn/server.con:

    # r;uivo de con:igura1o do !pen*).

    proto udp # protocolo usando na conexo< pode ser udp ou

    tcp.

    port 88=9 # porta do servi1o< pode ser outra porta ;ue

    estiver a6erta para este tipo de comunica1o.

    dev tun # driver da inter:ace de rede virtual< soutiliadas duas inter:aces virtuais a >tun? e a >tap?< a

    inter:ace virtual tap @ mais utiliada para o cliente

    AindoBs.

    server 80.0.0.0 2CC.2CC.2CC.0 # rede de ip ;ue ser7

    distri6uindo para os clientes vpns.

    push Droute 8=2.8F.0.0 2CC.2CC.2CC.0D # :a com ;ue haa

    roteamento do ip local para o +) do tGnel.

    push Ddhcp-option H, 8=2.8F.0.8D # +) da sua rede

    #push Ddhcp-option A+, 8=2.8F.0.8D # +) da sua rede< pararedes ;ue contenham servidores AindoBs.

    route 80.0.0.0 2CC.2CC.2CC.0 # roteamento do cliente

    comp-lo # @ necess7rio um so:tBare ;ue :a1a a compacta1o

    dos dados ;ue so passados na rede.

    keepalive 80 820 # o nGmero 80 @ o intervalo de ping< 820 @

    o tempo em ;ue a vpn @ reiniciada< :a o monitoramento da

    conexo entre servidor e cliente.

    :loat # serve para +) dinImico< para ;ue o tGnel continue

    a6erto mesmo ;ue o +) mude.

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    6/10

    i:con:ig-pool-persist /etc/openvpn/ipp.txt # @ onde :ica

    armaenado a lista de +)Js< e a mesma ma;uina sempre vai

    ter o mesmo +).

    max-clients 80 # m7ximo de clientes acessando no mesmo

    momento.persist-key # mant@m as chaves disponveis< mesmo ;ue o

    servi1o da *) sea reiniciado.

    persist-tun # mant@m a inter:ace $" a6erta< mesmo ;uando a

    *) @ reiniciada.

    log-append /var/log/openvpn.log # local onde est7

    armaenado o log da *).

    ver6 # permite gerar logs da opera1o< auda o

    administrador a visualiar eventuais erros ou pro6lemas da

    *)< ento possui nveis de in:orma1o< ;ue vo do 0 ao 88.

    tls-server # protocolo $4, para criptogra:ia.

    dh /etc/openvpn/keys/dh8029.pem # caminho da chave ;ue :oi

    criada anteriormente.

    ca /etc/openvpn/keys/ca.crt # caminho da chave ;ue :oi

    criada anteriormente.

    cert /etc/openvpn/keys/servervpn.crt # caminho da chave ;ue

    :oi criada anteriormente.

    key /etc/openvpn/keys/servervpn.key # caminho da chave ;ue

    :oi criada anteriormente.

    tls-auth /etc/openvpn/keys/chave.key # caminho da chave ;ue:oi criada anteriormente.

    status /var/log/openvpn.stats # caminho onde o log de

    status da *) se encontra.

    9pIs digitar estas linhas$ salvar e sair deste arquivo$ reiniciar o serviço da 0pen*)+3

    Listagem 16: Meiniciando o serviço do 0pen*)+

    # /etc/init.d/openvpn restart

    :epois que reiniciar$ o#serve se inicia perfeitamente. 1e ocorrer erro$ deve verificar os passos anteriores$ feito isso$ utilize o comando Gifconfig para verificar se est% ativa ainterface virtual tunR.

    )ara que as informaç&es passem pelo tunelamento de forma compactada$ para facilitar aentrega dos pacotes e ser %gil o fluxo de dados pelo t/nel virtual$ deve-se instalar o

     pacote lzop.

    Listagem 17: 7nstalando o 7zop

    # apt-get install lop

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    7/10

    9pIs estes passos$ para que a segurança sea melhor e mais eficaz$ devemos executaralguns comandos no fire,all. 4emos uma explicação a#aixo do que é fire,all e de comovamos utilizar este recurso de segurança na nossa conexão da *)+.

    Regras de Firewall pelo Iptables

    0 fire,all é um tipo de dispositivo de gerenciamento de segurança$ com o o#etivo defiltrar os pacotes que trafegam na rede. >tilizaremos a ta#ela do ipta#les$ que é um filtrode pacotes que tem uma arquitetura netfilter$ que define regras de manipulação de

     pacotes que passam pela rede.

    H% uma necessidade de ativar as regras de fire,all para rotear os pacotes dos clientes da

    *)+ para a rede local$ na qual haver% uma comunicação e tam#ém para auxiliar nasegurança. Então utilizaremos as regras a seguir3

    Listagem 18: Moteamento de pacotes

    # echo 8 L /proc/sys/net/ipv9/ip_:orBard

    0 comando anterior faz roteamento de pacotes no "ernel.

    # iptables "t nat "& 'O()*O+)-. "d /01%/23%4%4516 "s /4%4%4%4516 "j &778') 

     +este comando o roteamento é orientado a encaminhar os pacotes enviados da interfacelocal para o 7) do cliente.

    # iptables "t nat "& 'O()*O+)-. "s /4%4%4%4516 "o et4 "j 9&(+8*&;8 

     +o comando anterior o roteamento é orientado a encaminhar os pacotes rece#idos do 7)do cliente para a interface local.

    2em#rando que quando o sistema operacional for reiniciado$ perder% todas asconfiguraç&es feitas no fire,all. )ara que isso não ocorra$ adicione estes comandos emum dos scripts de inicialização do sistema JBetcBrc.localK$ toda vez que o sistema iniciar$os comandos serão ativados unto a inicialização.

    Configuração do Microsoft indows !

    Suando todas as configuraç&es do 0pen*)+ estiverem prontas$ com os passos corretos$ podemos prosseguir para a configuração do cliente$ que ser% no sistema operacionalAindo,s C. Então copiaremos os certificados que % foram criados na m%quina do

    servidor$ para que a comunicação entre eles sea poss(vel$ então seguiremos estasetapas3

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    8/10

    • Taixar o soft,are da 0pen*)+ e instal%-lo no computador$ depois de instalado$os diretIrios e os arquivos % estarão em um diretIrio padrão em )rogram 8ilesdentro de GD3U

    • Driando o diretIrio JkeysK para colocar os certificados3

    • Em D3V)rogram 8ilesV0pen*)+Vconfig$ criaremos o diretIrio WkeysWU

    • Dopiar os arquivos que estão no servidor no diretIrio BetcBopenvpnBeasy-rsaB"eys$ são eles3 dhQR5!.pem$ ca.crt$ usuariovpn.crt$ usuariovpn.key echave.key. 9pIs isso$ colar estes arquivos no diretIrio que criamosanteriormente D3V)rogram 8ilesV0pen*)+VconfigVkeysU

    • :entro de D3V)rogram 8ilesV0pen*)+Vconfig$ devemos criar o arquivo no #locode notas$ chamado clienteU

    0#servação3 o que tiver GX são coment%rios$ ou sea$ explicaç&es so#re os parYmetrosdescritos$ portanto não h% a necessidade de escrevF-los no arquivo de configuração.

    Este arquivo deve conter as seguintes linhas3

    Listagem 19: 9rquivo de configuração cliente

    dev tun # driver utiliado para a comunica1o da inter:ace

    virtual do cliente.

    proto udp # protocolo utiliado para o tra:ego de pacotes

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    9/10

    persist-key # Na com ;ue as chaves :i;uem disponveis<

    mesmo ;uando o *) @ reiniciado< :acilita na reconexo do

    *).

    remote-cert-tls server # erti:icado de acesso remoto do

    cliente ao servidor< utiliando o protocolo $4,< parapermitir o acesso do cliente com seguran1a.

    dh keys/dh8029.pem # have de seguran1a ;ue deve est7 na

    diretOrio >keys? na ma;uina do cliente.

    ca keys/ca.crt # have de seguran1a ;ue deve est7 na

    diretOrio >keys? na ma;uina do cliente.

    cert keys/seuusuario.crt # have de seguran1a ;ue deve est7

    na diretOrio >keys? na ma;uina do cliente.

    key keys/seuusuario.key # have de seguran1a ;ue deve est7

    na diretOrio >keys? na ma;uina do cliente.

    tls-auth keys/chave.key # have de seguran1a ;ue deve est7

    na diretOrio >keys? na ma;uina do cliente.

    route-method exe

    route-delay 2

    9pIs escrever a configuração$ salvar o arquivo na extensão J.ovpnK. :epois de salvarnessa extensão$ o arquivo ficar% com o logotipo da 0pen*)+. 1e o arquivo não forsalvo com este tipo de extensão$ não funcionar%.

    :epois de instalado o programa$ ficar% um (cone na %rea de tra#alho$ execute o

    0pen*)+.=>7. 0#serve que aparecer% um (cone de computadores de tela de corvermelha na #arra de ferramentas. Dlicando com o #otão direito$ confirme JDonectarK$ir% a#rir uma p%gina de conexão. 1e o arquivo de configuração estiver certo$ o (coneficar% verde ou continuar% vermelho$ então deve verificar a configuração.

    9pIs todas estas configuraç&es e explicaç&es so#re a definição de uma *)+ e de comoconfigur%-la$ a sua *)+ estar% totalmente configurada e funcionando. E com aconfiguração correta e os certificados protegidos$ a *)+ pode ser usada com segurançae suas informaç&es entre as redes distantes serão passadas com proteção do tunelamentoda *)+$ tam#ém com o custo melhor$ velocidade #oa$ entre outros fatores$ existemin/meras vantagens na utilização da *)+.

     Lanay Marques

    Primeiro lugar na Olímpiada do Conhecimento 2012 na fase Estadual, na modalidade

    de nstala!"o e Manuten!"o de #edes, al$m de ser %raduanda no curso de &istemas

    de nforma!"o'

    http://www.devmedia.com.br/autor/lanay-marques/321326http://www.devmedia.com.br/autor/lanay-marques/321326

  • 8/20/2019 Montando Uma VPN Com o OpenVPN

    10/10