This commit is contained in:
AB
2022-03-07 11:19:21 +03:00
parent 0c234f1adc
commit 15e8f5afb4
2 changed files with 8 additions and 5 deletions

4
bot.py Normal file → Executable file
View File

@ -48,7 +48,7 @@ def list_peers(update, context):
peer_name = "_".join(update.message.text.split()[1:]) peer_name = "_".join(update.message.text.split()[1:])
try: try:
update.message.reply_photo( update.message.reply_photo(
open(f'clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'clients/{peer_name}.conf', 'r').read()) open(f'/etc/wireguard/clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients/{peer_name}.conf', 'r').read())
except: except:
update.message.reply_text("Wrong client name.") update.message.reply_text("Wrong client name.")
@ -70,7 +70,7 @@ def add_peer(update, context):
peer_name = "_".join(update.message.text.split()[1:]) peer_name = "_".join(update.message.text.split()[1:])
log.info("Creating peer %s", peer_name) log.info("Creating peer %s", peer_name)
wg_add_peer(peer_name) wg_add_peer(peer_name)
update.message.reply_photo(open(f'clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'clients/{peer_name}.conf', 'r').read()) update.message.reply_photo(open(f'/etc/wireguard/clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients/{peer_name}.conf', 'r').read())
def error(update, context): def error(update, context):
update.message.reply_text("Something went wrong...") update.message.reply_text("Something went wrong...")

9
gen.py Normal file → Executable file
View File

@ -9,7 +9,7 @@ import ipaddress
import argparse import argparse
import configparser import configparser
from socket import getfqdn from socket import getfqdn
from os import system from os import system, path, mkdir
from base64 import b64encode, b64decode from base64 import b64encode, b64decode
from nacl.public import PrivateKey from nacl.public import PrivateKey
from ipaddress import ip_address from ipaddress import ip_address
@ -36,6 +36,9 @@ peer_name = args.peer
del_name = args.delete del_name = args.delete
is_update = args.update is_update = args.update
wpm_config = configparser.ConfigParser() wpm_config = configparser.ConfigParser()
client_dir = f"client_{args.config}"
if not path.isdir(client_dir):
mkdir(client_dir)
if wpm_config.read('wpm.conf'): if wpm_config.read('wpm.conf'):
ips = wpm_config['Interface'].get('allowed_ips', '0.0.0.0/0') ips = wpm_config['Interface'].get('allowed_ips', '0.0.0.0/0')
dns = wpm_config['Interface'].get('dns', '8.8.8.8') dns = wpm_config['Interface'].get('dns', '8.8.8.8')
@ -89,7 +92,7 @@ class Peer:
def gen_config(self, helper): def gen_config(self, helper):
"""Generate peer config""" """Generate peer config"""
filename = f"clients/{self.comment.replace(' ', '_')}" filename = f"/etc/wireguard/{client_dir}/{self.comment.replace(' ', '_')}"
_wg = wgconfig.WGConfig(f"{filename}.conf") _wg = wgconfig.WGConfig(f"{filename}.conf")
_wg.initialize_file() _wg.initialize_file()
_wg.add_attr(None, 'Address', self.allowed_ips) _wg.add_attr(None, 'Address', self.allowed_ips)
@ -97,7 +100,7 @@ class Peer:
_wg.add_attr(None, 'PrivateKey', self.priv_key) _wg.add_attr(None, 'PrivateKey', self.priv_key)
_wg.add_peer(helper.server_pub_key) _wg.add_peer(helper.server_pub_key)
_wg.add_attr(helper.server_pub_key, 'AllowedIPs', f'{helper.dns}/32, {ips}') _wg.add_attr(helper.server_pub_key, 'AllowedIPs', f'{helper.dns}/32, {ips}')
_wg.add_attr(helper.server_pub_key, 'Endpoint', f"{helper.server_addr}:51820") _wg.add_attr(helper.server_pub_key, 'Endpoint', f"{helper.server_addr}")
_wg.add_attr(helper.server_pub_key, 'PersistentKeepalive', 10) _wg.add_attr(helper.server_pub_key, 'PersistentKeepalive', 10)
_wg.write_file() _wg.write_file()
system(f'qrencode -r {filename}.conf -o {filename}-qr.png') system(f'qrencode -r {filename}.conf -o {filename}-qr.png')