From e2aef994e197fc54b69ade5b8968aa94767735c7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 30 Mar 2021 23:14:12 +0000 Subject: [PATCH] updating configuration --- docker-compose.yaml | 5 +++++ openvpn/docker/3pr.cfg | 2 -- openvpn/docker/Dockerfile | 1 + openvpn/docker/generate.py | 14 +++++++------- openvpn/docker/nserver.py | 20 ++++++++++++++++++++ openvpn/docker/run.sh | 1 + openvpn/settings/openvpn.env.sample | 1 + 7 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 openvpn/docker/nserver.py diff --git a/docker-compose.yaml b/docker-compose.yaml index ba046ce..d25d51e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,3 +13,8 @@ services: restart: always volumes: - ./openvpn/settings/conf:/etc/openvpn + logging: + driver: json-file + options: + max-size: "10m" + max-file: "5" diff --git a/openvpn/docker/3pr.cfg b/openvpn/docker/3pr.cfg index 3a68521..124eeaa 100644 --- a/openvpn/docker/3pr.cfg +++ b/openvpn/docker/3pr.cfg @@ -1,7 +1,5 @@ daemon -nserver 10.2.67.10 - auth none log proxy -p9080 diff --git a/openvpn/docker/Dockerfile b/openvpn/docker/Dockerfile index 25c759f..5be666e 100644 --- a/openvpn/docker/Dockerfile +++ b/openvpn/docker/Dockerfile @@ -30,6 +30,7 @@ RUN set -ex \ RUN apk update && apk add python3 curl && pip3 install pyotp ADD run.sh /run.sh ADD generate.py /generate.py +ADD nserver.py /nserver.py ADD 3pr.cfg /3pr.cfg RUN chmod +x /run.sh diff --git a/openvpn/docker/generate.py b/openvpn/docker/generate.py index 8ff2572..cc17897 100644 --- a/openvpn/docker/generate.py +++ b/openvpn/docker/generate.py @@ -5,17 +5,17 @@ user = os.getenv('USERNAME') password = os.getenv('PASSWORD') secret = os.getenv('SECRET') -if user == "": +if user == None: print("USERNAME not specified") - os.exit(-1) + os._exit(-1) -if password == "": +if password == None: print("PASSWORD not specified") - os.exit(-1) + os._exit(-1) -if secret == "": +if secret == None: print("SECRET not specified") - os.exit(-1) + os._exit(-1) totp = pyotp.TOTP(secret) token = totp.now() @@ -25,4 +25,4 @@ f.write("{}\n".format(user)) f.write('{}{}\n'.format(password, token)) f.close() -print("Generated OTP token for user ({}): {}".format(user,token)) \ No newline at end of file +print("Generated OTP token for user ({}): {}".format(user,token)) diff --git a/openvpn/docker/nserver.py b/openvpn/docker/nserver.py new file mode 100644 index 0000000..6d6c4ca --- /dev/null +++ b/openvpn/docker/nserver.py @@ -0,0 +1,20 @@ +import os +import re + +nameserver = os.getenv('NAMESERVER') +if nameserver == None: + print("NAMESERVER not specified, skipping proxy configuration") + os._exit(-1) + +filename = "/3pr.cfg" + +with open(filename, 'r') as file : + filedata = file.read() + +if 'nserver' in filedata: + filedata = re.sub(r'nserver .*', 'nserver {}'.format(nameserver), filedata) +else: + filedata = filedata.replace('daemon', 'daemon\nnserver {}'.format(nameserver)) + +with open(filename, 'w') as file: + file.write(filedata) diff --git a/openvpn/docker/run.sh b/openvpn/docker/run.sh index 324f56e..97ab2b5 100644 --- a/openvpn/docker/run.sh +++ b/openvpn/docker/run.sh @@ -1,4 +1,5 @@ #!/bin/bash +python3 /nserver.py 3proxy /3pr.cfg python3 /generate.py openvpn --config /etc/openvpn/client.ovpn --auth-user-pass /auth.txt diff --git a/openvpn/settings/openvpn.env.sample b/openvpn/settings/openvpn.env.sample index 3f03d8e..996775f 100644 --- a/openvpn/settings/openvpn.env.sample +++ b/openvpn/settings/openvpn.env.sample @@ -1,3 +1,4 @@ USERNAME=xxxxxxxxx PASSWORD=xxxxxxxxx SECRET=xxxxxxxxx +NAMESERVER=xxxxxxxxx