Você está na página 1de 35

ComunicaoSeguraemCanaisInseguros

comOpenVPN
RicardoKlberM.Galvo
(rk@ufrn.br)

HelderJeanBritodaSilva
(helder@info.ufrn.br)

http://naris.info.ufrn.br
NcleodeAtendimentoe
RespostaaIncidentesdeSegurana

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
Contextualizando

Tneisvirtuais

Interfacesvirtuaissobreinterfacesreais

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
Contextualizando

Geralmenteutilizadasemredespblicas(Internetp.ex.)

Emborapossaserutilizaentremquinasemumaredeprivada

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
Contextualizando

OutrasCaractersticas

Geralmenteusamcriptografia

Pormnonecessariamente(tneisnoencriptados)

Podemutilizar,ainda,compactao

Reduodotrfegotunelado(aconselhvelemlinkssaturados)

Necessrioavaliarretardodacompactao

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
Contextualizando

VantagensdeUtilizao

Redesfisicamenteseparadaspodemservistas
logicamentecomoumanicarede

Facilitandoaadministrao

Comousodacriptografia,tmsecanaisseguros,
mesmosobrecanaisinseguros

Reduodecustos(substituiodelinhasprivadasp.ex.)

Focodestaapresentao

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
CenriosdeImplementao

AcessoRemotoviaInternet

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
CenriosdeImplementao

ConexodeLANs

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
CenriosdeImplementao

ConexodeHostsemumamesmaIntranet
(semintermediao)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

VPNs(RedesVituaisPrivadas)
CenriosdeImplementao

ConexodeHostsemumamesmaIntranet
(comintermediao)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

SoftwaresparaImplementaodeVPNs
FreeSwan

(www.freeswan.org)

UsodoIPSecparatunelamento

NativonoIPv6,necessrioinstalarnoIpv4

ModificaonoscabealhosdosdatagramasIpv4

Apresentaproblemasparaestaesemmascaradas(NAT)

Descontinuado(ltimaverso(2.06)de22/04/2004)

SucedidopeloOpenSwan(www.openswan.org)

VoltadoparaVPNsentreLANs

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

SoftwaresparaImplementaodeVPNs
PPTPPonttoPointTunnelingProtocol
(www.pptp.org)

CriadopelaMicrosoft

BaseadonoprotocoloGRE(nvelderede)

NativodesdeoWindows95

ProblemascomNATeliberaoemfirewalls

Criptografiade128bits

VersesanterioresaoWindows2000sempatch=40bits

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

SoftwaresparaImplementaodeVPNs
OutrasOpes:

VtunVirtualTunnel(http://vtun.sourceforge.net)

CipeCryptoIPEncapsulation(http://sourceforge.net/projects/cipelinux)

VpndVirtualPrivateNetworkDaemon(http://vpnd.dotsrc.org)

Tinc(http://www.tincvpn.org)

SecvpnSecureVirtualPrivateNetwork(http://alioth.debian.org/projects/secvpn)

Yavipin(http://yavipin.sourceforge.net)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

http://openvpn.net

PrincipaisCaractersticas

UtilizaosprotocolosSSL/TLS

Flexibilidade(usodeTCPouUDP)

Implementatodososcenriosapresentados

ClientestambmparaWindows(textoougrfico)

Usodechavesaoinvsdeusurio/senha

Plataformas:Linux,Windows(apartirdo2000),
OpenBSD,FreeBSD,NetBSD,MacOSXeSunOS/Solaris

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN
Instalao

Instalaoapartirdofonte:

Baixarofonte(Verso2.0.9de01/10/2006):

http://openvpn.net/release/openvpn2.0.9.tar.gz

Descompactarem/usr/srceprocederinstalao:

./configure;make;makeinstall

InstalaonoLinuxDebian:

aptgetinstallopenvpn

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ArquivosImportantes
Servidor

ArquivodeConfiguraodoServidor
CertificadodaEntidadeCertificadora(CA)
ChavePblicadaEntidadeCertificadora(CA)
CertificadodoServidor
ChavePblicadoServidor

Cliente

ArquivodeConfiguraodoCliente
CertificadodaEntidadeCertificadora(CA)
CertificadodoCliente
ChavePrivadadoCliente

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ArquivosAuxiliares
ScriptsparaAutomatizarTarefas

Oprocessodeconfiguraoinicialeraomaistrabalhoso

GeraodosparmetrosDiffieHellman(utilizadoparaatrocade
chaves)

GeraomanualeassinaturadaschavesCA

Criaomanualdaschavesdoservidoredosclientes

Atualmente...

Scripts(/usr/share/doc/openvpn/examples/easyrsa)

Arq.Configurao(/usr/share/doc/openvpn/examples/sampleconfigfiles)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ProcedimentosIniciais
DiretrioPadroeCpiadeScriptseArquivos:

Criaodediretriopadro:

mkdir/etc/openvpn

Cpiadosscriptsparaodiretriopadro:

cd/etc/openvpn

cp/usr/share/doc/openvpn/examples/easyrsa.

cp/usr/share/doc/openvpn/examples/sampleconfigfiles/server.conf.

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

GeraodoCertificadoeChavedaCA

Editaroarquivovarsepersonalizarinformaes:
exportKEY_COUNTRY=BR
exportKEY_PROVINCE=RN
exportKEY_CITY=Natal
exportKEY_ORG=SINFOUFRN
exportKEY_EMAIL=naris@info.ufrn.br

CarregarvariveisegerarcertificadodaCA:
#../vars
#./cleanall
#./buildca

InformarCommonName:

CAOpenVPN

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

ArquivosGerados:

ca.crt
ca.key

OpenVPN

GeraodeCertificadoeChavedoServidor

Executaroscriptparageraodosarquivos:
#./buildkeyserverserver

InformarcomoCommonName:server
InformarcomoCommonName:

Respondery
Responder nasolicitao:Signthecertificate?[y/n]

Arquivosgerados:

server.crt

server.key

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

GeraodeCertificadoseChavesdosClientes

Executarparacadacliente:
#./buildkeynome_do_cliente

InformarcomoCommonName:nome_do_cliente
InformarcomoCommonName:

CadaclientedeveterumCommonNamedistinto

Arquivosgerados:

nome_do_cliente.crt

nome_do_cliente.key

Comestesprocedimentososclientesseroautenticadosbaseandose
apenasemseuscertificados.Parautilizarautenticaobaseadaem
certificadoesenha,utilizaroscriptbuildkeypass
,utilizaroscript

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

GeraodosParmetrosDiffieHelmann

Executaroscriptparageraodoarquivo:
#./builddh

Arquivogerado:

dh1024.pem

Estageraogeralmentedemorada
Parautilizar2048bits,modificaroarquivovarsantesde
executaroscriptbuilddh.

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ArquivosImportantes
Servidor

ArquivodeConfiguraodoServidor
CertificadodaEntidadeCertificadora(CA)
ChavePblicadaEntidadeCertificadora(CA)
CertificadodoServidor
ChavePblicadoServidor

server.conf
ca.crt
ca.key
server.crt
server.key

Cliente

ArquivodeConfiguraodoCliente
CertificadodaEntidadeCertificadora(CA)
CertificadodoCliente
ChavePrivadadoCliente

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

client.conf
ca.crt
nome_do_cliente.crt
nome_do_cliente.key

OpenVPN

ArquivodeConfiguraodoServidor

Contedodoarquivoserver.conf:
local200.1.2.3(ipdoservidor)
port1194(portapadro,pormconfigurvel)
protoudp(usarprotocoloudp)
devtun(usartapsomenteemvpnsemnveldeenlace)
caca.crt(arquivodocertificadodoCA)
certserver.crt(arquivodocertificadodoservidor)
keyserver.key(arquivodachaveprivadadoservidor)
dhdh1024.pem(arquivocomparmetrosDiffieHelmann)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ArquivodeConfiguraodoServidor

Contedodoarquivoserver.conf(cont.):
server10.8.0.0255.255.255.0(subrededaVPN)
pushroute192.168.0.0255.255.255.0
(clientesreceberorotapararedeatrsdoservidor)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ArquivodeConfiguraodoCliente

Contedodoarquivoclient.conf:
client(informaqueatuarcomoclientenaconexo)
devtun(usartapsomenteemvpnsemnveldeenlace)
protoudp(protocoloutilizadonaVPN)
remote200.1.2.31194(endereoIPeportadoservidor)
caca.crt(certificadodoCA)
certnome_do_cliente.crt(certificadodocliente)
keynome_do_cliente.key(chaveprivadadocliente)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN
WindowsGUI

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN
WindowsGUI

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ConectividadeTotal

VisualizandomquinasatrsdeumclienteOpenVPN:

Noarquivodeconfiguraodoservidor(server.conf):
clientconfigdirccd
route192.168.100.0255.255.255.255(redeatrsdocliente)

Criarumarquivoparacadacliente(dentrodosubdiretrioccd):
mkdir/etc/openvpn/ccd/
touch/etc/openvpn/ccd/nome_do_cliente

Cadaarquivoinformaarotaparasuaredeinterna:
iroute192.168.100.0255.255.255.255(redeatrsdocliente)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

ConectividadeTotal

VisualizandomquinasatrsdeumclienteOpenVPN(cont.):

Comisso,mesmoredesatrsdeclientesremotoscomconexono
permanenteficamdisponveisparaacessoenquantoaVPNestiver
ativa;

AsrotassoinseridassomentequandooclienteestabeleceaVPNe
soremovidasautomaticamentequandoaVPNdesfeita;

DestaformaumclienteremototornaseumgatewayVPNparaacesso
de/paraasuaredeinterna.

Umaopodeve,ainda.serhabilitadanoarquivodeconfiguraodo
servidorparapermitiracomunicaoentreclientesVPN:

clienttoclient

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

RevogaodeCertificados

Executaroscriptpararevogaodocertificado:
#.vars
#./revokefullnome_do_cliente

Verificarseoarquivocrl.pemgeradoestnodiretriode
configuraodoservidor
Adicionaralinhaabaixonoarquivoserver.conf:

crlverifycrl.pem

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

OutrosRecursos

VPNsemnveldeenlace(tnelethernet)

NoarquivodeConfiguraodoservidor(server.conf):

Trocaralinha:devtun
Trocaralinha:

pelalinha:devtap
pelalinha:

ManterIPsdeclientesnasprximasconexes:

NoarquivodeConfiguraodoservidor(server.conf):

Permitirmaisdeumclientecommesmocertificado:

NoarquivodeConfiguraodoservidor(server.conf):

ifconfigpoolpersistipp.txt

duplicatecn

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

OpenVPN

OutrosRecursos

Limitandoonmerodeclientessimultneos

NoarquivodeConfiguraodoservidor(server.conf):

Registrandologsemarquivoespecfico:

NoarquivodeConfiguraodoservidor(server.conf):

maxclients100(nestecasolimitandoem100)

logopenvpn.log

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

Concluindo...

ConsolidaodoOpenVPN

FlexibilidadeeRobustez

GPL(GeneralPublicLicense)

Noexigemudanasemnvelderede

PrincipalDesvantagem:NooferecesuporteaWin98

ConcorrenteDireto:PPTP(nativonoWindows)
Nadatosimplesquantoparece,
nemtocomplicadoquantodizomanual
(CorolriodasLeisdeMurph)

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

Perguntas???

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)

ComunicaoSeguraemCanaisInseguros
comOpenVPN
RicardoKlberM.Galvo
(rk@ufrn.br)

HelderJeanBritodaSilva
(helder@info.ufrn.br)

http://naris.info.ufrn.br
NcleodeAtendimentoe
RespostaaIncidentesdeSegurana

ComunicaoSeguraemCanaisInseguroscomOpenVPN
RicardoKlber(rk@ufrn.br)