Files
vpnmon/vpnmon.sh
2022-05-22 11:45:32 -05:00

69 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# powerwall - CLI commands to control VM guest power
source /opt/idssys/defaults/colors.inc
source /opt/idssys/defaults/default.inc
source /opt/idssys/vpnmon/system.inc
START(){
sudo mkdir -p /var/run/xl2tpd
sudo touch /var/run/xl2tpd/l2tp-control
sudo service strongswan restart
sudo service xl2tpd restart
sudo service ipsec restart
sleep 8s
sudo /usr/sbin/ipsec up L2TP-PSK
sleep 8s
sudo bash -c 'echo "c myVPN" > /var/run/xl2tpd/l2tp-control'
sleep 8s
if [ "${ROUTE}" != "" ]; then
ip route add ${ROUTE} via $(ip address show dev ppp0 | grep -Po '(?<=peer )(\b([0-9]{1,3}\.){3}[0-9]{1,3}\b)') dev ppp0
fi
if [ "${SYSTEM}" = "unifipoller" ]; then
/usr/sbin/service unifi-poller start
fi
}
STOP(){
if [ "${SYSTEM}" = "unifipoller" ]; then
/usr/sbin/service unifi-poller stop
fi
sudo bash -c 'echo "d myVPN" > /var/run/xl2tpd/l2tp-control'
/usr/sbin/ipsec down L2TP-PSK
}
CHECK(){
checked=false
cc=0
until [ "${checked}" = "" ]; do
OUT=$(ip link | grep "ppp0")
#OUT=`ip a show $VPN_INTERFACE up` >/dev/null 2>&1
if [ ${#OUT} -ne 0 ]; then
checked=""
elif [ ${cc} -eq 10 ]; then
STOP
sleep 5s
START
fi
((cc=${cc}+1))
sleep 1s
done
}
case ${1} in
start) START;;
stop) STOP;;
check) CHECK;;
esac
exit 0