Bei der Installation der offiziellen SSL VPN Extender-Schnittstelle von Firefox in der Frage VPN SSL Network Extender in Firefox habe ich einige weitere Teile des Puzzles dieser Frage herausgefunden und gelöst.
Anscheinend snx
funktioniert der webbasierte Client, wie im verlinkten Beitrag beschrieben, immer noch , obwohl die Verwendung der Befehlszeile von Checkpoint aus eingestellt wurde. Es gibt jedoch einen Python-Befehlszeilen- snx
Client, der versucht, die Web + Java-Schnittstelle über dem Client zu replizieren. In diesem Beitrag geht es darum, sie für die Arbeit einzurichten.
Erstens funktioniert die snxvp
Installation von python pip
nicht. Unter https://github.com/agnis-mateuss/snxvpn gibt es eine aktualisierte gepatchte Version , die einige nützliche Patches enthält, einschließlich einer Option zum Ignorieren nicht signierter und / oder abgelaufener Zertifikate, und interessanterweise Python2- und Python3-kompatibel ist.
Außerdem müssen alle URLs snxconnect.py
von sslvpn/
auf `` geändert werden .
Die Schritt-für-Schritt-Anleitung lautet also ungefähr:
1) Installieren Sie zuerst das snx
Setup:
Wenn Sie sich im VPN befinden, um die Installationsdatei abzurufen, gehen Sie wie folgt vor:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
Andernfalls müssen Sie es von der Weboberfläche abrufen, wie in der verknüpften Antwort beschrieben.
Für Debian benötigen Sie möglicherweise:
sudo dpkg --add-architecture i386
sudo apt-get update
Ich musste folgendes installieren:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Führen Sie dann aus:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Sie kennen eine /usr/bin/snx
ausführbare 32-Bit-Client-Binärdatei. Überprüfen Sie, ob dynamische Bibliotheken fehlen, mit:
sudo ldd /usr/bin/snx
Sie können erst mit dem folgenden Punkt fortfahren, wenn alle Abhängigkeiten erfüllt sind.
Nicht sicher, ob Sie snx -s CheckpointURLFQDN -u USER
vor der Verwendung zuerst ausführen müssen snxconnect
, damit das Signatur-VPN unter gespeichert wird /etc/snx/USER.db
.
2) Jetzt haben wir das snxconnect
Python-Dienstprogramm. Ein solches Programm versucht, die Weboberfläche zu emulieren, und interessanterweise benötigt es kein Java zur Authentifizierung.
Um das Setup zu installieren snxconnect
, gehen Sie wie folgt vor:
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
. dann mache als root für python3: (empfohlen)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
. oder stattdessen als root für 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) Nach der Installation können Sie als nicht privilegierter Benutzer ausgeführt werden:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Wenn alles in Ordnung ist, wird nach dem Passwort gefragt und dann gesagt:
SNX connected, to leave VPN open, leave this running!
Wenn Sie Probleme beim Abrufen dieser Nachricht haben und stattdessen mehrmals hintereinander die Meldung "Unerwartete Antwort, versuchen Sie es erneut." Ausführen, führen Sie die Firefox-Methode aus und trennen Sie die Verbindung und melden Sie sich ordnungsgemäß ab. Warten Sie einige Minuten, bevor Sie die Nachricht abrufen snxconnect
Befehl erneut.
4) Die Cookie-Datei (en) wird nach erfolgreicher Verwendung bei ~ / .snxcookies erstellt.
Nachdem das VPN eingerichtet wurde, können Sie dies überprüfen ip address
oder ifconfig
Sie haben jetzt eine tunsnx
Schnittstelle:
$ 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
zeigt Ihnen auch neue Routen durch die tunsnx
Benutzeroberfläche.
5) Zum Schließen / Trennen des VPN, während Sie möglicherweise stoppen / töten snxconnect
, ist der bessere und offizielle Weg, den folgenden Befehl auszugeben:
$snx -d
SNX - Disconnecting...
done.
Außerdem habe ich auch herausgefunden:
snxconnect
scheint sich besser zu verhalten, wenn die vorherige VPN-Verbindung getrennt und in der offiziellen Weboberfläche abgemeldet wird, wenn ein seltsames Problem auftritt (muss versuchen, festzustellen snx -d
, ob das gleiche Ergebnis erzielt wird);
- PYTHONHTTPSVERIFY = 0 wirkt sich nur auf die Python2-Version aus.
- Wenn die Weboberfläche eine HTML-Umleitung zu einem sekundären CheckPoint-Speicherort durchführt und direkt auf diesen umgeleiteten Hostnamen verweist, werden bessere Ergebnisse erzielt.
- Wenn die Zertifikate der Firewalls selbstsigniert sind (häufig), muss die Option --skip-cert verwendet werden, da sonst die Authentifizierung fehlschlägt.
- Um nicht so viele Probleme bei der erneuten Authentifizierung zu haben, musste --save-cookies verwendet werden, um Authentifizierungscookies zu verwenden, während der Benutzer am Remote-VPN-Punkt angemeldet ist (es gibt eine Zeitüberschreitung von x Stunden).
- Wie in der letzten Frage beschrieben, muss die Option "Beim Anmelden SSL Network Extender starten" in "automatisch" geändert werden, damit das Skript funktioniert.
- 7776 / TCP in localhost muss frei sein, um es
snx
zu besitzen, da es snxconnect
mit der snx
Verwendung spricht ;
- Der an
snxconnect
/ übergebene Hostname snx
wird als virtueller Host behandelt. Daher können Sie die VPN-IP-Adresse nicht direkt verwenden.
- Das Installieren einer 32-Bit-Architektur scheint eine Voraussetzung für die Ausführung des
snx_install.sh
Skripts zu sein.
- Sie können sich dafür entscheiden, als
python2
Kompromiss für weniger Speicherplatz zu fungieren. Da Python2 jedoch ausläuft, wird es snxconnect
in naher Zukunft möglicherweise nicht unterstützt.
- Bei Verwendung der Webclient-Oberfläche ist klar, dass ich alle
/sslvpn
Zeichenfolgen patchen / löschen muss , da meine URLs nicht mit beginnen /sslvpn
. Ich würde Ihren speziellen Fall überprüfen. Ich habe absolut keine Ahnung, ob das Vorhandensein dieser Zeichenfolge im Code auf eine alte Version zurückzuführen ist. Ich würde mich über Feedback freuen.
- in
snxconnect
der CheckPoint Hostnamen hat die genaue Bezeichnung der Webinterfaces zeigt Ihnen einmal dort authentifiziert sein, da es sich um eine Web - virtuellen Host ist. Andernfalls gelingt es Ihnen nicht, das VPN einzurichten.
- Bei der ersten
snx
Verwendung wird eine Datei mit der Signatur des VPN / Checkpoint-Servers unter erstellt /etc/snx/USER.db
.
- Wenn Sie OTP über die Befehlszeile verwenden müssen, müssen Sie es verwenden,
snxconnect
da es snx
allein nicht unterstützt wird.