97 lines
2.9 KiB
Bash
Executable File
97 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Update Apt cache
|
|
sudo apt-get update
|
|
# Update Packete
|
|
sudo apt-get upgrade -y
|
|
# Installiere Wireguard
|
|
sudo apt-get install wireguard-tools -y
|
|
clear
|
|
|
|
wireguard_off="#!/bin/bash
|
|
sudo wg-quick down wg0
|
|
sudo systemctl stop wg-quick@wg0.service"
|
|
|
|
wireguard_on="#!/bin/bash
|
|
sudo wg-quick up wg0
|
|
sudo systemctl start wg-quick@wg0.service"
|
|
|
|
wireguard_icon="https://static-00.iconduck.com/assets.00/wireguard-icon-256x256-bdlmygje.png"
|
|
|
|
wireguard_app_start="[Desktop Entry]
|
|
Encoding=UTF-8
|
|
Version=1.0
|
|
Type=Application
|
|
Terminal=true
|
|
Exec=/bin/bash /media/wireguard/wireguard_an.sh
|
|
Name=Wireguard AN
|
|
Icon=/media/wireguard/wireguard.png"
|
|
|
|
wireguard_app_stop="[Desktop Entry]
|
|
Encoding=UTF-8
|
|
Version=1.0
|
|
Type=Application
|
|
Terminal=true
|
|
Exec=/bin/bash /media/wireguard/wireguard_aus.sh
|
|
Name=Wireguard AUS
|
|
Icon=/media/wireguard/wireguard.png"
|
|
|
|
echo "Gebe hier nun die Wireguard Konfiguration ein: (Beende eingabe mit strg+d)"
|
|
# Lese die Config Zeile bei Zeile
|
|
config=""
|
|
while read -r line; do
|
|
config+="$line"$'\n'
|
|
done
|
|
# Überprüfe ob im etc Ordner ein Wireguard Ordner exestiert, wenn nicht, erstelle diesen
|
|
if ! [ -d /etc/wireguard ]; then
|
|
sudo mkdir /etc/wireguard
|
|
fi
|
|
|
|
echo "$config" | sudo tee /etc/wireguard/wg0.conf >/dev/null
|
|
|
|
sudo systemctl enable wg-quick@wg0.service
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl start wg-quick@wg0
|
|
|
|
if ! [ -d /media/wireguard ]; then
|
|
sudo mkdir /media/wireguard
|
|
sudo chown nobody:nogroup /media/wireguard
|
|
sudo chmod a+w /media/wireguard
|
|
fi
|
|
|
|
wget "$wireguard_icon" -O /media/wireguard/wireguard.png
|
|
|
|
userlist=$(getent passwd | awk -F: '$3>=1000 && $1!="nobody" && $1!="pxadmin" {print $1}')
|
|
|
|
for user in $userlist; do
|
|
# Allow wg-quick usage
|
|
if sudo grep -q "$user ALL = (ALL) NOPASSWD:/usr/bin/wg-quick" /etc/sudoers; then
|
|
echo "$user darf bereits wg-quick ausführen"
|
|
else
|
|
sudo echo "$user ALL = (ALL) NOPASSWD:/usr/bin/wg-quick" | sudo tee -a /etc/sudoers
|
|
fi
|
|
# Allow stopping wg service
|
|
if sudo grep -q "$user ALL = (ALL) NOPASSWD:/bin/systemctl stop wg-quick@wg0.service" /etc/sudoers; then
|
|
echo "$user darf bereits wg-quick ausführen"
|
|
else
|
|
sudo echo "$user ALL = (ALL) NOPASSWD:/bin/systemctl stop wg-quick@wg0.service" | sudo tee -a /etc/sudoers
|
|
fi
|
|
# Allow starting wg service
|
|
if sudo grep -q "$user ALL = (ALL) NOPASSWD:/bin/systemctl start wg-quick@wg0.service" /etc/sudoers; then
|
|
echo "$user darf bereits wg-quick ausführen"
|
|
else
|
|
sudo echo "$user ALL = (ALL) NOPASSWD:/bin/systemctl start wg-quick@wg0.service" | sudo tee -a /etc/sudoers
|
|
fi
|
|
echo "$wireguard_app_start" >~/.local/share/applications/wireguard_an.desktop
|
|
echo "$wireguard_app_stop" >~/.local/share/applications/wireguard_aus.desktop
|
|
done
|
|
|
|
echo "$wireguard_on" >/media/wireguard/wireguard_an.sh
|
|
echo "$wireguard_off" >/media/wireguard/wireguard_aus.sh
|
|
|
|
if ping -c2 10.200.100.1 >/dev/null; then
|
|
echo "Wireguard wurde erfolgreich eingerichtet"
|
|
else
|
|
echo "Wireguard nicht Funktional! 10.200.100.1 konnte nicht angepingt werden!"
|
|
fi
|