From 0a40e8487cb9e1ce4c21fbd6ba84ea5044a0db45 Mon Sep 17 00:00:00 2001 From: maride Date: Wed, 22 Aug 2018 20:38:57 +0200 Subject: Generate config file and host it on a local port --- Dockerfile | 6 +++++- chainloader.sh | 22 ++++++++++------------ host.go | 17 +++++++++++++++++ 3 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 host.go diff --git a/Dockerfile b/Dockerfile index c9532aa..2330bd5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.8 +FROM golang:alpine # Set up workdir RUN mkdir -p /prod/persist @@ -16,6 +16,10 @@ RUN chmod +x /prod/chainloader.sh COPY server.conf /prod/server.conf COPY client.conf /prod/client.conf +# Copy client config host code and compile it +COPY host.go /tmp/host.go +RUN go build -o /prod/confhost /tmp/host.go + # Create jail user # (We're dropping it to this user in the chainloader script) RUN adduser -u 1337 -D jail diff --git a/chainloader.sh b/chainloader.sh index 15fee02..98558b2 100644 --- a/chainloader.sh +++ b/chainloader.sh @@ -1,17 +1,15 @@ #!/bin/sh -if [ "$action" == "generate" ]; then - # Generate PSK - openvpn --genkey --secret /prod/persist/static.key +# Generate PSK +openvpn --genkey --secret /prod/persist/static.key - # Generate client.conf - cat /prod/client.conf - echo "" - cat /prod/persist/static.key - echo "" -fi +# Generate client.conf +cat /prod/client.conf > /tmp/client.conf +echo "" >> /tmp/client.conf +cat /prod/persist/static.key >> /tmp/client.conf +echo "" >> /tmp/client.conf -if [ "$action" == "run" ]; then - openvpn --config /prod/server.conf -fi +./confhost & + +openvpn --config /prod/server.conf diff --git a/host.go b/host.go new file mode 100644 index 0000000..9f98607 --- /dev/null +++ b/host.go @@ -0,0 +1,17 @@ +package main + +import ( + "net/http" + "io/ioutil" +) + +func main() { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + content, error := ioutil.ReadFile("/tmp/client.conf") + if error == nil { + w.Write(content) + } + }) + http.ListenAndServe(":9999", mux) +} \ No newline at end of file -- cgit 1.4.1