From 25cbcd97e5af0907fd2791929b4aa4ffabf321a2 Mon Sep 17 00:00:00 2001 From: Miguel Nogueira Date: Tue, 11 Jun 2019 19:47:06 +0100 Subject: [PATCH] Add forgotten source code --- pyVPN.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 pyVPN.py diff --git a/pyVPN.py b/pyVPN.py new file mode 100644 index 0000000..4fb8d51 --- /dev/null +++ b/pyVPN.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 + +import sys +import pexpect +import os.path +import base64 + +# This script can probably use some improvement + +process = "/root/openvpn-install/openvpn-installer.sh" +operatingDir = "/root" + +fScript = pexpect.spawn("/bin/bash" + process) + +if len(sys.argv) > 2: + + if sys.argv[2] == "--create-client": + + clientName = sys.argv[3] + configFilePath = operatingDir + "/" + clientName + ".ovpn" + + fScript.expect(r'/(?:Select\ an\ option\ \[1\-4\]\:)/') + fScript.sendline('1') + fScript.expect(r'(?:Client\ name\:)') + fScript.sendline(clientName) + fScript.kill(0) + + if os.path.exists(configFilePath): + + file = open(configFilePath, 'r') + + finalResult = base64.b64encode(file.read()) + + sys.stdout.write(finalResult) + sys.stdout.flush() + sys.exit(0) + + else: + sys.stdout.write("Error! OpenVPN did not create the Configuration file.") + sys.stdout.flush() + sys.stdout.exit(1) + + + + else: + sys.stdout.write("Error! Missing options!") + sys.stdout.flush() + sys.stdout.exit(2) + +else: + sys.stdout.write("Error! Missing client name!") + sys.stdout.flush() + sys.stdout.exit(3)