Contador de Visitas


Contador web
Ranking Página

GuLcPy

No te olvides de visitar la pagina de GULCPY http://www.gulcpy.org.py
Donde podras encontrar informaciones y tutoriales referentes a GNU/Linux y conocer el camino hacia la libertad!!!!




vpn en gnu/linux con openvpn

[b][color=red]OpenVPN[/color][/b] es una solución de conectividad basada en software: SSL (Secure Sockets Layer) VPN Virtual 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 cargas. Está publicado bajo la licencia GPL, de software libre. [b][color=red][size=18]Introducción[/size][/color][/b] Este articulo tiene como objetivo mostrar de forma rápida y simple la configuración de un VPN basado en GNU/Linux utilizando OpenVPN como herramienta, siendo que este es un Software estable, simple de configurar es un proyecto que esta siempre en desarrollo. Vamos a considerar el caso de conectar las redes internas de una empresa (matriz y sucrusal), siendo que ambas se localizan en lugares diferentes y bien distantes, que cada empresa posee una conexión ADSL rodando GNU/Linux como servidor de sus respectivas redes internas conforma al ejemplo hipótetico de abajo: Matriz ADSL con IP 200.217.222.222 LAN con la clase 192.168.1.0/24 Sucrusal ADSL con ip 200.141.64.33 LAN con la clase 192.168.2.0/24 [img]http://k22.kn3.net/taringa/5/8/0/8/7/2//cagl86/A67.jpg?2780[/img] En nuestra VPN, tenemos como principal objetivo hacer que cualquier maquina de la red interna de la Matriz se conecte directamente con cualquier máquina de la red interna de la Sucrusal (o vice versa), dejando la impresión de que ambas redes estan en el mismo edificio. [b][color=blue][size=18]Instalación[/size][/color][/b] Antes de comenzar, devemos fijarnos primeramente si el driver TUN/TAP se encuentra en el Kernel. En el caso de que no se encuentre, necesitaremos activar ese driver dentro de la opción "Network Device Support", conforme con el ejemplo de abajo: [*] Network device support ARCnet devices ---> < > Dummy net driver support < > Bonding driver support < > EQL (serial line load balancing) support <*> Universal TUN/TAP device driver support < > Ethertap network tap (OBSOLETE) < > General Instruments Surfboard 1000 Ethernet (10 or 100Mbit) ---> Ethernet (1000 Mbit) ---> [ ] FDDI driver support [ ] HIPPI driver support (EXPERIMENTAL) <*> PPP (point-to-point protocol) support < > SLIP (serial line) support Wireless LAN (non-hamradio) ---> Token Ring devices ---> [ ] Fibre Channel driver support < > Red Creek Hardware VPN (EXPERIMENTAL) < > Traffic Shaper (EXPERIMENTAL) Wan interfaces ---> No voy a tocar en este articulo temas de compilación de kernel ni la configuración del ADSL por cuestiones de tiempo. NOTA: En las Distros RedHat 9.0, Slackware 9.1, 10.0 e 10.1 no fue necesario modificar el Kernel. En Slackware 9.0 es necesario recompilar el kernel con soporte al driver TUN/TAP. T Bajamos los paquetes lzo-1.08.tar.gz (biblioteca de compresión de datos) y el paquete openvpn-1.5.0.tar.gz. 1º Paso $ tar -xzvf lzo-1.08.tar.gz $ cd lzo-1.08 $ ./configure $ make $ su # make install 2º Paso $ tar -xzvf openvpn-1.5.0.tar.gz $ cd openvpn-1.5.0 $ ./configure $ make $ su # make install Ahora el OpenVPN ya esta instalado en nuestro sistema con soporte a la biblioteca de compresión de datos. Ahora solo resta configurar nuestra VPN. [b][color=red][size=18]Configuración de la Matriz[/size][/color][/b] Configurando nuestra VPN en la Matriz: El OpenVPN puede operar 3 tipos de cifrado. Ninguna crippode operar con 3 tipos de cifrado. Ningun cifrado(solo el túnel), cifrado con llaves estáticas en modo TLS, en que las llaves son cambiadas periodicamente. En nuestro ejemplo, usaremos cifrado con llaves estáticas.. 1 - Ejecute los seguintes comandos: # mkdir /etc/openvpn Creamos el directorio donde estarán los archivos de configuración. # openvpn --genkey -secret /etc/openvpn/llave Fue creada una llave de cifrado con el nombre llave (puede ser cualquier nombre de archivo) dentro del directorio /etc/openvpn. # cat /etc/openvpn/llave Solo para visualizar el contenido de la llave que generamos. # touch /etc/openvpn/matriz.conf Cree ese archivo con el siguiente contenido: # Usar como interface o driver TUN dev tun # 10.0.0.1 ip que será asumido en la matriz # 10.0.0.2 ip remoto, ese será el ip de la sucursal ifconfig 10.0.0.1 10.0.0.2 # Entra en el directorio donde se encuentran los archivos de configuracion cd /etc/openvpn # Indica que ese túnel posee una llave de cifrado secret llave # OpenVPN usa el puerto 5000/UDP por defecto. # Cada túnel de OpenVPN debe usar # un puerto diferente. # El estándar es el puerto 5000 port 5000 # Usuário que correrá el daemon del OpenVPN user winner # Grupo que correrá el daemon do OpenVPN group winner Usa la biblioteca lzo comp-lzo # Envia un ping via UDP para la parte # remota a cada 15 segundos para mantener # la conexión de pié en el firewall statefull # Muy recomendado, igual si no se usa # un firewall basado en statefull. ping 15 # Nível de log verb 3 En seguida, vamos a iniciar la conexión del servidor, faltando apenas configurar la sucursal. Ejecute el siguiente comando en el servidor de la Matriz: # openvpn --config /etc/openvpn/matriz.conf -daemon # ifconfig tun0 tun0 Link encap:Point-to-Point Protocol inet addr:10.0.0.1 P-t-P:10.0.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1 RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0 TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb) Si aparece algo parecido significa que el túnel de la Matriz ya esta pronto a la espera de la conexión de la sucursal. [b][color=red][size=18]Configuración de la sucursal[/size][/color][/b] Configurando nuestra VPN en la sucursal: La instalación en la sucursal tiene que ser exactamente igual a la de la Matriz, y solo seguir los pasos descritos en la parte de instalación. Ya en la parte de configuración, no cambia mucho las cosas, pues el mayor trabajo es simplemente copiar la llave que generamos en la Matriz con un canal seguro hasta la sucursal. Ejecutamos los siguientes comando. Crearemos el mismo directorio de configuración en la sucursal : # mkdir /etc/openvpn Copie la llave generada en la matriz para la filial con el siguiente comando: # scp /etc/openvpn/llave ip_filial:/etc/openvpn A continuación creamos el archivo de configuración llamado sucursal.conf: # touch /etc/openvpn/sucursal.conf Creamos el archivo con el siguiente contenido: # Usar como interface el driver TUN dev tun # 10.0.0.1 ip que será asumido en la matriz # 10.0.0.2 ip remoto, este sería el ip de la sucursal ifconfig 10.0.0.2 10.0.0.1 # Indica donde está la ip de la Matriz (es la unica linea que añadimos # en el archivo de configuración de la sucursal), el resto es todo igual. remote 200.217.222.222 # Entra en el directorio donde se encuentran los archivos de configuración cd /etc/openvpn # Indica que ese túnel posee una llave de cifrado secret llave # OpenVPN usa el puerto 5000/UDP por defecto. # Cada túnel del OpenVPN debe usar # un puerto diferente. # por defecto el puerto 5000 port 5000 # Usuário que ejecutará el daemon del OpenVPN user winner # Grupo que ejecutará el daemon del OpenVPN group winner # Usa la biblioteca lzo comp-lzo # Envia un ping via UDP para la parte # remota cada 15 segundos para manter # la conexión de pie en firewall statefull # Muy recomendado, igual si no utilizas # un firewall basado e statefull. ping 15 # Nível de log verb 3 Inicie la conexión en la sucursal con el siguiente comando: # openvpn --config /etc/openvpn/sucursal.conf -daemon # ifconfig tun0 tun0 Link encap:Point-to-Point Protocol inet addr:10.0.0.2 P-t-P:10.0.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1 RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0 TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb) Ok! si apareciera algo similar a esto, sua VPN, está ejecutándose!!! Pruebe haciendo ping de una puerta a otra: # ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=63 time=11.9 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=63 time=6.09 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=63 time=5.93 ms 64 bytes from 10.0.0.1: icmp_seq=4 ttl=63 time=8.15 ms 64 bytes from 10.0.0.1: icmp_seq=5 ttl=63 time=6.19 ms Si aparece algo similar a esto, su VPN ya esta funcionando ahora solo falta adicionar las rutas para las redes internas se vean. [b][color=blue][size=18]Adicionando rutas[/size][/color][/b] NOTA: Antes de adicionar las rutas, es necesario activar el ruteamiento en el kernel en ambas puntas (Matriz y Sucursal). Ejecute los siguientes comando en la matriz y la sucursal: # echo 1 > /proc/sys/net/ipv4/ip_forward Para adicionar la ruta con destino a la red de la sucursal, ejecute dentro del servidor matriz el siguiente comando: # route add -net 192.168.2.0/24 gw 10.0.0.2 Para adicionar la ruta con destino a la red de la Matriz, ejecute desde el servidor de la Sucursal el siguiente comando: # route add -net 192.168.1.0/24 gw 10.0.0.1 Bien ahora solo sobra testear. Intente dar ping dentro de una maquina de LAN de la Matriz con destino LAN de la Sucursal. Tambien tenemos que colocar toda la secuencia de comandoBom, agora é só testar. Tente pingar de dentro de uma máquina da LAN da Matriz com destino a LAN da Filial. Vale lembrar também que temos que colocar toda a seqüência de comandos en rc.local de su distro, para que la misma cargue las configuraciones al iniciar el sistema operativo. Para terminar, podemos tambien configurar un servidor Wins con Samba o window$ nt/2000 para que ambos sean visualizadas en la red de window$. Imprimir

0 comentarios:

Publicar un comentario