Initial commit
This commit is contained in:
Executable
+178
@@ -0,0 +1,178 @@
|
||||
#!/bin/bash
|
||||
|
||||
ReadToContinue() {
|
||||
echo "Return Taste zum fortfahren..."
|
||||
read
|
||||
}
|
||||
|
||||
AddUser() {
|
||||
echo -n "Benutzername : "
|
||||
read username
|
||||
echo -n "IP Adresse : "
|
||||
read ip
|
||||
echo -n "Passwort : "
|
||||
read pwd
|
||||
export string_to_hash="${pwd}"
|
||||
hash="$(/opt/openvpn/sysoper/hashme.py)"
|
||||
echo "${hash}" > /opt/openvpn/users/${username}.pwd
|
||||
echo "ifconfig-push ${ip} 255.255.0.0" > /opt/openvpn/ccd/${username}
|
||||
echo "User ${username} wurde erzeugt"
|
||||
ReadToContinue
|
||||
}
|
||||
|
||||
ChangePassword() {
|
||||
echo -n "Benutzername : "
|
||||
read username
|
||||
if [ -f /opt/openvpn/users/${username}.pwd ]; then
|
||||
echo -n "Passwort : "
|
||||
read pwd
|
||||
export string_to_hash="${pwd}"
|
||||
hash="$(/opt/openvpn/sysoper/hashme.py)"
|
||||
echo "${hash}" > /opt/openvpn/users/${username}.pwd
|
||||
ReadToContinue
|
||||
else
|
||||
echo "User ${username} existiert nicht"
|
||||
ReadToContinue
|
||||
fi
|
||||
}
|
||||
|
||||
DeleteUser() {
|
||||
echo -n "Benutzername : "
|
||||
read username
|
||||
if [ -f /opt/openvpn/users/${username}.pwd ]; then
|
||||
rm /opt/openvpn/users/${username}.pwd
|
||||
echo "User ${username} wurde geloescht"
|
||||
# Das CCD-File loeschen wir auch, falls vorhanden
|
||||
if [ -f /opt/openvpn/ccd/${username} ]; then
|
||||
rm /opt/openvpn/ccd/${username}
|
||||
fi
|
||||
ReadToContinue
|
||||
else
|
||||
echo "User ${username} existiert nicht"
|
||||
ReadToContinue
|
||||
fi
|
||||
}
|
||||
|
||||
ShowUser() {
|
||||
echo -n "Benutzername : "
|
||||
read username
|
||||
ip=""
|
||||
if [ -f /opt/openvpn/users/${username}.pwd ]; then
|
||||
if [ -f /opt/openvpn/ccd/${username} ]; then
|
||||
ip="$(cat /opt/openvpn/ccd/${username} |awk '{print $2}')"
|
||||
fi
|
||||
echo "User ${username} existiert und hat die IP Adresse ${ip}"
|
||||
echo
|
||||
echo "Folgendes sind die letzten 20 Logeintraege fuer diesen User:"
|
||||
echo
|
||||
if [ -f /opt/openvpn/log/${username}.log ]; then
|
||||
tail -20 /opt/openvpn/log/${username}.log
|
||||
else
|
||||
echo "Es existieren keine Logeintraege"
|
||||
fi
|
||||
ReadToContinue
|
||||
else
|
||||
echo "User ${username} existiert nicht"
|
||||
ReadToContinue
|
||||
fi
|
||||
}
|
||||
|
||||
ListUsers() {
|
||||
echo
|
||||
echo "Username IP Adresse"
|
||||
echo "=================================="
|
||||
for userfile in $(ls -1 /opt/openvpn/users/*.pwd 2>/dev/null) ; do
|
||||
user="${userfile##*/}"
|
||||
user="${user%.pwd}"
|
||||
ip="N/A"
|
||||
if [ -f /opt/openvpn/ccd/${user} ]; then
|
||||
ip="$(cat /opt/openvpn/ccd/${user} |awk '{print $2}')"
|
||||
fi
|
||||
printf "%-20s %-15s\n" "$user" "$ip"
|
||||
done
|
||||
echo
|
||||
ReadToContinue
|
||||
}
|
||||
|
||||
ShowLogfile() {
|
||||
echo "Hinweis: mit Taste G zum Ende des Logs gehen..., Space fuer Seitenweises vorwaertsgehen..."
|
||||
echo
|
||||
ReadToContinue
|
||||
/bin/less /opt/openvpn/log/logon.log
|
||||
}
|
||||
|
||||
AdvancedMenu() {
|
||||
acharacter=0
|
||||
while [ "${acharacter}" != "9" ]; do
|
||||
clear
|
||||
echo "Advanced Functions"
|
||||
echo "=================="
|
||||
echo "1 - OpenVPN Dienst stoppen"
|
||||
echo "2 - OpenVPN Dienst starten"
|
||||
echo "3 - OpenVPN Dienst Statusabfrage"
|
||||
echo "4 - Passwort von sysoper aendern"
|
||||
echo
|
||||
echo "9 - Zurueck zum Hauptmenu"
|
||||
echo
|
||||
echo -n "Bitte Option waehlen > "
|
||||
read acharacter
|
||||
case ${acharacter} in
|
||||
1) /bin/sudo /bin/systemctl stop myopenvpn
|
||||
ReadToContinue
|
||||
;;
|
||||
2) /bin/sudo /bin/systemctl start myopenvpn
|
||||
ReadToContinue
|
||||
;;
|
||||
3) /bin/sudo /bin/systemctl status myopenvpn
|
||||
ReadToContinue
|
||||
;;
|
||||
4) /bin/passwd sysoper
|
||||
;;
|
||||
9) echo Zurueck...
|
||||
;;
|
||||
*) echo "Ungueltige Option..."
|
||||
read
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
character=0
|
||||
while [ "${character}" != "9" ]; do
|
||||
clear
|
||||
echo "Userverwaltung OpenVPN"
|
||||
echo "======================"
|
||||
echo "1 - OpenVPN Benutzer hinzufuegen"
|
||||
echo "2 - OpenVPN Benutzer Passwort setzen"
|
||||
echo "3 - OpenVPN Benutzer entfernen"
|
||||
echo "4 - OpenVPN Benutzer anzeigen"
|
||||
echo "5 - OpenVPN Benutzer auflisten"
|
||||
echo
|
||||
echo "7 - Logfile anzeigen"
|
||||
echo "8 - Advanced Functions"
|
||||
echo
|
||||
echo "9 - Exit"
|
||||
echo
|
||||
echo -n "Bitte Option waehlen > "
|
||||
read character
|
||||
case ${character} in
|
||||
1) AddUser
|
||||
;;
|
||||
2) ChangePassword
|
||||
;;
|
||||
3) DeleteUser
|
||||
;;
|
||||
4) ShowUser
|
||||
;;
|
||||
5) ListUsers
|
||||
;;
|
||||
7) ShowLogfile
|
||||
;;
|
||||
8) AdvancedMenu
|
||||
;;
|
||||
9) echo Exit...
|
||||
;;
|
||||
*) echo "Ungueltige Option..."
|
||||
read
|
||||
esac
|
||||
done
|
||||
exit 0
|
||||
Reference in New Issue
Block a user