Quando ho lavorato per installare l'interfaccia SSL VPN Extender ufficiale di Firefox nella domanda VPN SSL Network Extender in Firefox , ho scoperto e risolto alcuni altri pezzi del puzzle di questa domanda.
Apparentemente, mentre l'utilizzo della riga di comando snx
da checkpoint è stato interrotto, il client basato sul web come descritto nel post collegato funziona ancora. Tuttavia, esiste un client da riga di comando python, che tenta di replicare l'interfaccia Web + Java sulla parte superiore del snx
client e questo post riguarda l'impostazione per il funzionamento.
Innanzitutto, l' snxvp
installazione da python pip
non funziona. Esiste una versione aggiornata di patch su https://github.com/agnis-mateuss/snxvpn , che ha alcune utili patch, inclusa un'opzione per ignorare i certificati non firmati e / o scaduti e, cosa più interessante, essendo compatibile con python2 e python3.
Inoltre, tutti gli URL su snxconnect.py
devono essere cambiati da sslvpn/
a ''.
Quindi le istruzioni dettagliate sono approssimativamente:
1) Innanzitutto, installare l' snx
installazione:
Se nella VPN, per ottenere il file di installazione, eseguire:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
Altrimenti, dovrai ottenerlo dall'interfaccia web, come descritto nella risposta collegata.
Per Debian, potresti aver bisogno di:
sudo dpkg --add-architecture i386
sudo apt-get update
Ho dovuto installare quanto segue:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Esegui quindi:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Ora avrai un /usr/bin/snx
eseguibile binario client a 32 bit. Controlla se mancano librerie dinamiche con:
sudo ldd /usr/bin/snx
È possibile procedere ai punti seguenti solo quando tutte le dipendenze sono soddisfatte.
Non sono sicuro se è necessario eseguire snx -s CheckpointURLFQDN -u USER
prima di utilizzare snxconnect
, per salvare la firma VPN su /etc/snx/USER.db
.
2) Ora abbiamo l' snxconnect
utilità python. Tale programma tenta di emulare l'interfaccia Web e, cosa più interessante, non ha bisogno di Java per l'autenticazione.
Quindi per installare e configurare snxconnect
, esegui come root:
apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev python-pip
pip install pytz
git clone https://github.com/agnis-mateuss/snxvpn
git clone git://git.code.sf.net/p/sfreleasetools/code releasetools
cd snxvpn
Now, as for taking out the /sslvpn URL, some Checkpoint appliances need it, some do not. I am not still aware of why the difference. I need it, @WileyMarques does not.
sed -i "s/sslvpn\///g" snxconnect.py
. quindi fai come root, per python3: (consigliato)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
. o invece , fai come root, per python2:
apt-get install python-docutils python-libxml2 python-lxml python-dev python-bs4 python-beautifulsoup
sed -i "s/distutils.core/setuptools/g" setup.py
make
python setup.py install --prefix=/usr/local
3) Dopo averlo installato, è possibile eseguire come utente non privilegiato:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Se tutto è andato bene, verrà richiesta la password, quindi verrà visualizzato:
SNX connected, to leave VPN open, leave this running!
Se riscontri problemi nel ricevere questo messaggio e ricevi invece più volte di seguito, il messaggio: "Risposta imprevista, riprova.", Esegui il metodo Firefox e Disconnetti e disconnettiti correttamente, aspettando un paio di minuti prima di provare snxconnect
comando di nuovo.
4) Il file dei cookie verrà creato su ~ / .snxcookies, dopo un utilizzo corretto.
Dopo aver stabilito la VPN, puoi verificare con ip address
o ifconfig
hai ora tunsnx
un'interfaccia:
$ ip addr show dev tunsnx
14: tunsnx: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 10.x.x.x peer 10.x.x.x/32 scope global tunsnx
valid_lft forever preferred_lft forever
inet6 fe80::acfe:8fce:99a4:44b7/64 scope link stable-privacy
valid_lft forever preferred_lft forever
ip route
ti mostrerà anche nuovi percorsi che attraversano l' tunsnx
interfaccia.
5) Per chiudere / disconnettere la VPN, mentre puoi fermare / uccidere snxconnect
, il modo migliore e ufficiale è quello di emettere il comando:
$snx -d
SNX - Disconnecting...
done.
Inoltre, ho anche scoperto:
snxconnect
sembra comportarsi meglio quando si disconnette la precedente connessione VPN e si effettua il logout nell'interfaccia web ufficiale se c'è qualche strano problema (bisogna provare snx -d
a vedere se produce lo stesso risultato);
- PYTHONHTTPSVERIFY = 0 influisce solo sulla versione python2;
- se l'interfaccia Web sta eseguendo un reindirizzamento HTML su una posizione CheckPoint secondaria, puntando direttamente a quel nome host reindirizzato, ottiene risultati migliori;
- se i certificati dei firewall sono autofirmati (spesso lo sono) è necessario utilizzare l'opzione --skip-cert, altrimenti l'autenticazione fallirà;
- per non avere così tanti problemi di riautenticazione, ha dovuto usare --save-cookies per usare i cookie di autenticazione, mentre l'utente è loggato nel punto VPN remoto (ha un timeout di x ore);
- come descritto nell'ultima domanda, affinché lo script funzioni, l'opzione "All'accesso avvia SSL Network Extender" deve essere modificata in "automaticamente";
- 7776 / TCP in localhost deve essere gratuito, per
snx
possederlo, mentre snxconnect
parla con il suo snx
utilizzo;
- il nome host passato a
snxconnect
/ snx
viene gestito come host virtuale e come tale non è possibile utilizzare direttamente l'indirizzo IP VPN;
- l'installazione di un'architettura a 32 bit sembra essere un requisito per eseguire lo
snx_install.sh
script;
- potresti scegliere di correre come
python2
un compromesso per meno spazio, tuttavia mentre Python2 viene gradualmente eliminato, snxconnect
in un prossimo futuro potrebbe non supportarlo;
- dall'uso dell'interfaccia del client Web, è chiaro che devo correggere / eliminare tutte le
/sslvpn
stringhe, poiché i miei URL non iniziano con /sslvpn
. Verificherei il tuo caso particolare. Non ho assolutamente idea se la presenza di quella stringa nel codice sia dovuta a una versione precedente, mi piacerebbe un po 'di feedback;
- nel
snxconnect
nome host CheckPoint deve essere il nome esatto che l'interfaccia web ti mostra una volta autenticato, in quanto è un host virtuale web. Altrimenti, non riuscirai a stabilire la VPN;
- Al primo
snx
utilizzo, verrà creato un file con la firma del server VPN / Checkpoint in /etc/snx/USER.db
;
- Se è necessario utilizzare OTP dalla riga di comando, è necessario utilizzarlo
snxconnect
poiché snx
da solo non lo supporta.