Introducción a las VPN
Una VPN (Virtual Private Network) es una tecnología que permite extender de forma segura una red privada sobre otra pública como Internet.
Comunmente las VPN se usan para trabajar en la red de una empresa sin estar
físicamente en ella. Una vez conectados al servidor VPN de la empresa,
nuestro ordenador pasará a formar parte de la red de la empresa,
accediendo a los servidores y recursos disponibles en la misma.
El mecanismo se describe el siguiente diagrama:
Una VPN debe garantizar dos cuestiones fundamentales:
- Autenticación de usuario. Cuando conectamos al servidor de VPN deberemos identificarnos con un certificado o un usuario/contraseña. De este modo se restringe el acceso a personas no autorizadas.
- Cifrado de datos. Dado que la conexión a una VPN implica la circulación de datos por redes "públicas", si queremos garantizar la confidencialidad de los mismos deberemos cifrarlos. El cifrado se realiza con algoritmos de clave simétrica (DES o 3DES) cuyas claves han sido intercambiadas previamente mediante el típico handshaking SSL.
Hay varios tipos de VPN:
- VPN punto a punto. Muy poco usada en la actualidad. Esta modalidad implica la conexión al servidor de VPN mediante líneas de datos dedicadas: modem, RDSI, etc.
- Tunneling. Es el tipo de VPN más frecuente hoy en día. El servidor VPN de la empresa es visible en Internet y conectamos al mismo a través de nuestro ISP (proveedor de acceso a internet). La conexión está cifrada para evitar "escuchas" no deseadas. El protocolo de red usado en la empresa (por ejemplo IPX) queda encapsulado y cifrado dentro del protocolo que usamos para transmitir/recibir datos en Internet (por ejemplo TCP/IP).
Hoy en día las VPN se usan también en escenarios distintos del escenario para el que fueron ideadas (conexión remota a la red local de la empresa). Algunos de estos escenarios son:
- Aislar dentro de la LAN (red de area local) de una empresa una subred con información sensible. Por ejemplo podríamos tener todos los servidores y ordenadores del departamento de investigación y desarrollo en una VPN montada sobre la propia LAN para evitar escuchas de los paquetes por parte de empleados desleales, la información de la VPN se mueve por la LAN, pero cifrada.
- Navegación anónima en Internet. Navegar por Internet con nuestra propia dirección IP y sin encriptar acarrea deficiencias de seguridad: se dejan muchos rastros de nuestras actividades en todo tipo de servidores, hay portales como Netflix que sólo son visibles desde determinadas zonas geográficas (EEUU), las empresas colocan proxies que limitan el acceso a determinados servicios (youtube, facebook, irc, descargas, etc), etc.
Hay muchos proveedores de VPN en Internet que permiten una navegación segura y anónima. Muchos son de pago y haya algunos gratuítos. Ojo con estos últimos, no adelantamos mucho navegando en modo cifrado si el servidor VPN no es confiable, Yo nunca realizaría una transacción bancaria o un pago con tarjeta a través de un servidor de este tipo.
La utilización de una conexión VPN gratuíta o de pago nos permite:
- Que nuestros paquetes de datos estén cifrados, por lo que nadie conoce qué estamos realizando.
- Podemos conectar a un servidor VPN de la zona geográfica que nos interese (por ejemplo EEUU), con lo que accederíamos a portales como Netflix.
- Si el proxy de la empresa no nos deja acceder a YouTube, podemos conectar a un servidor VPN y acceder con la IP de la red virtual a YouTube. El proxy de la empresa no puede ver los datos de nuestros paquetes, dado que van cifrados, por lo que no puede restringirnos el acceso.
Protocolos VPN
El protocolo estándar de facto es el IPSEC, pero también están PPTP, L2F, L2TP, SSL/TLS, SSH, etc.
Los distintos protocolos VPN tienen puntos fuertes y puntos débiles. Vamos a comparar las tres más comunes:
- PPTP. PPTP (Protocolo de Túnel Punto a Punto) es un buen protocolo VPN ligero que ofrece una seguridad básica en línea y velocidades rápidas. PPTP está integrado en una gran variedad de equipos de sobremesa y dispositivos móviles y cuenta con encriptación de 128 bits. PPTP es una buena elección si OpenVPN no está disponible en su dispositivo y la velocidad es la máxima prioridad.
- IPSEC. L2TP (Protocolo de tunelización de Capa 2) con IPsec (Seguridad de IP) es un protocolo integrado muy seguro para una amplia variedad de dispositivos de escritorio y móviles. L2TP/IPsec ofrece un encriptado de 256-bits, pero la seguridad extra de sobrecarga requiere más uso del CPU que PPTP. L2TP/IPsec es una elección excelente si OpenVPN no está disponible en su dispositivo, pero usted quiere más seguridad que PPTP.
- OpenVPN(SSL). OpenVPN es el protocolo VPN premier diseñado para redes de banda ancha modernas, pero no es compatible con los dispositivos móviles y tablets. OpenVPN ofrece un encripado de 256-bits y es extremadamente estable y rápido en las redes con largas distancias y alto tiempo de espera. Provee mayor seguridad que PPTP y requere menor uso de CPU que L2TP/IPsec. OpenVPN es el protocolo recomendado para escritorios incluyendo Windows, Mac OS X, y Linux.
Lo habitual es utilizar software tanto en el servidor como en los clientes VPN, pero también se puede montar la VPN mediante hardware, lo que da una mayor velocidad a las comunicaciones, pero es mucho mas caro y ofrece menos versatilidad.
Conectar a un servidor VPN desde Ubuntu 12.04
Instalación del software cliente
Vamos a ver ahora como conectar a un servidor VPN con Ubuntu 12.04. Lo primero será instalar el software cliente. En Ubuntu 12.04 viene preinstalado con un cliente para el protocolo PPTP, vamos a instalar también un cliente para el protocolo SSL (Openvpn). Para ello ejecutaremos en la consola el comando:
sudo apt-get install network-manager-pptp
sudo apt-get install network-manager-openvpn
Por último reiniciamos el equipo
Configurar una conexión VPN a un servidor VPN de tipo PPTP
Vamos a conectar con una red VPN-PPTP gratuíta (http://www.vpnbook.com/) (ojo con la fiabilidad de estos servicios gratuítos). Los pasos a dar son:
- Abrimos el panel de configuración de la red, haciendo clic con el botón derecho del ratón en el icono de red de la esquina superior derecha de la pantalla y seleccionando la opción "Configuración de la red".
- Bajo la lista de conexiones de red, pulsamos el botón "+" para añadir la interfaz VPN y pulsamos crear.
- Elegimos ahora una conexión de tipo PPTP y pulsamos crear.
- En la pantalla de configuración introducimos los datos proporcionados por el servidor VPN:
Pasarela: euro1.vpnbook.com
Usuario: vpnbook
Contraseña: adv7ebeh
Opciones avanzadas. Activamos la opción usar cifrado MPPE
Pulsamos el botón Guardar y listo.
Ya sólo queda activar la conexión VPN PPTP gratuíta y navegar un poco. Ojo donde nos metemos con estas conexiones, sólo hay que probar la velocidad de conexión con portales como http://www.speedtest.com para ver que el servidor VPN está en Rumanía.
Configurar una conexión VPN a un servidor VPN de tipo OpenVPN(SSL)
Vamos a conectar con una red VPN-OpenVPN gratuíta, para este ejemplo hemos elegido vpnbook (http://www.vpnbook.com/). Ojo con la fiabilidad de estos servicios gratuítos.
Para conectar a una VPN con SSL, usando por elemplo la implementación OpenVPN necesitaríamos:
Certificado cliente. El servidor tiene las claves públicas de los clientes autorizados.
Certificado del servidor. El cliente tiene la clave pública del servidor al que se conecta.
En este ejemplo, no hacemos llegar la clave pública de nuestro certificado (FNMT, DNIe, etc), a vpnbook.com, dado que es un servidor gratuíto. Ellos ofrecen un kit de conexión que incluye la clave pública de un cliente de prueba.
Los pasos a dar son:
- Descargaremos los certificados del servidor de la URL: http://www.vpnbook.com/free-openvpn-account/VPNBook.com-OpenVPN-Euro1.zip
- Descomprimimos el zip descargado en algún directorio. Hay varios ficheros de configuración (*.ovpn). Vamos a trabajar con "vpnbook-euro1-tcp80.ovpn", elegimos este fichero porque usará el puerto 80, abierto en la mayoría de routers y usará TCP, protocolo no restringido por los ISP (proveedores de Internet). Dentro de este fichero (pnbook-euro1-tcp80.ovpn) tenemos los datos de conexión y las claves públicas/privadas que necesitaremos para conectar. Abrimos este fichero con gedit y sacamos tres ficheros:
Fichero cert.pem: Tendrá las líneas comprendidas entre <cert> y </cert>
-----BEGIN CERTIFICATE-----
MIID6DCCA1GgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMCQ0gx
DzANBgNVBAgTBlp1cmljaDEPMA0GA1UEBxMGWnVyaWNoMRQwEgYDVQQKEwt2cG5i
b29rLmNvbTELMAkGA1UECxMCSVQxFDASBgNVBAMTC3ZwbmJvb2suY29tMRQwEgYD
VQQpEwt2cG5ib29rLmNvbTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AdnBuYm9vay5j
b20wHhcNMTMwNTA2MDMyMTIxWhcNMjMwNTA0MDMyMTIxWjB4MQswCQYDVQQGEwJD
SDEPMA0GA1UECBMGWnVyaWNoMQ8wDQYDVQQHEwZadXJpY2gxFDASBgNVBAoTC3Zw
bmJvb2suY29tMQ8wDQYDVQQDEwZjbGllbnQxIDAeBgkqhkiG9w0BCQEWEWFkbWlu
QHZwbmJvb2suY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkTM/8E+JH
CjskqMIwgYDrNCBTWZLa+qKkJjZ/rliJomTfVYwKwv1AHYYU6RHpCxS1qFp3BEKL
vQlASuzycSv1FGnNiLmg94fqzzWdmjs1XWosnLqbOwxx2Ye/1WoakSHia0pItoZk
xK7/fllm42+Qujri/ERGga5Cb/TfiP6pUQIDAQABo4IBVzCCAVMwCQYDVR0TBAIw
ADAtBglghkgBhvhCAQ0EIBYeRWFzeS1SU0EgR2VuZXJhdGVkIENlcnRpZmljYXRl
MB0GA1UdDgQWBBTDr4BCNSdOEh+Lx6+4RRK11x8XcDCB1QYDVR0jBIHNMIHKgBRZ
4KGhnll1W+K/KJVFl/C2+KM+JqGBpqSBozCBoDELMAkGA1UEBhMCQ0gxDzANBgNV
BAgTBlp1cmljaDEPMA0GA1UEBxMGWnVyaWNoMRQwEgYDVQQKEwt2cG5ib29rLmNv
bTELMAkGA1UECxMCSVQxFDASBgNVBAMTC3ZwbmJvb2suY29tMRQwEgYDVQQpEwt2
cG5ib29rLmNvbTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AdnBuYm9vay5jb22CCQCk
baY7CL3pNTATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZI
hvcNAQEFBQADgYEAoDgD8mpVPnHUh7RhQziwhp8APC8K3jToZ0Dv4MYXQnzyXziH
QbewJZABCcOKYS0VRB/6zYX/9dIBogA/ieLgLrXESIeOp1SfP3xt+gGXSiJaohyA
/NLsTi/Am8OP211IFLyDLvPqZuqlh/+/GOLcMCeCrMj4RYxWstNxtguGQFc=
-----END CERTIFICATE-----
Fichero ca.pem: Tendrá las líneas comprendidas entre <ca> y </ca>
-----BEGIN CERTIFICATE-----
MIIDyzCCAzSgAwIBAgIJAKRtpjsIvek1MA0GCSqGSIb3DQEBBQUAMIGgMQswCQYD
VQQGEwJDSDEPMA0GA1UECBMGWnVyaWNoMQ8wDQYDVQQHEwZadXJpY2gxFDASBgNV
BAoTC3ZwbmJvb2suY29tMQswCQYDVQQLEwJJVDEUMBIGA1UEAxMLdnBuYm9vay5j
b20xFDASBgNVBCkTC3ZwbmJvb2suY29tMSAwHgYJKoZIhvcNAQkBFhFhZG1pbkB2
cG5ib29rLmNvbTAeFw0xMzA0MjQwNDA3NDhaFw0yMzA0MjIwNDA3NDhaMIGgMQsw
CQYDVQQGEwJDSDEPMA0GA1UECBMGWnVyaWNoMQ8wDQYDVQQHEwZadXJpY2gxFDAS
BgNVBAoTC3ZwbmJvb2suY29tMQswCQYDVQQLEwJJVDEUMBIGA1UEAxMLdnBuYm9v
ay5jb20xFDASBgNVBCkTC3ZwbmJvb2suY29tMSAwHgYJKoZIhvcNAQkBFhFhZG1p
bkB2cG5ib29rLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyNwZEYs6
WN+j1zXYLEwiQMShc1mHmY9f9cx18hF/rENG+TBgaS5RVx9zU+7a9X1P3r2OyLXi
WzqvEMmZIEhij8MtCxbZGEEUHktkbZqLAryIo8ubUigqke25+QyVLDIBuqIXjpw3
hJQMXIgMic1u7TGsvgEUahU/5qbLIGPNDlUCAwEAAaOCAQkwggEFMB0GA1UdDgQW
BBRZ4KGhnll1W+K/KJVFl/C2+KM+JjCB1QYDVR0jBIHNMIHKgBRZ4KGhnll1W+K/
KJVFl/C2+KM+JqGBpqSBozCBoDELMAkGA1UEBhMCQ0gxDzANBgNVBAgTBlp1cmlj
aDEPMA0GA1UEBxMGWnVyaWNoMRQwEgYDVQQKEwt2cG5ib29rLmNvbTELMAkGA1UE
CxMCSVQxFDASBgNVBAMTC3ZwbmJvb2suY29tMRQwEgYDVQQpEwt2cG5ib29rLmNv
bTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AdnBuYm9vay5jb22CCQCkbaY7CL3pNTAM
BgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAKaoCEWk2pitKjbhChjl1rLj
6FwAZ74bcX/YwXM4X4st6k2+Fgve3xzwUWTXinBIyz/WDapQmX8DHk1N3Y5FuRkv
wOgathAN44PrxLAI8kkxkngxby1xrG7LtMmpATxY7fYLOQ9yHge7RRZKDieJcX3j
+ogTneOl2w6P0xP6lyI6
-----END CERTIFICATE-----
Fichero key.pem: Tendrá las líneas comprendidas entre <key> y </key>
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCkTM/8E+JHCjskqMIwgYDrNCBTWZLa+qKkJjZ/rliJomTfVYwK
wv1AHYYU6RHpCxS1qFp3BEKLvQlASuzycSv1FGnNiLmg94fqzzWdmjs1XWosnLqb
Owxx2Ye/1WoakSHia0pItoZkxK7/fllm42+Qujri/ERGga5Cb/TfiP6pUQIDAQAB
AoGANX508WQf9nVUUFlJ8LUZnnr4U2sEr5uPPNbcQ7ImTZm8MiMOV6qo/ikesMw5
8qCS+5p26e1PJWRFENPUVhOW9c07z+nRMyHBQzFnNAFD7TiayjNk1gz1oIXarceR
edNGFDdWCwXh+nJJ6whbQn9ioyTg9aqScrcATmHQxTit0GECQQDR5FmwC7g0eGwZ
VHgSc/bZzo0q3VjNGakrA2zSXWUWrE0ybBm2wJNBYKAeskzWxoc6/gJa8mKEU+Vv
ugGb+J/tAkEAyGSEmWROUf4WX5DLl6nkjShdyv4LAQpByhiwLjmiZL7F4/irY4fo
ct2Ii5uMzwERRvHjJ7yzJJic8gkEca2adQJABxjZj4JV8DBCN3kLtlQFfMfnLhPd
9NFxTusGuvY9fM7GrXXKSMuqLwO9ZkxRHNIJsIz2N20Kt76+e1CmzUdS4QJAVvbQ
WKUgHBMRcI2s3PecuOmQspxG+D+UR3kpVBYs9F2aEZIEBuCfLuIW9Mcfd2I2NjyY
4NDSSYp1adAh/pdhVQJBANDrlnodYDu6A+a4YO9otjd+296/T8JpePI/KNxk7N0A
gm7SAhk379I6hr5NXdBbvTedlb1ULrhWV8lpwZ9HW2k=
-----END RSA PRIVATE KEY-----
- Abrimos el panel de configuración de la red, haciendo clic con el botón derecho del ratón en el icono de red de la esquina superior derecha de la pantalla y seleccionando la opción "Configuración de la red".
- Bajo la lista de conexiones de red, pulsamos el botón "+" para añadir la interfaz VPN y pulsamos crear.
- Elegimos ahora una conexión de tipo PPTP y pulsamos crear.
- En la pantalla de configuración introducimos los datos proporcionados por el servidor VPN:
Pasarela: euro1.vpnbook.com
Autenticación Tipo: Contraseña concertificado TLS
Usuario: vpnbook
Contraseña: adv7ebeh
Certificado usuario: Seleccionamos el fichero cert.pem
Certificado ca: Seleccionamos el fichero ca.pem
Clave privada: Seleccionamos el fichero key.pem
Opciones avanzadas. Ajustaremos:
Puerto 80
Compresion LZO
Conexion TCP
Seguridad AES-128-CBC
Pulsamos el botón Guardar y listo.
Ya sólo queda activar la conexión VPN OpenVPN(SSL) gratuíta y navegar un poco. Ojo donde nos metemos con estas conexiones, sólo hay que probar la velocidad de conexión con portales como http://www.speedtest.com para ver que el servidor VPN está en Rumanía.
Referencias
http://geekland.hol.es/conectarse-a-un-servidor-vpn-gratis/
http://es.giganews.com/vyprvpn/compare-vpn-protocols.html
http://es.wikipedia.org/wiki/Red_privada_virtual
No hay comentarios:
Publicar un comentario