579 - Proxy y VPN propios para Telegram

579 - Proxy y VPN propios para Telegram

configura #telegram con un #proxy #socks5 o #mtproxy o utilizando una #vpn para utilizarlo en cualquier circunstancia, para levantar tu proxy con #docker

1:25
-3:15

Como seguro que ya sabes, y has oído en multitud de medios, hace unos días un juez ordenó bloquear Telegram en España, de forma cautelar, a raíz de una denuncia de varias plataformas multimedia. Esto de que se bloquee Telegram no es algo nuevo en otros países, aunque si en España. Así que desde hace tiempo, Telegram, incorporó dentro de la misma aplicación opciones para poder evadir estas bloqueos. Así, en este episodio del podcast te cuento las opciones que tienes y las que yo he implementado.

Proxy y VPN propios para Telegram

Sobre la medida

Como ya comenté ayer mismo en el podcast de [Ubuntu y otras hierbas](), hay algo que se me escapa en todo esto. Básicamente, como puede ser que prevalezca la propiedad intelectual frente al derecho a la información y la libertad de expresión.

Pero no solo esto, estamos hablando de algunas plataformas multimedia frente a millones de usuarios. Es decir, entiendo que se está anteponiendo el derecho de unos pocos frente al derecho de todos.

Simplemente es hacer una reflexión sobre este aspecto, sin entrar en mas cuestiones.

Soberanía digital

Hace ya mucho tiempo que la soberanía digital entró a formar parte de mi vida. En este sentido, tengo alojados diferentes servicios en un servidor virtual, que casualmente está fuera de España. Aquí es una casualidad que esté fuera de España, pero tal y como está el asunto, lo cierto es que tiene todo el sentido del mundo.

En ese servidor virtual, tengo alojados diferentes servicios, que mantengo yo mismo. Como puede ser mi propio servicio de mensajería, Matrix, o una VPN, mi propio servicio de control de versiones, servicios de notas, y mucho mas. Y ahora también un proxy socks5.

Soy consciente de que esto de tener tus propios servicios representa un coste y un esfuerzo personal, en tanto en cuanto hay que mantenerlo. Pero, en situaciones como la que nos encontramos es cuando te das cuenta de lo importante que es tu soberanía digital.

Opciones

En este caso te traigo varias opciones para poder seguir utilizando Telegram a pesar de este bloqueo. Estas opciones tratan de lo mismo, es decir, de aparentar que estas en otro lugar, con lo que escapas completamente a este bloqueo. Una de las opciones es para todo tu sistema de comunicación, mientras que la otra opción es exclusiva para Telegram.

VPN

La primera de las opciones es utilizar una VPN que te permita conectarte como si estuvieras en otro país. En este caso, cuando te conectas a esa VPN lo haces para todo el móvil o el ordenador. Con lo que aparentemente estarás navegando desde otro país.

En mi caso utilizo WireGuard como VPN, aunque lo hago de forma puntual y en ocasiones concretas. No es algo generalizado.

Por supuesto, también puedes utilizar una VPN de un tercero, pero esto tiene el inconveniente de que sabe por donde estás navegando, y esto, a mi no me gusta lo más mínimo. Pero, por supuesto es una opción.

Proxy

Como decía, esto del bloqueo de Telegram no es nuevo, y en ese sentido, tiene habilitado la posibilidad de conectar mediante proxy. Y además te ofrece dos posibilidades. Por un lado socks5 y por otro mtproxy.

Pero no solo Telegram puede hacer uso de un proxy. Por ejemplo, en el caso de Firefox, tienes FoxyProxy, que te permite utilizar uno varios proxies.

MTProxy

MTProxy es un proxy implementado por los desarrolladores de Telegram que hace de intermediario entre tu cliente y Telegram. Básicamente se trata de una herramienta pensada para eludir las restricciones.

Este proxy funciona solo con Telegram, y tiene algunas características específicas, como las siguientes,

  • para contectarse, en lugar de iniciar sesión y una constraseña solo usa una contraseña.
  • El tráfico es similar a otro tráfico que puedes encontrar.
  • La contraseá no se transmite al servidor cuanto estás contectado.
  • El tráfico está cifrado

En concreto para MTProxy, he utilizado el siguiente docker-compose.yml,

version: "3.7"
services:
  mtproxy:
    image: ghcr.io/dofamin/mtproxy-docker:main
    init: true
    container_name: mtproxy
    environment:
      - MTPROTO_REPO_URL
      - SECRET
      - WORKERS
      - TZ
    ports:
      - 8388:8889

`` Y estas variables están configuradas en un archivo.env`. Para mas información te recomiendo le des un vistazo al repositorio de GitHub.

Socks5

En el caso de Socks5, que es la opción por la que me he decantado, simplemente, porque finalmente he utilizado el que está implementado en Rust y he podido personalizarlo a mi gusto. Pero lo cierto es que he probado dos, uno implementado en Go y, el que estoy utilizando implementado en Rust.

go-socks5-proxy

Se trata de un simple servidor socks5 con autenticación, que permite tanto el filtrado de destinos tanto por ip como por fqdn. En mi caso, no he probado la parte del firltrado porque realmente no me interesa, pero si que he estado probando el funcionamiento con Telegram y lo cierto es que es realmente sencillo.

A continuación te indico el docker-compose.yml que estoy utilizando, aunque te recomiendo que le des un vistazo al repositorio de GitHub para que veas su configuración con detalle,

version: "3.7"

services:
  socks5:
    image: serjs/go-socks5-proxy
    init: true
    container_name: socks5
    environment:
      - PROXY_USER
      - PROXY_PASSWORD
      - PROXY_PORT
    volumes:
      - ./config.json:/etc/shadowsocks-rust/config.json
    ports:
      - "8388:8388"

El puerto lo he configurado, porque es el que ya tengo abierto para esto, y no quería complicarme la vida. Sin embargo, elige el que tu consideres, pero recuerda que tienes que abrir el Firewall, para poder utilizarlo.

merino

En este caso no se trata de la versión orginal, sino que es una versión modificada sobre la que actualmente estoy haciendo algunas pruebas, pruebas, y en el que sigo trabajando, porque a partir del de Go, se me han ido ocurriendo algunas cuestiones interesantes, y que voy a implementar.

En concreto este te permite definir varios usuarios y contraseñas, con lo que puedes controlar quien puede acceder y quien no a este servicio. Además puedes configurar el puerto de conexión así como otros detalles como puedes ver en el docker-compose.yml, que indico a continuación,

ersion: "3.7"

services:
  merino:
    image: atareao/merino:latest
    container_name: merino
    init: true
    environment:
      IP: "0.0.0.0"
      PORT: "8388"
      #NO_AUTH: true
      RUST_LOG: TRACE
      TZ: Europe/Madrid
    ports:
      - "8388:8388"
    volumes:
      - ./config.yml:/app/config.yml

Y el archivo de configuración es tan sencillo como el que te muestro a continuación,

users:
  - username: username
    password: password
    active: true
  - username: username1
    password: password1
    active: true
  - username: username2
    password: password2
    active: false
fqdns:
  - addr: www.google.es
    active: true
  - addr: www.google.com
    active: true

Los users son los usuarios que pueden acceder y las fqdns son las que puedes restringir. Por supuesto que el active es para indicar si está activo un usurario o una fqdn respectivamente.

En cualquier caso te recomiendo que visites el GitHub del fork de merino para que veas exactamente como lo tienes que configurar, y poner en marcha.


Más información,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *