Added Yubikey support

This commit is contained in:
Jānis Jansons
2020-12-18 02:46:55 +02:00
parent b939b7aa0e
commit bfa2b5edbe
2 changed files with 20 additions and 3 deletions
+11 -1
View File
@@ -31,4 +31,14 @@ Rename routes.txt.sample to routes.txt or create an empty routes.txt and add sub
sudo -E ./run-vpn.sh
```
In case of disconnect, it will try reconnecting after 3 seconds. You can stop it by pressing `CTRL+C` or killing the script.
In case of disconnect, it will try reconnecting after 3 seconds. You can stop it by pressing `CTRL+C` or killing the script.
### Yubikey
Yubikey can be used for safe storage of TOTP seed. Configure TOTP in Yubikey Authenticator app or `ykman oath` if using command line. Then use `ykman oath list` to get the name of the entry and set that name in `OC_YUBIKEY` environment variable.
For example:
```
OC_YUBIKEY=VPN:organization sudo -E ./run-vpn.sh
```
+9 -2
View File
@@ -44,12 +44,19 @@ while true; do
SCRIPT_INCLUDE="--script=\"$SCRIPTPATH/routing.sh\""
fi
TOTP=$(oathtool --totp=sha1 -b "$SEED")
# If yubikey is not used, use the TOTP seed
if [[ -z "$OC_YUBIKEY" ]]; then
TOTP=$(oathtool --totp=sha1 -b "$SEED")
PASSWORD="$PASSWORD\n$TOTP"
else
YUBIKEY_TOTP="--token-mode=yubioath --token-secret=$OC_YUBIKEY"
fi
echo -e "$PASSWORD\n$TOTP" | sudo openconnect \
echo -e "$PASSWORD" | sudo openconnect \
--csd-wrapper hostscan-bypass.sh \
--passwd-on-stdin \
--os=mac-intel \
$YUBIKEY_TOTP \
$SCRIPT_INCLUDE \
-u $USERNAME \
$SERVER