Browse Source

obfs4 bridge -> tor test

Fabian Peter Hammerle 4 years ago
parent
commit
0fea6378df
8 changed files with 35 additions and 84 deletions
  1. 7 11
      CHANGELOG.md
  2. 9 10
      Dockerfile
  3. 4 16
      README.md
  4. 0 19
      ansible-playbook.yml
  5. 10 0
      docker-compose.yml
  6. 0 15
      entrypoint.sh
  7. 5 0
      torrc
  8. 0 13
      torrc.template

+ 7 - 11
CHANGELOG.md

@@ -6,15 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 ### Added
-- Changelog
-- apk add: pinned versions of tor & obfs4proxy
+- alpine
+- tor
+  - socks proxy
+  - obfs4proxy client
+  - docs / man pages
+- `docker-compose.yml`
 
-### Fixed
-- ansible-playbook: fixed invalid keyword
-
-## [0.1.0] - 2019-08-30
-### Added
-- Tor bridge running obfs4 obfuscation proxy in Alpine
-
-[Unreleased]: https://github.com/fphammerle/docker-tor-obfs4-bridge/compare/0.1.0...HEAD
-[0.1.0]: https://github.com/fphammerle/docker-tor-obfs4-bridge/releases/tag/0.1.0
+[Unreleased]: https://git.hammerle.me/fphammerle/docker-tor-test

+ 9 - 10
Dockerfile

@@ -2,20 +2,19 @@
 FROM alpine:3.10
 
 RUN adduser -S onion \
-    && apk add --no-cache tor=~0.3.5.8 \
+    && apk add --no-cache \
+        less \
+        man \
+        tor-doc \
+        tor=~0.3.5.8 \
     && apk add --no-cache obfs4proxy=~0.0.7 \
         --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing
 
-ENV OR_PORT=
-ENV PT_PORT=
-ENV CONTACT_INFO=
-COPY torrc.template /
-RUN chmod a+r /torrc.template
+ENV PAGER=less
 
-COPY entrypoint.sh /
-RUN chmod a+rx /entrypoint.sh
-ENTRYPOINT ["/entrypoint.sh"]
+COPY --chown=onion:nobody torrc /etc/tor/torrc
 
 USER onion
 
-CMD ["tor", "-f", "/tmp/torrc"]
+EXPOSE 9050/tcp
+CMD ["tor"]

+ 4 - 16
README.md

@@ -1,23 +1,11 @@
-# docker: tor obfs4 bridge 🐳
+# docker: tor test 🐳
 
-Tor bridge running obfs4 obfuscation protocol in Alpine
+simple container to test tor setup
 
-Alpine port of https://dip.torproject.org/torproject/anti-censorship/docker-obfs4-bridge
+contains tor including docs and obfs4proxy
 
 ## usage
 
-select a random `$OR_PORT` and `$PT_PORT`
-
-(see `/proc/sys/net/ipv4/ip_local_port_range` for range)
-
 ```sh
-docker run --name tor_obfs4_bridge \
-    -e OR_PORT=42218 -p 42218:42218 \
-    -e PT_PORT=51804 -p 51804:51804 \
-    -e CONTACT_INFO=admin@optional.com \
-    fphammerle/tor-obfs4-bridge
+docker run --name tor_test -p localhost:9050:9050 fphammerle/tor-test
 ```
-
-## further reading
-
-https://community.torproject.org/relay/setup/bridge/

+ 0 - 19
ansible-playbook.yml

@@ -1,19 +0,0 @@
-- hosts: [some-host]
-  become: true
-  vars:
-    or_port: 42218 # random
-    pt_port: 51804 # random
-    contact_info: admin@optional.com
-  tasks:
-  - docker_container:
-      name: tor_obfs4_bridge
-      image: fphammerle/tor-obfs4-bridge@sha256:80bd5004b44abb91f6c6385bd46fb5fe18d6baf6f5717253e2fa0b7cd8d52b5e
-      env:
-        OR_PORT: '{{ or_port }}'
-        PT_PORT: '{{ pt_port }}'
-        CONTACT_INFO: '{{ contact_info }}'
-      ports:
-      - '{{ or_port }}:{{ or_port }}'
-      - '{{ pt_port }}:{{ pt_port }}'
-      memory: 128M
-      restart_policy: unless-stopped

+ 10 - 0
docker-compose.yml

@@ -0,0 +1,10 @@
+version: '3'
+
+services:
+  tor:
+    build: .
+    image: fphammerle/tor-test
+    ports: ['127.0.0.1:9050:9050']
+    security_opt: [no-new-privileges]
+
+# https://docs.docker.com/compose/compose-file/compose-file-v3/

+ 0 - 15
entrypoint.sh

@@ -1,15 +0,0 @@
-#!/bin/sh
-
-set -e
-
-[ -z "$OR_PORT" ] && echo '$OR_PORT undefined' && exit 1
-[ -z "$PT_PORT" ] && echo '$PT_PORT undefined' && exit 1
-
-set -x
-
-sed -e "s#{OR_PORT}#$OR_PORT#" \
-    -e "s#{PT_PORT}#$PT_PORT#" \
-    -e "s#{CONTACT_INFO}#$CONTACT_INFO#" \
-    /torrc.template >/tmp/torrc
-
-exec "$@"

+ 5 - 0
torrc

@@ -0,0 +1,5 @@
+Log notice stdout
+
+SOCKSPort 0.0.0.0:9050
+
+ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

+ 0 - 13
torrc.template

@@ -1,13 +0,0 @@
-Log notice stdout
-
-# disable socks proxy
-SOCKSPort 0
-
-BridgeRelay 1
-ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
-ExtORPort auto
-ORPort {OR_PORT}
-ServerTransportListenAddr obfs4 0.0.0.0:{PT_PORT}
-
-Nickname FPHmmrleObfs4Bridge
-ContactInfo {CONTACT_INFO}