[Scripts] Improve VPN script
This commit is contained in:
@@ -1,58 +1,73 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
connect() {
|
connect() {
|
||||||
read -sp $'Please enter your Encryption Password: ' encpass
|
read -sp $'Please enter your Encryption Password: ' encpass
|
||||||
echo " ==> Connecting"
|
echo " ==> Connecting"
|
||||||
TOKEN=$(cat ~/.local/share/ethz-vpn-connect/ethzvpntoken.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass)
|
TOKEN=$(cat ~/.local/share/ethz-vpn-connect/ethzvpntoken.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass)
|
||||||
PASSWORD=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnpass.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass)
|
PASSWORD=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnpass.secret | openssl enc -aes-256-cbc -pbkdf2 -d -a -k $encpass)
|
||||||
USERNAME=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnusername.txt)
|
USERNAME=$(cat ~/.local/share/ethz-vpn-connect/ethzvpnusername.txt)
|
||||||
echo $PASSWORD | sudo openconnect -b -u $USERNAME@student-net.ethz.ch -g student-net --useragent=AnyConnect --passwd-on-stdin --token-mode=totp --token-secret=sha1:base32:$TOKEN sslvpn.ethz.ch
|
echo $PASSWORD | sudo openconnect -bv -u $USERNAME@student-net.ethz.ch -g student-net --useragent=AnyConnect --passwd-on-stdin --token-mode=totp --token-secret=sha1:base32:$TOKEN sslvpn.ethz.ch
|
||||||
encpass=""
|
if [ $? -ne 0 ]; then
|
||||||
PASSWORD=""
|
echo ' ==> Failed to connect <=='
|
||||||
TOKEN=""
|
else
|
||||||
|
echo ' ==> Connected <==\n'
|
||||||
|
fi
|
||||||
|
encpass=""
|
||||||
|
PASSWORD=""
|
||||||
|
TOKEN=""
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
sudo killall -v -SIGINT openconnect
|
sudo killall -v -SIGINT openconnect
|
||||||
echo " ==> Disconnected"
|
echo " ==> Disconnected"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
echo 'You are about to overwrite your secrets. Press ctrl + C to cancel.'
|
echo 'You are about to overwrite your secrets. Press ctrl + C to cancel.'
|
||||||
read -p $'Please enter your ETHZ-Username: ' USERNAME
|
read -p 'Please enter your ETHZ-Username: ' USERNAME
|
||||||
read -sp $'Please choose and enter your Encryption Password (will be required when launching): ' encpass
|
read -sp 'Please choose and enter your Encryption Password (will be required when launching): ' encpass
|
||||||
read -sp $'Please enter your ETHZ WLAN (= Radius) Password: ' PASSWORD
|
echo ""
|
||||||
read -sp $'Please enter your ETHZ OTP Secret: ' TOKEN
|
read -sp 'Please enter your ETHZ WLAN (= Radius) Password: ' PASSWORD
|
||||||
mkdir ~/.local/share/ethz-vpn-connect
|
echo ""
|
||||||
echo $PASSWORD | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpnpass.secret
|
read -sp 'Please enter your ETHZ OTP Secret: ' TOKEN
|
||||||
echo $TOKEN | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpntoken.secret
|
echo ""
|
||||||
echo $USERNAME >~/.local/share/ethz-vpn-connect/ethzvpnusername.txt
|
if [[ -d ~/.local/share/ethz-vpn-connect ]]; then
|
||||||
encpass=""
|
rm -rf ~/.local/share/ethz-vpn-connect
|
||||||
PASSWORD=""
|
fi
|
||||||
TOKEN=""
|
mkdir ~/.local/share/ethz-vpn-connect
|
||||||
echo $' ==> Secrets set <==\n'
|
echo $PASSWORD | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpnpass.secret
|
||||||
|
echo $TOKEN | openssl enc -aes-256-cbc -pbkdf2 -a -k $encpass >~/.local/share/ethz-vpn-connect/ethzvpntoken.secret
|
||||||
|
echo $USERNAME >~/.local/share/ethz-vpn-connect/ethzvpnusername.txt
|
||||||
|
encpass=""
|
||||||
|
PASSWORD=""
|
||||||
|
TOKEN=""
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo ' ==> Failed to set secrets <=='
|
||||||
|
else
|
||||||
|
echo ' ==> Secrets set <==\n'
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
'connect')
|
'connect')
|
||||||
connect
|
connect
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
connect
|
connect
|
||||||
;;
|
;;
|
||||||
'disconnect')
|
'disconnect')
|
||||||
disconnect
|
disconnect
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
disconnect
|
disconnect
|
||||||
;;
|
;;
|
||||||
dc)
|
dc)
|
||||||
disconnect
|
disconnect
|
||||||
;;
|
;;
|
||||||
setup)
|
setup)
|
||||||
setup
|
setup
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e 'Usage: ethz-vpn [Option] \n [Option]: \n connect, c: Connect VPN \n disconnect, d, dc: Disconnect VPN \n setup: set secrets and eth-Username.\n'
|
echo -e 'Usage: ethz-vpn [Option] \n [Option]: \n connect, c: Connect VPN \n disconnect, d, dc: Disconnect VPN \n setup: set secrets and eth-Username.\n'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user