openvp non redhat

24
1 IMPLEMENTACIÓN DE OPENVPN EN RED HAT ENTERPRISE LINUX 6.2 NILSON ANDRÉS LONDOÑO HERNANDEZ. CAMILA MARTÍNEZ LÓPEZ. GERSON ZAPATA AGUDELO. Tecnología en Gestión de Redes de Datos. Ficha: 455596. Instructor. Isabel Yepes Ocampo SERVICIO NACIONAL DE APRENDIZAJE (SENA) CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL (CESGE) MEDELLÍN ANTIOQUIA 2014

Upload: andres-ldno

Post on 29-Jun-2015

148 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Openvp non redhat

1

IMPLEMENTACIÓN DE OPENVPN EN RED HAT ENTERPRISE LINUX 6.2

NILSON ANDRÉS LONDOÑO HERNANDEZ.

CAMILA MARTÍNEZ LÓPEZ.

GERSON ZAPATA AGUDELO.

Tecnología en Gestión de Redes de Datos.

Ficha: 455596.

Instructor.

Isabel Yepes Ocampo

SERVICIO NACIONAL DE APRENDIZAJE (SENA)

CENTRO DE SERVICIOS Y GESTIÓN EMPRESARIAL (CESGE)

MEDELLÍN – ANTIOQUIA

2014

Page 2: Openvp non redhat

2

Índice.

Índice. ........................................................................................................................................ 2

Introducción. .............................................................................................................................. 3

Requerimientos. ......................................................................................................................... 4

Requerimientos mínimos de hardware. .................................................................................. 4

Requerimientos de software. .................................................................................................. 4

Topología. .................................................................................................................................. 5

Instalación. ................................................................................................................................. 5

Configuración de CA y certificados digitales. ............................................................................. 7

Archivos de llaves..................................................................................................................11

Configuración de archivos para el servidor y el cliente. .............................................................12

Configuración archivos del servidor. ......................................................................................12

Reglas de tráfico. ......................................................................................................................15

Configuración archivo del cliente...............................................................................................16

Transferencia de archivos de configuración. .............................................................................17

Configuración de equipo cliente para hacer parte de la red VPN. .............................................18

Reinicio de servicios e interfaces. .............................................................................................18

Pruebas desde el cliente. ..........................................................................................................19

Webgrafía. ................................................................................................................................22

Conclusiones. ...........................................................................................................................23

Page 3: Openvp non redhat

3

Introducción.

Una red privada virtual (Virtual Private Network) es un tipo de red que permite el

extendimiento de la red LAN en una red pública para así estar de manera segura y

lógica dentro de la red LAN pero accediendo desde afuera de la misma.

OPENVPN es una solución VPN de software libre, la cual está publicada bajo la

licencia GPL, la cual ofrece una gran combinación de seguridad a nivel empresarial,

riqueza de características y facilidad de uso.

OPENVPN es una solución que involucra las capas 2 y tres del modelo OSI y usa los

estándares SSL/TLS usando claves y certificados RSA. OPENVPN puede utilizar las

claves simétricas o asimétricas, las claves simétricas funcionan cuando ambos lados

del túnel comparten la misma clave para cifrar y descifrar los datos, por lo cual esta

clave debe estar instalada en todas las máquinas o equipos que harán parte de la VPN;

las claves asimétricas funcionan cuando cada integrante tiene dos claves, una pública y

una privada. La clave pública es distribuida por cualquiera para cifrar los datos,

mientras quien conoce la clave privada es el único objeto que podrá descifrar los datos

anteriormente cifrados.

OPENVPN es una solución que provee muchas ventajas, seguridad, estabilidad y

mecanismos de cifrado muy eficientes sin la complejidad de otras soluciones. También

posee unas pocas ventajas, como su incompatibilidad con IPsec, otra de las soluciones

más implementadas para crear VPN’s, carece de masa que apoye el proyecto, otro

parámetro es que está en crecimiento y al día de hoy acepta conexiones a

computadoras y dispositivos móviles con sistemas operativos IOS y Android.

Page 4: Openvp non redhat

4

Requerimientos.

Requerimientos mínimos de hardware.

Los requerimientos de hardware que son dedicados para el servidor VPN dependen del

número de conexiones simultáneas que se esperan por el túnel y que además serán

encriptadas. Mientras mayor capacidad de CPU y de RAM se tenga en el equipo

físicamente será más beneficioso para el túnel y el servidor VPN, pero por supuesto, la

velocidad de la conexión de red es un factor limitante, así que tarjetas de red robustas

serían considerables, se recomienda como mínimo la velocidad de tarjetas Gigabit (

100BASE-TX) es deseable.

Requerimientos de software.

Para la implementación de OPENVPN en sistemas operativos GNU/LINUX es

necesario tener privilegios sobre el sistema y acceso a algunas librerías, además de

paquetes que son estrictamente necesarios para que el servicio inicie. También son

necesarias herramientas adicionales para la configuración de las interfaces virtuales y

la asignación de direcciones IP en el túnel.

Algunos de los requisitos más influyentes son:

Permisos de root o superusuario.

OpenSSL.

Biblioteca LZO para comprimir los paquetes que viajan por el túnel.

PAM si se utilizará mecanismos de autenticación adicionales tales como usuario y

contraseña.

Page 5: Openvp non redhat

5

Topología.

Instalación.

La instalación y configuración de los elementos de esta guía serán llevado a cabo por

modo consola en GNU/LINUX Red Hat Enterprise 6.2

El primer paso para instalar OPENVPN es agregar el repositorio donde se encuentra

este paquete, aquí utilizaremos el repositorio epel, el cual es el repositorio que provee

los paquetes adicionales para Linux con entorno empresarial.

Es de vital importancia tener conexión a Internet para descargar el repositorio, para ello

lo hacemos mediante el comando wget y a continuación la URL donde está el paquete

.rpm que contiene el repositorio.

Page 6: Openvp non redhat

6

Aquí ya teníamos el repositorio epel instalado, para reemplazarlo utilizamos el

comando a continuación.

De lo contrario simplemente localizamos el paquete en el sistema operativo e

ingresamos el comando rpm -Uvh epel-release-6-8.noarch.rpm.

Ahora, ya está instalado el repositorio epel, para verificar y actualizar el mismo

ingresamos los siguientes comandos.

El próximo paso será instalar el paquete openvpn y el paquete easy-rsa, easy-rsa nos

proveerá los medios para crear los certificados y la autoridad certificadora.

NOTA: Sucede muy frecuentemente que OPENVPN tiene algunas dependencias, una

de ellas es la librería de compresión liblzo, al momento de la descarga, el gestor de

descarga nos lanzará un error de dependencias, el paso que nosotros hicimos para

solucionar este inconveniente fue buscar manualmente dicho paquete y luego

descargarlo al servidor mediante con esta ruta mediante wget http://dl.atrpms.net/el6-

i386/atrpms/testing/liblzo2_2-2.03-6.el6.i686.rpm

Page 7: Openvp non redhat

7

Configuración de CA y certificados digitales.

La CA, es la autoridad certificadora de confianza que se encarga de la gestión de

certificados digitales y firmados, esta gestión costa de emitir y revocar los certificados,

utilizados en la firma electrónica.

El primer paso será crear los directorios donde haremos este procedimiento, esto,

dentro del directorio principal de configuración de openvpn.

Luego, copiamos recursiva y forsozamente el contenido que hay en la ruta

/usr/share/easy-rsa/2-0/ al directorio easy-rsa dentro del directorio openvpn que

creamos recientemente.

Ingresando al directorio de easy-rsa podemos observar y listar el contenido que hay

dentro de el, este contenido data de los archivos de generación de certificados llaves,

revocación de certificados, además del directorio keys que es el directorio en el que se

alojan las llaves generadas.

El primer archivo que vamos a editar corresponde al archivo vars, dentro de este

archivo está la configuración de los parámetros de easy-rsa.

Ingresamos con nuestro editor favorito.

Navegamos dentro del archivo hasta las líneas de configuración del lugar donde se

expiden los certificados, cambiamos los valores para adaptarlos a nuestra locación

actual y cerramos el archivo, hay muchas más líneas de configuración, las cuales

podemos cambiar para así adaptar a nuestras necesidades.

Page 8: Openvp non redhat

8

Copiamos el archivo de configuración de openssl a otro nombre para hacer más fácil su

reconocimiento y manejo.

Ahora, iniciamos a generar las llaves de infraestructura pública PKI.

Ahora, generamos la autoridad certificadora CA y la llave privada.

Page 9: Openvp non redhat

9

En este paso generamos el certificado y la llave para el servidor VPN.

Page 10: Openvp non redhat

10

La generación de certificados para los clientes es muy similar a la generación del

servidor.

NOTA: Por cada cliente se debe generar un certificado y una llave diferente, con

nombres diferentes, EJ: cliente, cliente1, cliente2 etc…

Page 11: Openvp non redhat

11

El siguiente paso es generar el parámetro Diffie Hellman, Diffie Hellman es un protocolo

de criptografía el cual se encarga de establecer claves entre partes que no han tenido

contacto previo, este método se utiliza para acordar claves simétricas las cuales serán

empleadas para hacer el cifrado de una sesión, siendo no autenticado, sin embargo

posee bases para el empleo de otros protocolos de autenticación.

Generar los parámetros puede tomar un tiempo largo, por ello es necesario tener un

poco de paciencia. En la salida del comando se puede observar que el se utilizarán

2048 bits para el establecimiento de las claves.

Ahora, ya tenemos nuevas llaves, certificados, archivos de almacenamiento de

certificados digitales, archivos que contienen la información de certificados generados.

Archivos de llaves.

Ahora, tenemos las nuevas llaves y certificados generados anteriormente dentro del

directorio keys/. Esta es la explicación de los archivos más relevantes.

Archivo Necesita de Propósito Secreto.

ca.crt Servidor + todos los clientes

Certificado CA raíz NO

ca.key Única máquina con la clave de firma

Llave CA raíz SÍ

dh( ).pem Sólo servidor Parámetros Diffie Hellman

NO

server.crt Sólo servidor Certificado del servidor

NO

server.key Sólo servidor Llave del servidor SÍ

client.crt Sólo cliente Certificado cliente NO

Page 12: Openvp non redhat

12

client.key Sólo cliente Llave del cliente SÍ.

Copiamos los archivos correspondientes al servidor como el certificado CA raíz, los

parámetros Diffie Hellman, el certificado del servidor y la llave del servidor dentro del

directorio principal de openvpn.

Configuración de archivos para el servidor y el

cliente.

Configuración archivos del servidor.

El primer equipo a configurar será el equipo Servidor, para ello, primero debemos

copiar el archivo de configuración principal que está en la siguiente ruta:

Luego de haber copiado el archivo de configuración principal del servidor openvpn al

directorio principal del mismo, procedemos a editarlo con nuestro editor de archivos

favorito.

NOTA: Para ver la configuración completa del archivo server.conf puede dar clic aquí

Las líneas a configurar son las siguientes:

La forma de comentar líneas en este archivo es a través de los símbolos # y ;

La primera línea a configurar será el puerto por el cual operará la VPN, por defecto es

el 1194, así que este puerto debe estar abierto en el firewall de nuestro sistema

operativo.

Page 13: Openvp non redhat

13

Otras de las líneas a configurar será la cual decide el protocolo de transporte por el que

operará el servidor, por defecto el udp, pero este parámetro se puede adaptar a las

necesidades que tengamos, así que también se puede cambiar a tcp.

El próximo parámetro será indicar el tipo de interface o dispositivo a configurar, ya sea

tap un dispositivo ethernet virtual o tun un dispositivo punto a punto virtual.

El rango de red en el que estará el túnel VPN se configura en esta línea, dando la red y

la máscara de la subred del túnel.

Debido a que en nuestra topología hay más subredes detrás del servidor VPN a las

cuales la red del túnel VPN necesita acceso configuramos el push, en el cual

especificamos la subred y la máscara de las redes privadas o LAN que haya detrás del

servidor.

Page 14: Openvp non redhat

14

En caso de que queramos que todo el tráfico hacia Internet de las máquinas clientes de

la VPN se redirija por la misma, configuramos esta línea.

Dentro de nuestro firewall debemos crear una regla de NAT la cual le indique al

servidor que todo el tráfico que salga por la interfaz que va conectada hacia Internet y

que sea de origen de la red del tunel lo rediriga por la interfaz eth0 que es la cual está

conectada hacia Internet.

Aquí agregaremos otro push, en el cual indicaremos el servidor DNS, que el túnel VPN

va a entregar.

Page 15: Openvp non redhat

15

El algoritmo de cifrado criptográfico que se va a utilizar, esta configuración también

debe estar en el archivo de configuración del cliente.

Hay muchas más líneas de configuración que se pueden editar, para conseguir más

rendimiento, más adaptabilidad a las necesidades de la empresa o del sujeto que esté

configurando la VPN, todo radica en tener la curiosidad y buscar.

Reglas de tráfico.

Para las reglas de tráfico primero editaremos el archivo sysctl.conf para así habililtar el

reenvío de tráfico.

Cambiamos el valor del binario de 0 por 1 para habilitar y cerramos el archivo de

configuración.

Ingresamos el siguiente comando para aplicar las configuraciones sin necesidad de

reiniciar el equipo.

Page 16: Openvp non redhat

16

Ahora, ingresamos la regla de POSTROUTING en el firewall para indicarle lo que

explicamos anteriormente arriba.

Configuración archivo del cliente.

La configuración del archivo del cliente es bastante parecida a la del archivo del

servidor, el proceso de copiado del archivo de configuración es básicamente el mismo,

para ello, nos dirigimos a la siguiente ruta y copiamos el archivo en nuestro directorio

/home o donde prefiramos.

Abrimos el archivo de configuración con nuestro editor favorito y editamos las

siguientes líneas:

NOTA: Para ver la configuración completa del archivo client.conf de clic aquí

Las líneas a configurar en el archivo del cliente son muy pocas, aunque esto puede

cambiar de acuerdo a nuestras necesidades

En esta línea ingresaremos la dirección IP pública de nuestro servidor VPN, y el puerto

por el que se conectará.

Page 17: Openvp non redhat

17

También configuraremos el método de cifrado criptográfico que hicimos anteriormente

en el servidor, en nuestro caso Blowfish.

Transferencia de archivos de configuración.

Hay archivos creados en el servidor que es necesario que el cliente posea para poder

conectarse, los cuales son:

Archivo Propósito

client.conf Posee la configuración principal del cliente

ca.crt Certificado de la autoridad certificadora CA, el cual debe ser compartido entre el servidor y todos los clientes.

client.crt Certificado del cliente

client.key Llave privada del cliente

Estos archivos los encontramos en el directorio keys dentro del directorio principal de

configuración de openvpn.

Page 18: Openvp non redhat

18

El copiado de los archivos de configuración lo podemos hacer por medio de la

transferencia segura de archivos, para esto debemos tener la contraseña del usuario al

que se le transferirá al otro lado, sin embargo no es la única forma de copiar los

archivos, por ejemplo, transfiriendo por correo electrónico, por medios extraíbles,

subiendolos a Internet a servicios de alojamiento de archivos, pero con la precaución

de que sólo sean visibles para usuarios autorizados.

Configuración de equipo cliente para hacer parte

de la red VPN.

El equipo cliente que hará parte de la red VPN tendrá que tener instalado el servicio

OPENVPN, la instalación del servicio es totalmente igual a la del servidor.

Luego de haber instalado el paquete OPENVPN en el cliente movemos los archivos al

directorio principal de OPENVPN, el directorio debe quedar de la siguiente manera:

Reinicio de servicios e interfaces.

El próximo paso consiste en reiniciar el servicio VPN del lado del servidor y del cliente.

Ahora, podemos ver mediante el comando ifconfig que se ha creado la interfaz tun0

correspondiente a la interfaz del túnel con la primera dirección otorgable dentro del

túnel.

Page 19: Openvp non redhat

19

Reiniciando el servicio en el cliente confirmamos lo mismo.

NOTA:: Para que los servicios inicien siempre que se enciende la máquina ingresamos

el siguiente comando tanto en el cliente como en el servidor.

Pruebas desde el cliente.

Comprobamos conexión dentro del túnel mediante el protocolo ICMP desde el servidor

hacia el cliente.

Page 20: Openvp non redhat

20

Ahora, comprobamos conexión desde el cliente hacia el servidor.

Esta es la tabla de enrutamiento que hay dentro del cliente, en ella podemos ver que a

través de la interfaz túnel se comunica con la red que hay detrás del servidor VPN.

Desde el cliente accedemos a los servicios que hay publicados en el servidor de la LAN

o servidor interno.

El primer servicio por probar será el DNS.

Page 21: Openvp non redhat

21

Ahora, haremos una petición web a través del navegador.

Page 23: Openvp non redhat

23

Conclusiones.

OPENVPN es una solución VPN libre para la implementación de VPN’s en

entorno empresarial.

En la actualidad, contar con una red VPN en un entorno empresarial significa

ahorro de gastos económicos.

La red VPN provee a empleados que están a largas distancias de su puesto

físico de trabajo, conectarse y estar lógicamente dentro de la empresa.

Es de vital importancia considerar métodos como la autenticación por usuario y

contraseña, debido a que tener acceso a la VPN es tener acceso remoto a los

recursos a los que se tengan permisos otorgados de la empresa.

Otro de los casos en los que se puede utilizar una VPN es en el que los

segmentos de red de una empresa o varias están tan separados y necesitan

conexión que no alcanzan los medios físicos para interconectar las mismas.

OPENVPN no tiene compatibilidad con otra solución para VPN muy utilizada

como lo es IPsec.

La VPN se debe correr también con el principio de seguridad de otorgar los

privilegios mínimos necesarios.

Es de vital importancia abrir los puertos por los que los clientes VPN necesitan

conexión para acceder a servicios internos de la compañía.

OPENVPN ofrece recursos flexibles para adaptar el servicio a necesidades un

tanto complicadas de configurar.

Los certificados y las llaves proporcionan autenticación de los datos que viajan

a través del túnel VPN.

OPENSSL es el protocolo de encriptación que funciona con OPENVPN.

Page 24: Openvp non redhat

24