Crear un servidor VPN en una Pi utilizando PIVPN - ¡Fácil y Rápido!

Sección Unicamente para Tutoriales y Guías
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

¿Que es una VPN?

Las VPN ( Virtual Private Network ) o Red Privada Virtual en español son un tipo de red en el que se crea una extensión de una red privada para su acceso desde Internet, es como la red local que tienes en casa o en la oficina pero sobre Internet.

Gracias a una conexión VPN, podemos establecer contacto con máquinas que estén alojadas en nuestra red local -u otras redes locales- de forma totalmente segura, ya que la conexión que se establece entre ambas máquinas viaja totalmente cifrada, es como si desde nuestro equipo conectado a Internet estableciésemos un túnel privado y seguro hasta nuestro hogar o hasta nuestra oficina, con el que podremos comunicarnos sin temer que nuestros datos sean vulnerables.


Principales usos de crear una red VPN:
-Acceder a una red de trabajo o de casa mientras se está de viaje: De esta forma, aún estando lejos de la oficina podremos acceder a los recursos compartidos de la empresa, como servidores de ficheros, impresoras, aplicaciones corporativas privadas, intranet, etc., de igual forma podremos conectarnos a nuestros equipos de casa para acceder a sus documentos, música, archivos, etc. En definitiva, podremos conectarnos a todos los dispositivos que nos podemos conectar cuando estamos sentados en nuestra oficina o en casa.
-Esconder los datos de navegación: Como hemos explicado, todos los datos que circulan a través de una conexión VPN están cifrados, por lo que, por ejemplo, en caso de estar conectados a una WiFi pública, si hacemos uso de una conexión VPN será imposible que nadie pueda rastrear nuestra actividad, robarnos datos o cualquier otra situación similar a esta.
-Entrar en sitios con bloqueo geográfico: Es posible que una aplicación o página web solo nos deje acceder si estamos navegando desde un país en concreto, por lo que si ese país no es el nuestro, difícilmente podremos acceder a ella. Ahora bien, si nos conectamos a una VPN que está alojada en ese país, este problema quedará resuelto, ya que será como estar navegando desde ese país.
Evitar la censura en Internet: De igual forma que el punto número tres, si nuestro país decide censurar ciertas páginas o aplicaciones, bastará con conectarnos a una VPN de otro país para poder saltarnos esa censura. Recuerda que los datos viajan cifrados por lo que esta práctica es realmente segura.
Información extraida de Rootear


Antes de empezar con la instalación actualizamos los repositorios poniendo el siguiente comando en la terminal SSH:

Código: Seleccionar todo

sudo apt-get update



Instalación PiVPN / OpenSSH

Instalamos PiVPN con el comando:

Código: Seleccionar todo

curl -L https://install.pivpn.io | bash


Esperamos a que instale todas las dependencias necesarias, una vez finalizado aparecerá esta pantalla:


Pulsamos <OK> unas dos veces hasta que nos aparezca para seleccionar la interfaz de RED, en nuestro caso solo tenemos "Eth0" asi que la seleccionamos.


A continuación tendremos que verificar que la información de red que aparece en pantalla es correcta (detecta nuestra red por defecto), en este caso daremos <Yes>


Un nuevo aviso aparece advirtiendo que podría haber un conflicto de IP en tu Router, en este caso lo ignoramos pulsando <OK>


Damos de nuevo <OK> y aparecerá el usario predeterminado para configurar PiVPN, en este caso el principal será el usuario "Pi" y seguido daremos <OK> dos veces saltando otra advertencia.


En este mensaje daremos <YES> para mantener actualizado automáticamente el servidor VPN


Esperamos menos de un minuto a que aplique la configuración , y nos saldrá el siguiente mensaje para seleccionar el tipo de puerto que queremos utilizar. Yo RECOMIENDO siempre utilizar el puerto UDP, asi que lo seleccionamos:


Ahora introduciremos el puerto necesario para conectarnos con nuestra VPN, en este caso por defecto es "1194" así que lo dejaremos asi tal cual pulsando <YES> y de nuevo <YES> en la pantalla de confirmación.

Debemos abrir los puertos en nuestro Router y redirigir a nuestra Pi para poder acceder a la VPN, en nuestro caso sería 1194 protocolo UDP Toca elegir el tipo de cifrado que queremos en nuestro VPN, yo recomiendo 2048 para tener mejor rendimiento a no ser que seais muy paranoicos.


A continuación podemos agregar nuestros datos para crear el certificado para la conexión VPN, no es obligatorio asi que sin miedo podemos dar <OK> directamente.


Después de haber confirmado los datos, nos sale otro mensaje advirtiendo que va a generar una key Diffie-Hellman. Asi que dependiendo del tipo de cifrado, tardará mas o menos tiempo


Una vez haya terminado el proceso, nos dará a seleccionar la forma con la cual nos conectaremos a nuestro VPN, sea por IP o por DNS Pública (Ver como configurar NO-IP).
En mi caso voy a seleccionar la IP Pública y damos en <OK>, si utilizaramos DNS solamente debemos poner la dirección NO-IP configurada.


Seleccionamos el proveedor DNS principal para nuestro VPN ( Recomiendo GOOGLE ) y damos a <OK>


Y la instalación ya ha finalizado, ahora nos pide confirmación para reiniciar el sistema y marcamos <YES>


Volvemos al terminal SSH una vez iniciada la Pi e introducimos lo siguiente para crearnos un usuario:

Código: Seleccionar todo

pivpn add
En la petición "Enter a Name for the Client": introducimos el usuario o nombre del cliente a generar ( Ejemplo : kike )
Pedirá que introduzcamos una contraseña que servirá para poder conectar al VPN, la volvemos a introducir cuando nos pida.


Con estos pasos se genera un archivo que lo utilizaremos para importar dentro el cliente OPENVPN para poder acceder,estará ubicado en
/home/NUESTRO_USUARIO/ovpns


Será necesario tener acceso a ese archivo generado y poder descargarlo para conectar,ahora simplemente debemos TENER ACCESO FTP o como alternativa CONECTARNOS POR SFTP y descargarlo en la ruta especificada anteriormente.
Una vez tengamos el archivo descargado en nuestro PC / Movil con extensión .OVPN, vamos a ver como conectarnos a través de Windows & Android.

CONFIGURAR CLIENTE OPENVPN PARA CONECTAR EN WINDOWS:
Programa: OpenVPN
Página oficial: https://openvpn.net/


El cliente OPENVPN es de software libre, gratuito y servirá para establecer una conexion segura con nuestra VPN.
Podemos descargar las diferentes versiones para Windows - MAC - ANDROID - IPHONE/IPAD , en este caso descargaremos aquí la version de Windows.


Una vez finalizada la instalación, vamos a la siguiente ruta:
C:/Archivos de programa/OpenVPN/config
Aquí copiaremos el archivo con extensión .ovpn creado anteriormente en el paso final de configuración.
Para ejecutar el programa damos al botón Inicio de Windows - Barra de Programas - OpenVPN - OpenVPN GUI


Vamos a la barra de tareas ( al lado del reloj ) saldrá un icono con un candado ( ver imagen ) botón segundario - Connect


Introducimos la contraseña configurada para nuestro cliente y listo!
CONFIGURAR CLIENTE OPENVPN PARA CONECTAR EN ANDROID:
Descargamos el programa "OpenVPN Connect" desde la Play Store y seguimos los pasos indicados en las imágenes:


Damos a "Import"


Marcamos "Import profile to SD Card"


Selecciona el archivo descargado en formato .OVPN


Introduce la contraseña del cliente y pulsa en el botón "Connect"


Y listo!! Ya estamos conectados nuestra VPN
Por ahora ya he finalizado el tutorial, ya teneis vuestra VPN configurada ¿ha sido fácil y rápido no? :ugeek:
para cualquier fallo que se detecte por favor comentarlo en el mismo tema, todas las mejoras son bien recibidas.
También seria de agradecer algún tutorial rápido para configurar en IOS.
Un abrazo y a disfrutar! :victoria :ponpon
Estos usuarios agradecieron al autor Kike por el mensaje:
moy77
Si lo puedes soñar, lo puedes hacer
Avatar de Usuario
Salpicaduras
Pi Alpha
Pi Alpha
Mensajes: 13
Registrado: 14 Nov 2016, 00:32
Agradecido: 0
Agradecimiento recibido: 0

Otro gran tutoriales de gran utilidad, me lo apunto.
tranqui69
Pi Newbie
Pi Newbie
Mensajes: 9
Registrado: 24 Jun 2016, 15:40
Agradecido: 0
Agradecimiento recibido: 0

Pillo sitio que interesa y mucho.
Muchas gracias por este gran tuto!
:ponpon
Contestar a lo obvio alimenta la estupidez del que pregunta. :ugeek:
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

Muchas gracias crack :inform
Lo intente en su día con OpenVPN y al final no lo conseguí acabar :desesperado
Imagen
juanlusoft
Pi Newbie
Pi Newbie
Mensajes: 1
Registrado: 28 Sep 2016, 18:46
Agradecido: 0
Agradecimiento recibido: 0

lo he intentado en una odroid c2 con debian jessie 64 y me tira este error
Critical: Unable to locate configuration file to set static IPv4 address!
la ip q tiene debian esta configurada en estatica. Solucion?

SOLUCIONADO
no encuentra un fichero, se crea a mano y sigue la instalacion

Código: Seleccionar todo

nano /etc/dhcpcd.conf
ctrl+o
ctrl+x
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

Gracias fiera por la información , me alegro que os pueda servir :ponpon
Un abrazo!
juanlusoft escribió:lo he intentado en una odroid c2 con debian jessie 64 y me tira este error
Critical: Unable to locate configuration file to set static IPv4 address!
la ip q tiene debian esta configurada en estatica. Solucion?

SOLUCIONADO
no encuentra un fichero, se crea a mano y sigue la instalacion

Código: Seleccionar todo

nano /etc/dhcpcd.conf
ctrl+o
ctrl+x
Si lo puedes soñar, lo puedes hacer
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

Buenas,

En la parte de elegir IP Publica o DNS entry, he elegido DNS Entry y he puesto mi dominio no-ip. He acabado el tutorial y cuando intento conectarme desde android se queda en "connecting" y al final me tira .... :lol:
Imagen
Avatar de Usuario
srvazquez95
Administrador
Administrador
Mensajes: 152
Registrado: 16 May 2016, 23:46
Ubicación: Zaragoza
Agradecido: 0
Agradecimiento recibido: 0
Contactar:

Wow! grande kike! muy buen tuto, ahora todos tunelizados jeje :D
Estudiante, currante e intento de gamer. :mrgreen:
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

xxmonti escribió:Buenas,

En la parte de elegir IP Publica o DNS entry, he elegido DNS Entry y he puesto mi dominio no-ip. He acabado el tutorial y cuando intento conectarme desde android se queda en "connecting" y al final me tira .... :lol:
Una cosa que se me pasó explicar es que debes introducir la dirección sin http:// :

Monti.ddns.net

Igualmente comprueba el tema de puertos que sea UDP aunque supongo que lo tienes correctamente.
Si lo puedes soñar, lo puedes hacer
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

Kike escribió:
xxmonti escribió:Buenas,

En la parte de elegir IP Publica o DNS entry, he elegido DNS Entry y he puesto mi dominio no-ip. He acabado el tutorial y cuando intento conectarme desde android se queda en "connecting" y al final me tira .... :lol:
Una cosa que se me pasó explicar es que debes introducir la dirección sin http:// :

Monti.ddns.net

Igualmente comprueba el tema de puertos que sea UDP aunque supongo que lo tienes correctamente.
Asi lo puse, sin http://, y el puerto esta abierto 1194 UDP para la IP de la pi :?

Buscare por internet a ver que hay

Log file:
Sun Nov 27 15:23:19 2016 OpenVPN 2.3.13 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Nov 3 2016
Sun Nov 27 15:23:19 2016 Windows version 6.2 (Windows 8 or greater) 64bit
Sun Nov 27 15:23:19 2016 library versions: OpenSSL 1.0.1u 22 Sep 2016, LZO 2.09
Enter Management Password:
Sun Nov 27 15:23:24 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Nov 27 15:23:24 2016 Control Channel Authentication: tls-auth using INLINE static key file
Sun Nov 27 15:23:24 2016 UDPv4 link local: [undef]
Sun Nov 27 15:23:24 2016 UDPv4 link remote: [AF_INET]Mi_IP_Publica:1194
Sun Nov 27 15:24:24 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sun Nov 27 15:24:24 2016 TLS Error: TLS handshake failed
Sun Nov 27 15:24:24 2016 SIGUSR1[soft,tls-error] received, process restarting
Imagen
Avatar de Usuario
MLopez
Pi Omega
Pi Omega
Mensajes: 61
Registrado: 04 Oct 2016, 17:35
Agradecido: 0
Agradecimiento recibido: 0

:D genial!!!! esto ya es lo más!!!! no lo he probado pero esto está muy muy bien!
salu2
con una orange pi pc plus con hdd de 2tb a modo de servidor casero y portatil...
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

xxmonti escribió:
Kike escribió:
xxmonti escribió:Buenas,

En la parte de elegir IP Publica o DNS entry, he elegido DNS Entry y he puesto mi dominio no-ip. He acabado el tutorial y cuando intento conectarme desde android se queda en "connecting" y al final me tira .... :lol:
Una cosa que se me pasó explicar es que debes introducir la dirección sin http:// :

Monti.ddns.net

Igualmente comprueba el tema de puertos que sea UDP aunque supongo que lo tienes correctamente.
Asi lo puse, sin http://, y el puerto esta abierto 1194 UDP para la IP de la pi :?

Buscare por internet a ver que hay

Log file:
Sun Nov 27 15:23:19 2016 OpenVPN 2.3.13 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Nov 3 2016
Sun Nov 27 15:23:19 2016 Windows version 6.2 (Windows 8 or greater) 64bit
Sun Nov 27 15:23:19 2016 library versions: OpenSSL 1.0.1u 22 Sep 2016, LZO 2.09
Enter Management Password:
Sun Nov 27 15:23:24 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Nov 27 15:23:24 2016 Control Channel Authentication: tls-auth using INLINE static key file
Sun Nov 27 15:23:24 2016 UDPv4 link local: [undef]
Sun Nov 27 15:23:24 2016 UDPv4 link remote: [AF_INET]Mi_IP_Publica:1194
Sun Nov 27 15:24:24 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sun Nov 27 15:24:24 2016 TLS Error: TLS handshake failed
Sun Nov 27 15:24:24 2016 SIGUSR1[soft,tls-error] received, process restarting
He estado buscando por internet sobre el problema y es sin duda culpa de los puertos. Te informo que a uno la solución fue cambiar el puerto del VPN por otro diferente ( Muy importante que sea UDP ) :relax1
Si lo puedes soñar, lo puedes hacer
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

Kike escribió:
xxmonti escribió:
Kike escribió: Una cosa que se me pasó explicar es que debes introducir la dirección sin http:// :

Monti.ddns.net

Igualmente comprueba el tema de puertos que sea UDP aunque supongo que lo tienes correctamente.
Asi lo puse, sin http://, y el puerto esta abierto 1194 UDP para la IP de la pi :?

Buscare por internet a ver que hay

Log file:
Sun Nov 27 15:23:19 2016 OpenVPN 2.3.13 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Nov 3 2016
Sun Nov 27 15:23:19 2016 Windows version 6.2 (Windows 8 or greater) 64bit
Sun Nov 27 15:23:19 2016 library versions: OpenSSL 1.0.1u 22 Sep 2016, LZO 2.09
Enter Management Password:
Sun Nov 27 15:23:24 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Nov 27 15:23:24 2016 Control Channel Authentication: tls-auth using INLINE static key file
Sun Nov 27 15:23:24 2016 UDPv4 link local: [undef]
Sun Nov 27 15:23:24 2016 UDPv4 link remote: [AF_INET]Mi_IP_Publica:1194
Sun Nov 27 15:24:24 2016 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sun Nov 27 15:24:24 2016 TLS Error: TLS handshake failed
Sun Nov 27 15:24:24 2016 SIGUSR1[soft,tls-error] received, process restarting
He estado buscando por internet sobre el problema y es sin duda culpa de los puertos. Te informo que a uno la solución fue cambiar el puerto del VPN por otro diferente ( Muy importante que sea UDP ) :relax1
Gracias crack, probare lo que me dices [emoji6] [emoji106]

Enviado desde mi Xperia SP mediante Tapatalk
Imagen
solracinet
Pi Alpha
Pi Alpha
Mensajes: 19
Registrado: 26 Ago 2016, 09:56
Agradecido: 0
Agradecimiento recibido: 0

excelente Kike, muchisimas gracias, le sacaré provecho
sanfred
Pi Alpha
Pi Alpha
Mensajes: 13
Registrado: 05 Ago 2016, 08:32
Agradecido: 0
Agradecimiento recibido: 0

alguien sabe como convertirlo en tap?
Avatar de Usuario
xxmonti
Pi Master
Pi Master
Mensajes: 257
Registrado: 19 May 2016, 10:05
Agradecido: 0
Agradecimiento recibido: 0

He probado a cambiar el puerto por otro y el problema es el mismo, no se conecta.
Por lo que lei, puede ser algo relacionado con los iptables, pero no tengo ni idea :xd

Otra cosa curiosa es que solo por instalar PiVPN, la velocidad del internet cae drasticamente a valores de 10/10, 0.5/3, y cosas raras asi (Y mi conexion es fibra 300 simetrica). Alguna idea? :twisted:
Imagen
fercore
Pi Newbie
Pi Newbie
Mensajes: 1
Registrado: 13 Ene 2017, 16:44
Agradecido: 0
Agradecimiento recibido: 0

Muy buen tutorial.
Configurado y me puedo conectar desde Mac y Android sin problemas pero no consigo configurar el cliente OpenVPN en Iphone 6
¿Podrias explicar como configurar el cliente con Iphone?
Muchas gracias y mi enhorabuena por el gran trabajo
Avatar de Usuario
Kike
Administrador
Administrador
Mensajes: 2311
Registrado: 13 May 2016, 18:53
Ubicación: Islas Baleares - Menorca
Agradecido: 47 veces
Agradecimiento recibido: 175 veces
Contactar:

xxmonti escribió:He probado a cambiar el puerto por otro y el problema es el mismo, no se conecta.
Por lo que lei, puede ser algo relacionado con los iptables, pero no tengo ni idea :xd

Otra cosa curiosa es que solo por instalar PiVPN, la velocidad del internet cae drasticamente a valores de 10/10, 0.5/3, y cosas raras asi (Y mi conexion es fibra 300 simetrica). Alguna idea? :twisted:
Ahora que tienes Router nuevo, ya me dirás si vuelves a intentarlo :victoria
fercore escribió:Muy buen tutorial.
Configurado y me puedo conectar desde Mac y Android sin problemas pero no consigo configurar el cliente OpenVPN en Iphone 6
¿Podrias explicar como configurar el cliente con Iphone?
Muchas gracias y mi enhorabuena por el gran trabajo
Me encantaría poder redactarlo pero no dispongo de ningún sistema IOS para hacer capturas y explicarlo, por eso estaría muy agradecido que alguien pudiera complementar esa información :roll:
Un saludo!
Si lo puedes soñar, lo puedes hacer
Triay
Pi Newbie
Pi Newbie
Mensajes: 6
Registrado: 16 Ene 2017, 18:41
Agradecido: 0
Agradecimiento recibido: 0

Felicitarte por el manual, tengo un problema para instalarlo en windows 7 y es que la carpeta config en la que tengo que poner el archivo .ovpn que se ha generado en Raspberry, no me ha creado la carpeta el programa programa para windows que es Private Tunnel.
Podrias indicarme donde debo de poner el archivo.
Gracias, un saludo.
Triay
Pi Newbie
Pi Newbie
Mensajes: 6
Registrado: 16 Ene 2017, 18:41
Agradecido: 0
Agradecimiento recibido: 0

Solucionado el enlace de descarga de arriba me lleva a descargar otro programa. El OpenVPN para windows lo he bajado de aqui https://openvpn.net/index.php/open-sour ... loads.html
Un saludo.
Responder