Khi làm việc để cài đặt giao diện SSL VPN Extender chính thức của Firefox trong câu hỏi VPN SSL Network Extender trong Firefox , tôi đã tìm ra và giải quyết thêm một số câu đố của câu hỏi này.
Rõ ràng, trong khi việc sử dụng dòng lệnh snx
từ điểm kiểm tra đã bị ngừng, ứng dụng khách dựa trên web như được mô tả trong bài đăng được liên kết vẫn hoạt động. Tuy nhiên, có một máy khách dòng lệnh python, cố gắng sao chép giao diện Web + Java trên đầu snx
máy khách và bài đăng này là về việc thiết lập nó để hoạt động.
Thứ nhất, snxvp
cài đặt từ python pip
không hoạt động. Có một phiên bản vá được cập nhật trên https://github.com/agnis-mateuss/snxvpn , có một số bản vá hữu ích, bao gồm tùy chọn bỏ qua các chứng chỉ chưa ký và / hoặc hết hạn, và thú vị hơn là tương thích python2 và python3.
Hơn nữa, tất cả các URL trên snxconnect.py
phải được thay đổi từ sslvpn/
thành ``.
Vì vậy, các hướng dẫn từng bước đại khái là:
1) Trước tiên, cài đặt snx
thiết lập:
Nếu trong VPN, để lấy tệp cài đặt, hãy làm:
wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
Nếu không, bạn sẽ phải lấy nó từ giao diện web, như được mô tả trong câu trả lời được liên kết.
Đối với Debian, bạn có thể cần:
sudo dpkg --add-architecture i386
sudo apt-get update
Tôi đã phải cài đặt như sau:
sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
Chạy rồi:
chmod a+rx snx_install.sh
sudo ./snx_install.sh`
Bây giờ bạn sẽ có một /usr/bin/snx
tệp thực thi nhị phân máy khách 32 bit. Kiểm tra nếu có bất kỳ thư viện động nào bị thiếu với:
sudo ldd /usr/bin/snx
Bạn chỉ có thể tiến hành các điểm sau khi tất cả các phụ thuộc được thỏa mãn.
Không chắc chắn nếu bạn cần chạy snx -s CheckpointURLFQDN -u USER
trước khi sử dụng snxconnect
, cho VPN chữ ký được lưu tại /etc/snx/USER.db
.
2) Bây giờ chúng ta có snxconnect
tiện ích python. Chương trình như vậy cố gắng mô phỏng giao diện web và thú vị hơn, nó không cần Java để xác thực.
Vì vậy, để cài đặt và thiết lập snxconnect
, hãy chạy bằng 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
. sau đó làm root, cho python3: (khuyên dùng)
apt-get install python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
make
python3 setup.py install --prefix=/usr/local
. hoặc thay vào đó , làm root, cho 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) Sau khi cài đặt nó, bạn có thể chạy như một người dùng không có đặc quyền:
/usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies
Nếu tất cả đều ổn, nó sẽ hỏi mật khẩu, rồi hiển thị:
SNX connected, to leave VPN open, leave this running!
Nếu bạn gặp sự cố khi nhận được thông báo này và thay vào đó nhận được nhiều lần liên tiếp, thông báo: "Phản hồi không mong đợi, hãy thử lại", thực hiện phương pháp Firefox và Ngắt kết nối và đăng xuất đúng cách, đợi vài phút trước khi thử snxconnect
lại lệnh.
4) Tệp cookie (s) sẽ được tạo tại ~ / .snxcookies, sau khi sử dụng thành công.
Sau khi VPN được thiết lập, bạn có thể kiểm tra ip address
hoặc ifconfig
bây giờ bạn có tunsnx
giao diện:
$ 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
cũng sẽ cho bạn thấy các tuyến mới đi qua tunsnx
giao diện.
5) Để đóng / ngắt kết nối VPN, trong khi bạn có thể dừng / tắt snxconnect
, cách tốt hơn và chính thức là ban hành lệnh:
$snx -d
SNX - Disconnecting...
done.
Ngoài ra, tôi cũng tìm ra:
snxconnect
dường như hoạt động tốt hơn khi ngắt kết nối VPN trước đó và đăng xuất trong giao diện web chính thức nếu có sự cố lạ (phải thử thực hiện snx -d
để xem liệu nó có tạo ra kết quả tương tự không);
- PYTHONHTTPSVERIFY = 0 chỉ ảnh hưởng đến phiên bản python2;
- nếu giao diện web đang thực hiện chuyển hướng HTML đến vị trí Checkpoint thứ cấp, trỏ trực tiếp đến tên máy chủ được chuyển hướng đó, sẽ giữ kết quả tốt hơn;
- nếu các chứng chỉ của tường lửa là tự ký (chúng thường là) thì tùy chọn --skip-cert phải được sử dụng, hoặc xác thực sẽ thất bại;
- vì không có quá nhiều vấn đề khi xác thực lại, đã phải sử dụng --save-cookies để sử dụng cookie xác thực, trong khi người dùng đăng nhập vào điểm VPN từ xa (thời gian chờ là x giờ);
- như được mô tả trong câu hỏi cuối cùng, để tập lệnh hoạt động, tùy chọn "Khi khởi chạy đăng nhập SSL Network Extender" phải được thay đổi thành "tự động";
- 7776 / TCP trong localhost phải miễn phí,
snx
để sở hữu nó, như snxconnect
nói chuyện với snx
việc sử dụng nó;
- tên máy chủ được truyền đến
snxconnect
/ snx
được xử lý như một máy chủ ảo và do đó bạn không thể sử dụng trực tiếp địa chỉ IP VPN;
- tạo ra kiến trúc 32 bit dường như là một yêu cầu để chạy
snx_install.sh
tập lệnh;
- bạn có thể chọn chạy như
python2
một sự đánh đổi để có ít không gian hơn, tuy nhiên vì python2 đang bị loại bỏ, snxconnect
trong tương lai gần có thể không hỗ trợ nó;
- từ việc sử dụng giao diện máy khách web, rõ ràng tôi cần phải vá / xóa tất cả các
/sslvpn
chuỗi, vì các URL của tôi không bắt đầu bằng /sslvpn
. Tôi sẽ kiểm tra trường hợp cụ thể của bạn. Tôi hoàn toàn không biết liệu sự hiện diện của chuỗi đó trong mã có phải là do một phiên bản cũ hay không, sẽ thích một số phản hồi;
- trong
snxconnect
tên máy chủ Checkpoint phải là tên chính xác mà webinterface đang hiển thị cho bạn khi được xác thực ở đó, vì nó là máy chủ ảo web. Nếu không, bạn đã thắng thành công khi thiết lập VPN;
- Lần đầu tiên
snx
được sử dụng, một tệp có chữ ký của máy chủ VPN / Checkpoint sẽ được tạo tại /etc/snx/USER.db
;
- Nếu bạn cần phải sử dụng OTP từ dòng lệnh, bạn phải sử dụng
snxconnect
như snx
một mình không hỗ trợ nó.