17 abril 2013

Armado de una VPN con Linux (TP final Cisco)

La idea es crear una VPN (red privada virtual) entre 2 sucursales de una empresa, una ubicada en Buenos Aires y la otra en Mendoza. Ambas redes son Novell y la idea es utilizar 2 maquinas que trabajen de routers y enlazar ambas redes LAN mediante una VPN.
Para esto se decidio utilizar dos maquinas Linux (Distribucion Debian 3.1 o Debian Sarge) que haran el trabajo routers, enrutando los paquetes entre las dos redes Novell. Las maquinas Linux del tipo PC Intel 233Mhz con 64Mb de RAM, disco duro de 10Gb y dos placas de red 3com de 10/100 megabits.
El esquema seria el siguiente:
Esquema de la red utilizando servidores Linux
Una vez instalados los servidores Linux con soporte para IPX en sus nucleos, y conectados los cables al switch que esta en la red Novell, comenzaremos por instalar y configurar las interfaces de red del servidor.
Para configurar la interface conectada a la red novell, hemos utilizado un juego de herramientas para IPX desarrolladas por Greg Page. Mediante la herramienta ipx_interface, ha interface ha sido configurada de esta manera:
ipx_interface add eth0 etherII 0×32a10103
Donde:
add — se utiliza para agregar una interface
eth0 — Es el nombre del dispositivo de red que estamos agregando
etherII — este es el tipo de trama
0×32a10103 — esta es la direccion IPX a la que pertenece la interface
Luego pasamos a configurar la interface conectada al modem ADSL. Y le agregamos los parametros de la siguiente manera:
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
De esta forma ya tenemos configuradas ambas interfaces en uno de los servidores Linux.
NOTA: Lo mismo se hizo con el otro servidor, solo diferenciando algunos parametros necesarios como la direccion IP (la cual es 192.168.1.2) y la direccion IPX de la segunda red.
Con el paquete pppoeconf se configuro la conexion ADSL para dar salida hacia internet. Luego, registrando un subdominio en dyndns.org e instalando el programa ddclient (cliente dyndns.org presente en la distribucion linux elegida), se logro darles a las sucursales, una direccion fija localizable en internet, para futuros accesos VPN.
Las IPs de los servidores DNS se definieron en el archivo /etc/resolv.conf de la siguiente manera:
nameserver 127.0.0.1
nameserver 200.42.0.200
nameserver 200.42.0.201
Ahora pasaremos a configurar la VPN entre los servidores Linux y configurar un pequeño firewall que nos permita restringir accesos y proteger a los servidores.
Para crear el tunel VPN vamos a utilizar poptop, que es la implementacion para Linux del protocolo Hasefroch. Tambien usaremos MSCHAPv2 para la autenticacion cifrada de las conexiones, y MPPE para el cifrado de los datos en la conexion.
Instalamos el paquete pptpd en nuestro servidor, que es el demonio pptp que se quedara escuchando en el puerto tcp 1723 a la espera de conexiones entrantes, y lo configuramos de la siguiente manera:
El archivo /etc/pptpd.conf sera algo asi:
option /etc/ppp/pptpd-options
localip 192.168.1.1 # esta es la IP del servidor
remoteip 192.168.10-50 # rango de IPs que se asignaran a los usuarios que se conecten al servidor
En el archivo /etc/ppp/pptpd-options pondremos estas lineas:
nombre del servidor

name Baires
nombre del dominio
domain RedBaires
activamos la autenticacion
auth
ahora activamos la encriptacion en claves y datos
require-mschap
require-mppe-128
require-mppe-40
Y ahora solo nos queda agregar los pares user/pass en el archivo /etc/ppp/chap-secrets
usuario1 * pass1 *
usuario2 * pass2 *
usuario3 * pass3 *
usuario4 * pass4 *
usuario5 * pass5 *
NOTA: El significado de las 4 columnas es:
- La primera es el nombre de usuario
- La segunda es el nombre del servidor ( se asume que es el mismo que esta corriendo el demonio pptp, de ahi el asterisco)
- La tercera corresponde a clave de acceso de ese usuario
- La cuarta corresponde a la IP que tendra ese usuario al conectarse al servidor. Si se pone un asterisco, la IP sera asignada arbitrariamente del rango elegido en la opcion remoteip, del archivo /etc/ppp/pptpd-options.
Y para terminar, solo nos falta hacer que el servidor actue de firewall y limite el trafico entrante. Para esto instalamos el paquete iptables y creamos algunas reglas como estas:
Establecemos politicas de entrada, salida y reenvio en DROP para descartar los paquetes que no cumplan con las reglas de acceso:
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
Agregamos reglas de entrada:
/sbin/iptables -A INPUT -p tcp –dport 1723 -j ACCEPT # aceptamos conexiones tcp entrantes al puerto 1723 del servidor
/sbin/iptables -A INPUT -p 47 -j ACCEPT # aceptamos conexiones tcp y/o udp entrantes al puerto 47 del servidor
Agregamos reglas de salida:
/sbin/iptables -A OUTPUT -p tcp –sport 1723 -j ACCEPT # aceptamos conexiones tcp salientes (o sea, respuestas) desde el puerto 1723 del servidor
/sbin/iptables -A OUTPUT -p 47 -j ACCEPT # aceptamos conexiones tcp/udp salientes desde el puerto 47 del servidor

Tomado de: http://inconnection.com.ar/blog/?page_id=45

No hay comentarios: