Montando Uma VPN Com o OpenVPN
-
Upload
mauricio-nascimento -
Category
Documents
-
view
215 -
download
0
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