As
bridges Tor são um meio eficaz de contornar censura à rede Tor em países e instituições além de adicionarem uma camada a mais de proteção ao anonimato.
O
Docker é ótimo para isso devido principalmente a volatilidade dos contêineres e extrema rapidez com que se cria uma imagem.
O Dockerfile
Crie um diretório em sua máquina onde o Docker estiver rodando.
mkdir MinhaBridge
Entre no diretório:
cd MinhaBridge
Agora com seu editor preferido crie um arquivo "Dockerfile" (exatamente assim com D maiúsculo e é lógico sem as aspas) com o seguinte conteúdo:
FROM alpine:latest
RUN printf "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
apk update && \
apk add --no-cache --purge binutils && \
apk add --no-cache --purge coreutils && \
apk add --no-cache --purge bash && \
apk add --no-cache --purge tor && \
apk add --no-cache --purge torsocks && \
apk add --no-cache --purge obfs4proxy && \
chown -R root.root /var/lib/tor && \
printf "RunAsDaemon 1\nLog notice file /var/log/tor/notices.log\nORPort 127.0.0.1:9090 NoAdvertise\nORPort 9001\nORPort 443 NoListen\nBridgeRelay 1\nServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy\nExtORPort auto\nContactInfo umemailquer@umdominioquelquer.com\nNickname UmApelidoQualquer\n" > /etc/tor/torrc && \
COPY docker-entrypoint.sh /bin
ENTRYPOINT ["docker-entrypoint.sh"]
Na linha: "umemailquer@umdominioquelquer.com\nNickname UmApelidoQualquer" coloque as sua informações.
Agora crie um arquivo chamado "docker-entrypoint.sh" com o seguinte conteúdo:
#!/bin/bash
tor
tail -f /dev/null
Em imagens Docker o entrypoint funciona exatamente como um init.
Feito isso basta agora dar um build para construir sua imagem Docker. Isso dentro do diretório que você criou:
docker build -t MinhaBridgeImage:versao .
Com o "." no final mesmo.
Pronto! Agora é só botar o contêiner para rodar e configurar seu
Tor Browser ou
Tor Router para acessar a rede Tor através dela. Não vou abordar isso pois há farto material sobre o assunto, mas em princípio basta adicionar a bridge em seu torrc em sua máquina local. Ex.:
Bridge 172.17.0.2:9001
Iniciando a Bridge:
docker run -d --rm --name Bridge0 MinhaBridgeImage:versao
Caso deseje acessar o contêiner para modificá-lo podemos fazê-lo com um terminal e bypassando o entrypoint:
docker run -it --rm -name Bridge0 --entrypoint "" MinhaBridgeImage:versao /bin/bash
Nesse caso o contêiner não irá executar o Tor.