- Wed 20 May 2020
- Tutoriales
- perroTuerto
- #OpenVPN, #OpenWrt
Este tutorial es para configurar RiseupVPN en un router con OpenWrt y OpenVPN.
Esto permite navegar a través de una VPN en cualquier dispositivo que esté conectado al router sin necesidad de instalar software adicional.
Es decir, brinda mayor privacidad al acceder a internet porque se usa un «túnel» donde tu información es inaccesible para tu proveedor de internet.
Archivos
Índice
1. Obtención de credenciales de Riseup
4. Configuración de la interfaz
6. Comprobación de arranque de RiseupVPN
Addenda 1. Fugas en el DNS, de IPv6 o de WebRTC
Elementos necesarios
1. Obtención de credenciales de Riseup
En esta primera sección vamos a obtener de Riseup:
- Usuario y contraseña para la VPN.
- Certificado CRT.
1.1. Obtención de usuario y contraseña
a. Ingresa a tu cuenta de Riseup.
b. Ve al área Contraseñas > Contraseñas de servicio
.
c. Introduce una nueva contraseña o genérala de manera aleatoria
y haz clic en Guardar
.
d. Guarda en un archivo tu usuario y contraseña desde la terminal:
vim auth.txt
En la primera línea del archivo guardas tu usuario sin @riseup.net
y, en la segunda, tu contraseña.
OJO: para guardar y salir de
vim
teclea dos puntos (:
), luego (x
) y por últimoEnter
.
1.2. Obtención del certificado CRT
e. Descarga el certificado CRT:
wget https://riseup.net/security/network-security/riseup-ca/RiseupCA.pem -O ca.crt
f. Manda las credenciales al router:
scp auth.txt root@192.168.1.1: && scp ca.crt root@192.168.1.1:
OJO: cambia la IP
192.168.1.1
por la de tu router.
Ahora estamos listos para instalar y configurar la VPN.
2. Instalación de OpenVPN
En esta sección instalaremos OpenVPN en el router para usar RiseupVPN.
g. Ingresa al router a través de SSH:
ssh root@192.168.1.1
OJO: cambia la IP
192.168.1.1
por la de tu router.
h. Actualiza la lista de paquetes de OpenWrt:
opkg update
i. Instala OpenVPN y su interfaz web:
opkg install openvpn-openssl luci-app-openvpn
j. Coloca los archivos auth.txt
y ca.crt
en el directorio
adecuado:
mv *.* /etc/openvpn/
Ahora estamos listos para configurar la VPN.
3. Configuración de OpenVPN
En esta sección configuraremos OpenVPN para usar RiseupVPN.
k. Elimina el archivo de configuración de OpenVPN y abre uno nuevo: {.espacio-arriba1 .sin-sangria}
rm /etc/config/openvpn && vim /etc/config/openvpn
l. Pega la siguiente configuración:
config openvpn 'riseup_client'
list remote '198.252.153.226'
list remote 'vpn.riseup.net'
option auth 'SHA256'
option auth_nocache '1'
option auth_user_pass '/etc/openvpn/auth.txt'
option ca '/etc/openvpn/ca.crt'
option cipher 'AES-256-CBC'
option client '1'
option dev 'tun'
option enabled '1'
option nobind '1'
option persist_key '1'
option persist_tun '1'
option port '80'
option proto 'udp'
option remote_cert_tls 'server'
option resolv_retry 'infinite'
option script_security '2'
Ahora estamos listos para configurar la interfaz.
4. Configuración de la interfaz
En esta sección vamos a configurar la interfaz para que RiseupVPN funcione correctamente.
OJO: con probabilidad en este punto o más adelante perderás conexión a internet.
m. Abre la configuración de las interfaces:
vim /etc/config/network
n. Pega la siguiente configuración:
config interface 'vpn'
option proto 'none'
option ifname 'tun0'
option auto '1'
option delegate '0'
Ahora estamos listos para configurar el firewall.
5. Configuración del firewall
En esta sección vamos a configurar el firewall para que RiseupVPN funcione correctamente.
o. Abre la configuración del firewall:
vim /etc/config/firewall
p. Pega la siguiente configuración al final del archivo:
config zone
option name 'vpn'
option forward 'REJECT'
option output 'ACCEPT'
option network 'vpn'
option input 'REJECT'
option masq '1'
option mtu_fix '1'
config forwarding
option dest 'vpn'
option src 'lan'
q. Reinicia el router:
reboot
6. Comprobación de arranque de RiseupVPN
En esta última sección ya deberías de tener la VPN activa. Empecemos a comprobar.
r. Escribe la IP del router en tu explorador para ingresar a la interfaz web de OpenWrt.
OJO: revisa que estés conectado al internet desde el router.
s. Ve a Services > OpenVPN
. {.espacio-arriba1 .sin-sangria}
t. Verifica que en la columna started
de riseup_client
diga
yes
. {.espacio-arriba1 .sin-sangria}
¡Felicidades, ya estás conectado a internet por medio de RiseupVPN configurado en tu router con OpenWrt y OpenVPN!
Últimos retoques
u. Comprueba que estás en internet por medio de RiseupVPN:
traceroute perrotuerto.blog
OJO: puedes escribir cualquier dominio en lugar de perrotuerto.blog.
En los primeros pasos la ruta debería transitar por Riseup.net. Si no es el caso, la VPN no está en funcionamiento.
Otra manera de comprobar es ver la IP de tu dispositivo con ipapi.
v. Reinicia el router si tienes alguno de los siguientes problemas: {.espacio-arriba1 .sin-sangria}
- No tienes internet.
- La VPN no inicia.
- La VPN no funciona.
Automatización
Los pasos seguidos pueden automatizarse. Para ello está el script
install
,
disponible en el directorio sh
del repositorio.
Una vez descargado o copiado, desde el router ejecuta:
sh install.sh [-u usuario] [-p contraseña]
OJO: el usuario y contraseña corresponde a tu cuenta de Riseup. Ve los puntos a—c del tutorial.
Addenda 1. Fugas en el DNS, de IPv6 o de WebRTC
Cualquier conexión a una VPN puede ocasionar fugas que pueden poner en riesgo tu privacidad. Para comprobar si tienes alguna, ve a:
Solución de fugas en el DNS
La configuración recomendada por Riseup incluye un script que
evita las fugas DNS. Sin embargo, este requiere resolvconf
y
al parecer OpenWrt no lo admite. Para solucionar este problema puede
ejecutarse lo siguiente:
uci set dhcp.@dnsmasq[0].noresolv="1" && uci commit dhcp && killall dnsmasq && /etc/init.d/dnsmasq start
Ya debería quedar solucionado. De nuevo comprueba varias veces con DNS leak o IP leak si cuentas con fugas.
Solución de fugas de IPv6
Una solución para evitar fugas de IPv6 es su completa deshabilitación. Para realizarlo, ejecuta:
uci set 'network.lan.ipv6=off' && uci set 'network.wan.ipv6=off' && uci set 'dhcp.lan.dhcpv6=disabled' && /etc/init.d/odhcpd disable && uci commit && killall dnsmasq && /etc/init.d/dnsmasq start
Ya debería quedar solucionado. De nuevo comprueba varias veces con IP leak si cuentas con fugas.
Solución de fugas de WebRTC
Para solucionarlo es necesario deshabilitar WebRTC.
-
Si usas Mozilla Firefox, ve a
about:config
y deshabilitamedia.peerconnection.enabled
. -
Si usas Google Chrome, instala la extensión WebRTC Network Limiter.
Addenda 2. Cambio de DNS
Si buscas una mejor alternativa de DNS al ofrecido por Google u otras entidades, puedes probar con OpenNIC. Para cambiarlo, ejecuta:
uci add_list dhcp.@dnsmasq[-1].server='66.187.76.168' && uci add_list dhcp.@dnsmasq[-1].server='206.189.168.3' && uci add_list dhcp.@dnsmasq[-1].server='172.98.193.42' && uci commit && killall dnsmasq && /etc/init.d/dnsmasq start