Professional Documents
Culture Documents
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
CONFIGURAODEUMSERVIDORVPNCOMOPENVPNECHAVEESTTICA
Autor:MagnoMaguione<magno.linuxatyahoo.com.br>
Data:03/08/2009
INTRODUO
EsseartigooprimeirodeumasriedetrsetratadaimplementaodeumservidordeVPNem
seusvriosaspectosdeseguranaepraticidade.Naprimeiraparteserabordadoaconfigurao
doOpenVPNcomchavesestticas.Nasegundaparteserabordadoaconfiguraocom
certificadosdigitaisenaterceiraparteaconfiguraodoservidoremmodobridge.
AformamaissimplesdeconfiguraroOpenVPNutilizarchavesestticas,ondecriadoum
arquivode2048bitsutilizadoparacriptografarosdadostransmitidospelotnel,essachave
ofereceumnveldeseguranamediano,devidoachaveserestticaeseualgoritmonomudara
cadaconexo,semprehapossibilidadedeumatacantedescobrirachave.Asoluomais
simplesevivelseriatrocasaschavesperiodicamentefazendocomqueessastentativasde
invasosetornemineficazes.
OOpenVPNumdossoftwaresdecdigoabertomaisutilizadosesegurosparaimplementao
deuma"VirtualPrivateNetwork"ou"RedeVirtualPrivada".Istosedeveaofatodeserseguro,
prticoedefcilimplementao.
UmaVPNtemmuitasvantagensemambientescorporativosouatmesmoresidenciais.Tratase
deumaformadecompartilhararquivos,impressorasouatmesmoumsistemadegestode
formasegura.Antigamenteanicaformadeinterligarredeserautilizandolinkdedicadoscom
endereosIPpblicos,masovalordainfraestruturamuitasvezesnoerajustificvel.Como
OpenVPNpodemosinterligarumnmerodefiliaisindefinidos,comcustosrelativamentebaixose
podemosutilizarendereosIPpblicosnofixos,utilizandooserviodeDNSdinmico.Sabemos
quenenhumaVPN100%segura,mascomosserviosbemconfiguradoseumfirewall
totalmentefechadoosriscosdeinvasosopequenos.
UmaobservaoimportantequeaVPNcriainterfacesvirtuaisnoservidor,sendoqueestas
interfacesdevemestarcomendereoIPdiferentedosdaredeinterna.Aseguirmostrareium
esboodecomoficaroosendereosdaredeinternaedaVPN.Nodecorrerdoartigoveremos
queimplementarumaVPNumatarefasimples,desdequefiquebementendidocomoseu
funcionamento.
Letsgo!
Matriz:
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
1/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
eth0VeloxcomendereoDNSdinmico:openvpn.noip.info
eth1192.168.0.1redeinterna
tun010.6.0.1endereoIPVPN.
Filial:
eth0Velox
eth1192.168.1.1redeinterna"
tun010.6.0.2endereoIPVPN.
(http://static.vivaolinux.com.br/imagens/artigos/comunidade/vpn.jpg)
INSTALANDOECONFIGURANDOOPENVPNNAMATRIZ
PrimeiramentevamosfazerainstalaodoOpenVPNnamatriz:
#aptgetinstallopenvpn
Agoravamosacrescentaromdulotundentrodoarquivo/etc/modulesparaqueeleseja
carregadonokernelacadaboot.Omdulotunresponsvelpelasinterfacesvirtuaisqueo
OpenVPNcria:
#echotun>>/etc/modules
ComoOpenVPNinstaladoeomdulotuncarregadonokernel,vamosconfigurao.Acesseo
diretrio/etc/openvpn/,aquidentroondeserocriadososarquivosdeconfiguraoeachave
esttica.
AchavecriadanoservidordepoisdevesercopiadaparatodasasfiliaisqueseconectaroVPN.
Podeseutilizaraschavesdeduasformas,aprimeirautilizarumanicachaveparatodosos
clienteseasegundautilizarumachaveparacadacliente,dopontodevistadeseguranaoideal
seriautilizarumachaveparacadacliente.Nocasodeumatacanteconseguirobterumadas
chaves,conseguirsomenteseconectaraumanicafilialenoatodas.Umaalternativapara
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
2/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
melhoraraseguranaetornaressesataquesineficazesfazeratrocadaschaves
periodicamente.
Abaixovamoscriarachave:
#openvpngenkeysecretchave.key
AgoravamosconfiguraodoOpenVPN:
#vimmatriz.conf
#InterfacedaVPN
devtun
#EndereoIPservidor/filial
ifconfig10.6.0.110.6.0.2
#Protocolo
protoudp
#PortaVPN
port1194
#Chaveesttica
secret/etc/openvpn/chave.key
#Monitoramentodaconexo:primeironmeroping,segundorestartdavpnemsegundos
keepalive10120
#Compressodedados
complzo
#Mantmainterfacetuncarregadaquandoavpnreiniciada
persisttun
#Mantmachavecarregadaquandoavpnreiniciada
persistkey
#CasooIPmude,otnelcontinuaestabelecido
float
#Nveldolog
verb3
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
3/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
#Informaesdestatusdaconexo
status/var/log/openvpn/matrizstaus.log
#Arquivodelog
logappend/var/log/openvpn/matriz.log
#Criandorotas
up/etc/openvpn/rotas.up
#Apagandorotas
down/etc/openvpn/rotas.down
DepoisdeajustaroarquivodeconfiguraocriaremososarquivosdelogdoOpenVPN,oslogs
somuitoimportantesparadetectaralgumerrodeconexo,verinformaesdosclientes,entre
outrasinformaes.
#mkdir/var/log/openvpn
#touch/var/log/openvpn/matrizstatus.log
#touch/var/log/openvpn/matriz.log
AntesdeiniciarmosaVPNvamoscriarasrotasparaacessofilial,comovimosnoesboo,o
endereodaVPNdiferentedoendereodaredeinterna,aprincipiooservidorsconsegue
pingarnoendereoIPdotneldafilial(10.6.0.2).Paraoservidoreosmicrosdaredeconseguirem
pingareacessarosmicrosdafilial,precisoadicionarumarotanoservidorindicandoa
encaminharospacotescomdestinoafilialpelotnel.
Vamoscriardoisarquivosdentrode/etc/openvpn/,umarquivocriaasrotasquandoaVPN
iniciadaeooutroarquivoapagaasrotasquandoaVPNparada.
#vimrotas.up
routeaddnet192.168.1.0netmask255.255.255.0gw10.6.0.1devtun0
#vimrotas.down
routedelnet192.168.1.0netmask255.255.255.0gw10.6.0.1devtun0
AgoravamosiniciaraVPN:
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
4/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
#/etc/init.d/openvpnstart
Emcasodealgumamensagemdeerroouaparecer"Failed"aoiniciaraVPN,podeconsultarolog:
#tailf/var/log/openvpn/matriz.log
Prontinho...
INSTALANDOECONFIGURANDOOPENVPNNAFILIAL
AgoravamosfazerainstalaoeconfiguraodoOpenVPNnafilial,aconfigurao
praticamenteigual,sdevemserobservadasalgumasconfiguraesmnimas.Primeiramente
vamoscomearinstalandooOpenVPN:
#aptgetinstallopenvpn
Igualmentefeitonamatriz,devemosadicionaromdulotundentrodoarquivo/etc/modules.
#echotun>>/etc/modules
Agoradevemoscopiarachaveestticacriadanoservidorparadentrode/etc/openvpn/,coma
chavecopiadavamosconfiguraodoOpenVPN:
#vimfilial.conf
#EndereoIPservidor
remoteopenvpn.noip.info
#InterfacedaVPN
devtun
#EndereoIPfilial/servidor
ifconfig10.6.0.210.6.0.1
#Protocolo
protoudp
#PortaVPN
port1194
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
5/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
#Chaveesttica
secret/etc/openvpn/chave.key
#Monitoramentodaconexo,primeironmeroping,segundorestartdaVPN
keepalive10120
#Compressodedados
complzo
#MantmainterfacetuncarregadaquandoaVPNreiniciada
persisttun
#MantmachavecarregadaquandoaVPNreiniciada
persistkey
#CasooIPmudeotnelcontinuaestabelecido
float
#Nveldolog
verb3
#Informaesdestatusdaconexo
status/var/log/openvpn/filialstaus.log
#Arquivodelog
logappend/var/log/openvpn/filial.log
#Criandorotas
up/etc/openvpn/rotas.up
#Apagandorotas
down/etc/openvpn/rotas.down
Vamosagoracriarosarquivosdelog:
#mkdir/var/log/openvpn
#touch/var/log/openvpn/filialstatus.log
#touch/var/log/openvpn/filial.log
Agoravamoscriaroarquivocomasrotasparaacessomatriz:
#vimrotas.up
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
6/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
routeaddnet192.168.0.0netmask255.255.255.0gw10.6.0.2devtun0
#vimrotas.down
routedelnet192.168.0.0netmask255.255.255.0gw10.6.0.2devtun0
AgorasiniciaraVPN:
#/etc/init.d/openvpnstart
Prontinho...AmatrizeafilialestoOK!
Obs.:Senotivernenhumfirewallnoservidordamatrizedafilial,jpodedarumpingouacessar
umcompartilhamentonamquinadaoutrarede.Comoeuduvidoqueningumquetemumpouco
deconhecimentoemseguranacolocariaumaVPNnoarsemumfirewall,vamoscriaralgumas
regrasparaliberaraconexodaVPNeotrfegodotnel.
LIBERANDOPORTASNOFIREWALL
Bem,comofoiditonoinciodoartigo,nenhumaVPN100%segura,devemosconfigurarcom
cuidadotodososserviosnecessriosparaterumaVPNestvelesemriscos,umfirewallo
mnimodesegurananecessria.
VamoscriaralgumasregrasdefirewallliberandoaconexodaVPNeotrfegodotnel.Estou
presumindoqueofirewalldamatrizefilialestocomopoliciamentodachainsINPUTeFORWARD
comodrop.
Firewallmatriz:
#LiberandoportadeconexoVPN
iptablestfilterAINPUTippp0pudpdport1194jACCEPT
#Liberandotrfegodotnel
iptablestfilterAFORWARDitun0jACCEPT
iptablestfilterAINPUTitun0jACCEPT
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
7/8
09/05/2015
ConfiguraodeumservidorVPNcomOpenVPNechaveesttica[Artigo]
Firewallfilial:
#LiberandoportadeconexoVPN
iptablestfilterAINPUTippp0pudpdport1194jACCEPT
#Liberandotrfegodotnel
iptablestfilterAFORWARDitun0jACCEPT
iptablestfilterAINPUTitun0jACCEPT
Pronto!
CONCLUSO
EsperoqueesseartigotenhaesclarecidomuitasdvidasemcomoconfigurarumaVPN.Como
vimosnodecorrerdoartigo,aconfiguraobastantesimpleserpida.Nosoutrosartigosque
escrevereitratareimaisafundoseguranaecertificadosdigitais,umavezqueemumarede
corporativaaseguranaprimordial.
Biografia:
OpenVPNGUIforWindows(http://openvpn.se)
http://www.netfilter.org/(http://www.netfilter.org/)
AtmaisgaleradoVOL...
Voltar(verArtigo.php?codigo=10233)
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10233
8/8