commit 0f56065a905ed13ddcf2419e2e938a0ba763db02 Author: Jerome Petazzoni Date: Mon Sep 2 23:46:19 2013 +0000 Docker can haz VPN nao! diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6a2ee12 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM ubuntu:precise +RUN echo deb http://archive.ubuntu.com/ubuntu/ precise main universe > /etc/apt/sources.list.d/precise.list +RUN apt-get update -q +RUN apt-get install -qy openvpn iptables socat curl +ADD ./bin /usr/local/sbin +VOLUME /etc/openvpn +EXPOSE 443/tcp 1194/udp 8080/tcp +CMD run diff --git a/bin/run b/bin/run new file mode 100755 index 0000000..a34b870 --- /dev/null +++ b/bin/run @@ -0,0 +1,96 @@ +#!/bin/sh +set -e + +[ -d /dev/net ] || + mkdir -p /dev/net +[ -c /dev/net/tun ] || + mknod /dev/net/tun c 10 200 + +cd /etc/openvpn +[ -f dh.pem ] || + openssl dhparam -out dh.pem 512 +[ -f key.pem ] || + openssl genrsa -out key.pem 2048 +chmod 600 key.pem +[ -f csr.pem ] || + openssl req -new -key key.pem -out csr.pem -subj /CN=OpenVPN/ +[ -f cert.pem ] || + openssl x509 -req -in csr.pem -out cert.pem -signkey key.pem -days 36525 + +[ -f tcp443.conf ] || cat >tcp443.conf <udp1194.conf <client.ovpn < +`cat key.pem` + + +`cat cert.pem` + + +`cat cert.pem` + + +`cat dh.pem` + + + +remote `curl -s http://myip.enix.org/REMOTE_ADDR` 1194 udp + + + +remote `curl -s http://myip.enix.org/REMOTE_ADDR` 443 tcp-client + +EOF + +[ -f client.http ] || cat >client.http <> tcp443.log & +while true ; do openvpn udp1194.conf ; done >> udp1194.log & +tail -F *.log diff --git a/bin/serveconfig b/bin/serveconfig new file mode 100755 index 0000000..b564071 --- /dev/null +++ b/bin/serveconfig @@ -0,0 +1,10 @@ +#!/bin/sh +cd /etc/openvpn + +[ -f client.http ] || { + echo "Please run the OpenVPN container at least once in normal mode," + echo "to generate the client configuration file. Thank you." + exit 1 +} + +socat TCP-LISTEN:8080,reuseaddr - < client.http >> http8080.log