Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Forticlient SSL VPN Client launching script utilizing expect.
- # --------------------------------------------
- # CONFIGURATION
- # If empty - script will take some simple logic to locate appropriate binary.
- FORTICLIENT_PATH=""
- # VPN Credentials
- VPN_HOST="host:10443"
- VPN_USER="username"
- VPN_PASS="password"
- # --------------------------------------------
- trap ctrl_c INT
- function ctrl_c() {
- echo "Removing left-over files..."
- rm -f /tmp/expect
- }
- if [[ $EUID -ne 0 ]]; then
- echo "This script must be run as root"
- exit 1
- fi
- if [ -z "$FORTICLIENT_PATH" ]; then
- FORTICLIENT_PATH=`uname -r | grep -q 64 && echo $(locate forticlientsslvpn_cli | grep 64bit) || echo $(locate forticlientsslvpn_cli | grep 32bit)`
- if [ ! -f $FORTICLIENT_PATH ]; then
- echo "Tried to locate Forticlient SSL VPN Cli binary, but failed."
- echo "Specify it at variable FORTCLIENT_PATH"
- exit 1
- fi
- echo "Located Forticlient VPN Client at: $FORTICLIENT_PATH"
- fi
- echo "Killing previous instances of Forticlient SSL VPN client..."
- killall -9 $(basename $FORTICLIENT_PATH) 2> /dev/null
- cat << EOF > /tmp/expect
- #!/usr/bin/expect -f
- match_max 1000000
- set timeout -1
- spawn $FORTICLIENT_PATH --server $VPN_HOST --vpnuser $VPN_USER --keepalive
- expect "Password for VPN:"
- send -- "$VPN_PASS"
- send -- "\r"
- expect "Would you like to connect to this server? (Y/N)"
- send -- "Y"
- send -- "\r"
- expect "Clean up..."
- close
- EOF
- chmod 500 /tmp/expect
- /usr/bin/expect -f /tmp/expect
- rm -f /tmp/expect
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement