Para poder realizar la instalacin y configuracin de la aplicacin OpenVPN, antes
de nada habr que descargar los paquetes necesarios a tal efecto. En este caso, si ambas mquinas funciona bao !N"#$%N"& habr que instalar openVPN en ambas y configurar una como ser'idor y otra como cliente. En el caso de que el ser'idor funcione bao $inu( pero el cliente sea una mquina )indo*s, habr que instalarle el cliente adecuado para poder establecer la red 'irtual. +omencemos con la instalacin de los paquetes. ,i bien con open'pn ser-a suficiente, en el caso de que se quiera utilizar con certificados, habr que instalar openssh .si no est ya instalado/. aptitude install openvpn openssh SEGURIDAD EN LA CONEXIN VPN GENERACIN DE LA CLAVE SECRETA 0ediante la siguiente directi'a se genera la cla'e pri'ada. Esa cla'e tienen que poseerla tanto el ser'idor como el cliente, con lo cual, tras generarla en el ser'idor, hay que colocarla en el directorio correcto del mismo y a su 'ez copiarla al cliente mediante un medio que no comprometa la seguridad de la cla'e. En este caso se ha optado por copiarlo al cliente mediante ssh. openvpn --genkey --secret giltza.key cp giltza.key /etc/openvpn scp giltza.key ip_del_servidor:/etc/openvpn/ GENERACIN DE CERTIFICADOS .0O1O !ENE23$/ En el caso de que se quiera aumentar la seguridad en la VPN, podr-a optarse por protegerlo mediante cla'e secreta y certificados. $as cla'es pri'adas tendrn que mantenerse siempre en pri'ado, los ficheros con los certificados en cambio pueden publicarse o compartirse con total libertad. ,e seleccionar en este eemplo el ser'idor como mquina generadora y gestora de las cla'es y los certificados. En primer lugar hay que edita el fichero openssl.cnf .#usr#share#ssl#openssl.cnf/, con las siguientes modificaciones4 hacer que la opcin dir apunte al directorio que se haya creado .habr que crearlo/ como espacio de trabao para las cla'es. %ncrementar default5days .si es que interesa/ para que la VPN tenga el tiempo de 'alidez que se estime oportuno .por defecto es de un a6o/. 1/6 Establecer certificate y pri'ate57ey para que apunten al certificado y a la cla'e maestra que se generar a continuacin. ,e pueden hacer ms modificaciones para adaptar openssl.cnf a nuestras necesidades, pero no es necesario hacer ms modificaciones para poder crear los certificados. $o primero, se generar la 3utoridad de +ertificacin .+3/, un par de certificado#cla'e pri'ada para los pr(imos 89 a6os .o los que se estimen oportunos/4 openssl req -nodes -new -x509 -keyout y-ca.key -out y-ca.crt -days !"50 3hora llega el turno de crear un par certificado#cla'e tanto para el ser'idor como para el cliente. openssl req -nodes new -keyout servidor.key -out servidor.csr openssl ca -out servidor.crt -in servidor.csr openssl req -nodes new -keyout cliente.key -out cliente.csr openssl ca -out cliente.crt -in cliente.csr "na 'ez generados los pares de cla'es tanto para el ser'idor como para el cliente, hay que copiar de forma segura cliente.crt, cliente.7ey y my:ca.crt al cliente. ;inalmente basta con establecer los parmetro 1iffie:<ellman en el ser'idor con el siguiente comando4 openssl dhpara -out dh#0$%.pe #0$% E(isten ms m=todos para generar cla'es y certificados, incluso pueden comprarse a una entidad certificadora, pero se ha utilizado esta forma a modo de e(plicacin, con gasto cero. GENERAR CERTIFICADOS MEDIANTE UTILIDAD EASY-RSA OPENVPN Otro modo de generar las cla'es y los certificados generados en el apartado anterior es 'alerse de los scripts que la propia aplicacin de OpenVPN incluye en su directorio #usr#share#doc#open'pn#easy:rsa, los cuales facilitan bastante la tarea. $o primero ser copiar el directorio easy:rsa a #etc#open'pn y situarse en dicho directorio. cp -a /usr/share/doc/openvpn/easy-rsa /etc/openvpn cd /etc/openvpn/easy-rsa Para generar la entidad certificadora4 ./clean-all ./&uild-ca 2/6 3l eecutar build:ca se solicitan los datos necesarios a fin de generar la entidad certificadora4 En =ste >ltimo paso se nos pedir una serie de informacin sobre nuestra red#empresa que debemos llenar lo ms fielmente posible4 'enerating a #0$% &it ()* private key ........................................................................................... .................................++++++.....................++++++ writing new private key to ,ca.key, ----- -ou are a&out to &e asked to enter in.oration that will &e incorporated into your certi.icate request. /hat you are a&out to enter is what is called a 0istinguished 1ae or a 01. 2here are quite a .ew .ields &ut you can leave soe &lank 3or soe .ields there will &e a de.ault value4 5. you enter ,.,4 the .ield will &e le.t &lank. ----- 6ountry 1ae 7$ letter code8 9:';:<) )tate or =rovince 1ae 7.ull nae8 91*;:<uskadi >ocality 1ae 7eg4 city8 9?5)@:<:;:?il&o Arganization 1ae 7eg4 copany8 9ApenB=1-2<)2;:p.c-server Arganizational Cnit 1ae 7eg4 section8 9;:test 6oon 1ae 7eg4 your nae or your server,s hostnae8 9;:nagore <ail *ddress 9eDyhost.ydoain;:nagoreDa&artiatea.co ,i bien el resto de los datos puede rellenarse como meor con'enga, la 'ariable +ommon Name es muy importante, ya que cuando una mquina trate de comprobar la 'alidez del certificado lo har contra el ;?1N de la mquina certificadora, con lo cual el +ommon Name tiene que coincidir con ella. GENERAR EL CERTIFICADO Y LA CLAVE DE ENCRIPTACIN PARA EL SERVIDOR 3l generar el certificado del ser'idor 'ol'ern a solicitarse los mismos datos que para generar la entidad certificadora. Nue'amente pueden generarse como meor con'enga, pero teniendo cuidado de no escoger el ;?1N utilizado para la +3. En este eemplo se ha tomado ser'er, como +ommon Name. ./&uild-key-server server Este paso genera dos archi'os en el directorio #etc#open'pn#easy:rsa#7eys, que habr que copiar al directorio #etc#open'pn4 ser'er.crt y ser'er.7ey El siguiente paso es generar los certificados y las cla'es de seguridad de cada uno de los clientes. $os archi'os obtenidos con el siguiente paso tendrn que almacenarse en la carpeta #etc#open'pn de cada cliente. Para generar el certificado y las cla'es pri'adas se eecuta en el ser'idor, dentro del directorio #etc#open'pn#easy:rsa# 4 ./&uild-key client# 3/6 En este >ltimo caso tambi=n habr que responder a las preguntas anteriores del modo con'eniente. El parmetro cliente8 pasado como parmetro distingue el certificado del certificado de otro cliente. Podrn crearse tantos clientes como sean necesarios cambiando el nombre que se le pasa como parmetro. GENERAR PARMETROS DIFFIE-HELLMAN ./&uild-dh "na 'ez generado tanto la +3, como los certificados del ser'idor y los de los clientes, habr que asegurarse de que tanto el cliente como el ser'idor tienen los siguientes archi'os4 3rchi'os en el ,er'idor: ca.crt4 ca.key4 server.key server.crt dh#0$%.pe 3rchi'os en el +liente4 ca.crt4 client#.crt4 client#.key CONFIGURACIN DE CONEXIN HOST TO HOST En esta configuracin @host to hostA se logra que el intercambio de paquetes entre dos mquinas se realice de forma encriptada. Para ello se crea una interfaz 'irtual con una %P pri'ada a cada e(tremo. ,e tomar como eemplo la 8BC.8DE.C.8 como la %P del ser'idor y la 8BC.8DE.C.C como la %P del cliente. +ualquier paquete que 'iae entre ambas direcciones lo har encriptado. CONFIGURACIN DEL SERVIDOR E/etc/openvpn/server.con. E dispositivo de tunel dev tun E i.con.ig ip_del_servidor ip_del_cliente i.con.ig #9$.#"F.$.# #9$.#"F.$.$ E 6lave del servidor secret /etc/openvpn/giltza.key Epuerto 7por de.ecto el puerto de B=1 es el ##9%8 port ##9% Eusuario &aGo el cual se eGecutarH la B=1 Iuser no&ody Igroup no&ody E opciones4 copriir con lzo4 ping cada #5 segs4 ver&ose # 7&aGo8 cop-lzo ping #5 ver& # 4/6 CONFIGURACIN DEL CLIENTE E/etc/openvpn/cliente#.con. E 5= pu&lica del servidor. <n caso de no tener una 5= pJ&lica .iGa4 optar por opciones Ecoo dyndns. reote p.c-server.dyndns.org E puerto port ##9% E dispositivo tunel dev tun E i.con.ig ip_del_cliente ip_del_servidor tun-tu #500 i.con.ig #9$.#"F.$.$ #9$.#"F.$.# E clave privada4 giltza.key 7en este caso8 E Cna posi&le ruta para la key en windows estH coentada. Esecret Kc:Lprogra .ilesLcopany &randed vpnLcon.igLkey.txtK secret /etc/openvpn/giltza.key E ena&le >MA copression cop-lzo E ping cada #0 segs ping #0 E copresiNn lzo cop-lzo E ver&ose oderado4 callar as de #0 ensaGes iguales ver& % ute #0 CONFIGURACIN DE CONEXIN ROAD WARRIOR CONFIGURACIN DEL SERVIDOR E/etc/openvpn/server.con. E dispositivo tunel dev tun E 6laves y certi.icados ca ca.cert cert server.crt key server.key dh dh#0$%.pe E 0irecciones que se asignarHn a los clientes. 0i.erentes de las de la su&red del servidor. E >a 5= del servidor en la vpn serH #9$.#"F.$.# server #9$.#"F.$.0 $55.$55.$55.0 i.con.ig-pool-persist ipp.txt E (uta para que los clientes alcancen la red local del servidor. 5/6 E @ace que un road warrior pueda OverP la red interna del servidor push Oroute #9$.#"F.#.0 $55.$55.$55.0P keepalive #0 #$0 cop-lzo user no&ody group no&ody persist-key persist-tun status openvpn-status.log ver& % CONFIGURACIN DEL CLIENTE E/etc/openvpn/client.con. E 5ndicaos que algunas con.iguraciones las toarH del servidor client E 0ispositivo tunel dev tun proto udp E 0irecciNn real del servidor reote p.c-server.dyndns.org port ##9% resolv-retry in.inite E no&ind --Q para asegurarse de que solo actue coo cliente y nunca coo servidor no&ind persist-key persist-tun E 6laves y certi.icados ca ca.crt cert client#.crt key client#.key cop-lzo ver& % 6/6