Requisitos:
- RaspberryPi –> https://www.raspberrypi.org/downloads/raspberry-pi-os/
- OpenVPN –> https://pivpn.io/
- Cuenta abierta –> https://www.noip.com/
- Una IP Estatica en tu Raspberry –> Router manual
- Router con capacidad de tunel VPN —> IPsec, PPTP, L2TP.
- Public IP —> https://www.whatismyip.net/
Pasos:
1. Crear DNS Record A en Noip
- Apunta tu IP publica
- Abre tu sesion con tus credenciales en Noip
- Dentro del Dashboard ve al apartado “Dynamic DNS > Create Hostname” rellena:
- hostname, ejemplo: test
- Domain, ejemplo: ddns.net
- IPv4 address: Tu IP publica
- Click en Crear
Al finalizar obtendremos el siguiente Registro DNS A: test.ddns.net (ejemplo)
2. Instalar OpenVPN
Abre el terminal y ejecuta el siguiente comando:
curl -L https://install.pivpn.io | bash
Cargara un mensaje de instalacion de paquetes y luego preguntara:
- El default user: “pi” o el usuario que has creado.
- Habilitar unattended upgrades: “Yes”
- Protocolo de comunicacion: “UDP”
- Puerto de comunicacion: “1194 (default)”" - por seguridad cambiar el numero de Puerto.
- Habilitar Elliptic Curves: “Yes”
- ECDSA encryption strength: “256-bit”
- Public IP or DNS: “Use a public DNS”
- Public DNS: test.ddns.net ( ingresa el Hostname configurado en tu cuenta Noip.com)
- DNS provider: elige el provedor DNS de tu gusto ( en mi caso OpenDNS)
Instalacion completada, el programa pedira: 1. reiniciar el sistema, 2. ejecutar el comando: “pivpn add” para crear un perfil ovpn.
3. Crear cliente .ovpn
Ejecuta:
pivpn add
- Client name: nombre de usuario de conexion vpn, por ejemplo: vpn_user1
- Password: crea la password.
El perfil creado sera guardado en el directorio:
/home/pi/ovpns/
Para confirmar puedes usar un “ls”
ls /home/pi/ovpns/
Dentro de la carpeta encontraras tu archivo .ovpn ( credenciales) para poder usarlo en los dispositivos clientes.
4. Habilitar Router para tunel VPN + Noip DNS
En mi caso tengo un Router Linksys que me permite configurar mi provedor DNS apuntando a mi Hostname con mis credenciales del Noip tambien puedo habilitar IPSec y abrir el puerto apuntando la ip del RaspberryPi.
NOTA:
Revisar la configuracion de la tabla de IPtables
sudo iptables -L
Para mas informacion de como abrir puertos por Iptables puedes visitar el siguiente enlace
Otro util comando para ver los puertos dentro de tu RaspberryPi:
sudo netstat -tulpn
Enlances:
Video tutorial usando Noip en RaspberryPi como servicio –> link