47 lines
1,001 B
Bash
Executable file
47 lines
1,001 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# Edit this
|
|
|
|
OPENCONNECT_USER=
|
|
OPENCONNECT_URL=
|
|
OPENCONNECT_OPTIONS="--authgroup <VPN Group> --servercert <VPN Server Certificate>"
|
|
PROXY_PORT=8888
|
|
|
|
# Don't touch this
|
|
|
|
container() {
|
|
# Ask for password on the commandline
|
|
stty -echo
|
|
printf "VPN password: "
|
|
read OPENCONNECT_PASSWORD
|
|
stty echo
|
|
printf "\n\n"
|
|
|
|
# Start container with proxy on specified port
|
|
docker run -it --rm "$@" --privileged \
|
|
-e OPENCONNECT_URL="$OPENCONNECT_URL" \
|
|
-e OPENCONNECT_OPTIONS="$OPENCONNECT_OPTIONS" \
|
|
-e OPENCONNECT_USER="$OPENCONNECT_USER" \
|
|
-e OPENCONNECT_PASSWORD="$OPENCONNECT_PASSWORD" \
|
|
-e PROXY_PORT="$PROXY_PORT" \
|
|
-p $PROXY_PORT:$PROXY_PORT \
|
|
"wazum/openconnect-proxy:latest"
|
|
}
|
|
|
|
ssh_proxy() {
|
|
if hash corkscrew 2>/dev/null; then
|
|
ssh -o ProxyCommand="corkscrew 127.0.0.1 $PROXY_PORT %h %p" "$@"
|
|
else
|
|
printf "The ssh command requires 'corkscrew' to be installed and executable.\n"
|
|
fi
|
|
}
|
|
|
|
case $1 in
|
|
ssh)
|
|
shift
|
|
ssh_proxy "$@"
|
|
;;
|
|
*)
|
|
container "$@"
|
|
;;
|
|
esac
|