Ir al contenido principal

Instalación de OpenVPN en Raspberry Pi


Una de las principales razones por la que me compré una Raspberry Pi era el poder tener una VPN (Red Virtual Privada), sale mas barata y productiva que comprar un router neutro.

Introducción

A grandes rasgos, cuando nos conectamos a un servidor VPN, todo el trafico de datos que se genera entre nosotros y el servidor VPN irá encriptado a través de un túnel, da igual que estemos conectados dentro de nuestra casa que desde una red publica, todos los datos irán encriptados.
Por ejemplo, si queremos consultar nuestro correo electrónico o acceder a nuestra red social favorita desde nuestro dispositivo ( teléfono, ordenador, tablet, etc. ) primero se conectará hasta el servidor VPN, que como he dicho antes se hará de una forma enccriptada, y el servidor VPN será el que nos dé el acceso a Internet, ya si encriptar, y nos devolvera la información solicitada otra vez a través del túnel encriptado.

Posibles usos

Te puedes preguntar “Vale ¿ y para que quiero yo esto?”, pues muy fácil, imagínate que estàs en el hotel disfrutando de tus vacaciones y el hotel tiene un red wifi publica, la cual quieres usar, pero claro, como vas a consultar tu correo o red social en una red publica, puede haber alguien husmeando el tráfico de esa red, y ya te puedes imaginar las consecuencias.
Pero si disponemos de una VPN , podemos conectarnos tranquilamente a esa red publica, ya que nuestro trafico irá encriptado hasta nuestro servidor VPN, que en nuestro caso será nuestra rpi que esta en nuestra casa, parecerá que estamos navegando por internet desde nuestra casa, ya que es la VPN quien nos da el acceso a internet, la red wifi publica solo la usaremos para conectarnos de una forma segura hasta nuestra rpi.
También podemos usar una VPN para evitar bloqueos por geolocalización (podemos simular que estamos en Suiza utilizando una VPN que esté allí ), o tener varios dispositivos en diferentes sitios físicamente, y utilizando la misma VPN formaran parte de una misa red local, etc.

VPN desde cualquier lugar

Por defecto el servidor VPN de la rpi escuchará las peticiones de conexión por el puerto 4441 si es trafico UDP o 1194 si es TCP. por lo que deberemos redirigir todas las peticiones de ese puerto a la dirección IP de la rpi. Esto lo haremos dentro de la conflagración del router, como vimos en el articulo anterior.
Evidentemente cuando estamos fuera de casa debemos de conocer la dirección IP publica de nuestro router para poder conectarnos a la VPN, el problema es que salvo que tengas una IP pública fija, es decir que siempre sea la misma, la mayoría de los proveedores de Internet utilizan IP dinámicas, cada cierto tiempo cambian la direccion IP asignada a nuestro router.
Para solucionar esto podemos darnos de alta en servicios como duckdns o noip, que mediante un nombre de dominio tipo micasa.duckdns.com nos permitirá acceder al router de nuestra casa sin necesidad saber su dirección IP, tal y como vimos en este otro artículo.

Ip fija para la rpi

Todo lo explicado en el paso anterior no servirá de nada si nuestra rpi no tiene una IP fija dentro de nuestra red local, ya que el router debe redirigir el trafico que le llegue al puerto que hemos configurado en el servidor VPN, hacia nuestra rpi que es la que hace de servidor VPN.
Si la dirección IP de la rpi va cambiando, el router puede mandar las peticiones a otro equipo que no sea el servidor VPN, por ejemplo, si apagas la rpi, el router puede asignar esa IP que acaba de quedar libre a otro dispositivo que se conecte a nuestra red local, cuando volvamos a encender la rpi, el router le asignará otra dirección IP a la que tenia anteriormente porque ya está siendo utilizada por otro dispositivo.
Hay mucha gente que configura la rpi dándole un IP fija desde el sistema pero se pueden encontrar con el problema que acabo de explicar.
La mejor forma es asignar y reservar una dirección IP al la rpi desde el router.

Utilizando PiVPN para montar nuestra VPN

Tras esta pequeña introducción de lo que es una VPN, sus posibles usos, y preparación de la rpi, vamos a ver como crear nuestra propia VPN en la rpi.
La forma mas fácil es utilizando el script PiVPN, que mediante la ayuda de una serie de pantallas que debemos ir rellenando nos permitirá crear de forma sencilla una VPN en cuestión de minutos.

Instalacion

Como siempre lo primero que debemos actualizar el sistema antes de comenzar con la instalación, nos conectamos mediante ssh a la rpi y actualizamos:
sudo apt-get update && sudo apt-get upgrade -y
Nos conectaremos via ssh a la rpi y para comenzar con la instalación ejecutamos:
curl -L https://install.pivpn.io | bash
A partir de ahora debemos de ir rellenando las diversas pantallas que nos van apareciendo, la primera pantalla que aparce nos informa que transformará nuestra rpi en un servidor VPN

La siguiente pantalla nos avisa de que nuestro servidor VPN debería de tener una dirección IP fija, tal y como explique antes.

Nos pregunta si queremos usar la actual confguración de red como nuestra dirección IP fija.

Nos avisara que de que si no hemos reservado la dirección IP de la rpi en el router, es posible que el router le asigne dicha dirección IP a otro dispositivo, como explique párrafos atrás.

Nos informa de que deberemos elegir un usuario local de la rpi para la configuración del servidor.

En este caso vamos a utilizar el usuario que viene por defecto, aunque se puede utilizar cualquier otro, siempre y cuando no sea un administrador del sistema por motivos seguridad.

Nos informa que es recomendable activar las actualizaciones desatendidas y de que ademas de vez en cuando es bueno reiniciar el servidor para que estas actualizaciones se instalen completamente.

Ahora nos pregunta se queremos activar las actualizaciones desatendidas.

Al decirle que si, buscara si hay alguna actualización antes de continuar.

Debemos de elegir el protocolo que vamos a usar, en mi caso elijo UDP.

Elegimos el puerto por el que escuchara el servidor VPN, por defecto es el 1194, yo recomiendo cambiarlo, primero por seguridad y segundo porque hay sitios que bloquean el trafico hacia ese puerto ya que es el habitual en VPNs

Confirmamos el puerto

Elegimos el tamaño de la clave, seleccionamos la recomendada, 2048 bits.

Nos avisa de que se van generar la claves

Comienza la generación de claves, tardara un buen rato.

Una vez terminado el proceso de generación de claves, nos preguntará la forma en la que se acederá al servidor, bien mediante la IP publica que nos da nuestro proveedor de Internet, que normalmente suele cambiar con el problema de que el servidor sea inaccesible, o mediante un nombre de dominio, que seria la opción mas correcta.
Te recuerdo que en este articulo explico como instalar duckdns en la rpi. En el ejemplo elegimos usar un DNS publico

Introducimos nuestro DNS

Confirmamos los datos

Ahora seleccionamos el servidos de DNS de Internet que usará nuestra VPN, yo suelo utilizar las DNS de google.

Nos indica la forma de crear usuarios, la forma de obtener ayuda y la ruta del log de la instalación.

Para finalizar se nos recomienda reiniciar la rpi para terminar la instalación y nos pregunta si queremos reiniciar el sistema o seguir, reiniciamos.

Creacion de usuarios

Tras reiniciar deberemos crear los clientes que queremos que se conecten al servidor VPN.
Lo haremos con el siguente comando
  pivpn add
Nos pregunta por el nombre del usario que vamos a crear
Enter a Name for the Client:  carlos
Introducimos la contraseña del usuario
Enter the password for the client:
Confirmamos la contraseña
Enter the password again to verify:  
Y nos genera los certificados necesarios
spawn ./easyrsa build-client-full carlos

Note: using Easy-RSA configuration from: ./vars
Generating a 2048 bit RSA private key
................................................................................................................................................+++
....................................................+++
writing new private key to '/etc/openvpn/easy-rsa/pki/private/carlos.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'carlos'
Certificate is to be certified until Jun  9 20:19:13 2027 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated
Client's cert found: carlos.crt
Client's Private Key found: carlos.key
CA public Key found: ca.crt
tls-auth Private Key found: ta.key


========================================================
Done! carlos.ovpn successfully created!
carlos.ovpn was copied to:
  /home/pi/ovpns
for easy transfer.
========================================================

Además de los certificados, se creará una carpeta llamada ovpns en /home/pi y en el interior de la misma tendremos un fichero con el nombre del usuario que hemos creado y con la extensión ovpn.
Éste fichero es el que usará el cliente VPN para conectarse al servidor.
Este proceso lo deberemos hacer por cada nuevo usuario al que demos acceso al servidor.

Comentarios

Entradas populares de este blog

Internet Gratis en Unefon

Internet Gratis en Unefon Que tal a todos les traigo este post para conseguir internet gratis en Mexico y abre el facebook, twitter, whats app, no se si funcione con todos y si con Iusacell tambien aunque supongo que si sale les dejo los pasos... 1.-irse a Configuraciones/redes inalambricas/redes moviles 2.-Marcar la casilla de Datos Habilitados y entrar en APN 3.-Crear uno nuevo esta es la configuracion: Nombre: Hack (esto es opcional) APN: mms.iusacellgsm.mx Proxy: 192.200.1.110 Puerto:9201 Nom de Usuario: mmsiusacellgsm Contraseña: mmsiusacellgsm Servidor: MMSC:  http://mms.iusacell3g.com/ Proxy MMS: 192.200.1.110 Puerto mms: 9201 MCC: 334 MNC: 050 Tipo de autenticación: (Vacio) Tipo de apn: (Vacio)

medidas de barrenacion de rines

Aqui esta tambien a INFO COMPLETA de Separacion de birlos Informacion viene en el siguiente orden: Carro | Separacion | Offset | Medida del centro (Algunas les falta algo de Informacion ) ----------------------------------------------------------------------------------------- 4X95.25 ROVER 100 4X95.25 35-42 56 ROVER MGF 96> 4X95.25 18-30 56 ROVER MGF TF 4X95.25 28-30 56 ----------------------------------------------------------------------------------------- 4X98 ALFA ROMEO 33 86-96 4X98 35-42 58.1 ALFA ROMEO 145 94-01 4X98 35-42 58.1 ALFA ROMEO 146 94-01 4X98 35-42 58.1 ALFA ROMEO 155 94-98 4X98 35-42 58.1 ALFA ROMEO 164 4 Stud 88-98 4X98 35-42 58.1 FIAT BARCHETTA 95> 4X98 35-42 58.1 FIAT BRAVO 96-01 4X98 35-42 58.1 FIAT BRAVA 96-01 4X98 35-42 58.1 FIAT CINQUENCENTO 4X98 30-38 58 FIAT COUPE 16V 95-01 4X98 35-42 58.1 FIAT DOBLO 01> 4X98 35-42 58.1 FIAT FLORINO 95-00 4X98 35-42 58.1 FIAT IDEA 03> 4X98 35-42 58.1 FIAT MAREA 96> 4X98 35-42 58.1 FIAT MULTIPLA 99> 4X98 25...

Cambiar firmware y DNS al router Thomson TG585 v7 de Infinitum

Después de recibir este router de infinitum y percatarme de las limitaciones que el firmware modificado por Telmex tiene decidí cambiarle el firmware y de paso poner otros DNS, cosa fácil en el viejo 2Wire, pero no en este Thomson, luego de mucho leer e investigar, después de ver varios tutoriales, unos inútiles y otros útiles pero sin contener todo lo que quería hacer, me di a la tarea de hacer este tutorial. En la versión que he visto que infinitum provee la cubierta es de color blanco. La web oficial de Thomson y de este modelo es esta: http://www.thomsonbroadbandpartner.com/dsl-modems-gateways/products/product-detail.php?id=161 Antes de iniciar el proceso solo nuestra computadora debe estar conectada al router con cable de red ethernet en el puerto 1, no por red inalámbrica. Recomiendan poner una ip estática a nuestra pc para evitar errores, para configurarlo seguiremos estos pasos: Inicie sesión en el equipo cliente como Administrador o como Propietario. Haga...