Ketika bekerja untuk menginstal antarmuka Firefox VPN SSL Extender resmi dalam pertanyaan VPN SSL Network Extender di Firefox , saya menemukan dan memecahkan beberapa potongan teka-teki dari pertanyaan ini.
Tampaknya, sementara penggunaan baris perintah snx
dari pos pemeriksaan telah dihentikan, klien berbasis web seperti yang dijelaskan dalam pos tertaut masih berfungsi. Namun, ada klien baris perintah python, yang mencoba untuk mereplikasi antarmuka Web + Java di atas snx
klien, dan posting ini adalah tentang pengaturannya agar berfungsi.
Pertama, yang snxvp
diinstal dari python pip
tidak berfungsi. Ada versi tambalan yang diperbarui di https://github.com/agnis-mateuss/snxvpn , yang memiliki beberapa tambalan yang bermanfaat, termasuk opsi untuk mengabaikan sertifikat yang tidak ditandatangani dan / atau kedaluwarsa, dan yang lebih menarik, kompatibel dengan python2 dan python3.
Selanjutnya, semua URL yang aktif snxconnect.py
harus diubah dari sslvpn/
menjadi ``.
Jadi petunjuk langkah demi langkah kira-kira:
1) Pertama, instal snx
pengaturan:
Jika di VPN, untuk mendapatkan file instalasi, lakukan:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
Jika tidak, Anda harus mendapatkannya dari antarmuka web, seperti yang dijelaskan dalam jawaban yang ditautkan.
Untuk Debian, Anda mungkin perlu:
sudo dpkg --add-architecture i386
sudo apt-get update
Saya harus menginstal yang berikut ini:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Jalankan kemudian:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Anda akan memiliki /usr/bin/snx
biner klien 32-bit yang dapat dieksekusi. Periksa apakah ada pustaka dinamis yang hilang dengan:
sudo ldd /usr/bin/snx
Anda hanya dapat melanjutkan ke poin-poin berikut ketika semua dependensi terpenuhi.
Tidak yakin apakah Anda perlu menjalankan dulu snx -s CheckpointURLFQDN -u USER
sebelum menggunakan snxconnect
, untuk VPN tanda tangan disimpan di /etc/snx/USER.db
.
2) Sekarang kita memiliki snxconnect
utilitas python. Program semacam itu mencoba meniru antarmuka web, dan yang lebih menarik, tidak perlu Java untuk mengautentikasi.
Jadi untuk menginstal dan mengatur snxconnect
, jalankan sebagai 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
. kemudian lakukan sebagai root, untuk python3: (disarankan)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
. atau sebagai gantinya , lakukan sebagai root, untuk 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) Setelah menginstalnya, Anda dapat berjalan sebagai pengguna yang tidak memiliki hak istimewa:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Jika semua beres, ia akan meminta kata sandi, dan kemudian menampilkan:
SNX connected, to leave VPN open, leave this running!
Jika Anda mengalami masalah dalam mendapatkan pesan ini, dan malah mendapatkan beberapa kali berturut-turut, pesan: "Respons yang tidak terduga, coba lagi.", Lakukan metode Firefox, dan Putuskan sambungan dan keluar dengan benar, tunggu beberapa menit sebelum mencoba snxconnect
perintah lagi.
4) File cookie akan dibuat di ~ / .snxcookies, setelah penggunaan berhasil.
Setelah VPN dibuat, Anda dapat memeriksa ip address
atau ifconfig
sekarang Anda memiliki tunsnx
antarmuka:
$ 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
akan menunjukkan kepada Anda juga rute baru melalui tunsnx
antarmuka.
5) Untuk menutup / memutuskan VPN, sementara Anda dapat menghentikan / membunuh snxconnect
, cara yang lebih baik dan resmi mengeluarkan perintah:
$snx -d
SNX - Disconnecting...
done.
Selain itu, saya juga menemukan:
snxconnect
tampaknya berperilaku lebih baik ketika memutuskan koneksi VPN sebelumnya dan logout di antarmuka web resmi jika ada beberapa masalah aneh (harus coba lakukan snx -d
untuk melihat apakah itu menghasilkan hasil yang sama);
- PYTHONHTTPSVERIFY = 0 hanya memengaruhi versi python2;
- jika antarmuka web melakukan pengalihan HTML ke lokasi CheckPoint sekunder, menunjuk langsung ke nama host yang dialihkan, memiliki hasil yang lebih baik;
- jika sertifikat firewall ditandatangani sendiri (seringkali) opsi --skip-cert harus digunakan, atau otentikasi akan gagal;
- karena tidak memiliki begitu banyak masalah otentikasi ulang, harus menggunakan --save-cookies untuk menggunakan cookie otentikasi, sementara pengguna login di titik VPN jarak jauh (memiliki batas waktu x jam);
- seperti yang dijelaskan dalam pertanyaan terakhir, agar skrip berfungsi, opsi "Saat masuk meluncurkan SSL Network Extender" harus diubah menjadi "otomatis";
- 7776 / TCP di localhost harus bebas, untuk
snx
memilikinya, sebagai snxconnect
pembicaraan dengan snx
menggunakannya;
- nama host yang diteruskan ke
snxconnect
/ snx
ditangani sebagai host virtual, dan karenanya Anda tidak dapat menggunakan alamat IP VPN secara langsung;
- menginstal arsitektur 32-bit tampaknya merupakan persyaratan untuk menjalankan
snx_install.sh
skrip;
- Anda mungkin memilih untuk menjalankan sebagai
python2
trade-off untuk ruang yang lebih sedikit, namun karena python2 sedang dihapus, snxconnect
dalam waktu dekat mungkin tidak mendukungnya;
- dari menggunakan antarmuka klien web, jelas saya perlu menambal / menghapus semua
/sslvpn
string, karena URL saya tidak memulai /sslvpn
. Saya akan memeriksa kasus khusus Anda. Saya sama sekali tidak tahu apakah keberadaan string dalam kode itu karena versi lama, akan menyukai umpan balik;
- di
snxconnect
CheckPoint nama host harus nama yang tepat yang ditunjukkan oleh webinter setelah Anda dikonfirmasi di sana, karena itu adalah host virtual web. Jika tidak, Anda tidak akan berhasil membuat VPN;
- Pertama kali
snx
digunakan, file dengan tanda tangan dari server VPN / Checkpoint akan dibuat di /etc/snx/USER.db
;
- Jika Anda perlu menggunakan OTP dari baris perintah, Anda harus menggunakannya
snxconnect
karena snx
tidak mendukungnya.