summaryrefslogtreecommitdiff
path: root/images
diff options
context:
space:
mode:
authorAnjan Nath <kaludios@gmail.com>2022-06-05 21:04:23 +0530
committeratanarjuat <atanarjuat@example.com>2022-07-28 02:03:12 -0400
commit32f4b22dd1dc01c9f7d3948c058955eadbd65e5c (patch)
treeeeac1b170253a95be0ea46d6ee4b38ca1a6c3c2a /images
parent96de18df48af86b301c1323f50312e46c6802505 (diff)
add obfsvpn client dockerfile for use in integration test
Diffstat (limited to 'images')
-rw-r--r--images/obfsvpn-client/Dockerfile26
-rwxr-xr-ximages/obfsvpn-client/start.sh16
-rw-r--r--images/obfsvpn/scripts/functions.sh3
3 files changed, 45 insertions, 0 deletions
diff --git a/images/obfsvpn-client/Dockerfile b/images/obfsvpn-client/Dockerfile
new file mode 100644
index 0000000..d1c5b16
--- /dev/null
+++ b/images/obfsvpn-client/Dockerfile
@@ -0,0 +1,26 @@
+FROM golang:1.17 AS builder
+
+ENV SOURCE_PATH ${GOPATH}/src/0xacab.org/leap/obfsvpn
+COPY . ${SOURCE_PATH}/
+WORKDIR ${SOURCE_PATH}
+RUN make build-client && cp obfsvpn-client /obfsvpn-client
+
+
+FROM alpine:3.14.1
+
+ENV OBFS4_CERT "8nuAbPJwFrKc/29KcCfL5LBuEWxQrjBASYXdUbwcm9d9pKseGK4r2Tg47e23+t6WghxGGw"
+# copy obfsvpn-client from builder
+COPY --from=builder /obfsvpn-client /usr/bin/
+# Install openvpn
+RUN apk --no-cache --no-progress upgrade && \
+ apk --no-cache --no-progress add bash curl ip6tables iptables openvpn \
+ shadow dumb-init tzdata && \
+ addgroup -S vpn && \
+ rm -rf /tmp/*
+
+COPY images/obfsvpn-client/start.sh /usr/bin/
+
+VOLUME ["/vpn"]
+
+ENTRYPOINT ["dumb-init", "/usr/bin/start.sh"]
+
diff --git a/images/obfsvpn-client/start.sh b/images/obfsvpn-client/start.sh
new file mode 100755
index 0000000..44fa013
--- /dev/null
+++ b/images/obfsvpn-client/start.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# start the obfsvpn-client
+/usr/bin/obfsvpn-client -c "$OBFS4_CERT" &
+
+# use the server container name as remote
+if [ -z "$OBFS4_ENDPOINT" ]; then
+ sed -i "s/(^remote) .* ([[:digit:]])/\1 obfsvpn-server \2/1" \
+ /vpn/client.ovpn
+fi
+openvpn --config /vpn/client.ovpn --socks-proxy localhost 8080 &
+
+ping -c5 10.8.0.1
+
+exit $?
+
diff --git a/images/obfsvpn/scripts/functions.sh b/images/obfsvpn/scripts/functions.sh
index f00ac38..585615b 100644
--- a/images/obfsvpn/scripts/functions.sh
+++ b/images/obfsvpn/scripts/functions.sh
@@ -29,6 +29,9 @@ function createConfig() {
cd "$APP_INSTALL_PATH"
cp config/client.ovpn $CLIENT_PATH
+ # dirty hack: copy client config to root of APP_PERSIST_DIR
+ # for reusing in the obfsvpn-client container
+ cp config/client.ovpn "$APP_PERSIST_DIR/"
echo -e "\nremote $HOST_ADDR $PORT" >> "$CLIENT_PATH/client.ovpn"