VPN en servidor Linux y clientes Windows/Linux con OpenVPN + Shorewall



Documentos relacionados
Cómo configurar un servidor de OpenVPN

CONFIGURACIÓN DE UNA VPN TIPO INTRANET:

Instalación de OPENVPN en Debian

COEXION REMOTA: Es una tecnología que nos permite acceder a mi ordenador así este fuera de nuestro alcance.

Bersayder Oscar Mejía Ramírez Sistema Operativo III José Doñé How To:

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

VPN (Virtual Private Network)

Conseguir las llaves, certificados y archivo de configuración del servidor VPN.

Virtual Private Network

Sistema de Captura Electrónica

Taller de SSH (o como ser un BOFH vago)

Como crear una red privada virtual (VPN) en Canaima.

DOCENTES FORMADORES UGEL 03 PRIMARIA

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

WINDOWS : TERMINAL SERVER

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Iptables, herramienta para controlar el tráfico de un servidor

PARTE IV. Uso de shorewall. Shorewall Configuración de Shorewall

Configuración de openvpn

Firewall Firestarter. Establece perímetros confiables.

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

SYNCTHING. Herramienta de sincronización de datos vía LAN. Laboratorio de Sistemas Operativos y Redes. Caminos Diego; Zapatero R.

Servicio de Mensajería Instantánea de la Red de Interconexión Financiera Guía del Administrador]

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

Guía de Instalación. Instalación rápida de la Consola Maestra de VEO y el Agente Remoto para los Usuarios

Redes de Área Local: Configuración de una VPN en Windows XP

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

En principio, comenzaremos a esbozar el menú principal que nos muestra el DVR, tal como se muestra a continuación:

SIEWEB. La intranet corporativa de SIE

INSTALACIÓN FIREWALL IPCOP

PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

INTRANET M2M. Manual de Instalación y Configuración: Conector Intranet M2M

VPN Tunel virtual en Endian-Firewall (Open-VPN e IPsec) Yonatan Gallego Durando

Instalación del Software Magaya

MANUAL PARA CONEXIÓN VÍA VPN EN CONTINGENCIA

Configuracio n de PFSense 2.0 con OpenVPN Road Warrior.

HOW TO SOBRE FIREWALL

MANUAL DE USUARIO AVMsorguar

Escudo Movistar Guía Rápida de Instalación Para Windows

Configuraciones básicas de seguridad en Windows para los sistemas de la línea. Control 2000

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER JAVA. Versión 4.0

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Instalación del Admin CFDI

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

Manual de usuario de IBAI BackupRemoto

VPN sobre red local. Vicente Sánchez Patón I.E.S Gregorio Prieto. Tema 3 SAD

HOW TO SOBRE REMOTE ACCESS VPN MODE EN LINUX

helppeople Viewer 2013

Instituto Tecnológico de Las Américas (ITLA)

Guía Rápida de Inicio

DOMINIO CON IP DINÁMICA

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

INSTALACIÓN DE MEDPRO

INSTITUTO TECNOLOGICO DE LAS AMERICAS (ITLA) Nombre: Brayhan E. Acosta Hiciano. Matricula: Materia: Sistema Operativo III

INSTALACIÓN DE MICROSOFT ISA SERVER 2006 Y CONFIGURACIÓN DE ACCESO VPN POR MEDIO DE POINT-TO-POINT TUNNELING PROTOCOL

labs Linux para Administradores de Elastix Elastix Certification ELASTIX CERTIFICATION

Instalación, creación y configuración del servicio FTP

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

MANUAL PARA CONFIGURACIÓN DEL COMPUTADOR DE LOS USUARIOS PARA EL USO DEL SISDON

5. Crea un sitio Web seguro usando tu propio certificado digital (Windows y Linux).

GUIA DE LABORATORIO # Nombre de la Practica: Antivirus Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos

Guía configuración en Outlook

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

[VPN] Manual Instalación VPN. [Usuario Windows]

Compartiendo conocimiento... Guía básica de instalación de Asterisk 11 en Centos6.5

Introducción a la Firma Electrónica en MIDAS

Explotación de Sistemas Informáticos IES Murgi PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Portada Foros Manuales Servicios Cursos Linux Buscar... Buscar

Configuración de Aspel-SAE 6.0 para trabajar Remotamente

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Ubuntu Server HOW TO : SERVIDOR VPN. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como usar vpn. Qué es una VPN?

Guia rápida EPlus Cliente-Servidor

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Comisión Nacional de Bancos y Seguros

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Configuración de Aspel-SAE 5.0 para trabajar Remotamente

GUÍA DE AYUDA No. 659

Consideraciones para el reconocimiento del Dispositivo de Protección USB en una red.

Capítulo 4 Implementación de OpenVPN

Servidor FTP. JEAN CARLOS FAMILIA Página 1

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

Crear claves y certificados

Servicio de VPN de la Universidad de Salamanca

INSTALACIÓN DE MÚLTIPLES SUPERVISOR VS EN RED

Hotel pide permiso a ipcop para que por el puerto 339 (control remoto) pueda recibir y enviar paquetes de la empresa y viceversa.

CONFIGURACIÓN DEL SERVIDOR

Tutorial como conectarse a una VPN utilizando OpenVPN

Acronis Backup & Recovery 11 Guía de inicio rápido

INSTRUCTIVO PARA LA PUESTA EN MARCHA DE LAS TERMINALES IP EN EL SISTEMA ACCESO

Guía de Instalación para clientes de WebAdmin

HOWTO: Cómo configurar SNAT

Instrucciones de instalación de TrueCode

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Notas para la instalación de un lector de tarjetas inteligentes.

Cliente VPN Hezkuntza Manual de instalación y utilización

Configuración del firewall en Linux con IPtables

Instalación de shorewall.

Transcripción:

VPN en servidor Linux y clientes Windows/Linux con OpenVPN + Shorewall INTRODUCCIÓN OpenVPNes una solución de conectividad basada en software: SSL(Secure Sockets Layer) VPNVirtual Private Network [redvirtual privada], OpenVPN ofrece conectividad punto-apunto con validación, jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas EEI 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas entre otras. Tipo de configuración. En esta ocasión se realizará una configuración tipo VPN Intranet. Este tipo de redes es creado entre una oficina central [servidor] y una o varias oficinas remotas [clientes]. El acceso viene del exterior. Se utiliza este tipo de VPN cuando se necesita enlazar a los sitios que son parte de una compañía, en nuestro caso será compuesto por un servidor Central que conectará a muchos clientes VPN entre sí. La información y aplicaciones a las que tendrán acceso los directivos móviles en el VPN, no serán las mismas que aquellas en donde pueden acceder los usuarios que efectúan actividades de mantenimiento y soporte, esto como un ejemplo de lo que se podrá realizar con esta configuración. Además de que podrá conectarse vía Terminal Server [en el caso de clientes Linux] a terminales Windows de la red VPN así como de Clientes Windows a computadoras con el mismo sistema operativo [mediante RDP]. Nota Importante: Enfocado a esta configuración. Una vez que los clientes [Win/Linux] se conecten a la red VPN quedarán automáticamente sin conexión a Internet, lo cual NO podrán acceder a la red mundial. Esto puede ser modificable en el servidor VPN. Cahecaz Página 1

Servidor de Pasarela OpenVpn con clientes [Win/Linux] remotos El servidor VPN hace de pasarela para que todos los clientes [Windows/Linux] puedan estar comunicados a través del túnel OpenVpn, estos al conectarse por medio de Internet al túnel automáticamente quedan sin línea a la red mundial quedando como una red local, esto claro está a través del VPN. Cada cliente se encuentra en lugares diferentes [ciudad/estado/país] con diferentes tipos de segmento de red, al estar conectados mediante el túnel VPN se crea un red virtual y se asigna un nuevo segmento de red proporcionada por el servidor principal en este caso con segmento [10.10.0.0/255.255.255.255]. INSTALACIÓN VPN CON OPENVPN Actualización del Sistema Antes que nada debemos actualizar todo nuestro sistema, si cuenta con acceso a Internet así como también correctamente configurado sus depósitos yum se hará de la siguiente forma: yum -y update Cahecaz Página 2

Lo anterior bajará lo paquetes actualizados de Internet así como sus dependencias en caso de ser necesario. Paquetes Requeridos Instalación a partir de RPM Se necesita los paquetes OpenVPN y lzo, se podrá hacer de la siguiente forma, si cuenta en sus depósitos con la paquetería AL Desktop: yum -y install openvpn lzo Instalación a partir de paquete TAR. En caso de no contar con paquetes RPMpuede hacerlo de forma manual. Se requiere utilizar la compresión sobre el enlace VPN, para esto instale la biblioteca LZO [http://www.oberhumer.com/opensource/lzo/]. Si utiliza un Linux 2.2 o anterior descargue el controlador TUN/TAP [http://vtun.sourceforge.net/tun/]. Los usuarios de Linux 2.4.7 o superior deberían tener el controlador TUN/TAP ya incluido en su kernel. Usuarios de Linux 2.4.0 -> 2.4.6 deberían leer la advertencia al final del archivo INSTALL. Descargue ahora la última release de OpenVPN: Instalar desde paquete.tar, descomprima el paquete donde x.x-x es la versión del Openvpn: tar zxvf openvpn-x.x-x.tar.gz Compilar OpenVPN: cd openvpn-x.x../configure make make install Si no se descargó la biblioteca LZO, añada --disable-lzoal comando configure. Se pueden habilitar otras opciones como el soporte para pthread (./configure --enable-pthread) para mejorar la latencia durante los intercambios dinámicos de clave SSL/TLS. Cahecaz Página 3

Si desea más información acerca de todas las opciones de configuración para OpenVPN puede usar el comando../configure help Preparación de guiones (script) RSA. Para la administración de la PKI (Infraestructura de Llave Publica - Public Key Infrastructure) usaremos los guiones que vienen junto con OpenVPN (easy-rsa) la versión reciente trae consigo muchas mejoras, es esta easy-rsa 2.0. cp -Rp /usr/share/doc/openvpn-x.x-x/easy-rsa/ /etc/openvpn cp /etc/openvpn/easy-rsa/openssl.cnf /etc/openvpn A continuación será modificar la Autoridad Certificadora ( CA) para generar las llaves, para esto se edita el archivo /etc/openvpn/easy-rsa/vars de la siguiente forma, por ejemplo: export KEY_COUNTRY=MX export KEY_PROVINCE=MiEstado/Provincia export KEY_CITY=MiCiudad export KEY_ORG="midominio.com" export KEY_EMAIL="fulanito@modominio.com" De lo anterior, cada elemento significa lo siguiente: KEY_COUNTRY: Especifica el país donde se encuentra el servidor vpn KEY_PROVINCE: Provincia o estado donde se encuentra este. KEY_CITY: Ciudad ubicado el servidor vpn. KEY_ORG: Dominio o departamento de la organización/empresa. KEY_MAIL: Correo electrónico de la organización/empresa. Importante: Se deben de llenar todos los parámetros ya que son indispensables para los certificados que serán creados. Seguidamente se ejecutarán los guiones (scripts) para general las llaves correspondientes de la siguiente forma: Cahecaz Página 4

Inicializando Autoridad Certificadora el CA Para generar el CA deberá realizar los siguientes pasos: cd /etc/openvpn/ source easy-rsa/2.0/./vars sh easy-rsa/2.0/clean-all sh easy-rsa/2.0/build-ca cd /etc/openvp Generando Parametros Diffie Hellman. Los parámetros Diffie Hellmandeben de ser generados en el Servidor OpenVPN, para realizar esto deberá ejecutar el guión de la siguiente forma: sh easy-rsa/2.0/build-dh Generación de llaves. Para generar el certificado y llave privada para el servidor será de la siguiente forma: sh easy-rsa/2.0/build-key-server miservidor En donde [miservidor] es una variable para identificar la llave privada del servidor. Para generar el certificado y llave para los clientes se hará de la siguiente forma: Recomendación: Cada cliente deberá tener su propia llave. sh easy-rsa/2.0/build-key cliente sh easy-rsa/2.0/build-key cliente1 sh easy-rsa/2.0/build-key cliente2 Una vez que se han generado las llaves correspondientes a los clientes y servidor, se podrá rescatar estas en el directorio /etc/openvpn/easy-rsa/2.0/keys Cahecaz Página 5

CONFIGURACIÓN. Configuración del Servidor Linux VPN Para la creación del servidor OpenVPN se deberá crear un archivo de configuración udppara el este en el directorio /etc/openvpn/ con el nombre servidorvpn-udp-1194.conf port 1194 proto udp dev tun #---- Seccion de llaves ----- ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem #---------------------------- server 10.11.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status-servidorvpn-udp-1194.log verb 3 Descripción: Port: Especifica el puerto que será utilizado para que los clientes vpn puedan conectarse al servidor. Proto: tipo de protocolo que se empleará en a conexión a través de VPN dev: Tipo de interfaz de conexión virtual que se utilizará el servidor openvpn. ca: Especifica la ubicación exacta del archivo de Autoridad Certificadora [.ca]. Cahecaz Página 6

cert: Especifica la ubicación del archivo [.crt] creado para el servidor. key: Especifica la ubicación de la llave [.key] creada para el servidor openvpn. dh: Ruta exacta del archivo [.pem] el cual contiene el formato de Diffie Hellman (requirerido para --tls-serversolamente). server: Se asigna el rango IP virtual que se utilizará en la red del túnel VPN. Ifconfig-pool-persist: Archivo en donde quedarán registrado las direcciones IP de los clientes que se encuentran conectados al servidor OpenVPN. Keepalive 10 120 : Envía los paquetes que se manejan por la red una vez cada 10 segundos; y asuma que el acoplamiento es abajo si ninguna respuesta ocurre por 120 segundos. comp-lzo: Especifica los datos que recorren el túnel vpn será compactados durante la trasferencia de estos paquetes. persist-key: Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no necesitan ser releídos. Persist-tun: Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down status: archivo donde se almacenará los eventos y datos sobre la conexión del servidor [.log] verb: Nivel de información (default=1). Cada nivel demuestra todo el Info de los niveles anteriores. Se recomienda el nivel 3 si usted desea un buen resumen de qué está sucediendo. 0 --No muestra una salida excepto errores fatales. 1 to 4 Rango de uso normal. 5 --Salida Ry Wcaracteres en la consola par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes TUN/TAP. Para la configuración del Servidor VPN necesitamos insertar el módulo (tun) para controlar los interfaces /dev/net/tunxque se necesiten en el sistema, así pues creamos el directorio /var/emptypara hacer chroot y seguidamente reiniciamos el servicio OpenVPN: Cargamos el módulo: modprobe tun Y habilitamos el IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward Cahecaz Página 7

Comprobamos que tenemos /dev/net/tun, si no existelo lo creamos con: mknod /dev/net/tun c 10 200 A continuación se creará un directorio para hacer chroot [jaula], en el cual solamente seráusado para configuración de clientes Linux (no-windows), de la siguienteforma: mkdir /var/empty Ahora signamos el tipo de usuarios y grupo como [nobody].. chown nobody.nogroup /var/empty Para la ejecución del servidor OpenVPN puede utilizar el siguiente guión y guardarlo con el nombre de [iniciovpnserver], tendrá el siguiente contenido: #!/bin/bash #-- Variables -- RUTACONFIG= /etc/openvpn/ NOMCONFIG= servidorvpn-udp-1198.conf # #-- Ejecuciónde la configuraciónpara el servicioopenvpn # $RUTACONFIG./$NOMCONFIG # exit 0 Y damos los permisos de ejecución correspondiente: chmod +x iniciovpnserver Para ejecutar nuestro guión al inicio del sistema (arranque), puede colocar lo siguiente dentro del archivo /etc/rc.local #inicia la configuración OpenVPN /donde/este/tu/archivo/iniciovpnserver Cahecaz Página 8

Configuración del cortafuego [Shorewall] Acerca de shorewall Shorewall(Shoreline Firewall) es una robusta y extensible herramienta de alto nivel para la configuración de muros cortafuego.shorewall solo necesita se le proporcionen algunos datos en algunos archivos de texto simple y éste creará las reglas de cortafuegos correspondientes a través de iptables. Shorewallpuede permitir utilizar un sistema como muro cortafuegos dedicado, sistema de múltiples funciones como puerta de enlace, dispositivo de encaminamiento y servidor. URL: http://www.shorewall.net/ En esta ocasión se supone que el servidor VPN se encuentra en el mismo Firewall. Procedimiento Archivo de configuración /etc/shorewall/zones En este archivo se definirá las zonas que se administrarán con Shorewall. La zona fwestá presente en el archivo /etc/shorewall.confcomo configuración predefinida. En el siguiente ejemplo se registrarán las zonas de Internet (net), Red Local (loc) y el túnel virtualtunpara el vpn (rem): #ZONE DISPLAY OPTIONS fw net loc firewall ipv4 ipv4 # OpenVPN ---- rem ipv4 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Archivo de configuración /etc/shorewall/interfaces En éste se establecen cuáles serán las interfaces para las tres diferentes zonas. Se establecen las interfaces que corresponden a la Internet, virtual tuny Red Local. A continuación se cuenta con una interfaz ppp0 para acceder hacia Internet, una interfaz eth0 para acceder hacia la LANy una interfaz rem para acceder hacia la red virtual tun y en todas se solicita se calcule automáticamente la dirección de transmisión (Broadcast): Cahecaz Página 9

#ZONE INTERFACE BROADCAST OPTIONS GATEWAY net ppp0 detect loc eth0 detect # OpenVPN ---- rem tun0 detect #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Archivo de configuración /etc/shorewall/policy En este archivo se establece como se accederá desde una zona hacia otra y hacia la zona de Internet. #SOURCE DEST POLICY LOG LIMIT:BURST loc net ACCEPT fw net ACCEPT # OpenVpn ---- rem fw ACCEPT fw rem ACCEPT net rem ACCEPT rem net ACCEPT # ------------ net all DROP info all all REJECT info #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Lo anterior hace lo siguiente: 1. La zona de la red local puede acceder hacia la zona de Internet. 2. La zona virtual tun (rem) puede acceder hacia el cortafuegos, viceversa y también hacia la zona de Internet. 3. El cortafuego mismo puede acceder hacia la zona de Internet. 4. Se impiden conexiones desde Internet hacia el resto de las zonas. Cahecaz Página 10

5. Se establece una política de rechazar conexiones para todo lo que se haya omitido. Archivo de configuración /etc/shorewall/tunnels En éste se establecen el tipo de conexión vpn. Puesto que es un servidor VPN se le indicará a al cortafuego que en el servidor vpn se utilizará el puerto que nosotros le indiquemos así como también la IP donde se encuentra este, en nuestro caso siguiendo el tipo de configuración será en la red 192.168.2.0/24: #TYPE ZONE GATEWAY GATEWAY # ZONE openvpnserver:1194 rem 192.168.2.0/24 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Archivo de configuración /etc/shorewall/rules Todos los puertos están cerrados de modo predefinido, así que se deberá habilitar el puerto configurado para el túnel vpn en el cual fue especificado en la configuración del servidor OpenVpn. Esto debe ser especificado con la acción [ACCEPT] en [rules]. ACCEPT La acción ACCEPT se especificará que se permiten conexiones para el puerto OpenVpn desde o hacia una(s) zona (s) un protocolo(s) y puerto(s) en particular. A continuación se permiten conexiones desde Internet hacia el firewall y viceversa por el puerto UDP [1194]. Los nombres de los servicios se asignan de acuerdo a como estén listados en el archivo /etc/services. #ACTION SOURCE DEST PROTO DEST # PORT # OpenVPn --- ACCEPT net fw udp 1194 ACCEPT fw net udp 1194 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE Configuración de SELinux. A fin de permitir que OpenVPN funcione en un sistema con SELinux activo, es necesario activar la política setsebool openvpn_disable_trans de la siguiente manera. setsebool openvpn_disable_trans 1 Cahecaz Página 11

Configuración de Clientes VPN con OpenVPN. Clientes Windows Para la configuración de clientes OpenVPN utilizaremos el programa OpenVPN GUI para Windows. OpenVPN GUI para Windows corre normalmente en una ventana de consola, al ser conectado al servidor remoto/local VPN le da un aviso en el área de notificación (el área de abajo a la derecha por el reloj en la barra ), desde allí puede tener el control de iniciar/parar el Cliente OpenVPN, consultar los avisos (log), incluso cambiar su contraseña. Puede ser descargado en el sitio OpenVPN GUI for Windows [http://openvpn.se]. Preparativos y configuración A continuación deberá copiar los siguientes archivos: ca.crt. cliente1.crt. cliente1.csr. cliente1.key Estos fueron creados en el directorio /etc/openvpn/easy-rsa/2.0/keys y deberán ser colocados en la máquina cliente dentro de C:Program FilesOpenVPNconfig o a su vez en C: Archivos de Programa OpenVPN config Se creará un archivo de configuración cliente para el OpenVPN dentro del directorio C: Archivos de ProgramaOpenVPNconfigcon el nombre de cliente1-udp-1194.ovpn. Tendrá la siguiente configuración: Cahecaz Página 12

client dev tun proto udp remote dominio-o-ip.del.servidor.vpn 1194 float resolv-retry infinite nobind persist-key persist-tun #------ SECCION DE LLAVES -------- ca ca.crt cert cliente.crt key cliente.key ns-cert-type server #--------------------------------- comp-lzo verb 3 Descripción: client: Especifica el tipo de configuración, en este caso tipo cliente OpenVPN. Port: Especifica el puerto que será utilizado para que los clientes VPN puedan conectarse al servidor. Proto: tipo de protocolo que se empleará en a conexión a través de VPN dev: Tipo de interfaz de conexión virtual que se utilizará el servidor openvpn. remote: Host remoto o dirección IP en el cliente, el cual especifica al servidor OpenVPN. El cliente OpenVPN puede tratar de conectar al servidor con host:porten el orden especificado de las opciones de la opción --remote. float: Este le dice a OpenVPN aceptar los paquetes autenticados de cualquier dirección, no solamente la dirección cuál fue especificado en la opción --remote. resolv-retry: Si la resolución del hostname falla para -- remote, la resolución antes de fallar hace una re-comprobación de n segundos. nobind: No agrega bind a la dirección local y al puerto. ca: Especifica la ubicación exacta del archivo de Autoridad Certificadora [.ca]. cert: Especifica la ubicación del archivo [.crt] creado para el servidor. key: Especifica la ubicación de la llave [.key] creada para el servidor OpenVPN. Cahecaz Página 13

remote: Especifica el dominio o IP del servidor así como el puerto que escuchara las peticiones para servicio VPN. comp-lzo: Especifica los datos que recorren el túnel VPN será compactados durante la trasferencia de estos paquetes. persist-key: Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no necesitan ser releídos. Persist-tun: Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down verb: Nivel de información (default=1). Cada nivel demuestra toda la Información de los niveles anteriores. Se recomienda el nivel 3 si usted desea un buen resumen de qué está sucediendo. 0 --No muestra una salida excepto errores fatales. 1 to 4 Rango de uso normal. 5 --Salida Ry Wcaracteres en la consola par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes TUN/TAP. Una vez configurado el cliente VPN con Windows, deberá ir al área de notificación (el área de abajo a la derecha por el reloj en la barra de Windows) y dar un click derecho al icono del cliente OpenVPN, allí aparecerá un menú en el cual podrá elegir la opción conectar [connect]. Menú del cliente OpenVPN para efectuar la conexión al servidor VPN Cuando intente conectarse al servidor VPN una vez que haya elegido la opción [connect] aparecerá una ventana de notificación en el cual vera los procesos de verificación e intento de conexión al servidor VPN, si todo sale bien, en el icono de notificación del Cahecaz Página 14

cliente OpenVPN le indicará la correcta conexión y le mostrará el número de IP virtual [tun] que se le fue asignado. Pruebas de Conexión Mensaje de notificación al conectarse al servidor VPN Una vez efectuada la conexión al servidor, para asegurarse que estamos dentro del túnel VPN y tenemos conexión al servidor, podemos realizar una búsqueda de dirección IP [Ping], así como también verificar el número IP asignado por el servidor VPN al estar conectarnos en el túnel. Para esto utilizaremos el comando [cmd] para hacer llamado al MS-Dos de Windows a través de la aplicación [ejecutar]. Al ingresar en la consola en modo texto, utilice el comando [ipconfig] para ver qué dirección IP se le fue asignado. Verificación de asignación de dirección IP virtual [tun] Cahecaz Página 15

Verificación de conexión de red a través del túnel VPN Importante: Deberá desactivar el cortafuego que trae como predeterminado Windows o cualquier otro que esté utilizando. Clientes Linux Para la configuración de clientes Linux con OpenVPN utilizaremos el modo texto [terminal] y el arranque a través de un bash. Preparativos y configuración A continuación deberá copiar los siguientes archivos: ca.crt cliente1.crt cliente1.csr cliente1.key Estos fueron creados en el directorio /etc/openvpn/easy-rsa/2.0/keys y deberán ser colocados en la máquina cliente dentro del directorio OpenVPN. Supongamos que las llaves la tenemos en el directorio /tmp/llaves, debemos copiar estas en el siguiente directorio/etc/openvpn/keys, para esto hay que crearlo antes. mkdir /etc/openvpn/keys cp -R /tmp/llaves/* /etc/openvpn/keys/ Cahecaz Página 16

cd /etc/openvpn/ A continuación se creará un archivo de configuración cliente para el OpenVPN dentro del directorio /etc/openvpn/ con el nombre de cliente1-udp-1194.ovpn. Tendrá la siguiente configuración: Client dev tun proto udp remote dominio-o-ip.del.servidor.vpn 1194 float resolv-retry infinite nobind persist-key persist-tun #------ SECCION DE LLAVES -------- ca ca.crt cert cliente.crt key cliente.key ns-cert-type server #--------------------------------- comp-lzo verb 3 Descripción: client : Especifica el tipo de configuración, en este caso tipo cliente OpenVPN. Port : Especifica el puerto que será utilizado para que los clientes VPN puedan conectarse al servidor. Proto: tipo de protocolo que se empleará en a conexión a través de VPN dev : Tipo de interfaz de conexión virtual que se utilizará el servidor openvpn. remote : Host remoto o dirección IP en el cliente, el cual especifica al servidor OpenVPN. El cliente OpenVPN puede tratar de conectar al servidor con host:port en el orden especificado de las opciones de la opción --remote. float : Este le dice a OpenVPN aceptar los paquetes autenticados de cualquier dirección, no solamente la dirección cuál fue especificado en la opción --remote. resolv-retry : Si la resolución del hostname falla para -- remote, la resolución antes de fallar hace una re-comprobación de n segundos. Cahecaz Página 17

nobind : No agrega bind a la dirección local y al puerto. ca : Especifica la ubicación exacta del archivo de Autoridad Certificadora [.ca]. cert : Especifica la ubicación del archivo [.crt] creado para el servidor. key : Especifica la ubicación de la llave [.key] creada para el servidor OpenVPN. remote : Especifica el dominio o IP del servidor así como el puerto que escuchara las peticiones para servicio VPN. comp-lzo : Especifica los datos que recorren el túnel VPN será compactados durante la trasferencia de estos paquetes. persist-key : Esta opción soluciona el problema por llaves que persisten a través de los reajustes SIGUSR1, así que no necesitan ser releídos. Persist-tun : Permite que no se cierre y re-abre los dispositivos TAP/TUN al correr los guiones up/down verb : Nivel de información (default=1). Cada nivel demuestra toda la Información de los niveles anteriores. Se recomienda el nivel 3 si usted desea un buen resumen de qué está sucediendo. 0 -- No muestra una salida excepto errores fatales. 1 to 4 Rango de uso normal. 5 -- Salida R y W caracteres en la consola par los paquetes de lectura y escritura, mayúsculas es usada por paquetes TCP/UDP minúsculas es usada para paquetes TUN/TAP Ahora necesitamos insertar el módulo [tun] para controlar los interfaces /dev/net/tunx que se necesiten en el sistema para el servicio OpenVPN: Cargamos el módulo: modprobe tun y habilitamos el IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward Comprobamos que tenemos /dev/net/tun, si no existe lo creamos con: mknod /dev/net/tun c 10 200 Para la ejecución del cliente OpenVPN puede utilizar el siguiente guión y guardarlo con el nombre de [iniciovpncliente], tendrá el siguiente contenido: #!/bin/bash # Cahecaz Página 18

#-- Variables RUTACONFIG= /etc/openvpn/ NOMCONFIG= cliente1-udp-1194.conf # #-- Ejecución de la configuración para el servicio OpenVPN # /usr/bin/openvpn $RUTACONFIG./$NOMCONFIG # exit 0 Y damos el permiso de ejecución correspondiente: chmod +x iniciovpncliente Si desea ejecutar el servicio VPN al inicio del sistema (arranque), puede colocar lo siguiente dentro del archivo /etc/rc.local #inicia la configuración OpenVPN /donde/este/tu/archivo/iniciovpncliente Pruebas de Conexión Una vez efectuada la conexión al servidor VPN, para asegurarse que estamos dentro del túnel VPN y tenemos conexión al servidor, podemos realizar una búsqueda de dirección IP [Ping], así como también verificar el número IP asignado por el servidor VPN al estar conectarnos en el túnel. Para esto utilizaremos el necesitamos entrar a la terminal de comando, en la consola en modo texto, utilice el comando [ifconfig] para ver qué dirección IP se le fue asignado. Verificación de asignación de dirección IP [tun] con ifconfig Cahecaz Página 19

Prueba de conexión con el comando [ping] hacia el servidor VPN Comprobación de conexión hacia el servidor VPN en interfaz gráfica Cahecaz Página 20