Instalando OpenVPN server en una Raspberry Pi



Algo super util en una Raspberry para poder conectarnos desde donde sea será el montar un servidor VPN, en un documento anterior ya vimos cómo montarlo, pero era con PPTP, algo no muy seguro digamos, en este documento veremos cómo instalar OpenVPN en una Raspberry, os dejo unos apuntes para que podáis montar una VPN segura y os podáis conectar desde cualquier lugar!
raspberry-openvpn-00-bujarra
OpenVPN nos ofrece una combinación de seguridad a nivel empresarial, seguridad, facilidad de uso y riqueza de características. La seguridad es lograda mediante cifrado del tráfico usando mecanismos SSL/TLS, por lo que en este documento nos desplegaremos además de OpenVPN en sí, nuestra propia CA, generaremos los certificados para los usuarios y daremos sus claves para que se conecten! Si no tenemos una IP pública fija, sería ideal combinarlo con el cliente NO-IP en nuestra Raspberry!!!

Comenzamos con la instalación de OpenSSL:
sudo apt-get install openvpn openssl
cd /etc/openvpn
sudo su
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa
Editaremos con ‘vim easy-rsa/vars’ y corregiremos la siguiente ruta con el path correcto: ‘export EASY_RSA=“/etc/openvpn/easy-rsa”’
Creamos los certificado del servidor y de un cliente además de la clave, al rellenar la información del certificado con que indiquemos el ‘Common name’ sería suficiente, empezamos:
./easy-rsa/clean-all
cd easy-rsa
ln -s openssl-1.0.0.cnf openssl.cnf
cd ..
./easy-rsa/build-ca OpenVPN
./easy-rsa/build-key-server server (y a todo)
./easy-rsa/build-key client1
./easy-rsa/build-dh
Creamos nuestro archivo de configuración con ‘vim /etc/openvpn.conf’ y con esta configuración sería suficiente:
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
Ejecutamos lo siguiente para permitir el enrutado a nuestra red, en este ejemplo uso el interfaz Wifi wlan0, si usas ethernet deberías poner eth0; ojo al rango IP por si tu red no es la 192.168.1.0/24 para cambiarlo y por último la 192.168.1.197 es la dirección de mi Raspberry Pi:
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wlan0 -j SNAT --to 192.168.1.197
Editamos ‘vim /etc/sysctl.conf’ y descomentamos’ net.ipv4.ip_forward=1′
Ya podremos arrancar OpenVPN con: ‘/etc/init.d/openvpn start’.
Crearemos nuestro fichero de configuración OpenVPN para los clientes, ejecutamos ‘vim conexion_vpn.ovpn y poner:
dev tun
client
proto udp
remote NOMBRE_O_DIRECCIÓN_IP_(PUBLICA)_DE_LA_RASPBERRY 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
Editamos ‘vim /etc/rc.local’ y ponemos al final antes del último exit (ojo al rango IP del ejemplo, interfaz  y dirección de la Raspberry Pi:
iptables -t nat -A INPUT -i wlan0 -p udp -m udp --dport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wlan0 -j SNAT --to-source 192.168.1.197
Nos copiamos los certificados y los clientes para tenerlos cerca, nos haremos propietarios de los ficheros que entregaremos a los clientes:
cp -rf /etc/openvpn/easy-rsa/keys /home/pi
chown pi:pi /home/pi/keys para poder copiarlas con SCP a nuestros PCs
sudo chmod 777 /home/pi/keys/client1.key
Copiaremos a los PCs que se quieran conectar los siguientes ficheros: ca.crt, client1.crt y client1.key
Y por último, tendremos que tener en cuenta en abrir los siguientes puertos en nuestros firewalls/routers para permitir el acceso desde Internet a nuestras redes: TCP 443, TCP 943 & UDP 1194.

Comentarios

Entradas populares de este blog

Orange Pi IoT 2G Flashear memoria NAND

Usar datos gratis para proyectos IoT FreedomPop y Orange Pi 2G IoT (también Simyo).

Configurar modem GSM en la Orange Pi 2G IoT (Orange España)