Вы находитесь на странице: 1из 8

Buscar...

18
Me gusta 9

INICIO

GNU/LINUX

PROGRAMACIN

SEGURIDAD

HERRAMIENTAS

BLOGROLL

CONTACTO

INSTALACIN Y CONFIGURACIN DE OPENVPN


Detalles Categora: Gur Creado en Lunes, 19 Noviembre 2012 16:45 Visitas: 4641

SPONSOR

14 Comentarios y 0 Reacciones

Una red privada virtual (VPN de las siglas en ingls de Virtual Private Network) es una tecnologa de red que permite una extensin segura de la red local sobre una red pblica o no controlada. Ejemplos comunes son la posibilidad de conectar dos o ms sucursales de una empresa utilizando como vnculo Internet, permitir a los miembros del equipo de soporte tcnico la conexin desde su casa al centro de cmputo, etc. Todo ello utilizando la infraestructura de Internet. Este artculo detalla los pasos de instalacin y configuracin de OpenVPN sobre un servidor Debian 6 Ubuntu 12.04 (para este artculo ha sido probado en ambos), para dar acceso remoto desde Internet hasta una red privada de un centro de cmputos. OpenVPN es una solucin VPN basada en SSL, liberada bajo la licencia GPL y es el estndar de facto para crear una VPN en GNU/Linux.

Espacio publicitario disponible

VPSAdministrado12,5mes
gigas.com/Cloud nicocon2GBRAMy2Cores.TransferenciaIlimitadaSoporte24h

RANDOM
Cmo recuperar el sistema de archivos de un pendrive Enviar correo con netcat, telnet Instalacin paso a paso de Mageia netinstall Dropbox no inicia en CentOS 6.3 Reemplazos para Microsoft Visio

ESCENARIO
Al construir una VPN, lo que sea desea es tener la posibilidad de acceder a una red local (protegida detrs de un firewall/gateway) desde Internet (o desde cualquier otra red insegura). El objetivo es que un cliente ubicado fsicamente fuera de la red local (y posiblemente a kilmetros de distancia) parezca conectado de forma local. El servidor de VPN es el que posibilita la "extensin" y es quien provee una conexin segura entre el cliente y la red local a travs de SSL (al utilizar certificados se obtiene autenticacin mutua y confidencialidad). El siguiente diagrama muestra el escenario planteado. En el ejemplo que se presenta en este artculo, la VPN no se realiza a travs de Internet, sino a travs de una red insegura 192.168.122.0/24. Se desea acceder a la red privada 10.9.0.0/24 a travs de la VPN 10.8.0.0/24.

HITS RECIENTES
Mostrar un reloj con segundero
hace 5 minutos

Aumentar el tiempo lmite de ejecucin de scripts PHP hace 10


minutos

Configurar nano para facilitar la edicin de cdigo hace 12 minutos Feliz cumpleaos linuxito.com.ar y Gracias madre patria!!! hace 13 minutos Instalacin y configuracin de OpenVPN hace 13 minutos Cmo formatear un pendrive en GNU/Linux hace 15 minutos Iniciar servicios automticamente en Ubuntu
hace 17 minutos

INSTALACIN DE OPENVPN
En Debian/Ubuntu es posible instalar OpenVPN desde los repositorios oficiales: a p t g e ti n s t a l lo p e n v p n

Cmo habilitar el acceso remoto a un servidor de bases de datos MySQL hace 17 minutos Cmo instalar y configurar Xfce en Slackware hace 17 minutos Configurar proxy en yum hace 19
minutos

Luego de la instalacin se deben copiar los scripts de configuracin de ejemplo al directorio /etc/openvpn: c d/ u s r / s h a r e / d o c / o p e n v p n / e x a m p l e s / e a s y r s a c pa2 . 0 // e t c / o p e n v p n / e a s y r s a c d/ e t c / o p e n v p n / e a s y r s a Estos scripts permiten la creacin automtica de una autoridad certificante (CA) autofirmada, lo cual simplifica mucho la instalacin. Ya que OpenVPN est basado en SSL, se utiliza openssl para la autenticacin mutua de clientes y servidores. La CA se utiliza para expedir certificados para el servidor de VPN y los clientes. Antes de comenzar a crear la CA y los certificados se deben configurar algunas variables de entorno. Editar el archivo v a r s : n a n ov a r s Se deben configurar correctamente los parmetros K E Y _ C O U N T R Y , K E Y _ P R O V I N C E , K E Y _ C I T Y , K E Y _ O R G , y K E Y _ E M A I L . En "Ubuntu 12.04.1 LTS" es necesario modificar el script w h i c h o p e n s s l c n f para que funcione correctamente (no as en Debian 6, ya que detecta la versin de openssl correctamente): n a n ow h i c h o p e n s s l c n f Eliminar todas las apariciones de la siguiente cadena (en la versin "OpenVPN 2.2.1 x86_64-linux-gnu" son 3 apariciones): [ [ : a l n u m : ] ] Luego de configurar el archivo v a r ses posible generar el certificado y clave para la Autoridad Certificante (CA): .. / v a r s . / c l e a n a l l . / b u i l d c a El script b u i l d c acrea el certificado de la CA utilizando los parmetros configurados en v a r s . Verificar que los parmetros entre corchetes estn correctos, modificar en caso contrario. Luego es posible generar el certificado y clave para el servidor de VPN: . / b u i l d k e y s e r v e rs e r v e r El CN (Common Name) debe ser "server", responder 'y' dos veces para firmar y commit del certificado. Generar los certificados para los clientes (es importante que los certificados de los clientes y del servidor estn firmados por la misma CA): . / b u i l d k e yc l i e n t 1 . / b u i l d k e yc l i e n t 2 . / b u i l d k e yc l i e n t 3

ANUNCIE AQU
Espacio publicitario disponible

MS LEDO
Instalacin y configuracin de OpenVPN (4642) Virtualizacin en CentOS 6.2 utilizando KVM (4143) "ps aux" explicado (3215) Por qu no utilizar 000webhost.com (2992) Instalar samba en CentOS 6.2 (2978) Cmo configurar el proxy en Ubuntu Server 12.04 (2891) Cmo configurar Samba en Red Hat/CentOS (2728) Compiz-fusion en CentOS 6.3 (2296) Utilizar SPICE en mquinas virtuales KVM (2287) Cmo crear tu propia autoridad certificante (CA) (2163)

SEGU

Nota: cada vez que se reinicia la sesin, se debe ejecutar ". ./var" para configurar las variables de entorno nuevamente.
Responder 'y' dos veces para firmar y commit del certificado. Finalmente se deben generar los parmetros Diffie-Hellman: . / b u i l d d h

ARCHIVOS DE CONFIGURACIN PARA EL SERVIDOR Y CLIENTES


Luego de construir nuestra PKI (Public Key Infrastructure), es decir nuestra infraestructura de autenticacin y encriptacin mediante clave pblica, se deben copiar los archivos de configuracin de ejemplo al directorio / e t c / o p e n v p n : c pa/ u s r / s h a r e / d o c / o p e n v p n / e x a m p l e s / s a m p l e c o n f i g f i l e s // e t c / o p e n v p n /

Configuracin del servidor


Descomprimir el archivo de configuracin del servidor: c d/ e t c / o p e n v p n / s a m p l e c o n f i g f i l e s / g u n z i ps e r v e r . c o n f . g z Editar el archivo de configuracin del servidor: n a n os e r v e r . c o n f

Modificar las siguientes lneas: p r o t ot c p ; p r o t ou d p c ae a s y r s a / k e y s / c a . c r t c e r te a s y r s a / k e y s / s e r v e r . c r t k e ye a s y r s a / k e y s / s e r v e r . k e y #T h i sf i l es h o u l db ek e p ts e c r e t d he a s y r s a / k e y s / d h 1 0 2 4 . p e m s e r v e r1 0 . 8 . 0 . 02 5 5 . 2 5 5 . 2 5 5 . 0

De esta forma el servidor dar acceso a la red 10.8.0.0/24 y tomar la direccin IP 10.8.0.1 (los clientes tendrn una IP en el rango 10.8.0.2 a 10.8.0.254). Si es necesario enviar reglas de ruteo a los clientes se debe agregar (por ejemplo para poder llegar a la red 10.9.0.0/24 que se encuentra detrs de la VPN): p u s h" r o u t e1 0 . 9 . 0 . 02 5 5 . 2 5 5 . 2 5 5 . 0 " Por ltimo copiar el archivo de configuracin al directorio /etc/openvpn: c ps e r v e r . c o n f. . / c d/ e t c / o p e n v p n

Configuracin de los clientes


Editar el archivo de configuracin de los clientes: c d/ e t c / o p e n v p n / s a m p l e c o n f i g f i l e s n a n oc l i e n t . c o n f Modificar las siguientes lneas: p r o t ot c p ; p r o t ou d p r e m o t e1 9 2 . 1 6 8 . 1 2 2 . 1 6 91 1 9 4 En este ejemplo la direccin IP 192.168.122.169 es la direccin en la cual el servidor escucha pedidos de conexin a la VPN 10.8.0.0/24 en el puerto 1194 (puerto por defecto de OpenVPN). Empaquetar el archivo de configuracin junto con los certificados y clave: c d/ e t c / o p e n v p n m k d i rc l i e n t 1 c ps a m p l e c o n f i g f i l e s / c l i e n t . c o n fc l i e n t 1 / c pe a s y r s a / k e y s / c a . c r tc l i e n t 1 / c pe a s y r s a / k e y s / c l i e n t 1 . c r tc l i e n t 1 / c l i e n t . c r t c pe a s y r s a / k e y s / c l i e n t 1 . k e yc l i e n t 1 / c l i e n t . k e y z i pZd e f l a t erc l i e n t 1 . z i pc l i e n t 1 / * Repetir el procedimiento para el resto de los clientes.

INICIAR EL SERVIDOR PARA VERIFICAR LA CONECTIVIDAD


Nota: antes de iniciar el servidor debe habilitarse IP forwarding para que funcione el ruteo de paquetes.
Habilitar IP forwarding: e c h o1>/ p r o c / s y s / n e t / i p v 4 / i p _ f o r w a r d Iniciar el servidor de VPN: c d/ e t c / o p e n v p n / o p e n v p ns e r v e r . c o n f Ejemplo: r o o t @ u b u n t u : / e t c / o p e n v p n #o p e n v p ns e r v e r . c o n f W e dN o v1 41 8 : 0 7 : 2 82 0 1 2O p e n V P N2 . 2 . 1x 8 6 _ 6 4 l i n u x g n u[ S S L ][ L Z O 2 ][ E P O L L ][ P K C S 1 1 ] [ e u r e p h i a ][ M H ][ P F _ I N E T 6 ][ I P v 6p a y l o a d2 0 1 1 0 4 2 4 2( 2 . 2 R C 2 ) ]b u i l to nM a r3 02 0 1 2 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2N O T E :O p e n V P N2 . 1r e q u i r e s' s c r i p t s e c u r i t y2 'o rh i g h e rt o c a l lu s e r d e f i n e ds c r i p t so re x e c u t a b l e s W e dN o v1 41 8 : 0 7 : 2 82 0 1 2D i f f i e H e l l m a ni n i t i a l i z e dw i t h1 0 2 4b i tk e y W e dN o v1 41 8 : 0 7 : 2 82 0 1 2T L S A u t hM T Up a r m s[L : 1 5 4 4D : 1 4 0E F : 4 0E B : 0E T : 0E L : 0] W e dN o v1 41 8 : 0 7 : 2 82 0 1 2S o c k e tB u f f e r s :R = [ 8 7 3 8 0 > 1 3 1 0 7 2 ]S = [ 1 6 3 8 4 > 1 3 1 0 7 2 ]

W e dN o v1 41 8 : 0 7 : 2 82 0 1 2R O U T Ed e f a u l t _ g a t e w a y = 1 9 2 . 1 6 8 . 1 2 2 . 1 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2T U N / T A Pd e v i c et u n 0o p e n e d W e dN o v1 41 8 : 0 7 : 2 82 0 1 2T U N / T A PT Xq u e u el e n g t hs e tt o1 0 0 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2d o _ i f c o n f i g ,t t > i p v 6 = 0 ,t t > d i d _ i f c o n f i g _ i p v 6 _ s e t u p = 0 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2/ s b i n / i f c o n f i gt u n 01 0 . 8 . 0 . 1p o i n t o p o i n t1 0 . 8 . 0 . 2m t u1 5 0 0 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2/ s b i n / r o u t ea d dn e t1 0 . 8 . 0 . 0n e t m a s k2 5 5 . 2 5 5 . 2 5 5 . 0g w1 0 . 8 . 0 . 2 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2D a t aC h a n n e lM T Up a r m s[L : 1 5 4 4D : 1 4 5 0E F : 4 4E B : 1 3 5E T : 0E L : 0 A F : 3 / 1] W e dN o v1 41 8 : 0 7 : 2 82 0 1 2L i s t e n i n gf o ri n c o m i n gT C Pc o n n e c t i o no n[ u n d e f ] W e dN o v1 41 8 : 0 7 : 2 82 0 1 2T C P v 4 _ S E R V E Rl i n kl o c a l( b o u n d ) :[ u n d e f ] W e dN o v1 41 8 : 0 7 : 2 82 0 1 2T C P v 4 _ S E R V E Rl i n kr e m o t e :[ u n d e f ] W e dN o v1 41 8 : 0 7 : 2 82 0 1 2M U L T I :m u l t i _ i n i tc a l l e d ,r = 2 5 6v = 2 5 6 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2I F C O N F I GP O O L :b a s e = 1 0 . 8 . 0 . 4s i z e = 6 2 ,i p v 6 = 0 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2I F C O N F I GP O O LL I S T W e dN o v1 41 8 : 0 7 : 2 82 0 1 2M U L T I :T C PI N I Tm a x c l i e n t s = 1 0 2 4m a x e v e n t s = 1 0 2 8 W e dN o v1 41 8 : 0 7 : 2 82 0 1 2I n i t i a l i z a t i o nS e q u e n c eC o m p l e t e d Luego de asegurarse que inicia correctamente es posible iniciar el servicio utilizando la herramienta s e r v i c eo desde / e t c / i n i t . d .

CLIENTES WINDOWS
La instalacin de OpenVPN para acceder a la VPN desde clientes Windows es extremadamente sencilla, se deben seguir los siguientes pasos:
1. Descargar el cliente OpenVPN desde el siguiente enlace: http://swupdate.openvpn.org/community/releases/openvpn-2.2.2-install.exe 2. Instalar el cliente con las opciones por defecto. 3. Copiar el paquete zip que contiene los certificados, la clave y el archivo de configuracin al cliente Windows. 4. Descomprimir el contenido del zip dentro del directorio "C:\Program Files\OpenVPN\config":

5. Renombrar el archivo "client.conf" a "client.ovpn". 6. Iniciar el cliente desde el icono "OpenVPN GUI" que se encuentra en el escritorio de Windows. 7. Una vez que inicia, clic derecho sobre el icono en la barra de tareas y ejecutar "Connect":

En la barra de tareas notifica la conexin:

Direccin IP asignada:

Ruta agregada:

8. Finalmente verificar la conexin con ping.

NAT O NO NAT?
La pregunta si se desea realizar NAT (Network Address Translation) hacia la red privada, desde la red VPN, se debe a cuestiones de ruteo. En el ejemplo, si no se utiliza NAT, el gateway de la red privada (10.9.0.0/24) debe conocer la ruta hacia la red VPN (10.8.0.0/24) para que los clientes de la VPN puedan conectarse de forma exitosa a los hosts de la red privada. Si no es posible agregar la ruta a la red VPN en el gateway, o si directamente no hay gateway (por tratarse de una red aislada), todos los host de la red privada deben tener definida una ruta esttica a la red VPN (10.8.0.0/24). Desde la red privada, el gateway para llegar a la red VPN es el servidor VPN. Una alternativa ms simple, que permite prescindir de un gateway y de rutas estticas en los hosts, es utilizar NAT o IP masquerading. Con esta tcnica, se enmascara todo el trfico de la VPN como proveniente desde el servidor VPN. Como el servidor VPN tiene IP en la red privada, no es necesaria ninguna regla de ruteo.

NAT
En caso de utilizar NAT hacia redes detrs de la VPN (por ejemplo hacia la red 10.9.0.0/24), se debe habilitar IP forward y utilizar iptables en el servidor VPN: #c a t/ e t c / o p e n v p n / i p t a b l e s . s h # ! / b i n / s h #H a b i l i t a rr e e n v od ep a q u e t e s e c h o1>/ p r o c / s y s / n e t / i p v 4 / i p _ f o r w a r d #H a b i l i t a rN A Th a c i al ar e d1 0 . 9 . 0 . 0 / 2 4

/ s b i n / i p t a b l e stn a tAP O S T R O U T I N Gs1 0 . 8 . 0 . 0 / 2 4d1 0 . 9 . 0 . 0 / 2 4jM A S Q U E R A D E Editar el archivo /etc/rc.local para ejecutar el script al inicio del sistema. Agregar la linea: / e t c / o p e n v p n / i p t a b l e s . s h

14comentarios Dejarunmensaje...
Mejor Comunidad denis hace21horas Compartir

Hola,tengounaduda,alhacerunpingdesdeelclienteVPN(redinsegura:192.168.1.X)alared local(10.9.0.0)todook,peroalhacerpingdesdeunapcdelaredlocalhacialaelclienteVPN (192.168.1.x)nohayrespuesta(requesttimeout),heolvidadohaceralgo?(Podriaserlaparte dondedicesNATONONAT?,yaquenolaeconfiguradopknoteentendimuybienesaparte)

Gracias
Responder Compartir

Luis hace3das

Mesaleesteerrorque,queesloqueestapasando?ocmopuedosolucionarlo? FriJul1915:52:222013OpenVPN2.2.2Win32MSVC++[SSL][LZO2][PKCS11]builtonDec15 2011 FriJul1915:52:222013NOTE:OpenVPN2.1requires'scriptsecurity2'orhighertocalluser definedscriptsorexecutables FriJul1915:52:222013LZOcompressioninitialized FriJul1915:52:222013ControlChannelMTUparms[L:1544D:140EF:40EB:0ET:0EL:0] FriJul1915:52:222013SocketBuffers:R=[65536>65536]S=[65536>65536] FriJul1915:52:222013DataChannelMTUparms[L:1544D:1450EF:44EB:135ET:0EL:0AF:3/1 ] FriJul1915:52:222013LocalOptionshash(VER=V4):'69109d17' FriJul1915:52:222013ExpectedRemoteOptionshash(VER=V4):'c0103fa8'

verms

Responder

Compartir

tito25 hace17das

Holaamimemuestraelsiguientemensaje bash:/etc/openvpn/easyrsa/whichopensslcnf:Permisodenegado NOTE:Ifyourun./cleanall,Iwillbedoingarmrfon/etc/openvpn/easyrsa/keys


Responder Compartir

tito25 > tito25 hace17das

Perdoncreonomeexpliquebiencuandoejecutoelcomando

[root@servereasyrsa]#../vars
Responder Linuxito Compartir

Moderador

> tito25 hace17das


Compartir


Inukaze haceunmes

Elarchivo/etc/openvpn/easyrsa/whichopensslcnftienepermisodelectura?Ests corriendocomoroot?
Responder

Excelentetutorialsolotengounpardedudas,laprimeraessilosequiposconectadosalaVPN, apareceranenelprogramallamado"iptux",ylaotraes,cualquieraqueconoscalaIPdelVPN, podraconectarsesinnecesidaddenombredeusuarioycontrasea???


Responder Linuxito Compartir

Moderador

> Inukaze haceunmes

Noconozcoelprogramaiptuxynoentiendoaquterefierescon"apareceran".Respectoa laotra,paraconectarsealaVPN,ademsdeconocerlaIPdelservidorVPNsenecesitaun certificadofirmadoporlamismaCAquefirmaelcertificadodelservidorVPN(enestetutorial esloquehacemosutilizandoeasyrsa).Esporelloquelaclaveprivadadelcertificado clientedebeserultrasecreta. Saludos!!


Responder Compartir

EstebanJesusCabalaLecaros haceunmes

Amigo,yalogrerealizarlaVPN,conexito,adicionalmenteprobeescritoriosremotosdewindowsa Ubuntuyviceversaymesalioal100%,graciasportupost,quisierapreguntartecualeseltipode protocoloqestasutilizandoPPTP??,IPSEC??,L2TP???.Nosesipodriasayudarmeconesta preguntagraciasdetodasmanerasporcontestar


Responder Compartir

Guest haceunmes

Amigoporfavorpodriasdecirmedondedescargoloscertificadosdelclienteenwindowsxp? Exactamenteeselpunto: 3.Copiarelpaquetezipquecontieneloscertificados,laclaveyelarchivodeconfiguracinalcliente Windows.

Descargueelprograma,perolospaquetesnosedondeestan,graciasporresponder
Responder Linuxito Compartir

Moderador

> Guest haceunmes

Por"paquete"merefieroalarchivo"client1.zip"quesecreaenelpaso: zipZdeflaterclient1.zipclient1/*
1

Responder

Compartir

CarlosGuijarro hace4meses

TueMar1212:57:322013BCM5703GigabitEthernet TueMar1212:57:322013Index=65539 TueMar1212:57:322013GUID={897A167DEF754FAFA18BA813DF2F527C} TueMar1212:57:322013IP=192.168.254.250/255.255.255.0 TueMar1212:57:322013MAC=00:19:bb:cd:85:a8 TueMar1212:57:322013GATEWAY=192.168.254.1/0.0.0.0 TueMar1212:57:322013DNSSERV=192.168.254.18.8.8.8 TueMar1212:57:322013WAN(PPP/SLIP)Interface TueMar1212:57:322013Index=3407876 TueMar1212:57:322013GUID={FD59ECB8B3174550BC16E4A4C00CA55D} TueMar1212:57:322013IP=192.168.10.60/255.255.255.255 TueMar1212:57:322013MAC=00:53:45:00:00:00 TueMar1212:57:322013GATEWAY= TueMar1212:57:322013DNSSERV=200.63.212.110200.25.144.1 TueMar1212:57:322013InitializationSequenceCompletedWithErrors(see http://openvpn.net/faq.html#dh...) TueMar1212:57:322013MANAGEMENT: >STATE:1363111052,CONNECTED,ERROR,10.8.0.6,186.47.86.146

>STATE:1363111052,CONNECTED,ERROR,10.8.0.6,186.47.86.146
Responder Linuxito Compartir

Moderador

> CarlosGuijarro hace4meses


Compartir

Esmuydifcilayudartesinsabertuconfiguracin,perofijatesiesteartculotesirve: http://support.microsoft.com/k...
Responder

EstebanJesusCabalaLecaros > CarlosGuijarro haceunmes

TerecomiendosimularloenVMWAREprimero,yloagregasenVMNET3,ynotendras problemasenloabsoluto
Responder Compartir

CarlosGuijarro hace4meses

ayudaporfavor,hicetodoloqeudiceaqui,medaesteerror: TueMar1212:57:322013TAPWindowsAdapterV9 TueMar1212:57:322013Index=3276805 TueMar1212:57:322013GUID={D27A6FF2D3424375A3C49E4247574504} TueMar1212:57:322013IP=10.8.0.14/255.255.255.252 TueMar1212:57:322013MAC=00:ff:d2:7a:6f:f2 TueMar1212:57:322013GATEWAY= TueMar1212:57:322013DHCPSERV=10.8.0.13 TueMar1212:57:322013DHCPLEASEOBTAINED=MonMar1117:30:382013 TueMar1212:57:322013DHCPLEASEEXPIRES=TueMar1117:30:382014 TueMar1212:57:322013DNSSERV=
Responder Compartir

Canaldecomentarios

Suscribirseporemail back to top

LINUXITO.COM.AR

Вам также может понравиться