You are on page 1of 8

09/05/2015

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