b113da5d19
Using "--no-cache-dir" flag in pip install ,make sure dowloaded packages by pip don't cached on system . This is a best practise which make sure to fetch ftom repo instead of using local cached one . Further , in case of Docker Containers , by restricing caching , we can reduce image size. In term of stats , it depends upon the number of python packages multiplied by their respective size . e.g for heavy packages with a lot of dependencies it reduce a lot by don't caching pip packages. Further , more detail information can be found at https://medium.com/sciforce/strategies-of-docker-images-optimization-2ca9cc5719b6 Signed-off-by: Pratik Raj <rajpratik71@gmail.com> |
||
---|---|---|
.. | ||
arm | ||
docker-compose.yml | ||
Dockerfile | ||
Dockerfile.debian | ||
README.md |
OpenVPN over Obfsproxy
Obfsproxy
is a pluggable transport proxy written in python.
It provides several obfuscation method. I consider scramblesuit
the best.
I will update this image if there's better one.
scramblesuit
can transport any application that supports SOCKS.
This includes Tor
, VPN
, SSH
, and many other protocols.
We can transport OpenVPN
over Obfsproxy
, so that firewall cannot detect it.
In the following example, you should run vimagick/openvpn
container first.
Don't forget to edit /etc/openvpn/openvpn.conf
to use proto tcp
.
docker-compose.yml
data:
image: busybox
volumes:
- /etc/openvpn
server:
image: vimagick/openvpn
ports:
- "1194:1194/tcp"
volumes_from:
- data
cap_add:
- NET_ADMIN
restart: always
obfsproxy:
image: vimagick/obfsproxy
ports:
- "4911:4911"
links:
- server:openvpn
environment:
- PASSWORD=J23TNHPJPAOQJLTCPLFD4CQYVFY6MEVP
- DEST_ADDR=openvpn
- DEST_PORT=1194
- LISTEN_ADDR=0.0.0.0
- LISTEN_PORT=4911
restart: always
To link a existing openvpn
container, please use external_links
instead of links
.
obfsproxy:
image: vimagick/obfsproxy
ports:
- "4911:4911"
external_links:
- openvpn_server_1:openvpn
environment:
- PASSWORD=J23TNHPJPAOQJLTCPLFD4CQYVFY6MEVP
- DEST_ADDR=openvpn
- DEST_PORT=1194
- LISTEN_ADDR=0.0.0.0
- LISTEN_PORT=4911
restart: always
The default run mode is server
. You can also run container in client
mode.
The following example shows us how to make a OpenVPN relay:
obfsproxy:
image: vimagick/obfsproxy
ports:
- "1194:1194/tcp"
environment:
- PASSWORD=J23TNHPJPAOQJLTCPLFD4CQYVFY6MEVP
- DEST_ADDR=vpn.easypi.info
- DEST_PORT=4911
- RUN_MODE=client
- LISTEN_ADDR=0.0.0.0
- LISTEN_PORT=1194
restart: always
The password should be encoded by Base32 with fixed length.
You can generate one via this command:
python -c 'import base64, os; print base64.b32encode(os.urandom(20))'
Note: There's no ports exposed in Dockerfile. You need to expose port explicitly.