Este artículo es una traducción al español de "Turn your Raspberry into an OpenVPN VPN-server" del sitio Raspberry Pi Hacks
Si estás en una red pública, por ejemplo en la universidad o en un aeropuerto, tu tráfico de datos puede ser grabado y desencriptado. Para prevenir que otros hagan esto pueden enviar tu tráfico de datos a través de un tunel seguro VPN. Los túneles VPN envían tu tráfico encriptado a un servidor que procesa tus peticiones.
Requerimientos:
- Raspberry Pi
- Raspbian o similar
- OpenVPN
Paso 1
Para ser capaz de instalar la última versión del programa deberemos actualizar nuestra fuente de paquetes:
sudo apt-get update
Paso 2
Ahora instalaremos OpenVPN y OpenSSL.
sudo apt-get install openvpn openssl
Paso 3
Cambiamos al directorio de OpenVPN y pegamos un directorio que necesitaremos a continuacion.
cd /etc/openvpn
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa
Paso 4
Ahora abrimo el archivo easy-rsa/vars con el nano y aplicamos el siguiente cambio:
nano /easy-rsa/vars
export EASY_RSA="`pwd`"
export EASY_RSA="/etc/openvpn/easy-rsa"
Paso 5
Cambiamo al directorio, nos logeamos como root y realizamos algunas configuraciones.
cd easy-rsa
sudo su
source vars
./clean-all
./pkitool --initca
ln -s openssl-1.0.0.cnf openssl.cnf
Paso 6
Ahora seremos capaces de generar los componentes para la encriptación de OpenVPN. Después de la primera entrada se te preguntará por la abreviación de tu pais (ES=España, MX=México, VE=Venezuela, etc.). Las siguiente entradas serán simplemente confirmadas.
./build-ca OpenVPN
./build-key-server server
./build-key client1
Paso 7
El cálculo de los últimos componentes puede durar algunos minutos.
./build-dh
exit
Paso 8
Tenemos que cambiar al directorio anterior otra vez y crea el archivo openvpn.conf con el siguiente contenido:
cd ..
sudo touch openvpn.conf
sudo nano openvpn.conf
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1"
#set the dns servers
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /var/log/openvpn
comp-lzo
Puedes cambiar si quieres la información de los DNS a unos de tu preferencia.
Paso 9
Ahora, crea la redirección de internet para los clientes CPN. Si no estás usando un cable ethernet (p.e. Wifi) deberás reemplazar el "eth0" por el nombre de tu dispositivo de red.
sudo sh -c ‘echo 1 > /proc/sys/net/ipv4/ip_forward’
sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE
Paso 10
Uno de los pasos finales será borrar el "#" delante de la línea net.ipv4.ip_forward=1 en sysctl.conf.
cd ..
sudo nano sysctl.conf
Paso 11
Una parte de la configuración anterior tiene que endosarse como un crontab para funcionar permanentemente. Inserta la siguiente línea al final del archivo crontab (reemplaza "eth0" si lo hiciste arriba).
crontab -e
@reboot sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE
Paso 12
Cambia de nuevo al usuario root y al directorio /etc/openvpn/easy-rsa/keys en el cual crearemos el archivo raspberrypi.ovpn y lo llenaremos con el siguiente código (en cursiva). RASPBERRY-PI-IP habrás de reemplazarlo con la ip de tu Raspberry Pi o, si estás usando un servicio tipo DynDNS, con el domino registrado en el servicio.
sudo su
cd /etc/openvpn/easy-rsa/keys
nano raspberrypi.ovpn
dev tun
client
proto udp
remote RASPBERRY-PI-IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
Paso 13
Ahora crea un paquete comprimido con todos los archivos necesarios para el cliente VPN, que moveremos al /home/pi y le daremos al usuario pi los derechos necesarios sobre el archivo.
tar czf openvpn-keys.tgz ca.crt ca.key client1.crt client1.csr client1.key raspberrypi.ovpn
mv openvpn-keys.tgz /home/pi
chown pi:pi /home/pi/openvpn-keys.tgz
exit
Paso 14
Reinicia el servidor OpenVPN.
sudo /etc/init.d/openvpn start
Finalizado! Ahora seremos capaces de descargar el archio openvpn-keys.tar.gz al cliente y extraer los archivos a la carpeta del cliente OpenVPN.
Un cliente OpenVPN para Windows en http://openvpn.se/
para Mac: https://code.google.com/p/tunnelblick/
Los usuarios de Linux simplemente instalan el paquete openvpn.
Me ha parecido muy claro, voy a seguirlo a ver si lo consigo y comento.
ResponderEliminarSaludos!
No consigo pasar del paso 4. El terminal me dice "No such file or directory".
ResponderEliminarMe pasa lo mismo que a Santi, podrias resolverlo?
ResponderEliminar