En travaillant pour installer l'interface officielle SSL VPN Extender de Firefox dans la question VPN SSL Network Extender dans Firefox , j'ai découvert et résolu quelques pièces supplémentaires du puzzle de cette question.
Apparemment, bien que l'utilisation en ligne de commande de snx
from checkpoint ait été interrompue, le client basé sur le Web tel que décrit dans la publication liée fonctionne toujours. Cependant, il existe un client de ligne de commande python, qui essaie de répliquer l'interface Web + Java au-dessus du snx
client, et ce message concerne sa configuration pour qu'il fonctionne.
Premièrement, l' snxvp
installation de python pip
ne fonctionne pas. Il y a une version corrigée mise à jour sur https://github.com/agnis-mateuss/snxvpn , qui a quelques correctifs utiles, y compris une option pour ignorer les certificats non signés et / ou expirés, et plus intéressant, étant compatible python2 et python3.
De plus, toutes les URL sur snxconnect.py
doivent être changées de sslvpn/
``.
Donc, les instructions étape par étape sont à peu près:
1) Tout d'abord, installer le snx
setup:
Si dans le VPN, pour obtenir le fichier d'installation, procédez comme suit:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
Sinon, vous devrez l'obtenir à partir de l'interface Web, comme décrit dans la réponse liée.
Pour Debian, vous pourriez avoir besoin de:
sudo dpkg --add-architecture i386
sudo apt-get update
J'ai dû installer ce qui suit:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Exécutez ensuite:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Vous aurez maintenant un /usr/bin/snx
exécutable binaire client 32 bits. Vérifiez s'il manque des bibliothèques dynamiques avec:
sudo ldd /usr/bin/snx
Vous ne pouvez procéder aux points suivants que lorsque toutes les dépendances sont satisfaites.
Je ne sais pas si vous devez d'abord exécuter snx -s CheckpointURLFQDN -u USER
avant d'utiliser snxconnect
, pour que la signature VPN soit enregistrée sur /etc/snx/USER.db
.
2) Nous avons maintenant l' snxconnect
utilitaire python. Un tel programme essaie d'émuler l'interface Web, et plus intéressant encore, il n'a pas besoin de Java pour s'authentifier.
Donc, pour installer et configurer snxconnect
, exécutez en tant que 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
. puis faites en tant que root, pour python3: (recommandé)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
. ou à la place , faites en tant que root, pour 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) Après l'avoir installé, vous pouvez exécuter en tant qu'utilisateur non privilégié:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Si tout s'est bien passé, il vous demandera le mot de passe, puis affichera:
SNX connected, to leave VPN open, leave this running!
Si vous rencontrez des problèmes pour obtenir ce message, et que vous obtenez à la place plusieurs fois de suite, le message: "Réponse inattendue, réessayez.", Effectuez la méthode Firefox, puis déconnectez-vous et déconnectez-vous correctement, en attendant quelques minutes avant d'essayer le snxconnect
commande à nouveau.
4) Le fichier des cookies sera créé dans ~ / .snxcookies, après une utilisation réussie.
Après avoir établi le VPN, vous pouvez vérifier avec ip address
ou ifconfig
vous avez maintenant une tunsnx
interface:
$ 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
vous montrera également de nouveaux itinéraires passant par l' tunsnx
interface.
5) Pour fermer / déconnecter le VPN, alors que vous pouvez arrêter / tuer snxconnect
, le meilleur moyen officiel est d'émettre la commande:
$snx -d
SNX - Disconnecting...
done.
De plus, j'ai également découvert:
snxconnect
semble se comporter mieux lors de la déconnexion de la connexion VPN précédente et de la déconnexion dans l'interface Web officielle s'il y a un problème étrange (il faut essayer de le faire snx -d
pour voir s'il produit le même résultat);
- PYTHONHTTPSVERIFY = 0 affecte uniquement la version python2;
- si l'interface Web effectue une redirection HTML vers un emplacement CheckPoint secondaire, pointant directement vers ce nom d'hôte redirigé, contient de meilleurs résultats;
- si les certificats des pare-feu sont auto-signés (ils le sont souvent), l'option --skip-cert doit être utilisée, sinon l'authentification échouera;
- pour ne pas avoir autant de problèmes de réauthentification, a dû utiliser --save-cookies pour utiliser les cookies d'authentification, tandis que l'utilisateur est connecté au point VPN distant (il a un délai d'expiration de x heures);
- comme décrit dans la dernière question, pour que le script fonctionne, l'option "Lors de la connexion lancez SSL Network Extender" doit être changé en "automatiquement";
- 7776 / TCP dans localhost doit être libre, pour
snx
le posséder, comme des snxconnect
discussions avec son snx
utilisation;
- le nom d'hôte transmis à
snxconnect
/ snx
est traité comme un hôte virtuel, et en tant que tel, vous ne pouvez pas utiliser directement l'adresse IP VPN;
- l'installation d'une architecture 32 bits semble être une exigence pour exécuter le
snx_install.sh
script;
- vous pouvez choisir de fonctionner comme
python2
un compromis pour moins d'espace, mais comme python2 est en cours de suppression, snxconnect
dans un avenir proche, il pourrait ne pas le prendre en charge;
- de l'utilisation de l'interface client Web, il est clair que je dois patcher / supprimer toutes les
/sslvpn
chaînes, car mes URL ne commencent pas par /sslvpn
. Je vérifierais votre cas particulier. Je n'ai absolument aucune idée si la présence de cette chaîne dans le code est due à une ancienne version, j'aimerais avoir des commentaires;
- dans
snxconnect
le nom d'hôte CheckPoint doit être le nom exact que l'interface Web vous montre une fois authentifié, car il s'agit d'un hôte virtuel Web. Sinon, vous ne réussirez pas à établir le VPN;
- Lors de la première
snx
utilisation, un fichier avec la signature du serveur VPN / Checkpoint sera créé à /etc/snx/USER.db
;
- Si vous devez utiliser OTP à partir de la ligne de commande, vous devez utiliser
snxconnect
comme snx
seul ne le prend pas en charge.