forked from uncloud/uncloud
		
	[vpn] make a vpn creat-able!
[15:40] line:~% http -a nicoschottelius:$(pass ungleich.ch/nico.schottelius@ungleich.ch) http://localhost:8000/net/vpn/ network_size=48 wireguard_public_key=$(wg genkey | wg pubkey) HTTP/1.1 201 Created Allow: GET, POST, HEAD, OPTIONS Content-Length: 206 Content-Type: application/json Date: Sun, 12 Apr 2020 13:40:26 GMT Server: WSGIServer/0.2 CPython/3.7.3 Vary: Accept X-Content-Type-Options: nosniff X-Frame-Options: DENY { "extra_data": null, "network": "2a0a:e5c1:203::", "order": null, "owner": 30, "status": "PENDING", "uuid": "8f977a8f-e06a-4346-94ae-8f525df58b7b", "wireguard_public_key": "JvCuUTZHm9unasJkGsLKN0Bf/hu6ZSIv7dnIGPyJ6xA=" }
This commit is contained in:
		
					parent
					
						
							
								b55254b9b1
							
						
					
				
			
			
				commit
				
					
						85b4d70592
					
				
			
		
					 4 changed files with 100 additions and 50 deletions
				
			
		| 
						 | 
				
			
			@ -12,11 +12,6 @@ import logging
 | 
			
		|||
log = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
wireguard_template="""
 | 
			
		||||
[Interface]
 | 
			
		||||
ListenPort = 51820
 | 
			
		||||
PrivateKey = {privatekey}
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
peer_template="""
 | 
			
		||||
# {username}
 | 
			
		||||
| 
						 | 
				
			
			@ -44,21 +39,6 @@ class Command(BaseCommand):
 | 
			
		|||
        configs = []
 | 
			
		||||
 | 
			
		||||
        for pool in VPNPool.objects.filter(vpn_hostname=hostname):
 | 
			
		||||
            pool_config = {
 | 
			
		||||
                'private_key': pool.wireguard_private_key,
 | 
			
		||||
                'subnetwork_size': pool.subnetwork_size,
 | 
			
		||||
                'config_file': '/etc/wireguard/{}.conf'.format(pool.network),
 | 
			
		||||
                'peers': []
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            for vpnnetwork in VPNNetworkReservation.objects.filter(vpnpool=pool):
 | 
			
		||||
                pool_config['peers'].append({
 | 
			
		||||
                    'vpnnetwork': "{}/{}".format(vpnnetwork.address,
 | 
			
		||||
                                                 pool_config['subnetwork_size']),
 | 
			
		||||
                    'public_key': vpnnetwork.wireguard_public_key,
 | 
			
		||||
                    }
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
            configs.append(pool_config)
 | 
			
		||||
 | 
			
		||||
        print(configs)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue