Connessione a un Cisco ASA in ipesec

Ricevo da un cliente una configurazione (un file di testo) così fatta:

n:version:4
n:network-ike-port:500
n:network-mtu-size:1380
n:client-addr-auto:1
n:network-natt-port:4500
n:network-natt-rate:15
n:network-frag-size:540
n:network-dpd-enable:1
n:client-banner-enable:1
n:network-notify-enable:1
n:client-wins-used:1
n:client-wins-auto:1
n:client-dns-used:1
n:client-dns-auto:1
n:client-splitdns-used:0
n:client-splitdns-auto:1
n:phase1-dhgroup:2
n:phase1-life-secs:86400
n:phase1-life-kbytes:0
n:vendor-chkpt-enable:0
n:phase2-life-secs:3600
n:phase2-life-kbytes:0
n:policy-nailed:0
n:policy-list-auto:1
n:client-dns-suffix-auto:1
s:network-host:XXX.XXX.XXX.XXX
s:client-auto-mode:pull
s:client-iface:virtual
s:network-natt-mode:enable
s:network-frag-mode:enable
s:auth-method:mutual-psk-xauth
s:ident-client-type:fqdn
s:ident-server-type:any
s:ident-client-data:XXXXXXXXXXXXXXX
b:auth-mutual-psk:XXXXXXXXXXXXXXX==
s:phase1-exchange:aggressive
s:phase1-cipher:auto
s:phase1-hash:auto
s:phase2-transform:auto
s:phase2-hmac:auto
s:ipcomp-transform:disabled
n:phase2-pfsgroup:-1
s:policy-level:auto
s:client-saved-username:XXXXXX

Inoltre il cliente mi manda due dati: username e password per il mio account.

Se avete una config tipo quella indicata sopra, probabilmente la vostra soluzione è usare "VPNC" per Linux. Se state usando Linux Mint con Cinnamon come me (Ma anche ubuntu probabilmente), allora dovete installare questi pacchetti:

apt install network-manager-vpnc network-manager-vpnc-gnome vpnc

A questo punto se andate sempre dall'interfaccia grafica a creare una nuova connessione vpn, troverete la possibilita` di creare una nuova connessione di tipo "Cisco Compatible VPN (vpnc)". Fatelo, e troverete una maschera dove inserire diversi valori. Queste sono le voci che ho preso dalla config di cui sopra e ho riportato nella maschera di configurazione della vpn sotto network manager:

Voce nella config di NetworkmanagerVoce nel file di config ricevuto dal gestore dell'appliance vpnNote
Gateways:network-hostIndirizzo o hostname del remoto
User NameUsername fornitoNon è nella config, mi è stato dato a parte
User PasswordPassword fornitaCome sopra
Group names:ident-client-dataE` case sensitive ed è obbligatoria a quanto pare
Group passwordb:auth-mutual-pskE` encodata in base64, va decodificata prima di metterla qui!

Questa configurazione è stata sufficiente, nel mio caso, per avere un collegamento funzionante. Forse dovrete poi aggiustare eventuali regole di routing o altro dentro la VPN. Per decodificare la "Group password" ho semplicemente usato il comando "base64 -d", fornendo come input la stringa che c'era nel file fornito dal cliente (che finisce con "==") e ottenendo indietro una stringa da inserire nella relativa voce. E` abbastanza evidente che la prima colonna nel file fornito dal cliente sta a indicare il tipo di dato: "n" è numerico, "s" è stringa, e "b" è base64.