Professional Documents
Culture Documents
Una VPN Virtual Private Network, es una tecnologa en la que permite hacer conexiones de una red local sobre una ip publica estando desde internet. Tambin son conocida como redes privadas en las cuales mediante un proceso de encapsulamiento y encriptacin de los datos se refiere a la utilizacin de la infraestructura publica de telecomunicaciones.
Tipos de VPN#
Para poder implementar una red VPN tendremos que saber que tipos de VPN existen para poder instalarla y configurarle en nuestra red local. Existen 3 tipos de redes VPN: Host to Host: Este el mtodo mas sencillo de implementar, nos permite la comunicacin entre dos mquinas de las cuales solo tienen conexin entre ellos, esto quiere decir que solo exista la comunicacin por medio de la VPN entre estos 2 equipos y pueden estar dentro de una red local o en internet.
05/11/2011
Pgina 2 de 17
Road Warrior: Esta una de las formas mas utilizadas y solicitadas, es permitir un conjunto de mquina ya sean de la red local o de internet se conecten dentro de la red VPN, existiendo un servidor en el controle las conexiones, todas estas conexiones se realizan mediante certificados de autenticacin. Net to Net: Mediante esta forma conectamos 2 a varias redes LAN en lugares fsica apartados, la conexin entre las redes viajara encriptada, con esto podremos acceder a cualquier recursos de la red que se encuentre en el otro extremo de la VPN.
Servidores VPN#
Tenemos varios servicios de los cuales nos permite crear estos tneles en GNU/Linux, los mas conocidos son: OpenVPN: Es una solucin completa de conexin de redes VPN, contiene validacin de usuario, enviado de informaron encriptada. Mas informacin revisar el sitio oficial del proyecto. http://www.openvpn.net/ PPTP: Este el protocolo que realiza conexiones punto a punto, su principal habilidad la conexin mltiple de protocolos dentro del servicio. http://www.poptop.org./ Openswan: Es una implementacin de IPSec, son varios protocolos cuya funcin es garantizar la comunicacin sobre el protocolo de internet, permite la autenticacin y cifrado. Mas informacin revisar el siguiente link. http://www.openswan.org/
Postinstalacion OpenVPN.#
Toda la instalacin y configuracin se realizara sobre la distribucin Centos versin 5.0, por el cual OpenVPN no viene agregada en los repositorio oficiales de dicha distribucin. Por lo cual tendremos que agregar otra repositorio extra para este servicio.
Agregando Repositorio.#
Para esto tendremos que agregaremos el repositorio de DAG Wieers, este repositorio se encarga de proporcionar paquetes que no son soportados en los repositorios oficiales de CentOS. Para mas informacin revisar el sitio oficial del repositorio http://dag.wieers.com/rpm/ La forma mas rpida de agregar este repositorio es instalar el paquete que agrega el repositorio a nuestra lista. Esta ruta encontraran el paquete a instalar dependiendo de la versin de su CentOS http://dag.wieers.com/rpm/FAQ.php#B [root@rodmen ~]# rpm -Uhv [http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/] rpmforge-release-0.3.6-1.el5.rf.i386.rpm Ya instalado el paquete, actualizaremos la lista de paquetes y tambin se recomienda actualizar el Sistema Operativo. [root@ascariote ~]# yum update
Instalacin OpenVPN.#
Despus de la actualizacin de paquetes ahora ya podremos instalar el servicio de OpenVPN sin ningn problema. [root@ascariote ~]# yum install openvpn OpenVPN trabaja en el puerto 1194 del cual por default utiliza protocolo udp pero tambin se puede utilizar tcp.
Interfaces OpenVPN.#
OpenVPN utiliza 2 tipos de interfaz de red virtuales como: TUN: Esta interfaz simula que es un dispositivo Ethernet que trabaja sobre la capa 3 del modelo OSI, esta interfaz es ocupada cuando hacemos un Ruteo dentro de la red de la VPN. TAP: Esta interfaz simula que es un dispositivo Ethernet que trabaja sobre la capa 2 del modelo OSI, esta interfaz es ocupada cuando queremos utilizar redes en modo puente.
Servicio OpenVPN#
Dentro de este manual se enseara a configurar los mtodos de configuracin de OpenVPN como:
05/11/2011
Pgina 3 de 17
Host To Host#
Sus principales caractersticas son: Solo existe un Cliente y un servidor en esta configuracin. Conexin encriptada entre ambos sistemas. Utilizan la misma llave de autenticacin.
log /var/log/openvpn.log Vemos el estado actual del servicio, como tambin la bitcora de errores y conexiones. secret secret.key Mandamos a solicitar la llave de autenticacin del servidor. ping 10 verb 4 mute 10 Ping cada 10 segundos Mtodo del Verbose Moderado Calla mas 10 mensaje iguales
05/11/2011
Pgina 4 de 17
[root@ascariote openvpn]# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
remote ascariote.dynalias.net En este parmetro indica el nombre del servidor OpenVPN, pero tambin se puede poner la IP publica. port 1194 Puerto de escucha del servidor. dev tun tun-mtu 1500 ifconfig 10.8.0.2 10.8.0.1 secret secret.key ping 10 comp-lzo verb 4 mute 10 Dispositivo virtual en el cual con el cual se conectara al servidor. IP del cliente y despus del servidor OpenVPN. Mandamos a solicitar la llave de autenticacin del servidor. Ping cada 10 segundos. Comprimir dentro de la red virtual con lzo. Mtodo del Verbose Moderado. Calla mas 10 mensaje iguales.
Clientes GNU/Linux En este tipo de configuracin solamente se instala openvpn en las distribuciones GNU/Linux, indicaremos como instalar esta aplicacin en las conocidas como debian, ubuntu, CentOS, Fedora. Distribuciones como debian/ubuntu y sus derivados solamente tendremos que instalar el servicio de la siguiente manera.
lucifer:~# apt-get install openvpn Distribuciones como RHEL/CentOs/Fedora y sus derivados solamente tendremos que instalar el servicio de la siguiente manera, pero antes de todo en CentOS/RHEL entremos que agregar el repositorio de DAG Wieers para poder tener el servicio. [root@moa ~]# yum install openvpn Para otra distribuciones existe un tar.gz el cual contiene el cdigo fuente para ser compilado e instalado en su distribucin, lo pueden descargar desde la siguiente liga. http://openvpn.net/index.php/open-source/downloads.html Con esto ya tendremos instalado nuestro cliente en nuestra distribucin. Tendremos que hacer los siguientes paso para poder configurar el cliente, toda la configuracin del cliente se llevan acabo en el directorio /etc/openvpn y el fichero de configuracin del cliente y la llave deben estar en esta ruta. Enviaremos estos archivos serian enviados por scp, como el archivo de configuracin y llave de conexin de la siguiente manera: [root@ascariote openvpn]# scp client.conf secret.key root@189.175.23.45:/etc/openvpn En el cliente solamente tendremos que iniciar el servicio de OpenVPN.
05/11/2011
Pgina 5 de 17
[root@moa ~]#/etc/init.d/openvpn start Verificamos que tengamos levantara la interfaz virtual de la red VPN. [root@moa ~]# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.2 P-t-P:10.8.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:168 (168.0 b) TX bytes:168 (168.0 b)
Clientes Windows Para estos sistema operativos solamente tendremos que descargar el cliente en formato exe, su instalacin es muy sencilla y rpida. Lo podremos descargar desde el siguiente link. http://openvpn.net/index.php/open-source/downloads.html Ya que tenemos instalado el cliente, solamente tenemos que ejecutar el siguiente comando para que cambie el formato del archivo a msdos.
[root@ascariote openvpn]# unix2dos guindows.conf guindows.conf Cambiamos la extensin del fichero ya que el cliente OpenVPN en windows reconoce sus archivos con la extensin ovpn. [root@ascariote openvpn]# mv guindows.conf guindows.ovpn Sera cuestin de enviar el archivo de configuracin del cliente y su llave de autenticacin para poder hacer la conexin, ya seria enviarlo va correo, Samba, FTP o un apache. Ya teniendo los archivos de configuracin y llave solamente tendremos que moverlos a la siguiente ruta C:\Archivos de programas\OpenVPN\config. Para poder iniciar el cliente OpenVPN solamente tenemos que ejecutar el icono que se encuentra en la barra de tarea en la parte derecha se encontrara un icono muy parecido al de red en windows pero en color rojo, solo le damos click derecho en sobre el y tendremos las opciones que podremos utilizar. Una forma de comprobar que ya tenemos asignada nuestra IP es ejecutando el comando ipconfig en el interprete de comandos.
Comprobando Conexin.#
La forma mas sencilla de saber que ya funciona nuestra red VPN es mandar paquetes ICMP del servidor al cliente. lucifer@lucifer:~$ ping -c 5 10.9.0.1 PING 10.9.0.1 (10.9.0.1) 56(84) bytes of data. 64 bytes from 10.9.0.1: icmp_seq=1 ttl=64 time=0.025 ms 64 bytes from 10.9.0.1: icmp_seq=2 ttl=64 time=0.038 ms 64 bytes from 10.9.0.1: icmp_seq=3 ttl=64 time=0.038 ms 64 bytes from 10.9.0.1: icmp_seq=4 ttl=64 time=0.037 ms 64 bytes from 10.9.0.1: icmp_seq=5 ttl=64 time=0.045 ms --- 10.9.0.1 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 3998ms rtt min/avg/max/mdev = 0.025/0.036/0.045/0.009 ms lucifer@lucifer:~$ Como tambin hacemos la comprobacin en el cliente. Si tuviramos algn otro servicio dentro del servidor/cliente VPN, un Servidor FTP, Servidor Web, etc, ya podremos utilizar sus recursos desde la VPN.
05/11/2011
Pgina 6 de 17
Road Warrior#
La conexin Road Warrior permite la comunicacin entre los usuarios externo y usuarios locales en la red local de nuestra oficina, en esta conexin puede ver mas 1 cliente conectado en la red virtual. En este tipo de configuracin los usuarios estn bajo certificados y llaves de autenticacin para su conexin a la red VPN. Las razones de utilizar una VPN en modo Road Warrior son: Permite compartir informacin y los recursos de la red local. Configuracin personalizada. Manejo de varias redes virtuales y usuarios Bloquea ataques de intrusos y espas.
Como podemos ver solo agregamos datos esenciales para la creacin de la Certificados CA, guardamos el archivos y ahora debemos refrescar las variables que tiene el archivo var. [root@test easy-rsa]# source vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys Nos devuelve un posible error por lo cual tendremos que limpiar todas la opciones de OpenVPN. [root@test easy-rsa]# sh clean-all Ahora debemos crear el certificado de Autenticacin para el servicio de OpenVPN. [root@test easy-rsa]# sh build-ca Generating a 1024 bit RSA private key .................++++++ ..........++++++
05/11/2011
Pgina 7 de 17
writing new private key to 'ca.key' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [MX]: State or Province Name (full name) [DF]: Locality Name (eg, city) [MEXICO]: Organization Name (eg, company) [ASCARIOTE SA DE CV]: Organizational Unit Name (eg, section) []:ASCARIOTE Common Name (eg, your name or your server's hostname) [ASCARIOTE SA DE CV CA]:SERVER Name []:SERVER Email Address [administrador@ascariote.com.mx]: [root@test easy-rsa]# Debemos crear la clave diffie-hellman, en este paso nos preguntara si queremos firmar digitalmente con nuestro certificado creado anteriormente. [root@test easy-rsa]# sh build-dh Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ....+.....................+........+.+......................+...............+............. ..................................+.............+.....+...................................... ....+.......................+.................................+........................+.... .......................+..............+....................................................... ......................................................................+......+................ ........................................++*++*++* [root@test easy-rsa]# Crearemos el certificado y la llave para el servidor OpenVPN, solicitara datos generales de la empresa. [root@test easy-rsa]# sh build-key-server server Generating a 1024 bit RSA private key .....++++++ ...++++++ writing new private key to 'server.key' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [MX]: State or Province Name (full name) [DF]: Locality Name (eg, city) [MEXICO]: Organization Name (eg, company) [FACTOR SA DE CV]: Organizational Unit Name (eg, section) []:FACTOR Common Name (eg, your name or your server's hostname) [server]:SERVER Name []:SERVER Email Address [administrador@factor.com.mx]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /etc/openvpn/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'MX' stateOrProvinceName :PRINTABLE:'DF'
05/11/2011
Pgina 8 de 17
localityName :PRINTABLE:'MEXICO' organizationName :PRINTABLE:'FACTOR SA DE CV' organizationalUnitName:PRINTABLE:'FACTOR' commonName :PRINTABLE:'SERVER' name :PRINTABLE:'SERVER' emailAddress :IA5STRING:'administrador@factor.com.mx' Certificate is to be certified until Aug 23 18:10:41 2019 GMT (3650 days) Sign the certificate? [y/n]:Y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated [root@test easy-rsa]# Todos estas llaves y certificados generados se encuentran en el directorio key por lo cual entraremos a ese directorio. [root@test easy-rsa]# cd keys/ Verificamos que fichero encontramos. [root@test keys]# ls 01.pem ca.key index.txt ca.crt dh1024.pem index.txt.attr [root@test keys]# Los archivos mas importantes son: Archivo ca.crt/ca.key dh1024.pem Descripcin Contiene el certificado de autenticacin y llave. Sin estos no podrs crear certificados para tus clientes VPN. Clave diffie-hellman, tambin es necesaria los clientes.
index.txt.old serial
serial.old server.crt
server.csr server.key
Ya teniendo estos archivos solamente tendremos que hacer una copia de estos archivos y mandarlos a /etc/openvpn/.
[root@test keys]# cp ca.* dh1024.pem server.crt server.key /etc/openvpn Ahora debemos crear el archivo de configuracin de nuestro servidor OpenVPN, lo crearemos en el directorio /etc/openvpn. [root@test easy-rsa]# cd /etc/openvpn Crearemos el archivo del servidor OpenVPN. [root@test openvpn]# vim server.conf Debe contener los siguientes parmetros: proto udp dev tun0 ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key dh /etc/openvpn/dh1024.pem duplicate-cn server 192.168.4.0 255.255.255.0 client-config-dir /etc/openvpn/ccd comp-lzo user root group root persist-key persist-tun status /var/log/openvpn-status.log log /var/log/openvpn.log verb 3 mute 20
05/11/2011
Pgina 9 de 17
ping 10 ping-restart 120 Explicaremos cada una de la opciones del servidor OpenVPN: Parmetro proto udp dev tun0 ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key dh /etc/openvpn/dh1024.pem Descripcin El servicio de OpenVPN utilizara protocolo UDP. Interfaz virtual por la cual se crea el tnel. Especifica la ruta en donde se localiza el certificado de autenticacin. Especifica la ruta en donde se localiza el certificado de servidor. Especifica la ruta en donde se localiza la llave de autenticacin. Especifica la ruta en cual contiene el formato de Diffie Hellman.
server 192.168.4.0 255.255.255.0 Segmento de red VPN, la primera IP del segmento queda reservada para el servidor OpenVPN. client-config-dir /etc/openvpn/ccd Este parametro manda a llamar a archivo dentro de esta ruta para asignar IP Estticas de la Red VPN. comp-lzo user root/group root persist-key Comprimir dentro de la red virtual con lzo. Esta opcin soluciona el problema por llaves que persisten a travs de los reajustes SIGUSR1.
persist-tun Permite que no se cierre y se vuelvan abrir los dispositivos TAP/TUN. status /var/log/openvpn-status.log Estado actual del servicio OpenVPN. log /var/log/openvpn.log verb 3 mute 20 ping 10 ping-restart 120 La bitcoras de los Logs del servicio OpenVPN. Mtodo del verbose Moderado. Calla mas 10 mensaje iguales. Ping cada 10 segundos al servidor OpenVPN. Reinicia ping cada 120 segundos.
05/11/2011
Pgina 10 de 17
Organizational Unit Name (eg, section) []:LPT Common Name (eg, your name or your server's hostname) [ascariote]: Name []:ascariote Email Address [administrador@factor.com.mx]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /etc/openvpn/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'MX' stateOrProvinceName :PRINTABLE:'DF' localityName :PRINTABLE:'MEXICO' organizationName :PRINTABLE:'FACTOR SA DE CV' organizationalUnitName:PRINTABLE:'LPT' commonName :PRINTABLE:'ascariote' name :PRINTABLE:'ascariote' emailAddress :IA5STRING:'administrador@factor.com.mx' Certificate is to be certified until Aug 23 21:36:12 2019 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated [root@test easy-rsa]# Con esto ya habremos que creado los archivos necesarios para los clientes y todos estos archivos se encuentra almacenados en /etc/openvpn/easy-rsa/keys/, entramos en esa ruta y verificamos que estn nuestros archivos con el nombre del usuario a conectarse, en nuestro caso el usuario se llama ascariote. Para que un cliente pueda conectarse se necesitan los siguientes archivos: ca.crt ascariote.* Por recomendacion cuando nosotros creamos mas usuario todo se queda dentro de esta carpeta sin ordenar pero te recomiendo tener a los usuarios separados. Esto lo podemos arreglar de la siguiente manera. Creamos una carpeta en donde se depositaran todos los clientes de la VPN Road Warrior. [root@test keys]# mkdir /etc/openvpn/clientes/ Ahora solamente creamos la carpeta por cada usuario. [root@test keys]# mkdir /etc/openvpn/clientes/ascariote Copiamos los archivos de configuracin del usuario y el certificado del autenticacin. [root@test keys]# cp ca.crt ascariote.* /etc/openvpn/clientes/ascariote/ NOTA: Con esto ya tendremos los archivos de configuracin de los clientes y el certificado de autenticacin respaldo ya que cuando hacemos limpieza de variables en OpenVPN son borrados todos los archivos de configuracin de los clientes y servidor en el directorio /etc/openvpn/easy-rsa/keys/.
Clientes GNU/Linux En este tipo de configuracin solamente se instala OpenVPN en las distribuciones GNU/Linux, indicaremos como instalar esta aplicacin en las conocidas como debian, ubuntu, CentOS, Fedora. Distribuciones como debian/ubuntu y sus derivados solamente tendremos que instalar el servicio de la siguiente manera.
ascariote:~# apt-get install openvpn Distribuciones como RHEL/CentOs/Fedora y sus derivados solamente tendremos que instalar el servicio de la siguiente manera, pero antes de todo en CentOS/RHEL entremos que agregar el repositorio de DAG Wieers para poder tener el servicio. [root@moa ~]# yum install openvpn
05/11/2011
Pgina 11 de 17
Para otra distribuciones existe un tar.gz el cual contiene el cdigo fuente para ser compilado e instalado en su distribucin, lo pueden descargar desde la siguiente liga. http://openvpn.net/index.php/open-source/downloads.html Con esto ya tendremos instalado nuestro cliente en nuestra distribucin ahora lo que tenemos que hacer con el servidor es ir a /etc/openvpn/clientes, en el cual se encontraran las carpetas de los usuarios permitidos en la VPN entramos alguna de las carpetas y veremos que solo falta el archivo el archivo de configuracion para el cliente VPN. Debemos crear el archivo de configuracin para los clientes de la VPN. [root@test ~]# vim /etc/openvpn/clientes/ascariote.conf En el cual contiene los siguientes parmetros. client remote test.ascanet.com.mx port 1194 proto udp dev tun ca /etc/openvpn/ca.crt cert /etc/openvpn/ascariote.crt key /etc/openvpn/ascariote.key comp-lzo log /var/log/openvpn.log verb 3 mute 20 ping 10 ping-restart 120 persist-key persist-tun Explicaremos cada una de la opciones del cliente OpenVPN: Parmetro Client remote test.ascanet.com.mx Port 1194 proto udp dev tun Descripcin Indica que va hacer cliente de la red VPN. El nombre o IP del servidor OpenVPN, el cual controla los accesos a la misma. Puerto de escucha del servicio OpenVPN en el servidor. Protocolo utilizado en red VPN
Interfaz virtual con el cual se conecta a la red VPN. Especifica la ruta en donde se localiza el certificado de autenticacin, este certificado es del servidor ca /etc/openvpn/ca.crt OpenVPN. cert /etc/openvpn/ascariote.crt Especifica la ruta en donde se localiza el certificado del cliente key /etc/openvpn/ascariote.key Especifica la ruta en donde se localiza la llave de autenticacin del cliente. comp-lzo log /var/log/openvpn.log verb 3 Mute 20 ping 10 ping-restart 120 Persist-key persist-tun Comprimir dentro de la red virtual con lzo. La bitcoras de los Logs del servicio OpenVPN. Mtodo del verbose Moderado. Calla mas 20 mensaje iguales. Ping cada 10 segundos al servidor OpenVPN. Reinicia ping cada 120 segundos. Esta opcin soluciona el problema por llaves que persisten a travs de los reajustes SIGUSR1. Permite que no se cierre y se vuelvan abrir los dispositivos TAP/TUN.
Con esto solamente tendremos que crear el archivo comprimido y mandarlo por via ssh, ftp, http el archivo.
[root@test clientes]# tar cvfz ascariote.tar.gz ascariote/ En el cliente ya teniendo el archivo comprimido solamente tendremos que descomprimirlo. ascariote:Desktop# tar xvfz ascariote.tar.gz
Entramos a la carpeta y movemos todos los archivos a /etc/openvpn/ ascariote:ascariote# cp * /etc/openvpn/ Iniciamos el servicio para conectarnos a la VPN. ascariote:ascariote# /etc/init.d/openvpn restart Verificamos que tengamos levantada la interfaz virtual que se usa para conexin VPN.
05/11/2011
Pgina 12 de 17
ascariote:ascariote# ifconfig tun0 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:192.168.4.6 P-t-P:192.168.4.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:1 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:52 (52.0 B) TX bytes:84 (84.0 B) Con esto ya sabremos que tenemos conexin a la VPN.
Clientes Windows Para estos sistema operativos solamente tendremos que descargar el cliente en formato exe, su instalacin es muy sencilla y rpida. Lo podremos descargar desde el siguiente link. http://openvpn.net/index.php/open-source/downloads.html Ahora en el servidor tendremos que crear el archivo de configuracin del cliente para windows. En nuestro caso el usuario se llama GuindowsLPT, entramos a la ruta en donde se encuentran los clientes.
[root@test GuindowsLPT]# vim GuindowsLPT.ovpn En el cual deber contener los siguientes parmetros. client remote test.ascanet.com.mx port 1194 proto udp dev tun ca ca.crt" cert GuindowsLPT.crt key GuindowsLPT.key persist-key persist-tun comp-lzo verb 3 mute 20 ping 10 ping-restart 120 Convertimos el fichero a formato dos de Windows. [root@test GuindowsLPT]# unix2dos GuindowsLPT.ovpn GuindowsLPT.ovpn Solo falta comprimir la carpeta para que se enviada al cliente windows. [root@test clientes]# zip GuindowsLPT.zip GuindowsLPT/*
Sera cuestin de enviar el archivo de configuracin del cliente y su llave de autenticacin para poder hacer la conexin, ya seria enviarlo va correo, Samba, FTP o un apache. Ya teniendo los archivos de configuracin y llave solamente tendremos que moverlos a la siguiente ruta C:\Archivos de programas\OpenVPN\config. Para poder iniciar el cliente OpenVPN solamente tenemos que ejecutar el icono que se encuentra en la barra de tarea en la parte derecha se encontrara un icono muy parecido al de red en windows pero en color rojo, solo le damos click derecho en sobre el y tendremos las opciones que podremos utilizar. Una forma de comprobar que ya tenemos asignada nuestra IP es ejecutando el comando ipconfig en el interprete de comandos.
Comprobando Conexin.#
La forma mas sencilla de saber que ya funciona nuestra red VPN es mandar paquetes ICMP a algunos de los clientes que estn dentro de la red virtual. ascariote:~# ping -c 5 192.168.4.10 PING 192.168.4.10 (192.168.4.10) 56(84) bytes of data. 64 bytes from 192.168.4.10: icmp_seq=1 ttl=127 time=39.9 ms 64 bytes from 192.168.4.10: icmp_seq=2 ttl=127 time=37.4 ms 64 bytes from 192.168.4.10: icmp_seq=3 ttl=127 time=38.6 ms
05/11/2011
Pgina 13 de 17
64 bytes from 192.168.4.10: icmp_seq=4 ttl=127 time=89.1 ms 64 bytes from 192.168.4.10: icmp_seq=5 ttl=127 time=110 ms --- 192.168.4.10 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4017ms rtt min/avg/max/mdev = 37.435/63.124/110.489/30.710 ms ascariote:~# Como tambin podemos hacer la comprobacin hacia el servidor o otro cliente que se encuentre en la red VPN desde Windows. Si tuviramos algn otro servicio dentro del servidor/cliente VPN, un Servidor FTP, Servidor Web, etc, ya podremos utilizar sus recursos desde la VPN.
Net To Net#
Es una configuracin muy ocupada en las empresas que tienen varias sucursales en lugares fsicamente apartados geogrficamente. Este mtodos nos sirve para unir varias redes y puedan compartir informacin entre todos los clientes de todas las redes conectadas de una forma transparente. Solamente se requiere un servidor y clientes que permitan la conexin de a la red virtual.
Para poder unir a estas 3 redes en el servidor tendremos que crear 2 llaves en las cuales conecte a la sucursales de Mexico y Veracruz, las cuales reacremos de la siguiente manera:
05/11/2011
Pgina 14 de 17
[root@test openvpn]# openvpn --genkey --secret mex-oax.txt [root@test openvpn]# openvpn --genkey --secret mex-ver.txt Ya teniendo las llaves solamente tendremos que crear dos archivos de configuracin del servidor para que pueda controlar las 2 redes. Primero comenzaremos con la conexin de Mxico y Oaxaca. remote ascariote.dynalias.net float port 1194 dev tun0 persist-tun ifconfig 10.0.1.1 10.0.1.2 comp-lzo ping 15 ping-restart 120 verb 3 secret /etc/openvpn/mex-oax.txt persist-key route 192.168.2.0 255.255.255.0 chroot /var/empty log /var/log/openvpn.log Si queremos que OpenVPN tenga varias conexin al servidor solamente tendremos que cambiar el puerto de escucha del otro segmento de red. Configuraremos la conexin de Mxico a Veracruz. remote belzebu.dynalias.net float port 1195 dev tun1 persist-tun ifconfig 10.0.2.1 10.0.2.2 comp-lzo ping 15 ping-restart 120 verb 3 secret /etc/openvpn/mex-ver.txt persist-key route 192.168.3.0 255.255.255.0 chroot /var/empty log /var/log/openvpn.log Explicaremos cada una de la opciones del cliente OpenVPN: Parmetro remote ascariote.dynalias.net float port 1194/1195 proto udp dev tun1/tun2 persist-tun ifconfig 10.0.1.1 10.0.1.2 ifconfig 10.0.2.1 10.0.2.2 comp-lzo ping 15 ping-restart 120 verb 3 Descripcin IPS o Dominios a los cuales se tendr conexin al servicio OpenVPN. Por si acaso que los clientes son de IP dinmicas. Puertos de escucha de los 2 servicios de OpenVPN. Protocolo utilizado en red VPN Interfaz virtual con el cual se conecta a la red VPN, pero indicando que red escucha. Permite que no se cierre y se vuelvan abrir los dispositivos TAP/TUN. IP especificadas que usaran como el servidor y clientes en los segmentos de red diferentes. Comprimir dentro de la red virtual con lzo. Ping cada 15 segundos al servidor OpenVPN. Reinicia ping cada 120 segundos Mtodo del verbose Moderado.
secret /etc/openvpn/mex-oax.txt Manda a llamar la llave para conexin de red VPN. secret /etc/openvpn/mex-ver.txt persist-key Esta opcin soluciona el problema por llaves que persisten a travs de los reajustes SIGUSR1. route 192.168.2.0 255.255.255.0 Establecemos que haya ruteo dentro de la red fsica a conectarnos route 192.168.3.0 255.255.255.0 chroot /var/empty Por seguridad se activa un enjaulamiento log /var/log/openvpn-mex-oax.log Bitcora del servicio OpenVPN en cada segmento de red. log /var/log/openvpn-mex-oax.log
05/11/2011
Pgina 15 de 17
[root@test openvpn]# /etc/init.d/openvpn start Verificamos que tengamos la interfaz tun0/tun1 levantadas y configuradas. [root@test openvpn]# ifconfig tun0 && ifconfig tun1 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.0.1.1 P-t-P:10.0.1.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.0.2.1 P-t-P:10.0.2.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [root@test openvpn]#
Comprobando Conexin#
La forma de comprobar esta conexin es hacer pings entre los segmentos red fsicos. Comprobacin de Oaxaca a Mxico a una mquina cliente.
05/11/2011
Pgina 16 de 17
ascariote:~# ping -c 5 192.168.1.10 PING 192.168.4.10 (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=1 ttl=127 time=39.9 ms 64 bytes from 192.168.1.10: icmp_seq=2 ttl=127 time=37.4 ms 64 bytes from 192.168.1.10: icmp_seq=3 ttl=127 time=38.6 ms 64 bytes from 192.168.1.10: icmp_seq=4 ttl=127 time=89.1 ms 64 bytes from 192.168.1.10: icmp_seq=5 ttl=127 time=110 ms --- 192.168.1.10 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4017ms rtt min/avg/max/mdev = 37.435/63.124/110.489/30.710 ms ascariote:~# Comprobacin de Mxico a Veracruz a una mquina cliente. ascariote:~# ping -c 5 192.168.3.211 PING 192.168.4.10 (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.3.211: icmp_seq=1 ttl=127 time=39.9 ms 64 bytes from 192.168.3.211: icmp_seq=2 ttl=127 time=37.4 ms 64 bytes from 192.168.3.211: icmp_seq=3 ttl=127 time=38.6 ms 64 bytes from 192.168.3.211: icmp_seq=4 ttl=127 time=89.1 ms 64 bytes from 192.168.3.211: icmp_seq=5 ttl=127 time=110 ms --- 192.168.3.211 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4017ms rtt min/avg/max/mdev = 37.435/63.124/110.489/30.710 ms ascariote:~# Podemos hacer mas pruebas de ping entre las mquinas de las tres redes conectadas dentro de VPN, pero tambin ya podremos compartir recursos dentro de estas redes, como ejemplo: yo puedo estar en Veracruz y deseo imprimir en una impresora de Mxico para que se entregue algn reporte en esta cuidad.
Firewall OpenVPN#
Cuando usamos una VPN se recomienda configurar nuestro firewall para que termina las conexiones hacia el tnel. Aqu ya depende del administrador del sistema que tipo de firewall pueda usar, pero actualmente se siguen utilizando reglas de iptables. Comenzaremos a crear las reglas para nuestro firewall por medio de iptables. Aceptamos el trafico que entrada y salida por el protocolo UDP por el servicio OpenVPN. [root@test ~]# iptables -A INPUT -i ppp0 -p udp --dport 1194 -j ACCEPT [root@test ~]# iptables -A OUTPUT -0 ppp0 -p udp --sport 1194 -j ACCEPT En este caso la interfaz de escucha del servicio es ppp0 pero tambin puede ser eth0. Permitimos la conexin desde cualquier equipo por la interfaz tun. [root@test ~]# iptables -A INPUT -i tun+ -j ACCEPT [root@test ~]# iptables -A OUTPUT -o tun+ -j ACCEPT Permitimos que los equipos de las otras redes accedaan a nuestra red.. [root@test ~]# iptables -A FORWARD -i tun+ -j ACCEPT [root@test ~]# iptables -A FORWARD -o tun+ -j ACCEPT Generamos el archivo de reglas del firewall. [root@test ~]# iptables-save > iptables Movemos el archivo generado a /etc/sysconfig
05/11/2011
Pgina 17 de 17
[root@test ~]# mv iptables /etc/sysconfig Reiniciamos el servicio de firewall. [root@test sysconfig]# /etc/init.d/iptables restart Expurgar reglas del cortafuegos: [ Configuracin de cadenas a la poltica ACCEPT: filter [ Descargando mdulos iptables: [ Aplicando reglas del cortafuegos iptables: [ Cargando mdulos iptables adicionales:ip_conntrack_netbios_[ [root@test sysconfig]# Con esto ya habremos creado el firewall para nuestro servicio de VPN.
OK OK OK OK OK
] ] ] ] ]
0.0.0.0/0
udp dpt:1194
0 archivos adjuntos
8673 Accesos
Promedio (0 Votos)
Comentarios
05/11/2011