Snowflake Proxy es un sistema que ayuda a la gente de todo el mundo a acceder a sitios, páginas o aplicaciones web que estan bloqueados y no se pueden acceder con una conexión normal de internet. Recientemente, por ejemplo, en Irán, debido a las revueltas y protestas civiles, el gobierno ha decidido bloquear el acceso a Twitter, Facebook, y otras redes sociales o sitios que ese pais piensa pueden ser usados por la gente para reclamar o expresarse sobre el tema. Afortunadamente con TOR, podemos evitar estos bloqueos, sin embargo, debido a que los nodos de TOR tambien pudieran estar inaccesibles, podemos usar un Snowflake Proxy como bridge o puente para poder hacer conexión con la red TOR. Cabe aclarar que un Snowflake Proxy, asi como toda la Red TOR, es operado por voluntarios de todo el mundo, y nosotros o cualquiera, podemos aportar un poco de ancho de banda.
En Fedora 37 instalamos los paquetes necesarios:
sudo dnf install -y podman podman-docker docker-compose
Habilitamos, activamos y verificamos el status de podman.socket, sin permisos de root:
systemctl --user enable podman.socket
systemctl --user start podman.socket
systemctl --user status podman.socket
Como vamos a usar docker compose para crear la imagen del contenedor, hay que decirle a docker compose con que socket debe hablar para comunicarse con Podman:
export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
Podemos guardar la variable $DOCKER_HOST en nuestro .bashrc, para hacer que sea persistente en nuestro sistema.
Descargamos el docker-compose.yml oficial desde aqui: https://community.torproject.org/relay/setup/snowflake/standalone/
Podemos modificar el yml para que sea mas verbose, y envie registros en el log más a menudo, y ver como se comporta el proxy, en este caso configuré para que nos diga en los ultimos 10 minutos cuantas conexiones hubo:
version: "3.8"
services:
snowflake-proxy:
image: thetorproject/snowflake-proxy:latest
network_mode: host
container_name: snowflake-proxy
pull_policy: always
restart: unless-stopped
command: ["-verbose", "-unsafe-logging", "-summary-interval", "10m"]
Corremos el contenedor con:
docker-compose up -d
Y vemos el registro:
podman logs -f snowflake-proxy
Despues de unos minutos podemos ver como empieza a haber conexiones:
Hasta el momento tengo dos Proxy’s corriendo, en espera de que sea útil para personas de todos lados del mundo mundial.
Gracias a: https://blog.veloc1ty.de/2022/09/28-running-tor-snowflake-proxy-in-docker/ , https://fedoramagazine.org/use-docker-compose-with-podman-to-orchestrate-containers-on-fedora/