wg-installer: delete old interfaces
Add "wg_check_interfaces" and specify a timeout in the config file. This allows to delete not used wireguard-interfaces automatically. For example a cronjob can be installed that calls: . /usr/share/wginstaller/wg_functions.sh && wg_check_interfaces Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
parent
17b18d825c
commit
36dc9b3f79
2 changed files with 28 additions and 0 deletions
|
@ -4,3 +4,4 @@ config server
|
||||||
option base_prefix '2002::/64'
|
option base_prefix '2002::/64'
|
||||||
option wg_key '/root/wg.key'
|
option wg_key '/root/wg.key'
|
||||||
option wg_pub '/root/wg.pub'
|
option wg_pub '/root/wg.pub'
|
||||||
|
option timeout_handshake '600'
|
||||||
|
|
|
@ -1,6 +1,33 @@
|
||||||
. /usr/share/libubox/jshn.sh
|
. /usr/share/libubox/jshn.sh
|
||||||
. /usr/share/wginstaller/wg.sh
|
. /usr/share/wginstaller/wg.sh
|
||||||
|
|
||||||
|
wg_timeout () {
|
||||||
|
local int=$1
|
||||||
|
|
||||||
|
handshake=$(wg show $int latest-handshakes | awk '{print $2}')
|
||||||
|
timeout=$(uci get wgserver.@server[0].timeout_handshake)
|
||||||
|
|
||||||
|
if [ $handshake -ge $timeout ]; then
|
||||||
|
echo "1"
|
||||||
|
else
|
||||||
|
echo "0"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
wg_check_interface () {
|
||||||
|
local int=$1
|
||||||
|
if [ $(wg_timeout $int) -eq "1" ]; then
|
||||||
|
ip link del dev $int
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
wg_check_interfaces () {
|
||||||
|
wg_interfaces=$(wg show interfaces)
|
||||||
|
for interface in $wg_interfaces; do
|
||||||
|
wg_check_interface $interface
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
wg_get_usage () {
|
wg_get_usage () {
|
||||||
num_interfaces=$(wg show interfaces | wc -w)
|
num_interfaces=$(wg show interfaces | wc -w)
|
||||||
json_init
|
json_init
|
||||||
|
|
Loading…
Reference in a new issue