Uno de los primeros proyectos que hice con una Raspberry Pi fue crear un servidor VPN para poder acceder a mi red doméstica y navegar tranquilamente desde conexiones públicas. O, para cuando viajo a países como China, en los que el acceso a ciertas páginas está bloqueado, poder navegar tranquilamente.
Tengo una Raspberry Pi 2 permanentemente encendida, con una distribución OpenElec para usar Kodi al ver la televisión. Quería utilizar esta máquina como servidor VPN, pero tras investigar mucho he decidido desistir por los muchos problemas que tiene el emplear una distribución no completa como es OpenElec. Así que mejor lo hago en otra Raspberry exclusiva (una B), con una distribución decente, como es Raspbian.
Hay miles de tutoriales por internet sobre cómo hacer esto. Yo voy a seguir fundamentalmente este en dos partes, que me parece maravilloso (aunque hay varias cosas que han cambiado con las nuevas versiones de OpenVPN y no se puede seguir tal cual):
Building A Raspberry Pi VPN Part One: How And Why To Build A Server
Building A Raspberry Pi VPN Part Two: Creating An Encrypted Client Side
Configuraré mi portátil del trabajo (Windows), mi portátil personal (Mac) y mi iPhone para poder acceder a la VPN.
Pasos previos
Instalo Raspbian, cambio la contraseña, compruebo que puedo acceder a la Raspberry Pi por SSH, desde otro ordenador conectado a la misma red local. Y actualizo todo con sudo apt-get update
y sudo apt-get upgrade
.
También tengo que asegurarme de que la Raspberry Pi tiene asignada una IP estática dentro de la red local, o bien a mano (ver esta entrada) o en mi router. Hecho (no explico cómo hacerlo por el router porque en cada router se hace de una forma, aunque todos son similares). Supongamos que es la 192.168.1.45.
También seguramente necesite un servidor dns dinámico como no-ip.com, para poder acceder desde cualquier sitio al servidor, que seguramente tenga una IP dinámica. Puedo hacerlo siguiendo las instrucción ques expliqué en esta entrada.
Una cosa más en el router: debo hacer que todo paquete que llegue al puerto 1194 UDP sea dirigido a mi Raspberry Pi. Hecho (tampoco lo explico, si tienes dudas, googlea tu modelo de router).
Instalando OpenVPN
Instalo OpenVPN:
sudo apt-get install openvpn easy-rsa
Se me instala la versión 2.3.4.
Voy a generar las claves RSA. Empiezo por darme permiso de supersusuario, para no tener que andar haciendo sudo
todo el rato:
sudo -s
Vamos a emplear easy-rsa
.
Y ahora:
mkdir /etc/openvpn/easy-rsa cp /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/ cd /etc/openvpn/easy-rsa nano /etc/openvpn/easy-rsa/vars
Busco dentro del fichero /etc/openvpn/easy-rsa/vars
la línea que dice export EASY_RSA="`pwd`"
y lo cambio por:
export EASY_RSA=”/etc/openvpn/easy-rsa”
Y ahora genero los certificados, ejecutando los siguientes comandos:
source ./vars ./clean-all ./build-ca
¡Ojo! Si no es la primera vez que seguimos estos pasos es posible que ya tengamos algunos certificados generados en el directorio /etc/openvpn/easy-rsa
. En este caso, NO debemos ejecutar el comando ./clean-all
Al ejecutar ./build-ca
saltarán una serie de preguntas (Country name, State or Province Name, Locality Name, Organization Name, Organizational Unit Name, Common Name, Name), que yo prefiero no rellenar y dejo los valores por defecto, pulsando Enter.
Ahora definimos el nombre del servidor, en mi caso raspivpn
:
./build-key-server raspivpn
Nuevamente, nos pedirá rellenar una serie de nombres, que dejo en sus valores por defecto, fijándome que el Common Name que me ofrece por defecto y apruebo es el que di al servidor, raspivpn
. El Challenge Pasword lo dejo en blanco, y cuando me pregunte «Sign the certificate? [y/n]», pues diré que sí (y), naturalmente.
Con esto ya tenemos configurado el servidor. Ahora nos queda generar las claves de los clientes y configurarlos.
Creo un certificado para cada usuario:
./build-key-pass usuario1 ./build-key-pass usuario2 ./build-key-pass usuario3 ./build-key-pass usuario4 ./build-key-pass usuario5 ...
Introduzco la contraseña que quiero tenga cuando dice «Enter PEM pass phrase», y el resto de opciones por defecto.
Y ahora encriptamos las llaves con des3:
openssl rsa -in usuario1.key -des3 -out usuario1.3des.key openssl rsa -in usuario2.key -des3 -out usuario2.3des.key openssl rsa -in usuario3.key -des3 -out usuario3.3des.key openssl rsa -in usuario4.key -des3 -out usuario4.3des.key openssl rsa -in usuario5.key -des3 -out usuario5.3des.key
E introducimos una nueva contraseña (o la misma).
Volvemos al directorio de easy-rsa:
cd /etc/openvpn/easy-rsa/
Ahora generamos el intercambio de llaves Diffie-Hellman. Esto puede tardar (en mi caso, una hora y cuarto, porque dejé la opción por defecto de encriptación 2048 bit):
./build-dh
Y la protección contra un ataque de DoS, generando una llave HMAC estática:
openvpn --genkey --secret keys/ta.key
Ya está todo instalado y creado. Falta configurar OpenVPN. Para ello vamos a crear un fichero /etc/openvpn/server.conf
con el contenido de este archivo.
nano /etc/openvpn/server.conf
Más adelante he descubierto que OpenVPN no arranca tras reiniciar el servidor. Investigando, he llegado a que hay que comentar la primera línea de este fichero: # local 192.168.1.45
. Entonces, en mi caso, lo dejo así:
#local 192.168.1.45 # SWAP THIS NUMBER WITH YOUR RASPBERRY PI IP ADDRESS dev tun proto udp #Some people prefer to use tcp. Don't change it if you don't know. port 1194 ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/raspivpn.crt # SWAP WITH YOUR CRT NAME key /etc/openvpn/easy-rsa/keys/raspivpn.key # SWAP WITH YOUR KEY NAME dh /etc/openvpn/easy-rsa/keys/dh2048.pem # If you changed to 2048, change that here! server 10.8.0.0 255.255.255.0 # server and remote endpoints ifconfig 10.8.0.1 10.8.0.2 # Add route to Client routing table for the OpenVPN Server push "route 10.8.0.1 255.255.255.255" # Add route to Client routing table for the OpenVPN Subnet push "route 10.8.0.0 255.255.255.0" # your local subnet push "route 192.168.1.45 255.255.255.0" # SWAP THE IP NUMBER WITH YOUR RASPBERRY PI IP ADDRESS # Set primary domain name server address to the SOHO Router # If your router does not do DNS, you can use Google DNS 8.8.8.8 push "dhcp-option DNS 192.168.1.1" # This should already match your router address and not need to be changed. # Override the Client default gateway by using 0.0.0.0/1 and # 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of # overriding but not wiping out the original default gateway. push "redirect-gateway def1" client-to-client duplicate-cn keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 cipher AES-128-CBC comp-lzo user nobody group nogroup persist-key persist-tun status /var/log/openvpn-status.log 20 log /var/log/openvpn.log verb 1
Otra cosa, tenemos que redirigir el tráfico de internet, ya que Raspbian por defecto no lo hace. Para ello editamos el siguiente fichero:
nano /etc/sysctl.conf
Buscamos la línea donde dice:
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1
Y lo descomentamos:
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
Aplicamos los cambios con el siguiente comando:
sysctl -p
Ahora queda desbloquear OpenVPN en el firewall, y además hacer que se haga en cada reinicio, ya que las excepciones del cortafuegos no se quedan grabadas. Para ello creamos este pequeño script:
nano /etc/firewall-openvpn-rules.sh
Y dentro del fichero escribimos lo siguiente:
#!/bin/sh iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.1.45
Grabamos y salimos. Ahora toca darle permisos de ejecución a este fichero, y cambiarle el usuario a root
:
chmod 700 /etc/firewall-openvpn-rules.sh chown root /etc/firewall-openvpn-rules.sh
En las versiones anteriores de Raspbian, bastaba con editar el fichero /etc/network/interfaces
:
nano /etc/network/interfaces
buscar la línea:
iface eth0 inet manual
y debajo de ella, con un sangrado, añadir:
pre-up /etc/firewall-openvpn-rules.sh
Pero si se tiene Raspbian Jessie o superior, hay que añadir además «auto eth0» en la línea anterior, de forma que finalmente debe quedar así:
auto eth0 iface eth0 inet manual pre-up /etc/firewall-openvpn-rules.sh
Con esto ya garantizamos que tras cada reinicio se abre el Firewall para OpenVPN. Así que reiniciamos la Raspberry Pi:
reboot
Configurando el cliente
Ya tenemos el servidor VPN en marcha. Ahora vamos a configurar los clientes.
Pero seguimos todavía en el servidor. Vamos a crear los ficheros de configuración que instalaremos en los clientes.
Creamos un fichero:
nano /etc/openvpn/easy-rsa/keys/Default.txt
Y copiamos lo siguiente:
client dev tun proto udp remote TU-SERVIDOR-AQUI 1194 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ns-cert-type server key-direction 1 cipher AES-128-CBC comp-lzo verb 1 mute 20
Donde dice TU-SERVIDOR-AQUI
pondremos la dirección pública de nuestro servidor. Puede ser una IP, o un nombre como mi.servidorVPN.com
. Lo más probable es que aquí pongas una dirección de dominio dinámico gratuita como las que ofrece no-ip.com
, que expliqué cómo se hace en otro post.
Ahora para generar los ficheros de configuración de cada cliente descargamos este pequeño script maravilloso aquí, y copiamos su contenido en un fichero en /etc/openvpn/easy-rsa/keys/MakeOVPN.sh
(he corregido dos cosas menores):
#!/bin/bash # Default Variable Declarations DEFAULT="Default.txt" FILEEXT=".ovpn" CRT=".crt" KEY=".3des.key" CA="ca.crt" TA="ta.key" #Ask for a Client name echo "Please enter an existing Client Name:" read NAME #1st Verify that client’s Public Key Exists if [ ! -f $NAME$CRT ]; then echo "[ERROR]: Client Public Key Certificate not found: $NAME$CRT" exit fi echo "Client’s cert found: $NAME$CR" #Then, verify that there is a private key for that client if [ ! -f $NAME$KEY ]; then echo "[ERROR]: Client 3des Private Key not found: $NAME$KEY" exit fi echo "Client’s Private Key found: $NAME$KEY" #Confirm the CA public key exists if [ ! -f $CA ]; then echo "[ERROR]: CA Public Key not found: $CA" exit fi echo "CA public Key found: $CA" #Confirm the tls-auth ta key file exists if [ ! -f $TA ]; then echo "[ERROR]: tls-auth Key not found: $TA" exit fi echo "tls-auth Private Key found: $TA" #Ready to make a new .opvn file - Start by populating with the default file cat $DEFAULT > $NAME$FILEEXT #Now, append the CA Public Cert echo "" >> $NAME$FILEEXT cat $CA >> $NAME$FILEEXT echo "" >> $NAME$FILEEXT #Next append the client Public Cert echo "" >> $NAME$FILEEXT cat $NAME$CRT | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> $NAME$FILEEXT echo "" >> $NAME$FILEEXT #Then, append the client Private Key echo "" >> $NAME$FILEEXT cat $NAME$KEY >> $NAME$FILEEXT echo "" >> $NAME$FILEEXT #Finally, append the TA Private Key echo "" >> $NAME$FILEEXT cat $TA >> $NAME$FILEEXT echo "" >> $NAME$FILEEXT echo "Done! $NAME$FILEEXT Successfully Created." #Script written by Eric Jodoin #No newline at end of file
Damos permiso de ejecución al script:
cd /etc/openvpn/easy-rsa/keys/ chmod 700 MakeOVPN.sh
Y ejecutamos el script:
./MakeOVPN.sh
Nos pide el nombre del cliente. Introduzco usuario1
, trabaja un poco y crea el fichero usuario1.ovpn
. Repito con el resto de usuarios.
De esta forma se me generan unos ficheros usuario1.ovpn
, usuario2.ovpn
, etc. que son los que cargaré a continuación en los clientes.
Basta con cargar el fichero .ovpn, introducir la contraseña, y listo.
Lo he probado de forma exitosa en:
iPhone, con OpenVPN.
Mac, con TunnelBlick
Windows, con OpenVPN Connect
Me consta que OpenVPN Connect también funciona en Android, pero no lo he probado.
Referencias
https://nxfifteen.me.uk/2015/02/07/raspberry-pi-powered-openvpn-server/
Una explicacion detallada y clara.
Ha funcionado muy bien.
Gracias!!!!!
Muchas gracias por compartir toda esta información, muy bien explicada incluso para los que no tenemos mucha idea.
Me ha funcionado salvo por un pequeño detalle en el script:
He tenido que cambiar el operador > por el >, si no me daba error.
Un saludo
Hola, me podrías decir que versión de debian utilizas en este tutorial? Por cierto un increíble tutorial.
Muchas gracias; simplemente he recopilado y probado cosas que han hecho otros por internet. La distribución en la que instalé todo esto es en Raspbian Jessie.
Muchas gracias por toda esta desinteresada explicación para los que no sabemos. He podido seguirlo hasta la generación del archivo ovpn mediante el script ya que me salta el siguiente error:
./MakeOVPN.sh: line 46: gt: command not found
¿Sabrías por que motivo puede suceder esto? No lo he hecho sobre Raspbian, sino sobre Xbian 1.0 RC 2
Gracias
El error es mío. Al mostrar el contenido del fichero aparecía «>» en vez del símbolo «mayor que», «>». Ya lo he corregido; ahora debería funcionar.
Un saludo.
Hola! En primer lugar gracias por la información, es muy útil para todos los que «cacharreamos» con estas cosas.
En segundo lugar, he configurado todo y conecta a la VPN sin problema. Sin embargo luego no tengo salida a Internet. ¿Alguna idea de por donde podría estar haciendo algo mal?
Gracias!
Gracias, Héctor.
Comprueba que has descomentado net.ipv4.ip_forward=1 en el archivo /etc/sysctl.conf, y que añadiste correctamente las reglas en el cortafuegos, y especialmente que se aplican esas reglas tras cada reinicio (en el post explico que depende de la versión de Raspbian que tengas)…
A ver si con eso se resuelve.
Un saludo,
Carlos
Estoy en las mismas… no puedo hacer ping de una red a otra. He comprobado el enrutamiento:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Y las reglas de iptables:
:~ $ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all — 10.8.0.0/24 anywhere
ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all — anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Y sigo sin poder salir a internet. ¿Sabes por dónde puedo seguir? Muchas gracias por adelantado y por tu blog, lo tengo como guía de cabecera.
Hola, gracias por el tutorial.
Hago todos los pasos correctamente, he revisado varias veces los archivos y no hay manera de que ningún cliente se conecte. Tampoco sé si funciona como toca el servidor. Tengo el puerto correctamente direccionado, además uso la raspberry como servidor web sin ningún problema. Alguna idea? :/
Gracias
Hola, Jaume:
¿Puede ser que la red en la que estés, o tu ISP, tenga bloqueado el puerto 1194? Algunas empresas y redes WiFi públicas lo tienen así. En algún momento actualizaré el post para salvar este obstáculo…
Carlos
Yo también tuve el mismo problema y revisando el log encontré el problema:
«TLS Error: cannot locate HMAC in incoming packet»
Se arregló comentando esta línea en el archivo server.conf
# tls-auth /etc/openvpn/pki/ta.key
Copia el script MakeOVPN.sh desde github https://gist.github.com/laurenorsini/10013430, ya que aqui esta mal escrito. Acuerdate de comentar con # en vez de / la ultima linea ya que sino te dara error al ejecutar. y vuelve a generar los .ovpn
Despues de 4 dias peleandome con openvpn para que funcionara con los DNS del pi-hole, este es mi server.conf
mode server
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/rvpn.crt
key /etc/openvpn/easy-rsa/keys/rvpn.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
key-direction 0
user nobody
group nogroup
topology subnet
server 10.8.0.0 255.255.255.0
route 10.8.0.0 255.255.255.0
push «route #.#.#.0 255.255.255.0» #Aqui va tu subnet ej. si tu ip es
# 192.168.1.loquesea = 192.168.1.0
push «dhcp-option DNS #.#.#.#» #ip de tu router
push «redirect-gateway» #Opcional obliga a redirigir el 100% del trafico a # traves de tu raspberry
keepalive 5 30
sndbuf 0
rcvbuf 0
persist-tun
persist-key
comp-lzo #Debe figurar en Default.txt para generar los .ovpn
client-to-client
cipher AES-128-CBC #el chipher debe ser igual en Default.txt
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
verb 3
Te falto el 3des.
openssl rsa -in Client1.key -des3 -out Client1.3des.key
Hola,
Despues de seguir tu tutorial openvpn cliente me da el siguiente error;
Options error: Unrecognized option or missing parameter(s) in usuario1.ovpn:17: —BEGIN (2.3.12)
Es como si el fichero ovpn no fuera correcto.
Lo estoy probando desde windows 10.
Saludos
Estoy con el mismo error.
Lo has podido solucionar?
Gracias.
Lo he intentado dos o tres veces, he configurado todo tal y como está en el POST modificando IP’s y nada.. No me conecta, solo hay que meter en config el fichero .ovpn? O tengo que meter el CA y todo lo demás? Gracias.
Sólo es necesario en archivo .opvn
En mi caso el problema era que openvpn en el PC se quedaba esperando respuesta del servidor.
La solución es que no estaba arrancado el servidor. Una vez creado el server.conf y desbloqueado el firewall hay que arrancar el servicio.
[root@servidorvpn]# openvpn –config /etc/openvpn/server.conf
Para que sea permanente, y que tras reiniciar el servicio siga activo, he añadido esa línea en /etc/rc.local.
[root@servidorvpn]# nano /etc/rc.local
quedaría algo asi:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
openvpn –config /etc/openvpn/server.conf
exit 0
Buenos días:
antes del paso «openssl rsa -in usuario1.key -des3 -out usuario1.3des.key»
se debe de acceder a cd keys.
gracias.
Esta aplicación de vpn, se puede obtener una ip estática para el cliente, esto debido que estoy usando webvpn de cisco, y como cliente un raspberry con openconect client pero no he podido encontrar la forma de poder obtener una ip estática en el raspberry, no se si en openvpn se puede modificar este parámetro.
Hola Carlini,
He tenido que cambiar export EASY_RSA=”/etc/openvpn/easy-rsa” por export EASY_RSA=/etc/openvpn/easy-rsa eliminando » » o de lo contrario me da errores al ejecutar los siguientes comandos:
source ./vars
./clean-all
./build-ca
Un saludo y gracias por el tuto!
Hola Carlos!
Fantástico tutorial. Todo me ha ido saliendo a la primera hasta que he intentado configurar openVPN en iOS 10.1.1. No sé porqué, a pesar de instalar los .crt, OpenVPN me dice que no tiene certificados prensentes. Por lo que no puedo conectarme. Lo he intentado generando el crt en formato p12, pero al instalarlo en iOS me pide la contraseña y me dice que es incorrecta (por testear he puesto en todos los sitios la misma para evitar confusión).
He estado mirando por foros y no logro encontrar la solución.
Se te ocurre algo?
Muchísimas gracias!
Iñaki
Hola.
Muchas gracias por el artículo…lo he podido seguir perfectamente a pesar de no estar muy familiarizado con estos temas. Tengo un problema de todas formas al lanzar la conexión. Por lo que veo en el log de la conexión, me salta este error:
Options error: Unrecognized option or missing parameter(s) in usuario2.ovpn:17: —BEGIN (2.3.13)
Use –help for more information.
¿Alguna idea de qué puede haberme fallado?
Gracias adelantadas.
Jorge
Estoy con el mismo error.
Lo has podido solucionar?
Gracias.
Estoy exactamente igual desde Windows.
Buenas, todo bien, explicado para tontos como yo pero me da un error al configurar los clientes «Client 3des Private Key not fount: usuario1.3des.key» y así con todos, sabrías decirme x q me falla si he seguido todos los pasos??, Gracias
Hola tocayo, eso sucede por que no estas en el directorio adecuado:
desde la ruta donde te encuentras teclea:
cd keys
y te quedaras en:
root@servervpn:/etc/openvpn/easy-rsa/keys#
ahora ya puedes encriptar las llaves con des3
Hola,
En lugar de:
openssl rsa -in usuario1.key -des3 -out usuario1.3des.key
Debería ser (hay que señalar que está en la carpeta keys/ o mejor aún /etc/openvpn/easy-rsa/keys/ ):
openssl rsa -in keys/usuario1.key -des3 -out keys/usuario1.3des.key
A mi me da el siguiente fallo cuando intento codificar los usuarios con des3
Error opening Private Key usuario1.key
3069527248:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen(‘usuario1.key’,’r’)
3069527248:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
unable to load Private Key
alguien sabe porque pasa esto? gracias!
Buenos días,
Muchas gracias por el manual, me ha sido de gran ayuda. Lo tengo funcionando desde hace varias semanas y funciona perfecto.
Tengo que crear nuevos usuarios para acceder por VPN,
¿me podrías dar los pasos a seguir para añadir nuevos usuarios sin fastidiar los que ya hay configurados?
Hola!
Os dejo un par de puntualiaciones sobre esta maravillosa guia!
El fichero conf sustituir esta linea:
push «route 192.168.1.45 255.255.255.0» # SWAP THE IP NUMBER WITH YOUR RASPBERRY PI IP ADDRESS
Por esta otra:
push «route 192.168.1.45 255.255.255.255» # SWAP THE IP NUMBER WITH YOUR RASPBERRY PI IP ADDRESS
Tambien os dejo una moficacion del script de creacion del fichero de configuracion del cliente, ya que las ultimas versiones de cliente necesitan que cada certificado esta identificado.
Debeis cambiar este trozo de codigo
#Ready to make a new .opvn file – Start by populating with the default file
cat $DEFAULT > $NAME$FILEEXT
#Now, append the CA Public Cert
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
cat $CA >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
#Next append the client Public Cert
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
cat $NAME$CRT | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p’ >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
#Then, append the client Private Key
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
cat $NAME$KEY >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
#Finally, append the TA Private Key
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
cat $TA >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
echo «» >> $NAME$FILEEXT
echo «Done! $NAME$FILEEXT Successfully Created.»
En mi conmentario anterior faltan caranteres, se haneliminado al publicar, seguramente porque son caracteres html.
Es importante incluirnentre simbolos de mayor y menor que los campos
ca
/ca
cert
/cert
key
/key
tls-auth
/tls-auth
Al principio y final de cada bloque cerrando cada uno con el caranter /
Hola Carlos!!! Primero, muchas gracias por él tutoríal!!, lo he configurado un par de veces En un iPhone y siempre me dice el siguiente error:»OpenVPNerror: PolarSSL: ca certifícate is undefined» alguna idea de porque puede ser?? .
Muchas gracias de antemano
Es justo por lo que te pongo en mis comentarios, debes indicar el inicio y final de cada bloque del certificado
Me dice exactamente los mismo en un Android.
¿A qué te refieres con «debes indicar el inicio y final de cada bloque del certificado»?
Un saludo.
Ya no se que hacer para que no me salga el error
TLS Error: TLS handshake failed
También me aparece el error de Unrecognized option or missing parameter en la linea 17 del archivo .ovpn .
Seguramente sea una error en el script de creación por la actualización del cliente de windows como dice Jesús en su comentario.
No se si alguien puede poner el script completo de creación del .ovpn modificado en algún lugar que no modifique los signos como en pastebin.
El script corregido lo podéis encontrar en
https://gist.githubusercontent.com/coolaj86/4120d90e57d1d01cd59f/raw/MakeOpenVPN.sh
Soluciona el problema al crear el .ovpn ya que en script que hay en el articulo le falta todo lo que dice Jesús en su comentario
Hola Carlos al iniciar la raspberry me saltan estos dos errores. Yo he utilizado wlan0 pero todo eso ya lo he correjido :
– Failed to start openvpn connection to server .
-Failed to start LSB: start daemon at boot time.
Muchas gracias por el tutorial. Me ha servido para «desengrasar» algunas cosas que estaban para mi muy oxidadas.
Mo me funcionó a la primera. No me daba error en la instalación pero no funcionaba, solo me di cuenta que en android me daba error del certificado. Leyendo los comentarios, instalé de nuevo y seguía pasando lo mismo hasta que ley los comentarios y bajé el scrip MakeOVPN.sh del enlace de gitub, instalé de nuevo a partir de ese paso y generé los usuarios, los instalé en los programas que indicas tanto en android, windows 10, y en Mac OSX y funciona perfectamente. Por supuesto he abierto y configurado una cuenta en no-ip y he abierto de puerto UDP correspondiente en el router de fibra óptica.
De nuevo mucha gracias por el tutorial.
Para los que no les funcione en dispositivos móviles hay que hacer un paso mas, porque al crearse el archivo .ovpn no se añaden automáticamente las marcas , , , , , , y .las aplicaciones móviles no lo reconocen automáticamente y nunca llegan a conectar. Si tenéis este problema observad como debería ser un archivo .ovpn, editáis el vuestro y añadid las marcas.
Una pregunta:
Alguien me podría decir si se puede conectar desde China actualmente.
Es que me va a hacer falta dentro de poco y he leido que puede haber problemas con OpenVPN.
Hola, muy bueno el articulo pero tengo un problema cuando ejecuto el source ./vars:
pi@raspberrypi:/etc/openvpn/easy-rsa $ source ./vars
-bash: ”/etc/openvpn/easy-rsa”/whichopensslcnf: No such file or directory
NOTE: If you run ./clean-all, I will be doing a rm -rf on ”/etc/openvpn/easy-rsa”/keys
pi@raspberrypi:/etc/openvpn/easy-rsa $ ./clean-all
mkdir: cannot create directory ‘”/etc/openvpn/easy-rsa”/keys’: No such file or directory
pi@raspberrypi:/etc/openvpn/easy-rsa $ ./build-ca
./build-ca: 8: ./build-ca: ”/etc/openvpn/easy-rsa”/pkitool: not found
pi@raspberrypi:/etc/openvpn/easy-rsa $
Hola a todos, estoy siguiendo los pasos y cuando edito /etc/network/interaces yo no tengo la linea «iface eth0 inet manual» sino que tengo «iface eth0 inet manual static» seguida de la direccionIP, netmask, puerta de enlaice etc. ya que tengo una direccion estática en la Raspberry, que debería hacer?
Buenas,
Perfecto, todo ok y funcionando.
Muchas gracias por el manual.