From 83c1b5ce2954a82a6efa700add23768035aa57b7 Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Tue, 6 Oct 2020 18:09:32 -0300 Subject: [PATCH 1/8] Compile tor to ensure latest stable version. --- Dockerfile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 38ee616..f69f18f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,11 +35,20 @@ RUN apt-get update \ && echo "deb-src https://deb.torproject.org/torproject.org buster main" >> /etc/apt/sources.list.d/tor-apt-sources.list \ # Install tor with GeoIP and obfs4proxy & backup torrc \ && apt-get update \ + && apt-get install -y build-essential fakeroot devscripts libcap-dev \ + && apt-get build-dep -y tor \ + && apt-get source tor \ + && cd tor-*/ \ + && debuild -rfakeroot -uc -us \ + && cd .. \ + && dpkg -i tor_*.deb tor-*.deb \ + && tor --version \ + && rm -rf tor-*/ tor_*.deb tor-*.deb \ && apt-get install --no-install-recommends --no-install-suggests -y \ pwgen \ iputils-ping \ - tor \ - tor-geoipdb \ + # tor \ + # tor-geoipdb \ deb.torproject.org-keyring \ && mkdir -pv /usr/local/etc/tor/ \ && mv -v /etc/tor/torrc /usr/local/etc/tor/torrc.sample \ From 9ef78395eb7efbe159a7e0c581aeab608276b1b8 Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Tue, 6 Oct 2020 18:28:07 -0300 Subject: [PATCH 2/8] Update Dockerfile --- Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f69f18f..4502d0a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,8 +35,13 @@ RUN apt-get update \ && echo "deb-src https://deb.torproject.org/torproject.org buster main" >> /etc/apt/sources.list.d/tor-apt-sources.list \ # Install tor with GeoIP and obfs4proxy & backup torrc \ && apt-get update \ - && apt-get install -y build-essential fakeroot devscripts libcap-dev \ - && apt-get build-dep -y tor \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + build-essential \ + fakeroot \ + devscripts \ + libcap-dev \ + && apt-get build-dep --no-install-recommends --no-install-suggests -y \ + tor \ && apt-get source tor \ && cd tor-*/ \ && debuild -rfakeroot -uc -us \ From c9dfa2c91e9437789df6bf2d48f38b0e53832655 Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Tue, 6 Oct 2020 18:35:15 -0300 Subject: [PATCH 3/8] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ddb2839..4f76235 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ docker run -d --init --name=tor-server_relay_1 --net=host \ -e TOR_NICKNAME=Tor4 \ -e CONTACT_EMAIL=tor4@example.org \ -v $PWD/tor-data:/var/lib/tor \ ---restart=always chriswayg/tor-server +--restart=always dbarj/tor-server ``` This command will run a Tor relay server with a safe default configuration (not as an exit node). The server will autostart after restarting the host system. If you do not change the default Nickname 'Tor4', the startup script will add a randomized, pronouncable suffix to create a unique name. All Tor data will be preserved in the mounted Data Directory, even if you upgrade or remove the container. @@ -83,7 +83,7 @@ docker run -d --init --name=tor-server_relay_1 --net=host \ -e CONTACT_EMAIL=tor4@example.org \ -v $PWD/tor-data:/var/lib/tor \ -v $PWD/torrc:/etc/tor/torrc \ ---restart=always chriswayg/tor-server +--restart=always dbarj/tor-server ``` ### Move or upgrade the Tor relay @@ -103,12 +103,12 @@ You can also reuse these identity keys from a previous Tor relay server installa ### Run Tor using docker-compose (recommended) -Adapt the example `docker-compose.yml` with your settings or clone it from [Github](https://github.com/chriswayg/tor-server). +Adapt the example `docker-compose.yml` with your settings or clone it from [Github](https://github.com/dbarj/docker-tor-server). ``` version: '2.2' services: relay: - image: chriswayg/tor-server + image: dbarj/tor-server init: true restart: always network_mode: host @@ -125,7 +125,7 @@ services: - Configure the `docker-compose.yml` and optionally the `torrc` file, with your individual settings. Possibly install `git` first. ``` -cd /opt && git clone https://github.com/chriswayg/tor-server.git && cd tor-server +cd /opt && git clone https://github.com/dbarj/docker-tor-server.git && cd docker-tor-server nano docker-compose.yml ``` From 1e8af41fad39a979c9a05977706c177b0f8a2915 Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Tue, 6 Oct 2020 18:52:56 -0300 Subject: [PATCH 4/8] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9e43cd7..f153502 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '2.2' services: relay: - image: chriswayg/tor-server + image: dbarj/tor-server init: true restart: always network_mode: host From 61060dc3355e447ee97a835d48256583d6613cb7 Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Sat, 10 Apr 2021 10:55:32 -0300 Subject: [PATCH 5/8] tor code will be compiled --- Dockerfile | 32 ++++++++++++++++++-------------- scripts/docker-entrypoint | 3 +++ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4502d0a..c783d05 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN go get -v git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy \ && cp -rv /go/bin /usr/local/ FROM debian:buster-slim -MAINTAINER Christian chriswayg@gmail.com +MAINTAINER RJ dbarj@example.com ARG GPGKEY=A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE="True" @@ -28,12 +28,12 @@ RUN apt-get update \ apt-utils \ gnupg \ curl \ - # Add torproject.org Debian repository for stable Tor version \ +# Add torproject.org Debian repository for buster Tor version && curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import \ && gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add - \ && echo "deb https://deb.torproject.org/torproject.org buster main" > /etc/apt/sources.list.d/tor-apt-sources.list \ && echo "deb-src https://deb.torproject.org/torproject.org buster main" >> /etc/apt/sources.list.d/tor-apt-sources.list \ - # Install tor with GeoIP and obfs4proxy & backup torrc \ +# Install tor with GeoIP and obfs4proxy & backup torrc && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ build-essential \ @@ -42,19 +42,22 @@ RUN apt-get update \ libcap-dev \ && apt-get build-dep --no-install-recommends --no-install-suggests -y \ tor \ + deb.torproject.org-keyring \ + && mkdir tor-install \ + && cd tor-install/ \ && apt-get source tor \ - && cd tor-*/ \ + && cd tor-install/tor-*/ \ && debuild -rfakeroot -uc -us \ - && cd .. \ + && cd tor-install/ \ && dpkg -i tor_*.deb tor-*.deb \ + && rm -rf tor-install/ \ && tor --version \ - && rm -rf tor-*/ tor_*.deb tor-*.deb \ && apt-get install --no-install-recommends --no-install-suggests -y \ pwgen \ iputils-ping \ - # tor \ - # tor-geoipdb \ - deb.torproject.org-keyring \ +# deb.torproject.org-keyring \ +# tor \ +# tor-geoipdb \ && mkdir -pv /usr/local/etc/tor/ \ && mv -v /etc/tor/torrc /usr/local/etc/tor/torrc.sample \ && apt-get purge --auto-remove -y \ @@ -64,9 +67,9 @@ RUN apt-get update \ gnupg \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ - # Rename Debian unprivileged user to tord \ - && usermod -l tord debian-tor \ - && groupmod -n tord debian-tor +# Rename Debian unprivileged user to tord + && usermod -l $TOR_USER debian-tor \ + && groupmod -n $TOR_USER debian-tor # Copy obfs4proxy & meek-server COPY --from=go-build /usr/local/bin/ /usr/local/bin/ @@ -81,7 +84,8 @@ COPY ./scripts/ /usr/local/bin/ VOLUME /etc/tor /var/lib/tor # ORPort, DirPort, SocksPort, ObfsproxyPort, MeekPort -EXPOSE 9001 9030 9050 54444 7002 +# EXPOSE 9001 9030 9050 54444 7002 +EXPOSE 10050 10051 4431 8001 5301 ENTRYPOINT ["docker-entrypoint"] -CMD ["tor", "-f", "/etc/tor/torrc"] +CMD ["tor", "-f", "/etc/tor/torrc"] \ No newline at end of file diff --git a/scripts/docker-entrypoint b/scripts/docker-entrypoint index b978b0b..e32c3b4 100755 --- a/scripts/docker-entrypoint +++ b/scripts/docker-entrypoint @@ -14,6 +14,9 @@ chown -Rv ${TOR_USER}:${TOR_USER} /var/lib/tor chmodd 700 /var/lib/tor chmodf 600 /var/lib/tor +chmodd 700 /var/log/tor +chmodf 600 /var/log/tor + if [ ! -e /tor-config-done ]; then touch /tor-config-done # only run this once From abf7be30e458fa474d02ae1a2d87ca6814c42dcc Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Sat, 10 Apr 2021 11:00:09 -0300 Subject: [PATCH 6/8] Docker build step by step --- Dockerfile_steps.docker | 91 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Dockerfile_steps.docker diff --git a/Dockerfile_steps.docker b/Dockerfile_steps.docker new file mode 100644 index 0000000..2d67a22 --- /dev/null +++ b/Dockerfile_steps.docker @@ -0,0 +1,91 @@ +# Dockerfile for Tor Relay Server with obfs4proxy (Multi-Stage build) +FROM golang:buster AS go-build + +# Build /go/bin/obfs4proxy & /go/bin/meek-server +RUN go get -v git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy +RUN go get -v git.torproject.org/pluggable-transports/meek.git/meek-server +RUN cp -rv /go/bin /usr/local/ + +FROM debian:buster-slim +MAINTAINER RJ dbarj@example.com + +ARG GPGKEY=A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 +ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE="True" +ARG DEBIAN_FRONTEND=noninteractive +ARG found="" + +# Set a default Nickname +ENV TOR_NICKNAME=Tor4 +ENV TOR_USER=tord +ENV TERM=xterm + +# Install prerequisites +RUN apt-get update +RUN apt-get install --no-install-recommends --no-install-suggests -y \ + apt-transport-https \ + ca-certificates \ + dirmngr \ + apt-utils \ + gnupg \ + curl +# Add torproject.org Debian repository for buster Tor version +RUN curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import +RUN gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add - +RUN echo "deb https://deb.torproject.org/torproject.org buster main" > /etc/apt/sources.list.d/tor-apt-sources.list +RUN echo "deb-src https://deb.torproject.org/torproject.org buster main" >> /etc/apt/sources.list.d/tor-apt-sources.list +# Install tor with GeoIP and obfs4proxy & backup torrc +RUN apt-get update +RUN apt-get install --no-install-recommends --no-install-suggests -y \ + build-essential \ + fakeroot \ + devscripts \ + libcap-dev +RUN apt-get build-dep --no-install-recommends --no-install-suggests -y \ + tor \ + deb.torproject.org-keyring +RUN mkdir tor-install +RUN cd tor-install/ +RUN apt-get source tor +RUN cd tor-install/tor-*/ +RUN debuild -rfakeroot -uc -us +RUN cd tor-install/ +RUN dpkg -i tor_*.deb tor-*.deb +RUN rm -rf tor-install/ +RUN tor --version +RUN apt-get install --no-install-recommends --no-install-suggests -y \ + pwgen \ + iputils-ping +# deb.torproject.org-keyring \ +# tor \ +# tor-geoipdb \ +RUN mkdir -pv /usr/local/etc/tor/ +RUN mv -v /etc/tor/torrc /usr/local/etc/tor/torrc.sample +RUN apt-get purge --auto-remove -y \ + apt-transport-https \ + dirmngr \ + apt-utils \ + gnupg +RUN apt-get clean +RUN rm -rf /var/lib/apt/lists/* +# Rename Debian unprivileged user to tord +RUN usermod -l $TOR_USER debian-tor +RUN groupmod -n $TOR_USER debian-tor + +# Copy obfs4proxy & meek-server +COPY --from=go-build /usr/local/bin/ /usr/local/bin/ + +# Copy Tor configuration file +COPY ./torrc /etc/tor/torrc + +# Copy docker-entrypoint +COPY ./scripts/ /usr/local/bin/ + +# Persist data +VOLUME /etc/tor /var/lib/tor + +# ORPort, DirPort, SocksPort, ObfsproxyPort, MeekPort +# EXPOSE 9001 9030 9050 54444 7002 +EXPOSE 10050 10051 4431 8001 5301 + +ENTRYPOINT ["docker-entrypoint"] +CMD ["tor", "-f", "/etc/tor/torrc"] \ No newline at end of file From cb0bc042d2da66833f181381a957f42800d6a2af Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Sun, 11 Apr 2021 11:08:22 -0300 Subject: [PATCH 7/8] Fix URLs --- Dockerfile | 7 ++++--- Dockerfile_steps.docker | 12 +++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index c783d05..84cb7f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM golang:buster AS go-build # Build /go/bin/obfs4proxy & /go/bin/meek-server -RUN go get -v git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy \ +RUN go get -v gitlab.com/yawning/obfs4.git/obfs4proxy \ && go get -v git.torproject.org/pluggable-transports/meek.git/meek-server \ && cp -rv /go/bin /usr/local/ @@ -46,10 +46,11 @@ RUN apt-get update \ && mkdir tor-install \ && cd tor-install/ \ && apt-get source tor \ - && cd tor-install/tor-*/ \ + && cd tor-*/ \ && debuild -rfakeroot -uc -us \ - && cd tor-install/ \ + && cd .. \ && dpkg -i tor_*.deb tor-*.deb \ + && cd .. \ && rm -rf tor-install/ \ && tor --version \ && apt-get install --no-install-recommends --no-install-suggests -y \ diff --git a/Dockerfile_steps.docker b/Dockerfile_steps.docker index 2d67a22..5806c0b 100644 --- a/Dockerfile_steps.docker +++ b/Dockerfile_steps.docker @@ -2,7 +2,7 @@ FROM golang:buster AS go-build # Build /go/bin/obfs4proxy & /go/bin/meek-server -RUN go get -v git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy +RUN go get -v gitlab.com/yawning/obfs4.git/obfs4proxy RUN go get -v git.torproject.org/pluggable-transports/meek.git/meek-server RUN cp -rv /go/bin /usr/local/ @@ -44,12 +44,10 @@ RUN apt-get build-dep --no-install-recommends --no-install-suggests -y \ tor \ deb.torproject.org-keyring RUN mkdir tor-install -RUN cd tor-install/ -RUN apt-get source tor -RUN cd tor-install/tor-*/ -RUN debuild -rfakeroot -uc -us -RUN cd tor-install/ -RUN dpkg -i tor_*.deb tor-*.deb +RUN cd tor-install/ && apt-get source tor +RUN cd tor-install/tor-*/ && debuild -rfakeroot -uc -us +RUN cd tor-install/ && ls -la +RUN cd tor-install/ && dpkg -i tor_*.deb tor-*.deb RUN rm -rf tor-install/ RUN tor --version RUN apt-get install --no-install-recommends --no-install-suggests -y \ From 019eacd8ba9aae01cd90e60da01a69da2e5466b1 Mon Sep 17 00:00:00 2001 From: Rodrigo Jorge Date: Sun, 3 Jul 2022 10:26:24 -0300 Subject: [PATCH 8/8] go get deprecated Changing to go install --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 84cb7f6..0682bd7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,8 @@ FROM golang:buster AS go-build # Build /go/bin/obfs4proxy & /go/bin/meek-server -RUN go get -v gitlab.com/yawning/obfs4.git/obfs4proxy \ - && go get -v git.torproject.org/pluggable-transports/meek.git/meek-server \ +RUN go install -v gitlab.com/yawning/obfs4.git/obfs4proxy@latest \ + && go install -v git.torproject.org/pluggable-transports/meek.git/meek-server@latest \ && cp -rv /go/bin /usr/local/ FROM debian:buster-slim