From ddf72331f291855d6bc1917634dae0f438100387 Mon Sep 17 00:00:00 2001 From: Niklas Merkelt Date: Wed, 27 Oct 2021 10:52:05 +0200 Subject: [PATCH 1/2] Add config option to specify time when used wg keys where delete --- salt/freifunk/base/wireguard/usr/local/bin/wg-backbone.sh | 5 +++++ .../base/wireguard/usr/local/bin/wg-check-peers.sh | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/salt/freifunk/base/wireguard/usr/local/bin/wg-backbone.sh b/salt/freifunk/base/wireguard/usr/local/bin/wg-backbone.sh index bdaff78f..f1b76c25 100644 --- a/salt/freifunk/base/wireguard/usr/local/bin/wg-backbone.sh +++ b/salt/freifunk/base/wireguard/usr/local/bin/wg-backbone.sh @@ -39,6 +39,11 @@ start_wg() public=$(echo "$secret" | wg pubkey) uci -q set ffdd.wireguard.public="$public" + # set unused days delete timeout + if [ -z "$(uci -q get ffdd.wireguard.unused_days)" ]; then + uci -q set ffdd.wireguard.unused_days=30 + fi + # save config uci commit diff --git a/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh b/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh index 074efc17..48dfab39 100644 --- a/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh +++ b/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh @@ -5,7 +5,8 @@ wg_ifname='tbb_wg' peers_dir='/etc/wireguard-backbone/peers' current_date=$(date +%s) -days30=60*60*24*30 +unused_days=$(uci -qX get ffdd.wireguard.unused_days | echo 30) +unused_days_sec=60*60*24*$unused_days get_peer_file() { @@ -49,8 +50,8 @@ clean_peers() lastseen=$(grep lastseen $file | sed 's#lastseen\s*##') if [ ! -z $lastseen ]; then - current_days30=$(($(($current_date))-$(($days30)))) - if [ $(($lastseen)) -lt $(($current_days30)) ]; + current_unused_date=$(($(($current_date))-$(($unused_days_sec)))) + if [ $(($lastseen)) -lt $(($current_unused_date)) ]; then wg set "$wg_ifname" peer "$key" remove rm "$file" From 0fead38316a0a47d0e176a88ea15ce10dc4fe027 Mon Sep 17 00:00:00 2001 From: Niklas Merkelt Date: Wed, 27 Oct 2021 20:15:51 +0200 Subject: [PATCH 2/2] Fix typo in wg-check-peers.sh --- salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh b/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh index 48dfab39..0ea23a8e 100644 --- a/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh +++ b/salt/freifunk/base/wireguard/usr/local/bin/wg-check-peers.sh @@ -5,7 +5,7 @@ wg_ifname='tbb_wg' peers_dir='/etc/wireguard-backbone/peers' current_date=$(date +%s) -unused_days=$(uci -qX get ffdd.wireguard.unused_days | echo 30) +unused_days=$(uci -qX get ffdd.wireguard.unused_days || echo 30) unused_days_sec=60*60*24*$unused_days get_peer_file()