always-on-openconnect-vpn/run-vpn.sh

45 lines
957 B
Bash
Raw Normal View History

2020-12-17 18:22:15 +00:00
#!/bin/bash
SERVER=$(security find-generic-password -l "Openconnect VPN Server" -w)
USERNAME=$(security find-generic-password -l "Openconnect Username" -w)
SEED=$(security find-generic-password -l "Openconnect TOTP Seed" -w)
PASSWORD=$(security find-generic-password -l "Openconnect Account Password" -w)
2020-12-17 23:05:16 +00:00
SCRIPT=`realpath $0`
SCRIPTPATH=`dirname $SCRIPT`
ROUTE_FILE=routes.txt
2020-12-17 18:22:15 +00:00
# trap ctrl-c and call ctrl_c()
trap ctrl_c INT
function ctrl_c() {
killall openconnect
echo "Bye!"
exit
}
2020-12-17 23:05:16 +00:00
SCRIPT_INCLUDE=""
2020-12-17 18:22:15 +00:00
while true; do
echo "Connecting to VPN"
2020-12-17 23:05:16 +00:00
if test -f "$ROUTE_FILE"; then
SCRIPT_INCLUDE="--script=\"$SCRIPTPATH/routing.sh\""
fi
2020-12-17 18:22:15 +00:00
echo $PASSWORD | sudo openconnect \
--csd-wrapper hostscan-bypass.sh \
--passwd-on-stdin \
2020-12-17 19:00:59 +00:00
--os=mac-intel \
2020-12-17 23:05:16 +00:00
$SCRIPT_INCLUDE \
2020-12-17 18:22:15 +00:00
--token-mode=totp \
--token-secret=sha1:base32:$SEED \
-u $USERNAME \
$SERVER
echo "Openconnect closed. Waiting 3 seconds."
sleep 3
done