Telegram Messenger tiene soporte para diferentes tipos de servidores proxy: un servidor proxy SOCKS5 estándar y un servidor proxy MTProto.
En este tutorial aprenderemos a construir un servidor proxy SOCKS5. Este estilo de proxy puede ayudarte a evitar la censura en ciertos países.
A continuación aprenderemos a crear un servidor proxy SOCKS5 que implemente el protocolo TLS falso en el mismo host que el servidor web.
Si prefieres montar un servidor con MTProto, puedes hacerlo en el siguiente tutorial:
Requisitos básicos
Para hacer este tutorial necesitaremos un servidor cloud o VPS que disponga de IP de un país el cual Telegram no se encuentre bloqueado.
Este tutorial lo realizaremos con Debian 12, pero se puede usar con diferentes distribuciones de GNU/Linux basadas en Debian.
Necesitaremos también acceso root
completo por SSH.
Paso 1: Conectarse al servidor
Lo primero que haremos será conectarnos al servidor. Para ello usaremos SSH y el usuario root
. Para conectarnos ejecutaremos lo siguiente:
ssh root@[IP_SERVIDOR]
Con esto, después de introducir la contraseña, ya estaremos conectados al servidor.
root@proxy:~#
Paso 2: Configurar el Firewall de tu servidor
Muchos proveedores de servidores disponen de un Firewall, en este cortafuegos tendremos que configurarlo de manera que tengamos los siguientes puertos habilitados:
Puerto | Uso |
---|---|
22/tcp | Acceso SSH, puedes configurar otro si quieres |
8443/tcp | Acceso SOCKS5 |
Paso 3: Instalación y configuración de Dante Server
Dante Server es un servidor de SOCKS5 que permite configurar todo lo necesario para utilizarlo en Telegram.
apt install dante-server
Eliminamos el contenido del fichero /etc/danted.conf
y añadimos el siguiente:
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
internal: 0.0.0.0 port = 8443
external: eth0
socksmethod: username
clientmethod: none
user.libwrap: nobody
client pass {
from: 0/0 to: 0/0
log: connect disconnect error
}
socks pass {
from: 0/0 to: 0/0
log: connect disconnect error
}
internal
podremos habilitar el puerto que necesitemos, en este caso, usaremos el puerto 8443.external
deberemos de poner la interfaz de red que queremos usar. Por lo general suele ser eth0
pero puedes comprobar cual es tu interfaz con el comando ip a
.Ahora tendremos que configurar un usuario que usaremos para conectarnos al Proxy:
useradd --shell /usr/sbin/nologin proxyuser
Y le añadimos una contraseña segura:
passwd proxyuser
proxyuser
pero puedes crear los usuarios que necesites con el nombre que quieras. Eso si, una contraseña segura siempre! 😺Una vez tenemos nuestro fichero de configuración a nuestro gusto, lo guardamos y reiniciamos el servicio:
systemctl restart danted
systemctl enable danted
Podemos comprobar que está escuchando correctamente con:
# ss -tulpn | grep 443
tcp LISTEN 0 511 0.0.0.0:8443 0.0.0.0:* users (("danted",pid=14977,fd=8))
Paso 4: Generando la configuración del Proxy
Ahora tenemos que construir la URL para configurar el Proxy directamente en Telegram. La estructura de este comando tiene que ser como esto:
# CON HTTPS:
https://t.me/socks?server=[IP_SERVIDOR]&port=[PUERTO]&user=[USUARIO]&pass=[CONTRASEÑA]
# CON TELEGRAM:
tg://socks?server=[IP_SERVIDOR]&port=[PUERTO]&user=[USUARIO]&pass=[CONTRASEÑA]
Deberemos de rellenar los campos de la siguiente forma:
- IP_SERVIDOR: La IP pública de nuestro servidor
- PUERTO: El puerto que hayamos habilitado en el fichero de configuración, en este tutorial hemos usado el 8443.
- USUARIO: El nombre de usuario que hayamos creado.
- CONTRASEÑA: La contraseña del usuario.
Paso 5: Probando que funciona [Opcional]
Para comprobar que funciona correctamente el Proxy, podemos hacerlo probando con curl
, una herramienta genial.
curl -I socks5://proxyuser:[CONTRASEÑA]@[IP_SERVIDOR]:8443 https://voidnull.es
Este comando obtendremos la siguiente respuesta:
HTTP/2 200
server: nginx/1.18.0
date: Sun, 24 Mar 2024 21:26:11 GMT
content-type: text/html; charset=utf-8
vary: Accept-Encoding
x-powered-by: Express
cache-control: public, max-age=0
etag: W/"12097-ohz7TsFboSPpJzHDxRkuUR91EMU"
vary: Accept-Encoding
x-varnish: 5345170
age: 0
via: 1.1 varnish (Varnish/6.5)
accept-ranges: bytes
access-control-allow-origin: *
access-control-allow-credentials: true
content-security-policy: upgrade-insecure-requests;
Veremos que la respuesta HTTP/2
es con el código de salida 200
, lo que significa que la respuesta es correcta.
Paso 6: Conectarse al Proxy desde Telegram
Ahora desde nuestro dispositivo tenemos que abrir la URL que hemos generado para HTTP o TG y abrirla con Telegram:
Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.
Comentarios