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 / 问题 / 450229
Accepted
Rui F Ribeiro
Rui F Ribeiro
Asked: 2018-06-17 15:33:06 +0800 CST2018-06-17 15:33:06 +0800 CST 2018-06-17 15:33:06 +0800 CST

让 Checkpoint VPN SSL Network Extender 在命令行中工作

  • 772

CheckPoint 提供的用于设置 SSL 网络扩展器 VPN 的官方 Checkpoint out 命令行工具不再在 Linux 命令行中工作。CheckPoint 也不再积极支持它。

但是,有一个很有前途的项目,它试图复制 Java 小程序以进行身份​​验证,它与snx名为snxconnect.

我试图让snxconnect文本实用程序在 Debian Buster 中工作,这样做:

sudo pip install snxvpn

和

export PYTHONHTTPSVERIFY=0
snxconnect -H checkpoint.hostname -U USER 

但是,它大多死于以下 HTTP 错误:

HTTP/1.1 301 Moved Permanently:

或者:

Got HTTP response: HTTP/1.1 302 Found

或者:

Unexpected response, try again.

该怎么办?

PS。EndPoint Security VPN 官方客户端在 Mac High Sierra 和 Windows 10 Pro 中运行良好。

debian vpn
  • 2 2 个回答
  • 83539 Views

2 个回答

  • Voted
  1. Best Answer
    Rui F Ribeiro
    2018-07-06T12:01:04+08:002018-07-06T12:01:04+08:00

    SNX 从 2012 年开始构建 800007075,用于从 Linux 命令行支持 CheckPoint VPN。所以我测试了它,你瞧,它仍然适用于最新的发行版和内核 4.x/5.x。

    所以最终,如果您无法获得 SNX 构建 800007075或者该特定版本的 SNX 停止与当前 Linux 版本一起使用(可能在不久的将来发生)或者您需要 OTP 支持,那么最终,我在这个线程中的另一个答案是正确的.

    目前,解决方案是安装这个特定的最后一个 SNX 版本,它仍然支持从命令行执行 VPN。

    1. 要安装snx构建 800007075,请从以下位置获取:
    wget https://starkers.keybase.pub/snx_install_linux30.sh?dl=1 -O snx_install.sh
    

    对于 Debian 和基于 Debian 的 64 位系统,如 Ubuntu 和 Linux Mint,您可能需要添加 32 位架构:

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

    我必须安装以下 32 位软件包:

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

    然后运行snx安装脚本:

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

    您现在将拥有一个/usr/bin/snx32 位客户端二进制可执行文件。检查是否缺少任何动态库:

    sudo ldd /usr/bin/snx
    

    只有满足所有依赖项后,您才能继续进行以下几点。

    您可能需要先手动运行snx -s CheckpointURLFQDN -u USER,然后再编写任何自动使用的脚本,以便将签名 VPN 保存在/etc/snx/USER.db.

    1. 在使用它之前,您创建一个~/.snxrc file, using your regular user (not root) 具有以下内容的:

      server IP_address_of_your_VPN
      username YOUR_USER
      reauth yes
      
    2. 要连接,请键入snx

      $ snx Check Point 的 Linux SNX build 800007075 请输入您的密码:

      SNX - 已连接。

      会话参数:

      办公模式 IP:10.xxx DNS 服务器:10.xxx 辅助 DNS 服务器:10.xxx DNS 后缀:xxx.xx、xxx.xx 超时:24 小时

    如果您了解在脚本中硬编码 VPN 密码的安全风险,您还可以将其用作:

    echo 'Password' | snx
    
    1. 对于关闭/断开 VPN,虽然您可以 stop/kill snx,但更好的官方方法是发出命令:
        $snx -d
        SNX - Disconnecting...
         done.
    

    另请参阅Linux Checkpoint SNX 工具配置问题,了解有关使用哪个snx版本的一些说明。

    1. 如果自动登录并接受新签名(并了解安全含义),我编写了一个expect脚本,我称之为脚本snx_login.exp;不是很安全,但是您可以自动登录,使用密码作为参数调用它:

      #!/usr/bin/expect spawn /usr/bin/snx

      设置密码 [lindex $argv 0]

      期望 " ?assword: " 发送 -- "$password\r"

      期望 { "o:" { 发送 "y\r" exp_continue } eof }

    PS。注意snx不单独支持 OTP,snxconnect如果使用它,您将不得不使用另一个答案中的脚本。

    PPS @gibies 提醒我注意,使用 etoken,密码字段获取密码加上附加的 etoken,而不是固定密码。

    • 36
  2. Rui F Ribeiro
    2018-06-17T15:33:06+08:002018-06-17T15:33:06+08:00

    在 Firefox 中的VPN SSL Network Extender问题中安装 Firefox 官方 SSL VPN Extender 接口时,我发现并解决了这个问题的更多难题。

    显然,虽然 from checkpoint 的命令行使用snx已停止,但链接帖子中描述的基于 Web 的客户端仍然有效。但是,有一个 python 命令行客户端,它试图在客户端上复制 Web+Java 界面snx,这篇文章是关于设置它的工作。

    首先,snxvp安装的 frompython pip不起作用。https://github.com/agnis-mateuss/snxvpn上有一个更新的补丁版本,其中有一些有用的补丁,包括忽略未签名和/或过期证书的选项,更有趣的是,兼容 python2和python3。

    此外,所有的 URLsnxconnect.py都必须从更改sslvpn/为 ``。


    所以分步说明大致是:

    1. 首先,安装snx设置:

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

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

    否则,您将不得不从 Web 界面获取它,如链接答案中所述。

    对于 Debian,您可能需要:

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

    我必须安装以下内容:

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

    然后运行:

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

    您现在将拥有一个/usr/bin/snx32 位客户端二进制可执行文件。检查是否缺少任何动态库:

    sudo ldd /usr/bin/snx
    

    只有满足所有依赖项后,您才能继续进行以下几点。

    不确定是否需要snx -s CheckpointURLFQDN -u USER在使用前先运行snxconnect,因为签名 VPN 保存在/etc/snx/USER.db.

    1. 现在我们有了snxconnectpython 实用程序。此类程序试图模拟 Web 界面,更有趣的是,它不需要 Java 进行身份验证。

    因此,要安装和设置snxconnect,请以 root 身份运行:

    apt-get -y install git make libxml2-dev libxslt1-dev zlib1g-dev
    apt-get -y install 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  
    

    . 然后以root身份执行python3:(推荐)

    apt-get install python3-pip python3-docutils python3-pip python3-libxml2 python3-dev python3-crypto python3-bs4
    pip install rsa
    make
    python3 setup.py install --prefix=/usr/local
    

    . 或者,对于python2,以 root 身份执行:

    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
    
    1. 安装后,您可以以非特权用户身份运行:

      /usr/local/bin/snxconnect -H CheckpointURLFQDN -U USER --skip-cert --save-cookies

    如果一切正常,它会询问密码,然后显示:

    SNX connected, to leave VPN open, leave this running!
    

    如果您在收到此消息时遇到问题,而是连续多次收到消息:“意外响应,请重试。”,请执行 Firefox 方法,然后正确断开连接并注销,等待几分钟,然后再尝试snxconnect再次命令。

    1. 成功使用后,cookie(s) 文件将在 ~/.snxcookies 中创建。

    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界面的新路线。

    1. 对于关闭/断开 VPN,虽然您可以 stop/kill snxconnect,但更好的官方方法是发出命令:

      $snx -d

      SNX - 断开连接……完成。


    此外,我还发现:

    • snxconnect如果出现一些奇怪的问题,断开之前的 VPN 连接并在官方 Web 界面中注销时似乎表现得更好(必须尝试这样做snx -d,看看它是否会产生相同的结果);
    • PYTHONHTTPSVERIFY=0 只影响python2版本;
    • 如果 Web 界面正在将 HTML 重定向到辅助 CheckPoint 位置,直接指向该重定向的主机名,则会获得更好的结果;
    • 如果防火墙的证书是自签名的(通常是),则必须使用 --skip-cert 选项,否则身份验证将失败;
    • 由于重新验证没有那么多问题,必须使用 --save-cookies 来使用验证 cookie,而用户在远程 VPN 点登录(它有 x 小时的超时);
    • 如上一个问题所述,要使脚本正常工作,必须将“登录时启动 SSL Network Extender”选项更改为“自动”;
    • 本地主机中的 7776/TCP 必须是免费的,snx才能拥有它,就像snxconnect使用snx它一样;
    • 传递给snxconnect/的主机名snx作为虚拟主机处理,因此您不能直接使用 VPN IP 地址;
    • 安装 32 位架构似乎是运行snx_install.sh脚本的要求;
    • 您可能会选择运行以python2换取更少的空间,但是由于 python2 正在逐步淘汰,snxconnect在不久的将来可能不支持它;
    • 通过使用 Web 客户端界面,很明显我需要修补/删除所有/sslvpn字符串,因为我的 URL 不是以/sslvpn. 我会检查你的具体情况。我完全不知道代码中该字符串的存在是否是由于旧版本造成的,希望得到一些反馈;
    • CheckPoint 主机名中snxconnect的主机名必须是 Web 界面在其中通过身份验证后向您显示的确切名称,因为它是一个 Web 虚拟主机。否则,您将无法成功建立 VPN;
    • 第一次snx使用时,会在 ; 创建一个带有 VPN/Checkpoint 服务器签名的文件/etc/snx/USER.db;
    • 如果你需要从命令行使用 OTP,你必须使用snxconnectassnx单独不支持它。
    • 12

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

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

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

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

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