1. Dherhion,
Vamos con otro tutorial. Esta vez sobre cómo montar una VPN más Pihole para eliminar los anuncios de la red.
¿Cuál es el punto?
Odio los anuncios. De verdad, me ponen de una mala leche increíble, tengo una guerra eterna contra ellos. Desde que instalé Pihole los hice medio desaparecer, pero no es suficiente.
Cuando salgo de casa vuelven a aparecer, y no es justo porque los odio.
Bromas a parte, conseguimos dos cosas con esto:
La primera y es la más inesperada, por alguna razón ahorramos datos. Puede que esto sea efecto placevo, pero según lo que muestra la app de vpn desde que la uso, los datos descargados son menos.
La segunda es que siempre estamos conectados a la misma red con conexión cifrada, con todo lo que eso implica. Chao, anuncios, hola, contenido de dispositivos locales desde la Conchinchina.
¡Eh, yo también quiero! ¿qué necesito?
Apunta, necesitarás lo siguiente:
- Un ordenador fijo con Linux. Una raspberry pi te hace el apaño si no tienes uno. Una máquina virtual en un portátil, que os veo venir, no sirve. Necesitamos algo conectado 24/7 al router de casa. Un vps también puede valer si tienes suficiente tráfico.
- Una velocidad medio en condiciones.
- Abrir puertos en el router si no usas vps.
- entrar como root. Si no podemos, sudo su
- Actualizar repositorios. apt update
- Actualizar el sistema. apt upgrade
- Instalamos curl si no lo tenemos. apt install curl
- Instalamos PiHole. curl -sSL https://install.pi-hole.net | bash
- si queremos, cambiamos la contraseña de PiHole: pihole -a -p
- Cambiamos las dns del router a la ip de nuestro cacharro. Cada Router es un mundo, así que... Ahí no me meto.
- Reiniciamos el cacharro con sudo reboot y nos mentalizamos para instalar Wireguard. Para ello usaremos pivpn, un script que nos facilita mucho el trabajo.
Vale, tengo todo, ¡al lío!
Venga, vamos. Lo primero, necesitamos Debian o Ubuntu.
Yo prefiero Debian, Raspbian en mi caso.
Tras instalarlo, usaremos Raspbian como referencia, pero sirve igual para otros sistemas, configuraremos la ip estática de la máquina.
Necesitamos asegurarnos de que no nos da la lata el cambio de ip, así que comprobamos en nuestro router cuál es el rango de dhcp y le metemos una que esté fuera del rango.
En mi caso, como 192.168.1.1 es una ip muy común y al acceder a cacharros desde fuera me daba conflicto porque fuera también hay 192.168.1.1, decidí cambiarla a 10.0.0.1 y tener el dhcp empezando en 10.0.0.33. Con esto me aseguro de que los cacharros conectados a la red tengan 10.0.0.34,35 ETC ETC y que todo lo que meta por debajo de 33 no va a entrar en conflicto.
Wireguard nos configura la ip estática el solito cuando se instala.
Una vez nuestro sistema está instalado y configurado haremos lo siguiente:
Nos saldrá un asistente muy chulo. Si usais dhcp en el router, decidle que no lo active.
Nos preguntará varias cosas, entre ellas si queremos dejar la ip actual como estática. Decidle que sí.
También nos dejará escoger dns, es un instalador intuitivo.
Cuando os pida dns podeis decirle que 8.8.8.8 y 1.1.1.1 o algún otro servicio de esos chulos de dns.
Os dará los datos de acceso por web para que podáis tocar cosas. aunque ya por como viene por defecto se cepilla suficientes anuncios, yo he metido alguna lista más. Google puede ayudar en este caso.
Asumiremos que tenemos un usuario llamado dherhion.
en primer lugar nos vamos a su home, Para ello teclearemos lo siguiente:
cd
o lo que es lo mismo,
cd /home/dherhion/
Ahora procedemos a actualizar los repositorios, sé que lo hemos hecho antes, pero bueno.
sudo apt update
Continuamos por fin instalando Wireguard:
sudo curl -L https://install.pivpn.io | bash
Cuando pregunte que vpn queremos, escogemos Wireguard.
Cuando nos pregunte si queremos usar ip o dns, escogemos dns. Sé que no hemos configurado nada todavía, pero eso se hace luego.
Nos pedirá un dominio. Yo uso duckdns con un cron y lo explicaré más adelante, así que dherhion.duckdns.org
Podeis usar noip, zapto o cualquiera de los gratuitos. Hay routers que permiten actualizar la ip automáticamente.
El instalador ahora detectará que tenemos PiHole instalado y nos preguntará que si queremos usarla en la VPN. Le decimos que sí, obviamente.
Una vez el asistente finalice, tenemos que hacer que la vpn se inicie con el sistema:
sudo systemctl enable wg-quick@wg0.service
sudo systemctl start wg-quick@wg0.service
Casi terminamos. Lo siguiente que tenemos que hacer es abrir el puerto 51820 en el router.
Crear usuarios y conectar
Para continuar, crearemos dos usuarios y nos conectaremos a la vpn, vayamos pasito a pasito.
en primer lugar con el comando pivpn -a crearemos un usuario pepeordenador y otro pepemovil.
No tengáis miedo y probadlo, es intuitivo. Yo, como soy vago, hago un pivpn -a -n pepeordenador y me ahorro preguntas.
Esto nos creará dentro del directorio configs un perfil de usuario.
si todo va bien, deberíamos tener pepeordenador.conf y pepemovil.conf listos para usar.
Nos llevaremos a nuestro ordenador pepeordenador.conf y generaremos un qr para pepemovil. Pero antes configuraremos el dns.
entramos a duckdns.org y nos creamos una cuenta. Luego añadimos un dominio. Cuando lo tengamos, la ip la pillará automáticamente, pero hay que hacer un paso extra. Hacer que la raspberry la actualice cada x.
Así que añadimos al crontab esta línea. Para ello usaremos crontab -e:
*/1 * * * * /home/dherhion/actualizarip.sh >/dev/null 2>&1
Esto ejecutará un script llamado actualizarip.sh cada minuto. Vamos a crearlo.
nano /home/dherhion/actualizarip.sh
El contenido es el siguiente:
echo url="https://www.duckdns.org/update?domains=dherhion&token=tu_token&ip=" | curl -k -o ~/duckdns/duck.log -K -
Cambiamos dherhion y tu_token por lo que corresponda.
¡Listo!
chmod +x actualizarip.sh
y nos olvidamos del tema.
¿Recordais el archivo .conf que nos hemos llevado? Pues olvidaos de él, porque os lo dejo como ejercicio.
Usando la app Wireguard, descargable para Windows, Mac o Linux, conectaos a la vpn desde otra red usando el archivo pepeordenador.conf
A ver quien es el primero que me explica el proceso.
Os enseñaré otra cosa en su lugar.
A conectar móviles de forma rápida.
- Descargamos la app Wireguard, sea desde Google play Store o AppStore.
- la abrimos y escogemos la opción de escanear un qr.
- Maximizamos la pantalla de la terminal.
- Escribimos: pivpn -qr
- Seleccionamos el perfil para el móvil.
- en el móvil pulsamos en agregar túnel.
- ¡Listo! Desconectamos la wi-fi y activamos el túnel recién creado. Navegamos unos minutos y luego usamos pivpn -c en la terminal del ordenador para ver los dispositivos conectados. Deberíamos poder acceder cuando nos conectemos a la vpn a la web de PiHole si lo hemos configurado bien.
Bonus: Acceder a los cacharros de la red como si estuvieras conectado localmente
Esto a mi me dio bastante guerra, pero es fácil: Solo tenemos que hacer lo siguiente:
sudo nano /etc/sysctl.conf
Ahí descomentamos:
net.ipv4.ip_forward =1
para que quede
net.ipv4.ip_forward =1
Guardamos con ctrl x.
ahora necesitamos saber cuál es nuestra interfaz de red. en mi caso sé que es eth0, pero por si las dudas ejecutamos el comando
ip route list default
Nos mostrará algo como esto:
$ ip route list default
default via 10.0.0.1 dev eth0 src 10.0.0.10 metric 202
Tenemos que añadir reglas a la interfaz, así que volvemos a editar archivos:
sudo nano /etc/wireguard/wg0.conf
Debajo de ListenPort añadimos, teniendo en cuenta que si alguna línea ya está, no hay que duplicarla:
SaveConfig = true
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Guardamos con ctrl +x
solo nos falta una última cosa:
sudo reboot
Listo, ya podemos acceder a nuestras cosas como si estuviéramos físicamente conectados a ellas por red.
P.D: Dherhion.duckdns.org no existe.
P.D2: Estoy abierto a dudas y correcciones.
P.D3: Rogamos disfruten las molestias.
Resultado: +1