-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate_configs.py
executable file
·47 lines (32 loc) · 2 KB
/
generate_configs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#! /usr/bin/env python
import os
from string import Template
from socket import gethostname as socket_gethostname
from lib.Helpers import Helpers
def get_parameters():
parameters=dict()
parameters['script_path'] = Helpers.input("Installation path", os.path.dirname(os.path.realpath(__file__)))
parameters['vpn_server_host'] = Helpers.input("Domain or IP for vpn server", socket_gethostname())
parameters['vpn_server_port'] = Helpers.input("Port for the vpn server", 1194)
parameters['client_network_address'] = Helpers.input("Network address for client network", '10.31.8.0')
parameters['client_network_netmask'] = Helpers.input("Netmask for client network", '255.255.255.0')
parameters['cipher'] = Helpers.input("Encryption cipher for the vpn", 'AES-256-CBC')
parameters['ca_certificate'] = open(Helpers.input("Filename for CA-certificate", "%s.crt" % parameters['vpn_server_host'])).read().strip()
parameters['server_certificate'] = open(Helpers.input("Filename for server certificate", parameters['ca_certificate'])).read().strip()
parameters['server_key'] = open(Helpers.input("Filename for server certificate key file", "%s.key" % parameters['vpn_server_host'])).read().strip()
parameters['ta_key'] = open(Helpers.input("Filename for tls-auth key", "ta.key")).read().strip()
parameters['dhparam'] = open(Helpers.input("Filename for Diffie-Hellman key", "dh2048.pem")).read().strip()
return parameters
def read_templates(**templates):
ret = dict()
for conf,filename in templates.iteritems():
ret[conf] = Template(open(filename).read())
return ret
def write_generated_configs(templates, parameters):
for conf,template in templates.iteritems():
open("%s-generated.conf"%conf, "w+").write(template.substitute(parameters))
if __name__ == "__main__":
parameters = get_parameters()
templates = read_templates(server="configs/server.conf", client="configs/client.conf")
write_generated_configs(templates, parameters)
open("config.py", "w").write("""db_file = "%s/access.sqlite3"\n""" % parameters['script_path'])