47 votes

Se connecter en utilisant anyconnect à partir de la ligne de commande

J'essaie d'utiliser Cisco anyconnect 3.1 à partir de la ligne de commande Linux pour me connecter à un serveur. Je peux me connecter, mais je dois soumettre un paramètre à la fois. J'aimerais me connecter à partir d'un script qui s'exécutera sur un autre serveur. Est-ce possible ? Quelque chose comme

vpn connect server_add group_name user_name passwd

0voto

Atul Verma Points 1

Pour ce cas d'utilisation, j'ai utilisé expect script. Je colle ma solution ci-dessous :

`#!/usr/bin/expect
spawn sudo /opt/cisco/anyconnect/bin/vpnagentd
expect ": "
send "Sudo Password goes here \r"
expect "$ "
spawn /opt/cisco/anyconnect/bin/vpn -s connect HOST
expect "*]*"
send -- "Username goes here\r"
expect "Password: "
send -- "Password goes here\r"
expect "Answer: "
send -- "If MFA is not enabled, then this step can be skipped\r"

0voto

TizeeU0U Points 101

Inspiré par les réponses des autres, j'ai écrit un Shell Shell pour moins de frappes :

#!/usr/bin/env bash

__quickvpn(){
  local username="your_username_here"
  local password="your_pwd_here"
  local url="your_host_here"
  local vpn_tool="/opt/cisco/anyconnect/bin/vpn"
  if [[ -z $1 && -e /opt/cisco/anyconnect/bin/vpn ]];then
    echo "usage: on | off | state \n - on: connect\n - off: disconnect\n - state: connect status\n"
  elif [[ $1 == "on" ]];then
    print "${username}\n${password}\ny" | $vpn_tool -s connect $url > /dev/null 2>&1
  elif [[ $1 == "off" ]]; then
    print "${username}\n${password}\ny" |  $vpn_tool -s disconnect $url > /dev/null 2>&1
  elif [[ $1 == "state" ]]; then
    $vpn_tool -s state | sed 's/>>//' | sed -n 's/\(state:.*\).*/\1/p;/state/q'
  else
    echo "cisco vpn not found"
  fi
}

__quickvpn $1

Enregistrez ce qui précède dans un fichier Shell Shell nommé comme suit myvpn sous /usr/local/bin y chmod 744 /usr/local/bin/myvpn vous pouvez alors l'utiliser comme suit :

myvpn on # connect
myvpn off # disconnect
myvpn state # connection status

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X