![]() ![]() ![]()
|
|
:: Donaciones :: Tus donaciones será de gran ayuda para mantener y crecer mas este tu sitio, de antemano te damos las gracias por tus aportaciones.
:: Eventos y Notas ::
¡¡ Tu opinión Cuenta !! Debido a la gran cantidad de distribuciones Linux que hay ..
Other polls | 65 votos | 0 comentarios
¿Quén nos Vista? Registrados: 0 Invitados: 11 Últimos registrados: mescal roquerr mariela bender Kervin Total registrados: 178Notas Pasadas lunes 03-novmartes 28-octjueves 16-octmi?rcoles 08-octmartes 09-sep |
lunes, enero 05 2009 @ 10:03 CST VPN en servidor Linux y clientes Windows/Linux con OpenVPN + Shorewall [Parte 1] Autor: William López JiménezCorreo electrónico: william [punto] koalasoft [arroba] gmail [punto] com Sitio de Red: http://www.koalasoftmx.net Jabber ID: koalasoft@jabber.org
INTRODUCCIÓNOpenVPNes una solución de conectividad basada en software: SSL(Secure Sockets Layer) VPNVirtual Private Network [red virtual privada], OpenVPN ofrece conectividad punto-a-punto 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 cargasentre otras. Está publicado bajo licencia de código-libre (Open Source). 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 si. 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. Ademas 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. ![]() Servidor de Pasarela OpenVpn con clientes [Win/Linux] remotos El servidor VPN hace de pasarelapara 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 lineaa la red mundial quedando como una red local, esto claro esta 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 OPENVPNActualización del SistemaAntes 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:
Lo anterior bajará lo paquetes actualizados de Internet así como sus dependencias en caso de ser necesario. Paquetes RequeridosInstalación a partir de RPMSe 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:
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 fichero INSTALL. Descargue ahora la última release de OpenVPN: [http://prdownloads.sourceforge.net/openvpn/] Instalar desde paquete .tar, descomprima el paquete donde x.x-x es la versión del Openvpn:
Compilar OpenVPN:
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. Si desea mas información acerca de todas las opciones de configuración para OpenVPN puede usar el comando.
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.
A continuación será modificar la Autoridad Certificadora ( CA) para generar las llaves, para esto se edita el fichero /etc/openvpn/easy-rsa/vars de la siguiente forma, por ejemplo:
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: Inicializando Autoridad Certificadora el CAPara generar el CA deberá realizar los siguientes pasos:
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:
Generación de llaves.Para generar el certificado y llave privada para el servidor será de la siguiente forma:
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.
Una ves 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 CONFIGURACIÓN.Configuración del Servidor Linux VPNPara 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
Descripción:
Para la configuración del Servidor VPN necesitamos insertar el módulo (tun) para controlar los interfaces /dev/net/tunXque se necesiten en le sistema, así pues creamos el directorio /var/emptypara hacer chroot y seguidamente reiniciamos el servicio OpenVPN: Cargamos el módulo:
Y habilitamos el IP forwarding:
Comprobamos que tenemos /dev/net/tun, si no existelo lo creamos con:
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:
Ahora signamos el tipo de usuarios y grupo como [nobody]..
Para la ejecución del servidor OpenVPN puede utilizar el siguiente guión y guardarlo con el nombre de [iniciovpnserver], tendrá el siguiente contenido:
Y damos los permiso de ejecución correspondientes:
Para ejecutar nuestro guión al inicio del sistema (arranque), puede colocar lo siguiente dentro del fichero /etc/rc.local
Configuración del cortafuego [Shorewall]Acerca de shorewallShorewall(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 ficheros 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. ProcedimientoFichero de configuración /etc/shorewall/zonesEn este fichero se definirá las zonas que se administrarán con Shorewall. La zona fwestá presente en el fichero /etc/shorewall.conf como configuración predefinida. En el siguiente ejemplo se registrarán las zonas de Internet (net), Red Local (loc) y el túnel virtual tunpara el vpn (rem):
Fichero de configuración /etc/shorewall/interfacesEn éste se establecen cuales 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):
Fichero de configuración /etc/shorewall/policyEn este fichero se establece como se accederá desde una zona hacia otra y hacia la zona de Internet.
Lo anterior hace lo siguiente:
Fichero de configuración /etc/shorewall/tunnelsEn é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:
Fichero de configuración /etc/shorewall/rulesTodos 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]. ACCEPTLa 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 fichero /etc/services.
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 Windowscorre 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ónA continuación deberá copiar los siguientes ficheros:
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 fichero 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:
Descripción:
Una ves 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]. Icono de notificación Última Edición Tuesday, September 09 2008 @ 12:05 PM CDT|22,014 Hits |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Derechos de autor © 2009 KoalaSoft ::BLog:: Todas las marcas y derechos en esta página son de sus respectivos dueños. |
Otra web montada con Diseño y Mantenimiento |
| Condiciones de Uso | Encuestas | Lo mas visto | Contacto |
![]() © 2008 KoalaSoft ::BLog::, © 2008 KoalaSoftmx. Contenido disponible bajo licencia Creative Commons Reconocimiento 2.5 |