HackLab

⠠⠵ Laboratorio autónomo de experimentación y producción colaborativa

RiseupVPN en OpenWrt con OpenVPN


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

Elementos necesarios

1. Obtención de credenciales de Riseup

2. Instalación de OpenVPN

3. Configuración de OpenVPN

4. Configuración de la interfaz

5. Configuración del firewall

6. Comprobación de arranque de RiseupVPN

Últimos retoques

Automatización

Addenda 1. Fugas en el DNS, de IPv6 o de WebRTC

Addenda 2. Cambio de DNS

Recursos

Elementos necesarios

1. Obtención de credenciales de Riseup

En esta primera sección vamos a obtener de Riseup:

  1. Usuario y contraseña para la VPN.
  2. Certificado CRT.

1.1. Obtención de usuario y contraseña

a. Ingresa a tu cuenta de Riseup.

Portal de cuentas de Riseup.

b. Ve al área Contraseñas > Contraseñas de servicio.

Panel de 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.

Ejemplo del archivo auth.txt.

OJO: para guardar y salir de vim teclea dos puntos (:), luego (x) y por último Enter.

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.

Portal de ingreso de OpenWrt.

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}

RiseupVPN activado en OpenWrt con OpenVPN.

¡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.

Ejemplo de traceroute donde el tercer paso explicita el tránsito por RiseupVPN.

Otra manera de comprobar es ver la IP de tu dispositivo con ipapi.

Portal de ipapi donde se explicita el uso de RiseupVPN.

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 deshabilita media.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

Recursos