¿Cómo se obtiene una conexión VPN de Cisco para recordar su contraseña?

16

El problema

Tengo una conexión VPN IPSEC de Cisco en la configuración de mi red en una máquina Yosemite. Funciona bien, además de solicitar una contraseña en cada conexión. La contraseña guardada se ignora por completo.

Antecedentes

Si ingreso la contraseña en la configuración de red y hago clic en conectar, la contraseña guardada desaparece y aparece el cuadro de diálogo que solicita una contraseña. Verifiqué que la contraseña es correcta (está copiada de un documento).

Cosas que no funcionaron

  • Una solución sugerida para esto para Snow Leopard fue guardar la contraseña, abrir Keychain Access, localizar la clave "Xauth" en el llavero del sistema y otorgar /usr/libexec/configdacceso a la clave. Esto no tuvo efecto.

  • Reparación de permisos habituales / verificación de disco

Cosas raras

Si veo el acceso al llavero mientras presiono el botón de conexión, la contraseña guardada desaparece directamente del llavero justo cuando aparece el cuadro de diálogo.

Pregunta general

¿Cómo guardo la contraseña correctamente para no tener que volver a escribirla en cada conexión?

Mikey TK
fuente
hmm También tengo problemas de autenticación extraños en Yosemite, especialmente en el diálogo de red. No se sorprendería si hay un error involucrado.
n1000
¿Está seguro de que no depende de las políticas de VPN remota (ahora permite guardar la contraseña)?
Matteo Guarnerio
Eso ... explicaría por qué desaparece directamente del llavero si se guarda explícitamente. ¡Tendrá que conversar con los administradores de la red!
Mikey TK

Respuestas:

13

Supongo que está utilizando anyconnect para conectarse al servidor Cisco VPN. AnyConnect también se puede usar desde Terminal. Esto funciona en macOS Sierra y AnyConnect 3.1.14018. Cree un script bash con el siguiente comando:

/opt/cisco/anyconnect/bin/vpn connect your-vpn.server.here -s <.credentials

Y ponga los detalles de inicio de sesión en el archivo .credentials con las siguientes tres líneas:

0
your-username
your-password

No olvides poner permisos razonables en los archivos.

Hans
fuente
El usuario afirma "Tengo una conexión VPN IPSEC de Cisco en la configuración de mi red en una máquina Yosemite". Esta elección de palabras me llevó a concluir con bastante certeza que están usando la solución VPN
incorporada
¿puede pasar ese archivo de alguna manera con los nombres de usuario y / o contraseñas encriptados? como con el archivo de contraseñas en linux
forgetstackxpassword
8

Al leer su pregunta, tengo la impresión de que está haciendo todo correctamente y que Cisco VPN Server tiene la opción de permitir el almacenamiento de contraseñas configuradas en el lado del cliente disallow.

Sé con certeza que tal entorno existe.

FantasmaLetras
fuente
66
Todavía es molesto que el cliente OS X permita esta disallowconfiguración. Al igual que compilar okular sin soporte DRM para copiar una oración de una revista revisada por pares, parece que esta es una configuración fundamentalmente hostil para el usuario.
Landak
2

Ambas respuestas aquí mientras escribo esto tienen el derecho de hacerlo, pero la existencia de la vpnlínea de comando significa que podemos evitar este diseño hostil con el usuario expect. Gracias a los respondedores anteriores, GhostLyrics por revelar la existencia de la opción del lado del servidor que desactiva el almacenamiento de contraseña, y Hans por revelar el vpncliente de línea de comandos.

Cree un archivo que se vea así:

#!/usr/bin/expect --
set timeout 10
set addr ""  # VPN Host
set user ""  # Username
set pass ""  # Password (ensure that special characters are escaped)
set group "" # Group NUMBER shown in connect prompt


spawn /opt/cisco/anyconnect/bin/vpn connect $addr
expect "\r\nGroup:*"
send -- "$group\r"
expect "\r\nUsername:*"
send -- "$user\r"
expect "Password: "
send -- "$pass\r"
expect eof

Rellene los setcampos como de costumbre. Si su VPN es como la mía, recibirá una lista de "grupos" cuando ejecute el vpn connect. Ejecute esto una vez a mano y observe qué número corresponde al grupo con el que desea conectarse. No cambiará entre ejecuciones a menos que los administradores agreguen / eliminen grupos. No puede usar el nombre aquí, el programa espera un número.

Una vez que todo está completo, chmod +xejecuta este script y ejecútalo. Ahora puedo conectarme a mi VPN, ¡manos libres!

Mikey TK
fuente
0

Dejando de lado la respuesta de Hans, ¡ gracias! Quería agilizar un poco la invocación, omitiendo Terminal y terminando con el icono AnyConnect en el menú de estado de macOS. (Estoy en Mojave 10.14.6.)

Primero, inicie Terminal, luego cambie al directorio del binario de la aplicación AnyConnect:

$ cd "/Applications/Cisco/Cisco AnyConnect Secure Mobility Client.app/Contents/MacOS"

Haga una copia del binario original:

$ sudo cp \
"Cisco AnyConnect Secure Mobility Client" \
"Cisco AnyConnect Secure Mobility Client.orig"

Finalmente, sobrescriba el archivo inicial con un script de shell, cambiando VPN hostsu nombre de host o dirección VPN usery pa$$w0rdsus credenciales:

$ sudo cat > "Cisco AnyConnect Secure Mobility Client" <<'SCRIPT'
#!/bin/sh

# The AnyConnect vpn utility takes some options and commands or
# else runs interactively. The help command shows that -s reads
# a script from STDIN and that connect takes a host as argument.
# connect gets the username and password from STDIN. We will 
# supply them from a heredoc with the -s option.

/opt/cisco/anyconnect/bin/vpn -s \
connect "VPN host" <<'CREDENTIALS'
user
pa$$w0rd
CREDENTIALS

exec "$0.orig"  # invoke the original app
SCRIPT

Ahora, debería poder ejecutar AnyConnect desde Spotlight o Finder como de costumbre. Primero, nuestro script se conectará y luego entregará la ejecución al binario de la aplicación para que AnyConnect aparezca en el menú de estado del escritorio.

Christian Campbell
fuente