27
INTALACION Y CONFIGURACION BASICA SERVIDOR Y CLIENTE OPENVPN QUE ES OPENVPN? OpenVPN es un cliente/servidor VPN tanto para equipos GNU/Linux como para Windows. Una red privada virtual (VPN de las siglas en inglés de Virtual Private Network) es una tecnología de red que permite una extensión segura de la red local sobre una red pública o no controlada. El servidor de VPN es el que posibilita la "extensión" y es quien provee una conexión segura entre el cliente y la red local a través de SSL (al utilizar certificados se obtiene autenticación mutua y confidencialidad). Si se desea algo más que claves pre-compartidas OpenVPN hace que sea fácil de configurar y usar una infraestructura de clave pública (PKI) para utilizar los certificados SSL / TLS para la autenticación e intercambio de claves entre el servidor VPN y cliente. OpenVPN se puede utilizar en un modo de VPN ruta o un puente y puede ser configurado para usar el protocolo UDP o TCP. El número de puerto se puede configurar también, pero el puerto 1194 es la oficial. Y sólo se está utilizando ese puerto único para todas las comunicaciones. Las implementaciones de cliente de VPN están disponibles para casi cualquier sistema operativo, incluyendo todas las distribuciones de Linux, OS X, Windows y basados en OpenWRT routers WLAN. Para la presente configuración se emplearan dos tipos de configuración VPN: TUN y TAP. TUN 1

Configuración Basica Servidor Openvpn en Ubuntu

Embed Size (px)

Citation preview

INTALACION Y CONFIGURACION BASICA SERVIDOR Y CLIENTE OPENVPN

QUE ES OPENVPN?

OpenVPN es un cliente/servidor VPN tanto para equipos GNU/Linux como para Windows.

Una red privada virtual (VPN de las siglas en inglés de Virtual Private Network) es una tecnología de red que permite una extensión segura de la red local sobre una red pública o no controlada.

El servidor de VPN es el que posibilita la "extensión" y es quien provee una conexión segura entre el cliente y la red local a través de SSL (al utilizar certificados se obtiene autenticación mutua y confidencialidad).

Si se desea algo más que claves pre-compartidas OpenVPN hace que sea fácil de configurar y usar una infraestructura de clave pública (PKI) para utilizar los certificados SSL / TLS para la autenticación e intercambio de claves entre el servidor VPN y cliente.

OpenVPN se puede utilizar en un modo de VPN ruta o un puente y puede ser configurado para usar el protocolo UDP o TCP. El número de puerto se puede configurar también, pero el puerto 1194 es la oficial. Y sólo se está utilizando ese puerto único para todas las comunicaciones. Las implementaciones de cliente de VPN están disponibles para casi cualquier sistema operativo, incluyendo todas las distribuciones de Linux, OS X, Windows y basados en OpenWRT routers WLAN.

Para la presente configuración se emplearan dos tipos de configuración VPN: TUN y TAP.

TUN

El controlador TUN emula un dispositivo punto a punto, es utilizado para crear túneles virtuales operando con el protocolo IP. Este queda configurado en el servidor De esta forma se puede encapsular todos los paquetes que se transporten a través de él como datagramas TCP o UDP Las máquinas que queden detrás de cada uno de los extremos del enlace pertenecerán a subredes diferentes.

TAP

Simula una interfaz de red Ethernet, más comúnmente conocido como modo puente o bridge, estos túneles virtuales encapsulan directamente paquetes ethernet. Esta situación permite

1

empaquetar entramados diferentes al IP. Esta interfaz queda instalada en el equipo cliente al instalar el software cliente de Openvpn para GUI (Interfaz Gráfica de Usuario) Las máquinas situadas detrás de cada uno de los extremos del enlace pueden operar como parte de la misma subred (si se utiliza el protocolo IP). El modo de funcionamiento puente es particularmente útil para enlazar usuarios remotos, ya que éstos pueden conectarse a un mismo servidor y virtualmente formar parte de la red principal.

Pasos para la instalación y configuración de un servidor Openvpn

Configurar una dirección IP fija

Editar el archivo interfaces así:

=======================nano /etc/network/interfaces=======================

Ingresar los siguientes parámetros (estos presentan variaciones; es decir, pueden ser cambiados por el usuario según su direccionamiento IP)

====================================auto eth0 iface eth0 inet staticaddress 172.16.0.100netmask 255.255.0.0gateway 172.16.0.99DNS1 208.67.222.222DNS2 208.67.220.220===================================

Reiniciar la interfaz para tomar los cambios

========================/etc/init.d/networking restart========================

2

Instalación del Paquete

Procedimiento:

====================apt-get install openvpn====================

Infraestructura de Clave pública (PKI)

Es una combinación de hardware y software, políticas y procedimientos de seguridad que permiten la ejecución con garantías de operaciones criptográficas como el cifrado, la firma digital o el no repudio de transacciones electrónicas. El término PKI se utiliza para referirse tanto a la autoridad de certificación y al resto de componentes

El primer paso en la construcción de una configuración de OpenVPN es establecer una PKI (infraestructura de clave pública).

La PKI consiste en:

Un certificado separado (también conocido como una clave pública) y la clave privada para el servidor y cada cliente.

Un certificado de entidad emisora de certificados principal (CA) y la clave que se utiliza para firmar cada uno de los certificados de servidor y cliente.

OpenVPN admite la autenticación bidireccional basada en certificados, lo que significa que el cliente debe autenticar el certificado del servidor y el servidor debe autenticar el certificado del cliente antes de establecer la confianza mutua.

Tanto el servidor como el cliente autentican al otro verificando en la primera conexión que el certificado presentado haya sido firmado por la autoridad de certificación principal (CA), y luego probando la información en el encabezado de certificado ya autenticado, tal como el nombre común del certificado o el tipo de certificado (cliente o servidor).

Configuración de entidad emisora de certificados

Para configurar una entidad propia emisora de certificados (CA) y la generación de certificados y claves para un servidor OpenVPN y varios clientes, proceder así:

3

Una vez instalado el paquete Openvpn, copiar todo el contenido del directorio: /2.0, el cual se encuentra en la ruta: /usr/share/doc/openvpn/examples/easy-rsa, a la ruta /etc/openvpn/easy-rsa, el directorio easy-rsa debe ser creado. Esto asegurará que cualquier cambio en las secuencias de comandos no se perderá al actualizar el paquete.

Procedimiento:

==================================================================mkdir /etc/openvpn/easy-rsa/cp –R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/==================================================================

De la ruta /usr/share/doc/openvpn/examples/simple-config-files, copiar los siguientes archivos: server.conf.gz y client.conf a /etc/openvpn

Procedimiento:

=======================================================================cp –R /usr/share/doc/openvpn/examples/sample-config-files/ server.conf.gz client.conf /etc/openvpn/=======================================================================

Descomprimir el archivo server.conf.gz

Procedimiento:

==================================================================gunzip -d /etc/openvpn/ server.conf.gz==================================================================

4

Editar el archivo vars el cual está dentro /etc/openvpn/easy-rsa/

Procedimiento:

============================nano /etc/openvpn/easy-rsa/vars============================Observar en la imagen la línea que se modifica

Los siguientes comandos generan la autoridad principal de certificados:

5

Desde /etc/openvpn/easy-rsa dar la siguiente instrucción:

Procedimiento:

===============================================================cd /etc/openvpn/easy-rsa/../vars (esto leerá el archivo y ejecutará su contenido en el intérprete actual)

Otro comando que hace lo mismo que el anterior.

Seguidamente se deben limpiar las claves que pudieran existir en servidor:

Procedimiento:

==========./clean-all==========

Ahora se creará propiamente la autoridad emisora (CA) de la llave, para ello ingresar la siguiente instrucción:

Procedimiento:

=========./build-ca=========

Se deben ingresar los datos solicitados en este paso, tales como: ciudad, estado, localización, organización etc. Lo anterior como resultado de crear un certificado personalizado.

6

A continuación se generará la llave privada para el servidor:

Procedimiento:

============================./build-key-server-svrvpn============================

Aquí también se deben suministrar los datos solicitados para la creación de la llave privada del servidor, dichos datos son los que se han resaltado en color amarillo, las líneas que aparecen encerrada en el rectángulo rojo es el tiempo de validez que tendrá el certificado creado, hay que aceptar la firma de ese certificado.

7

Verificar los certificados y claves creadas hasta el momento (opcional)

Procedimiento:

8

====================================root@vpn:/etc/openvpn/easy-rsa# cd keysroot@vpn:/etc/openvpn/easy-rsa/keys# ls====================================

El paso siguiente es generar la clave privada para el usuario(s) o cliente(s), hay que generar una por cada cliente.

Procedimiento:

============================./build-key fmorales============================Aquí también se deben suministrar los datos solicitados para la creación de la llave privada del servidor teniendo presente que se presentan unas variables relacionas con el cliente.

9

10

Ahora se generará los parámetros de Diffie Helman.

Breve descripción

El algoritmo criptográfico Diffie-Hellman es un protocolo de establecimiento de claves entre partes que no han tenido contacto previo. Se utiliza como medio para acordar claves simétricas que se utilizan para el cifrado de una sesión

==========./build-dh==========

Procedimiento:

Nota:

Todos los certificados y llaves (keys) generados, se encontraran en la ruta: /etc/openvpn/easy-rsa/keys/

11

El siguiente paso es copiar las claves del servidor que están en /keys, a la ruta: /etc/openvpn/

Procedimiento:

=======================================================================root@vpn:/etc/openvpn/easy-rsa/keys# cp –R ca.crt svrvpn.crt svrvpn.key dh1024.pem /etc/openvpn=======================================================================

Modificar el archivo server.conf, para agregar el nombre del certificado creado y de la llave para el servidor. Se encuentra ubicado en de la ruta: /etc/openvpn/

Procedimiento:

======================================root@vpn:/etc/openvpn# nano server.conf======================================

12

Al configurar correctamente el servicio Openvpn, se agregará automáticamente el adaptador TUN0 a la lista de adaptadores del servidor.

Ejemplo:

Reiniciar servicio de Openvpn

Procedimiento:

======================/etc/init.d/openvpn restart======================

Una vez creados los certificados y llaves para el servidor y cliente(s), hay que ubicar algunos de ellos en el cliente(s). La lista es la siguiente:

Lista de certificados y claves para instalar en el cliente:

Ingresar a: /etc/openvpn/easy-rsa/keys y de allí copiar los siguientes archivos:

ca.crtca.keyfmorales.crtfmorales.keysvrvpn.crtsvrvpn.key

También ingresar a: /etc/openvpn/ y de allí copiar el archivo:

client.conf

13

Para el ejemplo, los anteriores archivos serán ubicados en la ruta /usr/compartir/, pues es esta la que para este ejemplo se configurara en el servidor samba y a la cual se accederá desde el cliente Windows; con el propósito de pasar las llaves, certificados y archivo de configuración generados al cliente.

Tareas

Tarea1: Crear el directorio compartir dentro de /usr/

==================mkdir /usr/compartir==================

Tarea 2: Copiar las llaves, certificados y archivo de configuración

======================================================================root@vpn: /etc/openvpn/easy-rsa/keys# cp –R ca.crt ca.key fmorales.crt fmorales.key svrvpn.crt svrvpn.key /usr/compartir

root@vpn: /etc/openvpn/easy-rsa/keys# cd /etc/openvpnroot@vpn: /etc/openvpn# cp –R client.conf /usr/compartir======================================================================

Ahora se reiniciar el servicio de Openvpn en el servidor

================================root@vpn# /etc/init.d/openvpn restart================================

Cómo transferir las llaves y certificados al equipo cliente?

A través de medios extraíbles como memorias USB.

Empleando la red al configura un servicio para trasferencia de archivos como: ftp, ssh o samba.

Para el ejercicio, y tomando en cuenta que el cliente será un sistema operativo Windows 7, se configurará el servicio samba en el servidor con el fin compartir la carpeta que contienen las llaves y certificados e ingresar por la red desde el cliente Windows 7.

14

Instalación de samba

Instalar los paquetes samba en el servidor.

============================================apt-get install samba samba-client smbfs smbclient============================================

Editar el archivo smb.conf el cual está ubicado dentro de: /etc/samba/

============================================nano /etc/samba/smb.conf============================================

Nota: Para el siguiente ejemplo de edición del archivo smb.conf, se empleó el editor gráfico gedit

Seguidamente agregar las siguientes líneas:

15

Con las anteriores líneas se está indicando la ruta y permiso para acceder a la carpeta que contiene las llaves, certificados y archivo de configuración.

Reiniciar el servicio de samba

=============restart smbd=============

Instalación y configuración del cliente Openvpn

Para la prueba como ya se ha mencionado, se empleará el sistema operativo Windows 7

Paso 1:

Descargar e instalar aplicativo cliente de Openvpn para Windows desde el sitio oficial. Hay versión para arquitectura de sistema operativo de 32 y 64 bits

Link:

16

http://openvpn.net/index.php/open-source/downloads.html

Al momento de realizar la instalación del cliente openvpn, el asistente en uno de sus pasos solicitará la instalación de un adaptador virtual TAP, tiene que ser instalado para poder que funcione la conexión al servidor de Openvpn. De no estar instalado, al momento de intentar realizar la conexión al servido aparecerá una venta con un mensaje de error indicando que no ha encontrado el adaptador.

Así deberá aparecer en las conexiones de red el adaptador virtual o de túnel.

Una vez se realice la instalación del software cliente, este creará en el escritorio un acceso directo al software cliente Openvpn como el siguiente:

17

Nota:

La ejecución del software cliente debe hacerse como administrador, de no ser así el programa emitirá un mensaje de error.

Para poder realizar la conexión al servidor Openvpn, se requiere importar las llaves y certificados desde el servidor, se recuerda que para el ejemplo se ingresara al servidor haciendo uso del servicio samba.

Para ello ir a Equipo\Red, allí aparecerán listados los computadores miembros del grupo de trabajo:

Ejemplo:

En esta caso se ingresará al equipo con el nombre VPN (Este es servidor), al ingresar al directorio compartir se podrá ver las llaves, los certificados y archivo client.conf

Seleccionar y copiar todos los archivos.

Seguidamente ingresar a la ruta: C:\Program Files\OpenVPN\config, pegarlos allí

18

De los archivos pegados editar el client.conf, para ello emplear el Wordpad de Windows 7, ingresar o cambiar las siguientes líneas (las he resaltado):

Dirección IP del servidor y puerto

Nombres de la autoridad de certificados, certificado y llave del cliente.

Guarda los cambios

El paso siguiente es cambiar la extensión .conf al archivo client, por la extención .ovpn, el archivo cambiara automáticamente de apariencia como se muestra en la siguiente imagen

19

Realizar la conexión al servidor

Tarea: 1

Ejecutar el cliente OpenvpnGUI como administrador, se situara un icono de dicho cliente en la barra de notificaciones:

Bastará con dar clic derecho sobre él y seleccionar la opción connect

Inmediatamente se iniciará el proceso de verificación de llaves y certificados entre el cliente y servidor; como se puede observar en la siguiente imagen:

20

Si la verificación es correcta la conexión será exitosa y aparecerá la indicación de conexión establecida en la barra de notificaciones así:

21

VOCABULARIO

PKI: Infraestructura de Clave Pública

CA: Autoridad de Certificados

SSL: Capa de conexión segura. Es un protocolo de seguridad para lograr que la transmisión de datos entre un servidor y un usuario, o viceversa, a través de Internet, sea completamente segura. El SSL es un protocolo abierto, por lo que puede ser empleado por cualquier fabricante de aplicaciones para Internet, siendo una de sus grandes ventajas el hecho de que se pueda utilizar con cualquiera de los servicios de Internet (WWW, FTP, noticias, correo, etc), aunque lo más normal es que se utilice para el tráfico a través de la WWW. El protocolo se basa en la utilización de un sistema de cifrado que emplea algoritmos matemáticos y un sistema de claves que solamente conocen el usuario y el servidor. Estas claves permiten la encriptación de los datos para que nadie que no las tenga pueda leer su contenido.

TLS: Protocolo de Seguridad de la capa de transporte, que gracias a las librerías OpenSSL permite encriptar la información a través de conexiones seguras SSL o Secure Sockets Layer.

UDP: Protocolo de datagrama de usuario. No orientado a conexión de la capa de transporte

TCP: Protocolo de control de transmisión. Orientado a conexión de la capa de transporte.

RSA: Es un criptosistema de clave pública que sirva tanto para encriptar mensajes como para encriptación de documentos o transacciones (firmas digitales)

OpenSSL: Es un conjunto de herramientas que permiten la implementación de los protocolos Secure Sockets Layer y Transport Layer Security (TLS). Es un software que permite crear Certificados Digitales y funciona, mediante el cifrado, como una capa de seguridad, adicional a la capa normal de transporte para comunicación en las redes, permitiendo la combinación con muchas aplicaciones y servicios de red.

22

Links de apoyo

Servidor vpn Openvpn

https://help.ubuntu.com/lts/serverguide/openvpn.html

http://www.krtux.org/index.php?/archives/1-Instalando-y-Configurando-OpenVPN-en-un-servidor-Linux.html

http://www.taringa.net/posts/linux/3749560/Como-hacer-una-vpn-que-funcione.html

http://www.redeszone.net/redes/openvpn/

Links de apoyo

Servidor vpn con pptp

https://help.ubuntu.com/community/PPTPServer

http://www.xatakaon.com/seguridad-en-redes/como-crear-nuestra-propia-red-vpn-en-ubuntu

23

24