Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
ea750b0cfc | |||
980ce3c7a7 | |||
28cc423138 | |||
39550b392d | |||
582ef21042 | |||
ca58ac86a4 | |||
177fa1cc34 | |||
ca1a7a6b94 | |||
a49c5b00e1 | |||
75a247797d | |||
4b019b0c1f | |||
ab78eb4f59 | |||
9f3f0246b4 | |||
5302aae807 |
24
Changelog
@ -6,7 +6,29 @@ My standard System: Linux Mint 22 Cinnamon
|
||||
- os import in cls_mth_fc.py replaced by other methods
|
||||
- If Wire-Py already runs, prevent further start
|
||||
- for loops with lists replaced by List Comprehensions
|
||||
- Crypt and Decrypt Config Files in ~/.config/wire_py
|
||||
|
||||
|
||||
### Added
|
||||
13-04-0725
|
||||
|
||||
- Installer update for Open Suse Tumbleweed and Leap
|
||||
- add symbolic link wirepy.py
|
||||
|
||||
|
||||
### Added
|
||||
09-04-0725
|
||||
|
||||
- Installer now with query and remove
|
||||
- Icons merged
|
||||
|
||||
|
||||
### Added
|
||||
07-04-0725
|
||||
|
||||
- Installers will support other systems again
|
||||
- Installer is now finished clean with wrong password
|
||||
- Rename wg_main to wirepy
|
||||
|
||||
|
||||
### Added
|
||||
03-03-2025
|
||||
|
@ -1,7 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Wire-Py
|
||||
Exec=/usr/local/bin/wg_main.py
|
||||
Exec=/usr/local/bin/wirepy.py
|
||||
Terminal=false
|
||||
Categories=Network;
|
||||
Icon=/usr/share/icons/wp-icons/128/wg_vpn.png
|
||||
Icon=/usr/share/icons/lx-icons/128/wg_vpn.png
|
283
cls_mth_fc.py
@ -1,29 +1,30 @@
|
||||
""" Classes Method and functions for lx apps """
|
||||
""" Classes Method and Functions for lx Apps """
|
||||
|
||||
import gettext
|
||||
import locale
|
||||
import os
|
||||
import shutil
|
||||
from subprocess import check_call
|
||||
import subprocess
|
||||
import tkinter as tk
|
||||
import zipfile
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from subprocess import check_call
|
||||
from tkinter import ttk
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
APP = 'wirepy'
|
||||
APP = "wirepy"
|
||||
LOCALE_DIR = "/usr/share/locale/"
|
||||
locale.bindtextdomain(APP, LOCALE_DIR)
|
||||
gettext.bindtextdomain(APP, LOCALE_DIR)
|
||||
gettext.textdomain(APP)
|
||||
_ = gettext.gettext
|
||||
|
||||
wg_set = Path(Path.home() / '.config/wire_py/settings')
|
||||
wg_set = Path(Path.home() / ".config/wire_py/settings")
|
||||
|
||||
class Create():
|
||||
|
||||
class Create:
|
||||
"""
|
||||
This class is for the creation of the folders and files
|
||||
required by Wire-Py, as well as for decryption
|
||||
@ -32,18 +33,23 @@ class Create():
|
||||
|
||||
@staticmethod
|
||||
def dir_and_files():
|
||||
"""
|
||||
check and create folders and files if not present
|
||||
"""
|
||||
|
||||
pth = Path.home() / '.config/wire_py'
|
||||
pth = Path.home() / ".config/wire_py"
|
||||
pth.mkdir(parents=True, exist_ok=True)
|
||||
sett = Path.home() / '.config/wire_py/settings'
|
||||
ks = Path.home() / '.config/wire_py/keys'
|
||||
sett = Path.home() / ".config/wire_py/settings"
|
||||
ks = Path.home() / ".config/wire_py/keys"
|
||||
|
||||
if sett.exists():
|
||||
pass
|
||||
|
||||
else:
|
||||
sett.touch()
|
||||
sett.write_text('[UPDATES]\non\n[THEME]\nlight\n[TOOLTIP]\nTrue\n[AUTOSTART ON]\noff\n')
|
||||
sett.write_text(
|
||||
"[UPDATES]\non\n[THEME]\nlight\n[TOOLTIP]\nTrue\n[AUTOSTART ON]\noff\n"
|
||||
)
|
||||
|
||||
if ks.exists():
|
||||
pass
|
||||
@ -53,26 +59,31 @@ class Create():
|
||||
|
||||
@staticmethod
|
||||
def files_for_autostart():
|
||||
"""
|
||||
check and create file for auto start if not present and enable the service
|
||||
"""
|
||||
|
||||
pth2 = Path.home() / '.config/systemd/user'
|
||||
pth2 = Path.home() / ".config/systemd/user"
|
||||
pth2.mkdir(parents=True, exist_ok=True)
|
||||
wg_ser = Path.home() / '.config/systemd/user/wg_start.service'
|
||||
wg_ser = Path.home() / ".config/systemd/user/wg_start.service"
|
||||
|
||||
if wg_ser.exists():
|
||||
pass
|
||||
|
||||
else:
|
||||
wg_ser.touch()
|
||||
wg_ser.write_text('[Unit]\nDescription=Automatic Tunnel Start\nAfter=network-online.target'
|
||||
'\n\n[Service]\nType=oneshot\nExecStartPre=/bin/sleep 5\nExecStart=/usr/'
|
||||
'local/bin/start_wg.py\n[Install]\nWantedBy=default.target')
|
||||
check_call(['systemctl', '--user', 'enable', 'wg_start.service'])
|
||||
wg_ser.write_text(
|
||||
"[Unit]\nDescription=Automatic Tunnel Start\nAfter=network-online.target"
|
||||
"\n\n[Service]\nType=oneshot\nExecStartPre=/bin/sleep 5\nExecStart=/usr/"
|
||||
"local/bin/start_wg.py\n[Install]\nWantedBy=default.target"
|
||||
)
|
||||
check_call(["systemctl", "--user", "enable", "wg_start.service"])
|
||||
|
||||
@staticmethod
|
||||
def make_dir():
|
||||
''' Dirname "tlecdewg" = Tunnel Encrypt Decrypt Wireguard '''
|
||||
"""Dirname "tlecdewg" = Tunnel Encrypt Decrypt Wireguard"""
|
||||
|
||||
dirname = Path('/tmp/tlecdcwg/')
|
||||
dirname = Path("/tmp/tlecdcwg/")
|
||||
if dirname.exists():
|
||||
pass
|
||||
else:
|
||||
@ -80,102 +91,122 @@ class Create():
|
||||
|
||||
@staticmethod
|
||||
def decrypt():
|
||||
process = subprocess.run(['pkexec', '/usr/local/bin/ssl_decrypt.py'], stdout=subprocess.PIPE, text=True)
|
||||
"""
|
||||
This start ssl_decrypt file
|
||||
"""
|
||||
process = subprocess.run(
|
||||
["pkexec", "/usr/local/bin/ssl_decrypt.py"],
|
||||
stdout=subprocess.PIPE,
|
||||
text=True,
|
||||
check=True,
|
||||
)
|
||||
# print(process.stdout)
|
||||
if process.returncode == 0:
|
||||
print('File successfully decrypted...')
|
||||
print("File successfully decrypted...")
|
||||
else:
|
||||
print(f'Error with the following code... {process.returncode}')
|
||||
print(f"Error with the following code... {process.returncode}")
|
||||
|
||||
@staticmethod
|
||||
def encrypt():
|
||||
process = subprocess.run(['pkexec', '/usr/local/bin/ssl_encrypt.py'], stdout=subprocess.PIPE, text=True)
|
||||
"""
|
||||
this start ssl_encrypt file
|
||||
"""
|
||||
process = subprocess.run(
|
||||
["pkexec", "/usr/local/bin/ssl_encrypt.py"],
|
||||
stdout=subprocess.PIPE,
|
||||
text=True,
|
||||
check=True,
|
||||
)
|
||||
print(process.stdout)
|
||||
if process.returncode == 0:
|
||||
print('All Files successfully encrypted...')
|
||||
print("All Files successfully encrypted...")
|
||||
else:
|
||||
print(f'Error with the following code... {process.returncode}')
|
||||
print(f"Error with the following code... {process.returncode}")
|
||||
|
||||
class UOS:
|
||||
"""
|
||||
The class is only for unixoidal systems "UOS" = UnixOS
|
||||
|
||||
def uos():
|
||||
"""
|
||||
|
||||
"""
|
||||
uos = LOGIN USERNAME
|
||||
|
||||
This method displays the user name of the logged-in user,
|
||||
even if you are rooted in a shell
|
||||
"""
|
||||
@staticmethod
|
||||
def username():
|
||||
logname = str(Path.home())[6:]
|
||||
file = Path.home() / '/tmp/.loguser'
|
||||
with open(file, "w") as f:
|
||||
file = Path.home() / "/tmp/.loguser"
|
||||
with open(file, "w", encoding="utf-8") as f:
|
||||
f.write(logname)
|
||||
|
||||
|
||||
|
||||
class GiteaUpdate:
|
||||
"""
|
||||
Calling api_down requests the URL and the version of the running script.
|
||||
Example: version = 'v. 1.1.1.1' GiteaUpdate.api_down(http://example.de, version)
|
||||
|
||||
Calling download requests the download URL of the running script,
|
||||
the taskbar image for the “Download OK” window, the taskbar image for the
|
||||
“Download error” window and the variable res
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def api_down(update_api_url, version):
|
||||
"""
|
||||
Calling api_down requests the URL and the version of the running script.
|
||||
Example: version = 'v. 1.1.1.1' GiteaUpdate.api_down(http://example.de, version)
|
||||
"""
|
||||
try:
|
||||
response = requests.get(update_api_url)
|
||||
response = requests.get(update_api_url, timeout=10)
|
||||
response_dict = response.json()
|
||||
response_dict = response_dict[0]
|
||||
with open(wg_set, 'r') as set_file:
|
||||
with open(wg_set, "r", encoding="utf-8") as set_file:
|
||||
set_file = set_file.read()
|
||||
if 'on\n' in set_file:
|
||||
if version[3:] != response_dict['tag_name']:
|
||||
return response_dict['tag_name']
|
||||
if "on\n" in set_file:
|
||||
if version[3:] != response_dict["tag_name"]:
|
||||
req = response_dict["tag_name"]
|
||||
else:
|
||||
return 'No Updates'
|
||||
req = "No Updates"
|
||||
else:
|
||||
return 'False'
|
||||
except requests.exceptions.ConnectionError:
|
||||
return 'No Internet Connection!'
|
||||
req = "False"
|
||||
return req
|
||||
except requests.exceptions.RequestException:
|
||||
req = "No Internet Connection!"
|
||||
return req
|
||||
|
||||
@staticmethod
|
||||
def download(urld, down_ok_image, down_not_ok_image, res):
|
||||
"""
|
||||
this is for download new Version of wirepy
|
||||
"""
|
||||
try:
|
||||
to_down = 'wget -qP ' + str(Path.home()) + ' ' + urld
|
||||
to_down = "wget -qP " + str(Path.home()) + " " + urld
|
||||
result = subprocess.call(to_down, shell=True)
|
||||
if result == 0:
|
||||
shutil.chown(str(Path.home()) + f'/{res}.zip', 1000, 1000)
|
||||
"""img_w, img_i, w_title, w_txt hand over"""
|
||||
iw = r'/usr/share/icons/lx-icons/64/info.png'
|
||||
shutil.chown(str(Path.home()) + f"/{res}.zip", 1000, 1000)
|
||||
# img_w, img_i, w_title, w_txt hand over
|
||||
iw = r"/usr/share/icons/lx-icons/64/info.png"
|
||||
ii = down_ok_image
|
||||
wt = _('Download Successful')
|
||||
msg_t = _('Your zip file is in home directory')
|
||||
wt = _("Download Successful")
|
||||
msg_t = _("Your zip file is in home directory")
|
||||
msg_window(iw, ii, wt, msg_t)
|
||||
|
||||
else:
|
||||
"""img_w, img_i, w_title, w_txt hand over"""
|
||||
iw = r'/usr/share/icons/lx-icons/64/error.png'
|
||||
# img_w, img_i, w_title, w_txt hand over
|
||||
iw = r"/usr/share/icons/lx-icons/64/error.png"
|
||||
ii = down_not_ok_image
|
||||
wt = _('Download error')
|
||||
msg_t = _('Download failed! Please try again')
|
||||
wt = _("Download error")
|
||||
msg_t = _("Download failed! Please try again")
|
||||
msg_window(iw, ii, wt, msg_t)
|
||||
except subprocess.CalledProcessError:
|
||||
"""img_w, img_i, w_title, w_txt hand over"""
|
||||
iw = r'/usr/share/icons/lx-icons/64/error.png'
|
||||
# img_w, img_i, w_title, w_txt hand over
|
||||
iw = r"/usr/share/icons/lx-icons/64/error.png"
|
||||
ii = down_not_ok_image
|
||||
wt = _('Download error')
|
||||
msg_t = _('Download failed! No internet connection!')
|
||||
wt = _("Download error")
|
||||
msg_t = _("Download failed! No internet connection!")
|
||||
msg_window(iw, ii, wt, msg_t)
|
||||
|
||||
|
||||
def msg_window(img_w, img_i, w_title, w_txt, txt2=None, com=None):
|
||||
"""
|
||||
Function for different message windows for the user. with 4 arguments to be passed.
|
||||
To create messages with your own images, icons, and titles. As an alternative to Python Messagebox.
|
||||
To create messages with your own images, icons, and titles.
|
||||
As an alternative to Python Messagebox.
|
||||
Paths to images must be specified: r'/usr/share/icons/lx-icons/64/info.png'
|
||||
img_w = Image for Tk Window
|
||||
img_i = Image for Icon
|
||||
@ -196,17 +227,17 @@ def msg_window(img_w, img_i, w_title, w_txt, txt2=None, com=None):
|
||||
label.grid(column=1, row=0)
|
||||
|
||||
if txt2 is not None and com is not None:
|
||||
label.config(font=('Ubuntu', 11), padx=15, justify='left')
|
||||
msg.i_window.grid(column=0, row=0, sticky='nw')
|
||||
button2 = ttk.Button(msg, text=f'{txt2}', command=com, padding=4)
|
||||
button2.grid(column=0, row=1, sticky='e', columnspan=2)
|
||||
button = ttk.Button(msg, text='OK', command=msg.destroy, padding=4)
|
||||
button.grid(column=0, row=1, sticky='w', columnspan=2)
|
||||
label.config(font=("Ubuntu", 11), padx=15, justify="left")
|
||||
msg.i_window.grid(column=0, row=0, sticky="nw")
|
||||
button2 = ttk.Button(msg, text=f"{txt2}", command=com, padding=4)
|
||||
button2.grid(column=0, row=1, sticky="e", columnspan=2)
|
||||
button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
|
||||
button.grid(column=0, row=1, sticky="w", columnspan=2)
|
||||
|
||||
else:
|
||||
label.config(font=('Ubuntu', 11), padx=15)
|
||||
label.config(font=("Ubuntu", 11), padx=15)
|
||||
msg.i_window.grid(column=0, row=0)
|
||||
button = ttk.Button(msg, text='OK', command=msg.destroy, padding=4)
|
||||
button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
|
||||
button.grid(column=0, columnspan=2, row=1)
|
||||
|
||||
img_i = tk.PhotoImage(file=img_i)
|
||||
@ -221,26 +252,26 @@ class Tunnel:
|
||||
Class of Methods for Wire-Py
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def con_to_dict(cls, file):
|
||||
"""
|
||||
The config file is packed into a dictionary,
|
||||
to display the values Address , DNS and Peer in the labels
|
||||
"""
|
||||
@classmethod
|
||||
def con_to_dict(cls, file):
|
||||
|
||||
dictlist = []
|
||||
for lines in file.readlines():
|
||||
line_plit = lines.split()
|
||||
dictlist = dictlist + line_plit
|
||||
dictlist.remove('[Interface]')
|
||||
dictlist.remove('[Peer]')
|
||||
dictlist.remove("[Interface]")
|
||||
dictlist.remove("[Peer]")
|
||||
for items in dictlist:
|
||||
if items == '=':
|
||||
if items == "=":
|
||||
dictlist.remove(items)
|
||||
if items == '::/0':
|
||||
if items == "::/0":
|
||||
dictlist.remove(items)
|
||||
|
||||
''' Here is the beginning (Loop) of convert List to Dictionary '''
|
||||
# Here is the beginning (Loop) of convert List to Dictionary
|
||||
for _ in dictlist:
|
||||
a = [dictlist[0], dictlist[1]]
|
||||
b = [dictlist[2], dictlist[3]]
|
||||
@ -255,107 +286,105 @@ class Tunnel:
|
||||
for elements in new_list:
|
||||
final_dict[elements[0]] = elements[1]
|
||||
|
||||
''' end... result a Dictionary '''
|
||||
# end... result a Dictionary
|
||||
|
||||
address = final_dict['Address']
|
||||
dns = final_dict['DNS']
|
||||
if ',' in dns:
|
||||
address = final_dict["Address"]
|
||||
dns = final_dict["DNS"]
|
||||
if "," in dns:
|
||||
dns = dns[:-1]
|
||||
endpoint = final_dict['Endpoint']
|
||||
if 'PresharedKey' in final_dict:
|
||||
pre_key = final_dict['PresharedKey']
|
||||
endpoint = final_dict["Endpoint"]
|
||||
if "PresharedKey" in final_dict:
|
||||
pre_key = final_dict["PresharedKey"]
|
||||
else:
|
||||
pre_key = final_dict['PreSharedKey']
|
||||
pre_key = final_dict["PreSharedKey"]
|
||||
return address, dns, endpoint, pre_key
|
||||
|
||||
@staticmethod
|
||||
def active():
|
||||
"""
|
||||
Shows the Active Tunnel
|
||||
"""
|
||||
@staticmethod
|
||||
def active():
|
||||
|
||||
active = os.popen('nmcli con show --active | grep -iPo "(.*)(wireguard)"').read().split()
|
||||
active = (
|
||||
os.popen('nmcli con show --active | grep -iPo "(.*)(wireguard)"')
|
||||
.read()
|
||||
.split()
|
||||
)
|
||||
if not active:
|
||||
active = ''
|
||||
active = ""
|
||||
else:
|
||||
active = active[0]
|
||||
|
||||
return active
|
||||
|
||||
@staticmethod
|
||||
def list():
|
||||
"""
|
||||
Shows all existing Wireguard tunnels a login user
|
||||
"""
|
||||
@staticmethod
|
||||
def list():
|
||||
|
||||
dirname = Path('/tmp/tlecdcwg/')
|
||||
dirname = Path("/tmp/tlecdcwg/")
|
||||
wg_s = os.listdir(dirname)
|
||||
|
||||
return wg_s
|
||||
|
||||
|
||||
@staticmethod
|
||||
def export():
|
||||
"""
|
||||
This will export the tunnels.
|
||||
A zipfile with current date and time is created
|
||||
in the user's home directory with correct right
|
||||
"""
|
||||
@staticmethod
|
||||
def export():
|
||||
now_time = datetime.now()
|
||||
now_datetime = now_time.strftime('wg-exp-' + '%m-%d-%Y' + '-' + '%H:%M')
|
||||
now_datetime = now_time.strftime("wg-exp-" + "%m-%d-%Y" + "-" + "%H:%M")
|
||||
tl = Tunnel.list()
|
||||
|
||||
try:
|
||||
if len(tl) != 0:
|
||||
wg_tar = str(Path.home()) + '/' + now_datetime
|
||||
shutil.copytree('/tmp/tlecdcwg/', '/tmp/wire_py', dirs_exist_ok=True)
|
||||
source = Path('/tmp/wire_py')
|
||||
shutil.make_archive(wg_tar, 'zip', source)
|
||||
wg_tar = str(Path.home()) + "/" + now_datetime
|
||||
shutil.copytree("/tmp/tlecdcwg/", "/tmp/wire_py", dirs_exist_ok=True)
|
||||
source = Path("/tmp/wire_py")
|
||||
shutil.make_archive(wg_tar, "zip", source)
|
||||
# shutil.chown(wg_tar + '.zip', 1000, 1000)
|
||||
shutil.rmtree(source)
|
||||
with zipfile.ZipFile((wg_tar + '.zip'), 'r') as zf:
|
||||
with zipfile.ZipFile((wg_tar + ".zip"), "r") as zf:
|
||||
if len(zf.namelist()) != 0:
|
||||
|
||||
"""img_w, img_i, w_title, w_txt hand over"""
|
||||
iw = r'/usr/share/icons/lx-icons/64/info.png'
|
||||
ii = r'/usr/share/icons/wp-icons/48/wg_vpn.png'
|
||||
wt = _('Export Successful')
|
||||
msg_t = _('Your zip file is in home directory')
|
||||
# img_w, img_i, w_title, w_txt hand over
|
||||
iw = r"/usr/share/icons/lx-icons/64/info.png"
|
||||
ii = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
|
||||
wt = _("Export Successful")
|
||||
msg_t = _("Your zip file is in home directory")
|
||||
msg_window(iw, ii, wt, msg_t)
|
||||
|
||||
else:
|
||||
|
||||
"""img_w, img_i, w_title, w_txt hand over"""
|
||||
iw = r'/usr/share/icons/lx-icons/64/error.png'
|
||||
ii = r'/usr/share/icons/wp-icons/48/wg_msg.png'
|
||||
wt = _('Export error')
|
||||
msg_t = _('Export failed! Please try again')
|
||||
# img_w, img_i, w_title, w_txt hand over
|
||||
iw = r"/usr/share/icons/lx-icons/64/error.png"
|
||||
ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
|
||||
wt = _("Export error")
|
||||
msg_t = _("Export failed! Please try again")
|
||||
msg_window(iw, ii, wt, msg_t)
|
||||
|
||||
else:
|
||||
|
||||
"""img_w, img_i, w_title, w_txt hand over"""
|
||||
iw = r'/usr/share/icons/lx-icons/64/info.png'
|
||||
ii = r'/usr/share/icons/wp-icons/48/wg_msg.png'
|
||||
wt = _('Select tunnel')
|
||||
msg_t = _('Please first import tunnel')
|
||||
# img_w, img_i, w_title, w_txt hand over
|
||||
iw = r"/usr/share/icons/lx-icons/64/info.png"
|
||||
ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
|
||||
wt = _("Select tunnel")
|
||||
msg_t = _("Please first import tunnel")
|
||||
msg_window(iw, ii, wt, msg_t)
|
||||
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
|
||||
class Tipi:
|
||||
"""
|
||||
Class for Tooltip setting write in File
|
||||
Calling request path to file
|
||||
"""
|
||||
@staticmethod
|
||||
def if_tip(path):
|
||||
with open(path, 'r') as set_file2:
|
||||
"""
|
||||
method that writes in file whether tooltip is displayed or not
|
||||
"""
|
||||
with open(path, "r", encoding="utf-8") as set_file2:
|
||||
lines2 = set_file2.readlines()
|
||||
if 'False\n' in lines2:
|
||||
return False
|
||||
if "False\n" in lines2:
|
||||
tip = False
|
||||
else:
|
||||
return True
|
||||
|
||||
tip = True
|
||||
return tip
|
||||
|
193
install
@ -8,56 +8,77 @@ install_file_with(){
|
||||
clear
|
||||
mkdir -p ~/.config/wire_py && touch ~/.config/wire_py/keys && cp -u settings ~/.config/wire_py/ && \
|
||||
mkdir -p ~/.config/systemd/user && cp -u wg_start.service ~/.config/systemd/user/ && \
|
||||
systemctl --user enable wg_start.service
|
||||
sudo cp -f org.sslcrypt.policy /usr/share/polkit-1/actions/ && \
|
||||
systemctl --user enable wg_start.service >/dev/null 2>&1
|
||||
sudo cp -f org.sslcrypt.policy /usr/share/polkit-1/actions/
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
systemctl --user disable wg_start.service
|
||||
rm -r ~/.config/wire_py && rm -r ~/.config/systemd
|
||||
exit 0
|
||||
else
|
||||
sudo apt install python3-tk && \
|
||||
sudo cp -fv wg_main.py start_wg.py cls_mth_fc.py ssl_encrypt.py ssl_decrypt.py /usr/local/bin/ && \
|
||||
sudo cp -uR wp-icons lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo cp -fv wirepy.py start_wg.py cls_mth_fc.py ssl_encrypt.py ssl_decrypt.py /usr/local/bin/ && \
|
||||
sudo cp -uR lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo cp -u languages/de/*.mo /usr/share/locale/de/LC_MESSAGES/ && \
|
||||
sudo ln -sf /usr/local/bin/wg_main.py /usr/local/bin/wirepy && \
|
||||
sudo cp -f Wire-Py.desktop /usr/share/applications/
|
||||
sudo cp -fv Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo ln -sf /usr/local/bin/wirepy.py /usr/local/bin/wirepy
|
||||
sudo mkdir -p /usr/local/etc/ssl
|
||||
if [ ! -f /usr/local/etc/ssl/pwgk.pem ]
|
||||
then
|
||||
sudo openssl genrsa -out /usr/local/etc/ssl/pwgk.pem 4096
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
install_arch_d(){
|
||||
clear
|
||||
mkdir -p ~/.config/wire_py && touch ~/.config/wire_py/keys && cp -u settings ~/.config/wire_py/ && \
|
||||
mkdir -p ~/.config/systemd/user && cp -u wg_start.service ~/.config/systemd/user/ && \
|
||||
systemctl --user enable wg_start.service >/dev/null 2>&1
|
||||
sudo cp -f org.sslcrypt.policy /usr/share/polkit-1/actions/
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
systemctl --user disable wg_start.service
|
||||
rm -r ~/.config/wire_py && rm -r ~/.config/systemd
|
||||
exit 0
|
||||
else
|
||||
sudo pacman -S --noconfirm tk python3 python-requests && \
|
||||
sudo cp -u wg_main.py start_wg.py cls_mth_fc.py && \
|
||||
sudo mkdir -p /etc/wire_py && sudo touch /etc/wire_py/keys && sudo cp -u settings /etc/wire_py/ && \
|
||||
sudo cp -uR wp-icons lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo chown -R root:root /etc/wire_py && sudo chmod 755 /etc/wire_py && \
|
||||
sudo cp -fv wirepy.py start_wg.py cls_mth_fc.py ssl_encrypt.py ssl_decrypt.py /usr/local/bin/ && \
|
||||
sudo cp -uR lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo cp -u languages/de/*.mo /usr/share/locale/de/LC_MESSAGES/ && \
|
||||
sudo ln -sf /usr/bin/wirepy.py /usr/local/bin/wirepy && \
|
||||
sudo cp -u org.wirepy.policy /usr/share/polkit-1/actions/ && \
|
||||
sudo cp -u Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo cp -u org.sslcrypt.policy /usr/share/polkit-1/actions/ && \
|
||||
sudo cp -u wg_start.service /lib/systemd/system/ && \
|
||||
sudo systemctl enable wg_start.service
|
||||
sudo cp -fv Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo ln -sf /usr/local/bin/wirepy.py /usr/local/bin/wirepy
|
||||
sudo mkdir -p /usr/local/etc/ssl
|
||||
if [ ! -f /usr/local/etc/ssl/pwgk.pem ]
|
||||
then
|
||||
sudo openssl genrsa -out /usr/local/etc/ssl/pwgk.pem 4096
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
install(){
|
||||
if grep -i 'debian' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
groups > /tmp/isgroup
|
||||
if grep 'sudo' /tmp/isgroup
|
||||
then
|
||||
install_file_with
|
||||
|
||||
else
|
||||
|
||||
echo -e "$BLUE"The installer found that they are not in the group sudo.""
|
||||
echo -e "with "$RED"su -"$BLUE" "they can enter the root shell in which they then""
|
||||
echo -e "enter "$GREEN""usermod -aG sudo $USER.""$BLUE""
|
||||
echo -e ""after logging in from the system, they can then run Wire-Py install again." $NORMAL"
|
||||
read -n 1 -s -r -p $"To close the Window press a button"
|
||||
read -n 1 -s -r -p $"Press Enter to exit"
|
||||
clear
|
||||
exit 0
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
elif grep -i 'mint\|ubuntu\|pop|' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
install_file_with
|
||||
|
||||
|
||||
elif grep -i 'arch' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
groups > /tmp/isgroup
|
||||
@ -75,7 +96,7 @@ elif grep -i 'arch' /etc/os-release > /dev/null 2>&1
|
||||
echo "remove '#' on # %wheel ALL=(ALL) ALL and save the file"
|
||||
echo -e "then enter "$GREEN"gpasswd -a $USER wheel.""$NORMAL"
|
||||
echo "after logging in from the system, they can then run Wire-Py install again."
|
||||
read -n 1 -s -r -p $"To close the Window press a button"
|
||||
read -n 1 -s -r -p $"Press Enter to exit"
|
||||
clear
|
||||
exit 0
|
||||
|
||||
@ -85,51 +106,123 @@ elif grep -i '|manjaro\|garuda\|endeavour|' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
install_arch_d
|
||||
|
||||
|
||||
elif grep -i 'fedora' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
if ! which python3-tkinter &> /dev/null
|
||||
then sudo dnf install python3-tkinter -y
|
||||
|
||||
sudo cp -u wg_main.py start_wg.py cls_mth_fc.py && \
|
||||
sudo mkdir -p /etc/wire_py && sudo touch /etc/wire_py/keys && \
|
||||
sudo cp -u settings /etc/wire_py/ && \
|
||||
clear
|
||||
mkdir -p ~/.config/wire_py && touch ~/.config/wire_py/keys && cp -u settings ~/.config/wire_py/ && \
|
||||
mkdir -p ~/.config/systemd/user && cp -u wg_start.service ~/.config/systemd/user/ && \
|
||||
systemctl --user enable wg_start.service >/dev/null 2>&1
|
||||
sudo cp -f org.sslcrypt.policy /usr/share/polkit-1/actions/
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
systemctl --user disable wg_start.service
|
||||
rm -r ~/.config/wire_py && rm -r ~/.config/systemd
|
||||
exit 0
|
||||
else
|
||||
sudo dnf install python3-tkinter -y
|
||||
sudo cp -fv wirepy.py start_wg.py cls_mth_fc.py ssl_encrypt.py ssl_decrypt.py /usr/local/bin/ && \
|
||||
sudo cp -uR lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo cp -u languages/de/*.mo /usr/share/locale/de/LC_MESSAGES/ && \
|
||||
sudo cp -uR wp-icons lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo chown -R root:root /etc/wire_py && sudo chmod 755 /etc/wire_py && \
|
||||
sudo ln -sf /usr/bin/wirepy.py /usr/local/bin/wirepy && \
|
||||
sudo cp -u org.wirepy.policy /usr/share/polkit-1/actions/ && \
|
||||
sudo cp -u Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo cp -u wg_start.service /lib/systemd/system/ && \
|
||||
sudo systemctl enable wg_start.service
|
||||
sudo cp -fv Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo ln -sf /usr/local/bin/wirepy.py /usr/local/bin/wirepy
|
||||
sudo mkdir -p /usr/local/etc/ssl
|
||||
if [ ! -f /usr/local/etc/ssl/pwgk.pem ]
|
||||
then
|
||||
sudo openssl genrsa -out /usr/local/etc/ssl/pwgk.pem 4096
|
||||
fi
|
||||
|
||||
fi
|
||||
elif grep -i 'suse' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
if ! which python311-tk &> /dev/null
|
||||
then sudo zypper install python311-tk
|
||||
sudo cp -u wg_main.py start_wg.py cls_mth_fc.py && \
|
||||
sudo mkdir -p /etc/wire_py && sudo touch /etc/wire_py/keys && \
|
||||
sudo cp -u settings /etc/wire_py/ && \
|
||||
clear
|
||||
mkdir -p ~/.config/wire_py && touch ~/.config/wire_py/keys && cp -u settings ~/.config/wire_py/ && \
|
||||
mkdir -p ~/.config/systemd/user && cp -u wg_start.service ~/.config/systemd/user/ && \
|
||||
systemctl --user enable wg_start.service >/dev/null 2>&1
|
||||
sudo cp -f org.sslcrypt.policy /usr/share/polkit-1/actions/
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
systemctl --user disable wg_start.service
|
||||
rm -r ~/.config/wire_py && rm -r ~/.config/systemd
|
||||
exit 0
|
||||
else
|
||||
sudo cp -fv wirepy.py start_wg.py cls_mth_fc.py ssl_encrypt.py ssl_decrypt.py /usr/local/bin/ && \
|
||||
sudo cp -uR lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo cp -u languages/de/*.mo /usr/share/locale/de/LC_MESSAGES/ && \
|
||||
sudo cp -uR wp-icons lx-icons /usr/share/icons/ && sudo cp -uR TK-Themes /usr/share/ && \
|
||||
sudo chown -R root:root /etc/wire_py && sudo chmod 755 /etc/wire_py && \
|
||||
sudo ln -sf /usr/bin/wirepy.py /usr/local/bin/wirepy && \
|
||||
sudo cp -u org.wirepy.policy /usr/share/polkit-1/actions/ && \
|
||||
sudo cp -u Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo cp -u wg_start.service /lib/systemd/system/ && \
|
||||
sudo systemctl enable wg_start.service
|
||||
sudo cp -fv Wire-Py.desktop /usr/share/applications/ && \
|
||||
sudo ln -sf /usr/local/bin/wirepy.py /usr/local/bin/wirepy
|
||||
sudo mkdir -p /usr/local/etc/ssl
|
||||
if [ ! -f /usr/local/etc/ssl/pwgk.pem ]
|
||||
then
|
||||
sudo openssl genrsa -out /usr/local/etc/ssl/pwgk.pem 4096
|
||||
fi
|
||||
if grep -i 'Tumbleweed' /etc/os-release > /dev/null 2>&1
|
||||
then
|
||||
sudo zypper install python313-tk
|
||||
else
|
||||
sudo zypper install python36-tk
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
clear
|
||||
echo $"Your System could not be determined."
|
||||
echo
|
||||
read -n 1 -s -r -p $"To close the window press a button"
|
||||
read -n 1 -s -r -p $"Press Enter to exit"
|
||||
clear
|
||||
exit 0
|
||||
|
||||
fi
|
||||
#clear
|
||||
read -n 1 -s -r -p $"To close the Window press a button"
|
||||
read -n 1 -s -r -p $"Press Enter to exit"
|
||||
clear
|
||||
|
||||
}
|
||||
|
||||
remove(){
|
||||
sudo rm -f /usr/local/bin/wirepy /usr/local/bin/wirepy.py /usr/local/bin/start_wg.py \
|
||||
/usr/local/bin/cls_mth_fc.py /usr/local/bin/ssl_encrypt.py /usr/local/bin/ssl_decrypt.py
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
exit 0
|
||||
else
|
||||
systemctl --user disable wg_start.service
|
||||
rm -r ~/.config/wire_py && rm -r ~/.config/systemd
|
||||
sudo rm /usr/share/applications/Wire-Py.desktop
|
||||
sudo rm /usr/share/locale/de/LC_MESSAGES/languages/de/wirepy.mo
|
||||
sudo rm -r /usr/local/etc/ssl
|
||||
which syncpy >/dev/null
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
sudo rm -r /usr/share/icons/lx-icons && sudo rm -r /usr/share/TK-Themes
|
||||
|
||||
fi
|
||||
|
||||
echo
|
||||
read -p "Press Enter to exit..."
|
||||
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
which wirepy >/dev/null
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Do you want to update/reinstall or uninstall wirepy?"
|
||||
echo
|
||||
echo "Update/reinstall: press y, uninstall press r"
|
||||
echo
|
||||
read -n 1 -s -r -p "Cancel with any other key..." result
|
||||
case $result in
|
||||
[y]* ) clear; install; exit;;
|
||||
[Y]* ) clear; install; exit;;
|
||||
[j]* ) clear; install; exit;;
|
||||
[J]* ) clear; install; exit;;
|
||||
[r]* ) clear; remove; exit;;
|
||||
[R]* ) clear; remove; exit;;
|
||||
esac
|
||||
clear
|
||||
else
|
||||
install
|
||||
|
||||
fi
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
@ -1,28 +1,59 @@
|
||||
#!/usr/bin/python3
|
||||
''' This Script decrypt Wireguardfiles for Wirepy users '''
|
||||
""" This Script decrypt Wireguardfiles for Wirepy users """
|
||||
|
||||
import os
|
||||
from subprocess import check_call
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
uname = Path('/tmp/.loguser')
|
||||
from pathlib import Path
|
||||
from subprocess import check_call
|
||||
|
||||
with open(uname, 'r') as f:
|
||||
uname = Path("/tmp/.loguser")
|
||||
|
||||
with open(uname, "r", encoding="utf-8") as f:
|
||||
logname = f.readline()
|
||||
|
||||
''' Dirname "tlecdewg" = Tunnel Encrypt Decrypt Wireguard '''
|
||||
dirname = Path('/tmp/tlecdcwg/')
|
||||
keyfile = '/usr/local/etc/ssl/pwgk.pem'
|
||||
# Dirname "tlecdewg" = Tunnel Encrypt Decrypt Wireguard
|
||||
dirname = Path("/tmp/tlecdcwg/")
|
||||
keyfile = Path(f"/home/{logname}/.config/wire_py/pbwgk.pem")
|
||||
PKEYFILE = "/usr/local/etc/ssl/pwgk.pem"
|
||||
|
||||
dirname2 = ('/home/' + logname + '/.config/wire_py/')
|
||||
if not keyfile.is_file():
|
||||
|
||||
check_call(
|
||||
[
|
||||
"openssl",
|
||||
"rsa",
|
||||
"-in",
|
||||
PKEYFILE,
|
||||
"-out",
|
||||
keyfile,
|
||||
"-outform",
|
||||
"PEM",
|
||||
"-pubout",
|
||||
]
|
||||
)
|
||||
shutil.chown(keyfile, 1000, 1000)
|
||||
|
||||
dirname2 = "/home/" + logname + "/.config/wire_py/"
|
||||
detl = os.listdir(dirname2)
|
||||
os.chdir(dirname2)
|
||||
detl.remove('keys')
|
||||
detl.remove('settings')
|
||||
if os.path.exists(dirname2 + 'pbwgk.pem'):
|
||||
detl.remove('pbwgk.pem')
|
||||
detl.remove("keys")
|
||||
detl.remove("settings")
|
||||
if os.path.exists(dirname2 + "pbwgk.pem"):
|
||||
detl.remove("pbwgk.pem")
|
||||
for detunnels in detl:
|
||||
tlname2 = detunnels[:-4] + '.conf'
|
||||
extpath = str(dirname) + '/' + tlname2
|
||||
check_call(['openssl', 'pkeyutl', '-decrypt', '-inkey', keyfile, '-in', detunnels, '-out', extpath])
|
||||
tlname2 = detunnels[:-4] + ".conf"
|
||||
extpath = str(dirname) + "/" + tlname2
|
||||
check_call(
|
||||
[
|
||||
"openssl",
|
||||
"pkeyutl",
|
||||
"-decrypt",
|
||||
"-inkey",
|
||||
PKEYFILE,
|
||||
"-in",
|
||||
detunnels,
|
||||
"-out",
|
||||
extpath,
|
||||
]
|
||||
)
|
||||
shutil.chown(extpath, 1000, 1000)
|
@ -1,49 +1,83 @@
|
||||
#!/usr/bin/python3
|
||||
''' This Script encrypt Wireguardfiles for Wirepy users for more Security'''
|
||||
""" This Script encrypt Wireguardfiles for Wirepy users for more Security """
|
||||
|
||||
import os
|
||||
from subprocess import check_call
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from subprocess import check_call
|
||||
|
||||
uname = Path('/tmp/.loguser')
|
||||
uname = Path("/tmp/.loguser")
|
||||
|
||||
with open(uname, 'r') as f:
|
||||
with open(uname, "r", encoding="utf-8") as f:
|
||||
logname = f.readline()
|
||||
|
||||
keyfile = Path(f'/home/{logname}/.config/wire_py/pbwgk.pem')
|
||||
dirname = Path('/tmp/tlecdcwg/')
|
||||
pkeyfile = '/usr/local/etc/ssl/pwgk.pem'
|
||||
keyfile = Path(f"/home/{logname}/.config/wire_py/pbwgk.pem")
|
||||
dirname = Path("/tmp/tlecdcwg/")
|
||||
PKEYFILE = "/usr/local/etc/ssl/pwgk.pem"
|
||||
|
||||
if not keyfile.is_file():
|
||||
|
||||
check_call(['openssl', 'rsa', '-in', pkeyfile, '-out', keyfile, '-outform', 'PEM', '-pubout'])
|
||||
check_call(
|
||||
[
|
||||
"openssl",
|
||||
"rsa",
|
||||
"-in",
|
||||
PKEYFILE,
|
||||
"-out",
|
||||
keyfile,
|
||||
"-outform",
|
||||
"PEM",
|
||||
"-pubout",
|
||||
]
|
||||
)
|
||||
shutil.chown(keyfile, 1000, 1000)
|
||||
|
||||
if dirname.exists():
|
||||
tl = os.listdir(str(dirname))
|
||||
cpth = str(keyfile)
|
||||
cryptfiles = cpth[:-9]
|
||||
CPTH = str(keyfile)
|
||||
CRYPTFILES = CPTH[:-9]
|
||||
|
||||
if keyfile.exists() and len(tl) != 0:
|
||||
for tunnels in tl:
|
||||
sourcetl = str(dirname) + '/' + tunnels
|
||||
tlname = cryptfiles + tunnels[:-5] + '.dat'
|
||||
check_call(['openssl', 'pkeyutl', '-encrypt', '-inkey', keyfile, '-pubin', '-in', sourcetl, '-out', tlname])
|
||||
sourcetl = str(dirname) + "/" + tunnels
|
||||
tlname = CRYPTFILES + tunnels[:-5] + ".dat"
|
||||
check_call(
|
||||
[
|
||||
"openssl",
|
||||
"pkeyutl",
|
||||
"-encrypt",
|
||||
"-inkey",
|
||||
keyfile,
|
||||
"-pubin",
|
||||
"-in",
|
||||
sourcetl,
|
||||
"-out",
|
||||
tlname,
|
||||
]
|
||||
)
|
||||
|
||||
else:
|
||||
|
||||
if dirname.exists():
|
||||
tl = os.listdir(str(dirname))
|
||||
cpth = str(keyfile)
|
||||
cryptfiles = cpth[:-9]
|
||||
CPTH = str(keyfile)
|
||||
CRYPTFILES = CPTH[:-9]
|
||||
|
||||
if keyfile.exists() and len(tl) != 0:
|
||||
for tunnels in tl:
|
||||
sourcetl = str(dirname) + '/' + tunnels
|
||||
tlname = cryptfiles + tunnels[:-5] + '.dat'
|
||||
check_call(['openssl', 'pkeyutl', '-encrypt', '-inkey', keyfile, '-pubin', '-in', sourcetl, '-out', tlname])
|
||||
|
||||
|
||||
|
||||
|
||||
sourcetl = str(dirname) + "/" + tunnels
|
||||
tlname = CRYPTFILES + tunnels[:-5] + ".dat"
|
||||
check_call(
|
||||
[
|
||||
"openssl",
|
||||
"pkeyutl",
|
||||
"-encrypt",
|
||||
"-inkey",
|
||||
keyfile,
|
||||
"-pubin",
|
||||
"-in",
|
||||
sourcetl,
|
||||
"-out",
|
||||
tlname,
|
||||
]
|
||||
)
|
||||
|
15
start_wg.py
@ -1,14 +1,17 @@
|
||||
#!/usr/bin/python3
|
||||
from subprocess import check_call
|
||||
"""
|
||||
This script belongs to wirepy and is for the auto start of the tunnel
|
||||
"""
|
||||
from pathlib import Path
|
||||
from subprocess import check_call
|
||||
|
||||
path_to_file = Path(Path.home() / '.config/wire_py/settings')
|
||||
path_to_file = Path(Path.home() / ".config/wire_py/settings")
|
||||
|
||||
with open(path_to_file, 'r') as a_con:
|
||||
with open(path_to_file, "r", encoding="utf-8") as a_con:
|
||||
# This funtion is for the independent autostart of the previously selected tunnel
|
||||
lines = a_con.readlines()
|
||||
a_con = lines[7].strip()
|
||||
if a_con != 'off':
|
||||
check_call(['nmcli', 'connection', 'up', a_con])
|
||||
if a_con != "off":
|
||||
check_call(["nmcli", "connection", "up", a_con])
|
||||
else:
|
||||
pass
|
||||
|
||||
|
1211
wg_main.py
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.7 KiB |