eko nº1:(eko01-08.txt):01/01/2001 << Back To eko nº 1
< ---------------------------- [ EKO Magazine ] ---------------------------- > < - [ Configurando Redes Privadas Virtuales ] ------------------------------ > < - [ by QQmelo ] ----------------------------------------------- (EKO 01) - > Configurando Redes Privadas Virtuales ===================================== Articulo: Configuracion de VPN Autor: QQm310 Mail: qqmelo@ciudad.com.ar Nivel: Avanzado Requisitos: Conocimientos de Redes, Ip_Masquerade, Compilacion de Nucleo, cerebro, y nada mas. Indice: A- Introduccion: 1- Buscando el soft. 2- Recompilando el nucleo. 3- Configurando el nucleo para que soporte IPsec. 4- Configurando el archivo /etc/ipsec.conf 5- Ultimos Pasos, el archivo /etc/ipsec.secrets 6- Levantando la conexion 7- Palabras finales A) Hey guys, como andan!!!!!!!!!! Otra vez rompiendoles las pelotas Pero esta vez con un tema que esta metiendo mucho ruido, como es VPN. Muchas veces en el chat, me han consultado sobre este tema, y Luego de haber consultado, en el howto, y viendo con un amigo, me decidi escribir un texto explicando este tema. VPN viene a resolver temas de seguridad entre dos redes privadas, que se comunican entre si utilizando como transporte una red publica que es internet En el siguiente grafico, ilustrare como seria una VPN 201.202.203.10 101.102.103.10 +++++++ 201.202.203.1 101.102.103.1 ++++++ + B +----Router B---------------------Router A---------+ A + +++++++ ++++++ * * *******192.168.1.4 192.168.2.4 ********* * * * ****************192.168.1.5 192.168.2.5************* * **********************192.168.1.6 192.168.2.6***************** Bueno, tratare de explicar un poquito esto La red esta comunicada a travez de dos routers, que serian router B y router A ( que Actuan de respectivos gateways entre los Servers B y A ). EL server B tiene dos placas de red minimamente, y la direccion publica de este server es 201.202.203.10, y la privada seria por ejemplo, 192.168.1.4. Este server tiene como gateway determinado el Router B, con direccion publica 201.202.203.1. El server B funciona como un gateway entre la red privada e internet, teniendo del otro lado, una estructura similar, que es lo que compone la VPN. Caracteristicas de la VPN. La Red Privada virtual, tiene una analogia con un hecho ocurrido en la segunda guerra mundial. Como las comunicaciones entre los Nazis fueron interceptadas por los Aliados, los Nazis crearon un sistema de codificacion llamado Enigma. Cuando el mensaje era transmitido, Enigma lo codificaba, y cuando era recibido, otra maquina igual a la que lo enviaba, lo decodificaba. Los Aliados quisieron romper este codigo, para lo cual contrataron expertos matematicos, pero esto es ya otra historia. Esto es una analogia con las Redes Privadas Virtuales. Como Trabaja una red Privada Virtual? ***** +++++++++++++++++++++++++++++++++ ***** * A * ---- Internet ---- * B * ***** ^ +++++++++++++++++++++++++++++++++ ***** ^ ^---- Paquete encapsulado y encriptado Muchas Redes Privadas Virtuales existen hoy en internet. Estas ofrecen Seguridad y son una alternativa fiable y economica para la transmision de datos entre sucursales de distintas localidades, paises e inclusive continentes. La VPN utiliza IPSec. IPSec es un conjunto de protocolos utilizado para la transmision segura entre redes. Este utilizada un sistema de llaves para lograr la encriptacion. VPN combinado con Masqueranding. Para Lograr la comunicacion entre dos Redes Privadas, se utiliza el Masqueranding, como una forma de comunicacion entre las redes A y B. Mapa de Ruta ------------ Rapidamente, expondre como configurar una red privada virtual en Pocos Pasos, para luego, desarrollar cada uno de ellos. 1- Buscaremos el soft. El software que utilizaremos es FreeS/WAN. Lo descargaremos desde la pagina www.freeswan.org. Este software, sera el que utilizaremos para Pachear el nucleo. 2- Recompilando el nucleo. Una vez bajado el proggie, procederemos a compilarlo. Para eso lo copia-remos al directorio /usr/src. Luego, lo descomprimimos y haremos los siguientes pasos. La instalacion de freeswan requiere la recompilacion del kernel. Por defecto, linux crea un archivo llamado .config, si no, creamos este archivito con el comando #make oldconfig 3- Configurando el nucleo para que soporte IPsec Nos dirigimos al directorio donde tenemos el freewan #cd /usr/src/freeswan-1.3 Aca tenemos varias opciones, y pondre la equivalencia de estas cuando configuramos el kernel ------------------------------------------------------------------------ FreeS/WAN compilation | Kernel configuration ------------------------------------------------------------------------ | make ogo | make config make menugo | make menuconfig make xgo | make xconfig make oldgo | make oldconfig ------------------------------------------------------------------------- Una vez aqui, lo que debemos hacer es un make xgo, para simular que estamos utilizando make xconfig, o tambien podriamos make menugo para configurar como si fuera el make menuconfig. Importante!!! Fijarse que la option IPsec support esta activada. Salvamos todos los cambios, y lo que nos queda es sentarnos y esperar tranquilamente un buen tiempo, por que lo que tarda es tremendo!!!. Nota: Si no tenes Idea de como compilar el nucleo, te recomendaria que primero aprendas a compilar este. Creando una nueva entrada en /etc/lilo.conf: Como cuando compilamos el nucleo, y tenemos mas de una imagen, tenemos que crear una nueva entrada, esta no es la excepcion. Tendriamos que copiar /vmlinuz a /boot/vmlinuz-ipsec #cp /vmlinuz /boot/vmlinuz-ipsec y luego editar el /etc/lilo.conf, agregando la siguiente entrada. image = /boot/vmlinuz-ipsec label = ipsec root = /dev/hda1 vga = 274 read-only append = "debug=2 noapic nosmp" Luego, escribimos #lilo para que la configuracion tenga efecto cuando iniciemos la maquina. 4- Configurando el archivo /etc/ipsec.conf Este es el archivo de configuracion fundamental de vpn's. Este archivo es el que se pondra en ambos servidores, y sera igual para ambas partes. Tiene varias secciones, las cuales vamos a ver en detalle ipsec.conf, global options Aca, tenemos varias opciones para definir, como ser: interfaces: Se define la interface a utilizar para la VPN. Lo mas comun es usar "%defaultroute" forwardcontrol= Habilita o desabilita el control de IPsec de forwardeo. (en las vpns que vi, esto no se usaba). klipsdebug = Mucha informacion reportada del kernel, en cuestiones de Seguridad. plutodebug = informacion reportada por el demonio keying. manualstart = levanta la conexion en forma automatica. plutoload = Nombre de las conexiones que van a ser cargadas en la base de datos "pluto" (!!juro que ese es el nombre :)), para cargar todas utilizamos "auto = add ". plutostart= nombre de las conexiones que van a ser negociadas al levantar. Veamos un ejemplo de todo esto. config setup interfaces=%defaultroute klipsdebug=none plutodebug=none plutoload=%search plutostart=%search Ahora viene la otra seccion, que es la seccion de conexiones. conn %default y tiene los siguientes parametros. keyingtries= El numero de veces que intentara de establecer la conexion antes de darla de baja. spi= Numero SPI para la conexion ( si alguien sabe que es esto, que por favor me avise !!! ). esp= Especifica el algoritmo de encripcion que va a ser usado. El mas usado es "3des-md5-96" espenckey= Clave de encriptacion para ser usada en la conexion espauthkey= Otra clave para ser usada en la conexion manual. Daremos otro ejemplo mas: conn %default keyingtries=0 spi=0x200 esp=3des-md5-96 espenckey=0x01234567_89abcdef_02468ace_13579bdf_12345 678_9abcdef0 espenckey=0x01234567_89abcdef_02468ace_13579bdf_12345 Y finalmente tenemos la seccion de conexiones conn sample left= la Ip del Server(Gateway). leftsubnet= Rango de Ip's de la red privada de la izquierda. leftnextthop = la IP del dispositivo de Red (del Router). right = Ip del server (Gateway) rightsubnet = Rango de Ip's de la red privada de la derecha rightnextthop = La ip del dispositivo de Red de la derecha ( del Router) auto = define como sera la conexion, los valores pueden ser "add","auto" o "ignore". Ejemplo conn bairesmardel left=201.202.203.10 leftsubnet=192.168.2.0/24 leftnextthop=201.202.203.1 rigth=101.102.103.10 rigthsubnet=192.168.4.0/24 rigthnextthop=101.102.103.1 auto=add Explicacion Lo anterior definio dos redes, una referenciada como izquierda y la otra como derecha. Cada es una punta de la VPN. Aqui, una punta es Buenos Aires, y la otra Mar del Plata. 5- Ultimos pasos: Nos queda crear los passwords de la conexion, que estos estan alojados en el archivo /etc/ipsec.secrets Aqui se guardara la clave publica entre las dos redes, y veremos un ejemplo claro de como seria esto 192.168.2.1 192.168.4.1 "abscdhytffhiytfmarxtbbr123" Es ovbio que entre los dos puntos de enlace de la VPN tiene que existir la misma clave(!!). 6- Levantando la conexion Para iniciar la conexion, lo que se debe hacer es lo siguiente: #ipsec manual --up bairesmardel Palabras Finales: Esta es una compilacion de la informacion que he encontrado por alli (en la red, libros etc, sobre VPN) la recomendacion seria que visiten http://www.freeswan.org, y el VPN HOWTO. Bueno, espero que les haya gustado, y si les parecio una autentica mierda, que me ayuden a mejorarlo. Espero que en este PAIS CAPITALISTA, todos puedan tener una buena na- vidad, aunque sabemos que en la alegria de unos pocos, se disimula el dolor de un pueblo explotado por la falsa etica capitalista, y las pe- lotudes que nos entretienen a diario ( Expedicion Robinson es una de ellas, por que acaso no muestran la vida en el Norte Argentino, donde la realidad puede superar a la ficticia Expedicion!). Mientras que los luchadores y la gente que pide mejoras en su trabajo es perseguida y despedida, los coimeros (como los de la UOCRA) y los asesinos ( Los represores como Massera ) se pasean libremente. Basta ya!. Feliz Navidad. QQm310. qqmelo@ciudad.com.ar *EOF*