From 71a83c880fba5a3d0552b66a30ad8b3911f4f6a0 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 28 May 2022 07:32:54 +0000 Subject: [PATCH] make proxy --- README.md | 3 ++- docker-compose.yaml | 2 +- openvpn/docker/Dockerfile | 2 +- openvpn/docker/nserver.py | 4 ++++ openvpn/settings/openvpn.env.sample | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 38a4e08..b5d282b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ This tool can help you with over-private companies vpn servers. It can authomatically authentificate via 'password+otp pin' schema and provide proxy access to VPN network. ### Configuration -Please specify your username, password and secret token in openvpn/settings/openvpn.env (you can use openvpn.env.sample) +Please specify your username, password and secret token in openvpn/settings/openvpn.env (you can use openvpn.env.sample) +Also you can specify proxy password for authentification, username is 'admin'. ### Definitions Openvpn configuration file must be named 'client.ovpn' in 'openvpn/settings/conf/' directory. diff --git a/docker-compose.yaml b/docker-compose.yaml index f45be80..484dcfe 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,7 +13,7 @@ services: - "/dev/net/tun:/dev/net/tun" restart: always volumes: - - ./openvpn/settings/conf:/etc/openvpn + - ./openvpn/settings/conf:/etc/openvpn:ro logging: driver: json-file options: diff --git a/openvpn/docker/Dockerfile b/openvpn/docker/Dockerfile index 5be666e..a91bfc2 100644 --- a/openvpn/docker/Dockerfile +++ b/openvpn/docker/Dockerfile @@ -27,7 +27,7 @@ RUN set -ex \ \ && apk del .build-deps -RUN apk update && apk add python3 curl && pip3 install pyotp +RUN apk update && apk upgrade && apk add python3 curl && pip3 install pyotp ADD run.sh /run.sh ADD generate.py /generate.py ADD nserver.py /nserver.py diff --git a/openvpn/docker/nserver.py b/openvpn/docker/nserver.py index 6d6c4ca..3882cba 100644 --- a/openvpn/docker/nserver.py +++ b/openvpn/docker/nserver.py @@ -16,5 +16,9 @@ if 'nserver' in filedata: else: filedata = filedata.replace('daemon', 'daemon\nnserver {}'.format(nameserver)) +password = os.getenv('PROXY_PASSWORD') +if password != None: + filedata = filedata.replace('auth none', 'auth strong\nusers admin:CL:{}'.format(password)) + with open(filename, 'w') as file: file.write(filedata) diff --git a/openvpn/settings/openvpn.env.sample b/openvpn/settings/openvpn.env.sample index 996775f..6ab43ab 100644 --- a/openvpn/settings/openvpn.env.sample +++ b/openvpn/settings/openvpn.env.sample @@ -1,4 +1,5 @@ USERNAME=xxxxxxxxx PASSWORD=xxxxxxxxx +PROXY_PASSWORD=xxxxxxxxx SECRET=xxxxxxxxx NAMESERVER=xxxxxxxxx