Accesorios: Mquinas Virtuales: Linux Maquina Qemu: Vyatta GNS3: Simulador de Redes
CTEDRA O MATERIA RELACIONADA REVISIN N: 1
EDICIN: 1 SEGURIDAD DE REDES DOCENTE: BYRON CARRIN RAMREZ NMERO DE ESTUDIANTES POR EQUIPO O PRCTICA: 2 o 3 DEPENDE DEL # TOTAL Fecha:
TEMA IMPLEMENTACION TUNNEL IPsec CON ROUTER VYATTA LINUX USANDO CERTIFICADOS X509
Objetivo Principal: Implementar un tnel seguro IPsec utilizando los certificados digitales como medio para lograr esto. Objetivos Especficos: Crear un CA propio Firmar las solicitudes de firma de certificado emitidos por cada Router Vyatta con el CA implementado.
MARCO TEORICO Asegurar la comunicacin quiere decir que todo va a ir cifrado, es decir nadie va a poder ver la informacin que se intercambian entre el emisor y el receptor. Una VPN lo que hace es comunicar dos puntos de una red privada pero usando internet como medio de comunicacin. Vyatta soporta dos tipos de VPN: Site to Site: esta VPN permite conectar dos o ms sitios separados por una red, para que parezca que estn en una nica red privada.
Remote Acces: esta VPN permite establecer un tnel en medio de un usuario remoto y un servidor VPN. Lo que hace esto, es permitir el acceso de un usuario remoto a la red de la compaa, pero hacindolo desde el hogar.
El uso de certificados x509, nos nsita a pensar en una infraestructura de llave pblica (PKI) teniendo en cuenta a la Autoridad Certificadora (CA). As se presentan los siguientes puntos a tomar en cuenta si se usan certificados para asegurar el canal de comunicacin de una VPN: Generacin de Certificados Los certificados debern ser generados por CA reconocido, esto se puede dar de tres maneras, ya sea comprando certificados de un ente comercial, como lo es VeriSign (comercial), usando un dispositivo PKI que ser el que genere los certificados (hardware), o usando una herramienta open- source especializado para eso como lo es OpenSSL(software). Distribucin segura Certificados Firmados Como hacer para pasar esos certificados firmados a los que sern usuarios de la VPN, sin que los dems lo sepan, esto implicara pasar los certificados manualmente usando una flash para pasarlo de dispositivo a dispositivo. PRESENTACION DEL CASO
FIG. 1ESQUEMA DE RED PARA LA IMPLEMENTACIN DEL TUNNEL IPSEC En el esquema de la figura 1 se presenta lo siguiente Elemento VBOX Versin Funcin IP mask CA-DNS Xubuntu 14.04 Autoridad Certificadora e1=192.168.1.3 e2=192.168.2.3 24 24 SMTP1 Xubuntu 14.04 Emular Red Interna 1 e1=192.168.1.2 24 SMTP2 Xubuntu 14.04 Emular Red Interna 2 e1=192.168.2.2 24 ISP IOS cisco 7200 ISP Emula ser la red Internet Fa0/0=200.0.1.1 Fa0/1=200.0.2.1 30 30 Router - Vyatta 4 Qemu Vyatta 6.3 Router 1 e0=200.0.1.2 e1=192.168.1.1 30 24 Router Vyatta 5 Qemu Vyatta 6.3 Router 2 e1=200.0.2.2 e0=192.168.2.1 30 24 TABLA 1 TABLA DE ESPECIFICACIONES DE RED ANALISIS DEL CASO Los enrutadores quieren establecer comunicacin segura o cifrada entre dos puntos de red privados de la empresa, pero que usan a internet como intermediario entre sus comunicaciones, como internet no es seguro, se usara la implementacin de IPsec usando enrutadores Vyatta para el ejemplo. Para esto primero se seguirn los siguientes pasos lgicos: Verificar conectividad entres las subredes de la empresa usando enrutamiento esttico (en ambiente real se puede usar protocolos de enrutamiento dinamico). Generar llaves privadas y solicitudes de firma de certificado para que el CA los firme. Implementa una Autoridad Certificadora usando el software OpenSSL Hacer que el CA firme los *.csr emitidos por los enrutadores. En ambos enrutadores o Configurar IKEgroup que permite predefinir un conjunto de uno o ms propsitos a ser usados dentro de la fase 1 de la negociacin IKE. o Configurar ESPgroup que es un protocolo de autenticacin, que provee autentificacin para paquetes IP y tambin los cifra. o Configurar la VPN site-to-site Estableciendo la IP del compaero el cual esta conectado a la otra subred Establecer el mtodo de autenticacin en este caso Certificados x509. Especificar el IKEgroup antes definido Especificar el ESPgroup antes definido Especificar la IP local que la IP de la interfaz WAN. Especificar la subred local para el tnel IPsec. Especificar la subred remota para el tnel IPsec. Despus en las maquinas que forman parte de las subredes, probar que la ruta de comunicacin ya no pasa por el router que emula internet sino que va directamente entre enrutadores Vyatta. PRESENTACION DE LA SOLUCION
Verificar la conectividad Este proceso es bsico y ya est especificado en la tabla 1, mostrada encima sin embargo se mostrara las configuraciones ya establecidas en cada dispositivo. Router ISP CISCO 7200 Se muestra de rojo las rutas estticas a las subredes internas privadas a las cuales se les implementara el tnel IPsec.
ISP#show ip int brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 200.0.1.1 YES NVRAM up up FastEthernet0/1 200.0.2.1 YES NVRAM up up ISP#sh ip route 200.0.1.0/30 is subnetted, 1 subnets C 200.0.1.0 is directly connected, FastEthernet0/0 200.0.2.0/30 is subnetted, 1 subnets C 200.0.2.0 is directly connected, FastEthernet0/1 S 192.168.1.0/24 [1/0] via 200.0.1.2 S 192.168.2.0/24 [1/0] via 200.0.2.2 Router Vyattta6-3vc_4 Se seala de rojo la ruta esttica que servir para el tnel IPsec
Router Vyattta6-3vc_5 Se seala de rojo la ruta esttica que servir para el tnel IPsec
Generacin de las *.key y de los *.csr en los enrutadores Vyatta En este parte los mismos enrutadores Vyatta fcilmente crean dos pares que son la llave privada del servidor y su respectiva solicitud de firma de certificado. Cabe recalcar que esto tambin se lo puede hacer desde el mismo CA pero tambin es interesante usar herramientas ya implementadas en el router Vyatta.
vyatta@R1# run show ip route C>* 127.0.0.0/8 is directly connected, lo S>* 192.168.2.0/24 [1/0] via 200.0.2.2 (recursive via 200.0.1.1) C>* 192.168.1.0/24 is directly connected, eth1 C>* 200.0.1.0/30 is directly connected, eth0 S>* 200.0.2.0/30 [1/0] via 200.0.1.1, eth0 vyatta@R1# run show interfaces Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- eth0 200.0.1.2/30 u/u IF-WAN-EXT eth1 192.168.1.1/24 u/u IF-LAN-INT
vyatta@R2# run show ip route C>* 127.0.0.0/8 is directly connected, lo S>* 192.168.1.0/24 [1/0] via 200.0.1.2 (recursive via 200.0.2.1) C>* 192.168.2.0/24 is directly connected, eth0 S>* 200.0.1.0/30 [1/0] via 200.0.2.1, eth1 C>* 200.0.2.0/30 is directly connected, eth1 vyatta@R2# run show interfaces ethernet Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- eth0 192.168.2.1/24 u/u IF-LAN-interna eth1 200.0.2.2/30 u/u IF-WAN-EX Router Vyattta6-3vc_4 Primero hay que salir del modo configuracin # para ir al modo operacional $ en Vyatta. Luego generar el par llave y solicitud de firma de certificado En el proceso de llenar la solicitud de firma se debe especificar la IP IF-WAN-EXT <x.x.x.x>en el campo CNAME, de otro modo si se hubiera utilizado un servidor DNS, se especificara el nombre de dominio con el que se haya registrado en el servidor DNS ejemplo: <router1.dominio.com> y en el campo de challenge pasword optional poner un pasword de su preferencia, en esta prctica se us r1.
vyatta@R1# exit vyatta@R1:~$ generate vpn x509 key-pair R1-1 Generating a 1024 bit RSA private key .................++++++ .............++++++ writing new private key to '/config/auth/R1-1.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a D There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:EC State Name []:Azuay Locality Name (eg, city) []:Cuenca Organization Name (eg, company) []:RR1 Organizational Unit Name (eg, department) []:URR1 Common Name (eg, Device hostname) []:200.0.1.2 Email Address []:dir@redes1.com
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password (optional) []:r1 string is too short, it needs to be at least 4 bytes long A challenge password (optional) []: Router Vyattta6-3vc_5 Primero hay que salir del modo configuracin # para ir al modo operacional $ en Vyatta. Luego generar el par llave y solicitud de firma de certificado En el proceso de llenar la solicitud de firma se debe especificar la IP IF-WAN-EXT <200.0.2.2>en el campo CNAME, de otro modo si se hubiera utilizado un servidor DNS, se especificara el nombre de dominio con el que se haya registrado en el servidor DNS ejemplo: <router2.dominio.com> y en el campo de challenge pasword optional poner un pasword de su preferencia, en esta prctica se us r2.
vyatta@R1# exit vyatta@R1:~$ generate vpn x509 key-pair R2-2 Generating a 1024 bit RSA private key .................++++++ .............++++++ writing new private key to '/config/auth/R2-2.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a D There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []:EC State Name []:Azuay Locality Name (eg, city) []:Cuenca Organization Name (eg, company) []:RR2 Organizational Unit Name (eg, department) []:URR2 Common Name (eg, Device hostname) []:200.0.2.2 Email Address []:dir@redes2.com
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password (optional) []:r2 string is too short, it needs to be at least 4 bytes long A challenge password (optional) []: Distribucin de las Solicitudes de Firma al CA
Router Vyattta6-3vc_4 Luego de generadas las claves has que pasrselas al CA para que nos d firmando, para esto deberemos seguir los siguientes pasos: Habilitar ssh en el router Vyatta
Instalar en el CA ssh-server y ssh-client si no los tiene. Enviar el archivo al CA que est conectado usando el comando scp cuya sintaxis es: o scp <pathorigen/archivo-a-enviar.*> <user-destino>@<IP-destino>:/path-destino/
Router Vyattta6-3vc_5 Luego de generadas las claves has que pasrselas al CA para que nos d firmando, para esto deberemos seguir los siguientes pasos: Habilitar ssh en el router Vyatta
Instalar en el CA ssh-server y ssh-client si no los tiene. Enviar el archivo al CA que est conectado usando el comando scp cuya sintaxis es: o scp <pathorigen/archivo-a-enviar.*> <user-destino>@<IP-destino>:/path-destino/
Hacer que el CA firme los certificados
CA-DNS Luego de que ahora ya tenemos las solicitudes de certificados entonces el CA los firmara vyatta@R1:~$ configure vyatta@R1# set service ssh vyatta@R1# set service ssh allow-root vyatta@R1# commit vyatta@R1# save
Para esto habr que aclarar que ya se especific e implemento un CA similar basado en la implementacin que en este sitio web http://www.g-loaded.eu/2005/11/10/be-your-own-ca/ se muestra, para esta prctica solo se muestra el proceso de firmado de los certificados. A continuacin se firmara la solicitud del servidor R1 generando un certificado firmado llamado
A continuacin se firmara la solicitud del servidor R2 generando un certificado firmado llamado
Distribucin de los certificados firmados a los enrutadores Vyatta CA-DNS Ahora que ya se tiene los certificados firmados hay que envirselos a los respectivos enrutadores Vyatta. Como por lo general se enva A continuacin se enviara el certificado firmado para R1.
A continuacin se enviara el certificado firmado para R2.
Configuracin IPsec site-to-site en los enrutadores Vyatta Para este paso se mostrara la configuracin ya establecida en los enrutadores, no su implementacin paso a paso, porque se piensa que en este recurso web esta mejor especificado la configuracin http://docs.huihoo.com/vyatta/6.3/Vyatta_VPN_R6.3_v01.pdf
Bien para saber si est funcionando el tnel IPsec, mostraremos los pasos en cada router y tambin la verificacin en los clientes de las subredes. Router Vyattta6-3vc_4 Hay que salir del modo configuracin y teclear el siguiente comando que nos mostrara si est o no funcionando, en la ventana siguiente se muestra que el tnel IPsec si esta levantado. Se muestra de color rojo el estado del tnel
Router Vyattta6-3vc_5 Hay que salir del modo configuracin y teclear el siguiente comando que nos mostrara si est o no funcionando, en la ventana siguiente se muestra que el tnel IPsec si esta levantado. Se muestra de color rojo el estado del tnel
Luego se muestra la comprobacin de la ruta que siguen los paquetes IP entre las subredes, en este caso el resultado mostrara que no son ms de tres saltos antes de llegar al destino.
vyatta@R1# exit exit vyatta@R1:~$ show vpn ipsec sa Peer ID / IP Local ID / IP ------------ ------------- 200.0.2.2 200.0.1.2
Tunnel State Bytes Out/In Encrypt Hash NAT-T A-Time L-Time Proto ------ ----- ------------- ------- ---- ----- ------ ------ ----- 1 up 0.0/0.0 aes256 sha1 no 3071 3600 all
vyatta@R1:~$ vyatta@R2# exit Warning: configuration changes have not been saved. exit vyatta@R2:~$ show vpn ipsec sa Peer ID / IP Local ID / IP ------------ ------------- 200.0.1.2 200.0.2.2
Tunnel State Bytes Out/In Encrypt Hash NAT-T A-Time L-Time Proto ------ ----- ------------- ------- ---- ----- ------ ------ ----- 1 up 0.0/0.0 aes256 sha1 no 1871 3600 all
SMTP1 Ahora hay que ubicarnos en los clientes de las subredes respectivas y verificar que el nmero de saltos para alcanzar al otro no tome en cuenta al ISP
SMTP2 Ahora hay que ubicarnos en los clientes de las subredes respectivas y verificar que el nmero de saltos para alcanzar al otro no tome en cuenta al ISPHabilitar ssh en el router Vyatta
04:17 serverxu@VBSMTP01:~ $ traceroute 192.168.2.2 traceroute to 192.168.2.2 (192.168.2.2), 30 hops max, 60 byte packets 1 192.168.1.1 (192.168.1.1) 3.350 ms 3.305 ms 3.434 ms 2 200.0.2.2 (200.0.2.2) 22.701 ms 32.745 ms 42.687 ms 3 192.168.2.2 (192.168.2.2) 52.828 ms 64.403 ms 75.383 ms
04:17 serverxu@VBSMTP-2:~ =>$traceroute 192.168.1.2 traceroute to 192.168.1.2 (192.168.1.2), 30 hops max, 60 byte packets 1 192.168.2.1 (192.168.2.1) 1.574 ms 1.521 ms 1.792 ms 2 200.0.1.2 (200.0.1.2) 21.363 ms 30.955 ms 38.990 ms 3 192.168.1.2 (192.168.1.2) 50.084 ms 58.147 ms 69.431 ms
CONCLUSIONES
Establecer los tneles IPsec representa un trabajito duro, ya que se tienes que pasar los certificados firmados y crear el CA, pero cuando ya se tiene esta infraestructura implementada es ms fcil.
Cuando se especifica el CommonName al crear las solicitudes de firma no hay que olvidarse que se tiene que poner la IP externa de los routers es decir la IP perteneciente a las interfaces que salen al internet, de otro modo si se tuviese un servidor DNS implementado tambin se mostrara la funcionalidad de que en el Common Name se debe especificar el nombre con el que se haya registrado a ese dispositivo que hay que recordar que en este caso fueron routers pero en otros pueden ser host y routers, para el caso de Acces Remote y se volvera engorroso usar las IPs siempre, ms molesto seria en el caso de usar DHCP.
BIBLIOGRAFIA
[1] V. Inc, docs.huihoo.com, [En lnea]. Available: http://docs.huihoo.com/vyatta/6.3/Vyatta_VPN_R6.3_v01.pdf. [2] G. Notaras, www.g-loaded.eu, [En lnea]. Available: http://www.g-loaded.eu/2005/11/10/be-your- own-ca/.