AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 450131
Accepted
Rui F Ribeiro
Rui F Ribeiro
Asked: 2018-06-17 01:21:32 +0800 CST2018-06-17 01:21:32 +0800 CST 2018-06-17 01:21:32 +0800 CST

Firefox 中的 VPN SSL 网络扩展器

  • 772

我需要从 Debian Stretch amd64 VM 连接到 CheckPoint 公司 VPN。

我是从客户的角度使用它,对服务器端的技术细节了解不多。我将它与 Windows 中的 CheckPoint Mobile 客户端一起使用,并且我知道它接受与 Firefox+Java aka SSL Network Extender 的 Web VPN 连接。

我曾尝试在 Linux 的 Firefox 中打开它,但没有成功。我还研究了文本模式替代方案,即snx命令行客户端,但是 CheckPoint 文献明确指出snx,不再支持从命令行直接登录。

我做了几次测试,包括安装snxlinux 客户端snxconnect和openconnect/vpncVPN 客户端,但都没有成功。除了已经很复杂的过程之外,我还有些怀疑 CheckPoint 方面正在对用户代理进行双重检查,至少在我的情况下是这样。

该怎么办?

linux debian
  • 4 4 个回答
  • 19093 Views

4 个回答

  • Voted
  1. Rui F Ribeiro
    2018-06-17T01:21:32+08:002018-06-17T01:21:32+08:00

    这些 2018 说明适用于较旧的 CheckPoint VPN pre R80 (R80.10?) 版本。有关较新的 VPN/防火墙,请参阅新接受的答案。

    最终,我决定使用 Firefox+Java 进行身份验证(后来改变了主意,请参阅底部的相关链接)。VM 本身不运行 Java 或图形界面,当我需要连接到我们的公司网络时,我在笔记本上的远程 X 服务器上运行 Firefox。

    程序大致是:

    1. 安装firefox
    2. 登录 Web VPN 客户端界面后下载snxLinux 客户端安装
    3. 安装 JDK
    4. firefox安装完所有内容后,每次需要使用 VPN 时访问 VPN URL 。
    5. 通过关闭 VPNfirefox

    至于实际步骤指南:

    1. 经过一些测试,很明显最新firefox版本并没有削减它运行 Java 小程序。

    火狐 52 及以上

    从 Firefox 52(2017 年 3 月发布)开始,插件支持仅限于 Adob​​e Flash,并且不再支持 NPAPI,影响 Java、Silverlight 和其他类似的基于 NPAPI 的插件。

    因此,在测试了几个firefox旧版本之后,我决定firefox 48将其仅用于登录 VPN。从Firefox 档案中下载它。

    因此,在您的目标目录中,执行以下操作:

    tar -jxvf  firefox-48.0.tar.bz2
    

    然后做:

    cd firefox
    

    要防止它在您第一次在此目录上运行时更新到更新的版本:

    sudo touch updates
    sudo chattr +i updates
    

    注意:第一次运行它时,您还可以通过以下方式禁用更新:

    • 菜单图标->首选项->高级->更新

    或者:

    • 打开网址 about:preferences#advanced

    并在“Firefox 更新”中选择单选按钮:“从不检查更新”

    1. 如果在 VPN 中,要获取安装文件,请执行以下操作:

      wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh

    或者,从 Web VPN 界面下载应用程序,在“设置->编辑本机应用程序设置 SSL 网络扩展器:Linux 下载安装”中

    snxurl

    那会给你一个snx_install.sh文件。

    您还需要选择:“登录时启动 SSL Network Extender:”将其更改为“自动”。

    然后运行:

    chmod a+rx snx_install.sh
    sudo ./snx_install.sh`
    

    您将了解/usr/bin/snx32 位客户端二进制可执行文件。检查缺少哪些动态库:

    sudo ldd /usr/bin/snx
    

    对于 Debian,我可能需要:

    sudo dpkg --add-architecture i386
    sudo apt-get update    
    

    我必须安装以下内容:

    sudo apt-get install libstdc++5:i386 libx11-6:i386 libpam0g:i386
    

    再次检查是否缺少任何动态库(如果有):

    sudo ldd /usr/bin/snx
    

    只有当所有依赖项都满足时,您才能继续执行以下操作,因为 Java 小程序snx在幕后使用。

    1. 经过几次不成功的迭代和网络爬虫,发现需要从 Sun 安装 Java 6。所以jdk-6u45-linux-x64.bin 从甲骨文网站上得到。

    要以 root 身份安装它:

    mkdir /usr/java
    mv jdk-6u45-linux-x64.bin /usr/java
    cd /usr/java
    chmod a+rx jdk-6u45-linux-x64.bin
    ./jdk-6u45-linux-x64.bin
    

    我们不会配置整个系统来使用这个 Java 版本,因为它太旧了。只是为了稍后在 Firefox 中使用 Java:

    sudo mkdir -p /usr/lib/mozilla/plugins
    sudo ln -s /usr/java/jdk1.6.0_45/jre/lib/amd64/libnpjp2.so libnpjp2.so
    

    现在Java安装完成了。

    1. 最后,以普通用户身份运行 Firefox :

      ./火狐

    如果 Java Applet/SSL 网络扩展器在验证后没有自行启动,请执行“Native Applications->Connect”。它将打开一个弹出/Java 窗口。等待“状态:已连接”。

    扩展器

    然后您可以关闭主 FireFox 窗口。

    VPN建立后,您可以检查ip address或ifconfig您现在有一个tunsnx界面:

    $ 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还将向您显示通过tunsnx界面的新路线。

    为了更加方便,您可以将 WebVPN 的 URL 定义为您的主页。

    1. 要关闭 VPN,您可以按 Java 弹出窗口中的“断开连接”按钮,或者关闭/杀死 Firefox。

    参见相关: 让 Checkpoint VPN SSL Network Extender 在命令行中工作

    • 7
  2. Roberto
    2019-08-29T00:12:54+08:002019-08-29T00:12:54+08:00

    要使用最新版本的 Firefox,安装snx_install.sh并在单独的 Firefox 选项卡中cshell_install.sh打开https://localhost:14186/id并为站点“ https://localhost:14186/ ”添加安全例外。添加异常后,您将看到 HEX 格式的唯一标识符。您现在可以关闭此选项卡并尝试再次连接。

    • 4
  3. Вячеслав Калякин
    2020-04-16T08:22:38+08:002020-04-16T08:22:38+08:00

    @ Kubuntu 18.04 32 位,Firefox 75.0(32 位),openjdk-8

    应该向 Firefox 添加页面https://localhost:14186/id的异常,这在我的情况下是问题,小程序已启动但不想继续,因为获取此https://localhost 是不正确的: 14186/身份证

    另外我应该注意,我已经在 Firefox 75.0(32 位)和 openjdk-8 上成功启动了 vpn,而没有降级到 Firefox 48 和 jdk-6u45,尽管我也尝试过,并且 cshell_install.sh 不想要安装在 jdk-6u45

    但无论如何,非常感谢答案的作者 - Rui F Ribeiro。对我帮助很大

    • 2
  4. Best Answer
    Rui F Ribeiro
    2022-07-10T18:52:51+08:002022-07-10T18:52:51+08:00

    现在是 2022 年,而我之前的回答仍然适用于 R80 之前的检查点版本,但世界已经在前进。Firefox 不再运行 Java 小程序,因此 CheckPoint 将中间件 Java 小程序作为 Java 守护程序 - CShell 守护程序(大约 2 年前)移至客户端/Linux 端。

    SNX SSL Network Extender 守护程序,尽管不幸的是可执行二进制文件仍然是 32 位,但现在除了对旧防火墙使用 SSLv3 隧道外,还支持新防火墙并仅与 TLS 1.2 一起使用。它还进行了一些细微的更改,使其与 snxconnect python 逆向工程工作不兼容。

    另一方面,移动访问门户代理 (CShell) 不再需要使用 Java 8、Oracle Java 实现或特定 Firefox 版本。它已使用 openJDK JRE 11 成功测试了多个 CheckPoint 版本。

    在帮助我们的开发团队适应新场景的同时,我最初为 Debian 编写了说明,然后在 cshell_install.sh 的第二版补丁中,因为它表现不佳。最终得出的结论是,您可能不希望您的机器因必须具有 32 位活动的多架构或 Java 或必须修补任何新的 cshell_install.sh 变体而受到阻碍。

    因此,编写了在 chroot 中使用 SNX 和“新”CShell Java 守护程序的说明。但是文件太大了,为Debian写了一个脚本。

    最终,脚本演变为伪造需求而不是修补 CheckPoint 的脚本,并支持大多数主要发行版,远远超过使用“裸”官方形式的 SNX + cshell_install.sh(例如最新版本的 Fedora 没有更长的支持)。

    你可以在这里获取它:

    https://github.com/ruyrybeyro/chrootvpn

    要获取和安装脚本以自动创建 chroot 并使您的 VPN 工作,您必须使用为 sudo 配置的用户并执行以下操作:

    curl https://raw.githubusercontent.com/ruyrybeyro/chrootvpn/main/vpn.sh -O
    chmod a+rx vpn.sh
    ./vph.sh -i --vpn=VPN_FQDN_DNS_NAME
    

    支持 Debian/Ubuntu、SUSE 或 RedHat/CentOS/Fedora 的任何衍生发行版。Arch 的任何变体,只要它配置了网络管理器。Slackware、Void 和 Gentoo Linux 也是如此。



    尽管如此,如果不使用上面的脚本,对于 Debian 的简单、官方、非 chroot 设置的说明是:

    在浏览器中打开Mobile Portal VPN,https://VPN_FW_HOSTNAME,并使用用户名和密码进行身份验证(如果有,则+双因子PIN);当浏览器询问您是否要保存密码时,选择“从不保存”

    选择设置。将默认值更改为:

    登录时启动 SSL Network Extender:自动连接 SSL Network Extender,使用:网络模式

    选择确定。

    关闭浏览器。

    从防火墙下载 Linux 客户端设置脚本:

    $ wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/snx_install.sh
    $ wget --no-check-certificate https://VPN_FW_HOSTNAME/SNX/INSTALL/cshell_install.sh
    

    跑:

    chmod a+rx snx_install.sh cshell_install.sh

    安装 SNX:

    $ sudo dpkg --add-architecture i386
    $ sudo apt update
    $ sudo apt install libstdc++5:i386 libx11-6:i386 libpam0g:i386
    $ sudo ./snx_install.sh
    

    在安装 Java 代理之前安装 firefox:

    $ sudo apt install firefox-esr
    

    运行 Firefox 并关闭它。

    安装 firefox-esr 后,为了与 CheckPoint cshell_install.sh 脚本兼容:

    $ ln -s ~/.mozilla/firefox-esr ~/.mozilla/firefox
    

    确保打开它以创建用户配置文件。必须使用日常使用的非特权用户调用它。在 /home 下已经运行/拥有 Firefox/Chrome 配置文件失败,意味着 cshell_install.sh 将不满足最低要求并将中止设置。

    安装移动访问门户代理

    $ sudo apt install xauth x11-xserver-utils certutil libnss3-tools openjdk-11-jdk
    

    对于下一步,Firefox 不得运行:

    $ sudo ./cshell_install.sh
    

    如果安装顺利:

    # ps ax | grep cshell
      14224 pts/0 Sl 0:01 java -jar /usr/bin/cshell/CSell.jar /tmp/cshell.fifo
      14300 pts/0 S+ 0:00 grep cshell
    

    CShell 守护程序现在必须正在运行。如果不是:

    $ /usr/bin/cshell/launcher
    

    要验证证书是否已安装,您还可以执行以下操作:

    $ wget -q -O- --no-check-certificate https://localhost:14186/id
    

    最后再次进入firefox,访问

    https://localhost:14186/id

    接受 https://localhost:14186 CheckPoint 自签名证书。

    使用您的登录名和防火墙移动门户地址中的密码(如果有的话+双因子 PIN)再次进行身份验证。

    与 VPN 的连接现在应该是自动的。如果没有,请单击连接。

    请注意,在没有 chroot 脚本的情况下遵循手动步骤,cshell_install.sh 安装要求很挑剔,如果不满足,它将中止。

    相关 CheckPoint Linux 支持页面:

    SSL 网络扩展器 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk65210#Linux%20Supported%20Platforms

    如何在 Linux 机器上安装 SSL Network Extender (SNX) 客户端 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk114267

    适用于 Linux 的 Mobile Access Portal 代理先决条件 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk119772

    移动访问门户和 Java 兼容性 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk113410

    Mozilla Firefox 移动访问门户代理即使在正确安装后仍要求重新安装 https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk122576&partition=Advanced&product=Mobile

    • 1

相关问题

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 通过标签将根文件系统传递给linux内核

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve