Go to file
2021-08-18 16:16:52 +08:00
.github/workflows Update publish.yml 2021-05-07 13:42:33 +08:00
debian Remove qt5 default (#68) 2021-07-04 18:31:28 +08:00
GPClient Release 1.3.0 2021-08-15 20:44:18 +08:00
GPService Support custom parameters (#76) 2021-08-15 12:47:02 +08:00
plog@fda4a26c26 Code refactor, support multiple gateways and non-SAML authentication (#9) 2020-05-23 15:51:10 +08:00
singleapplication@0f6695e2a9 Add singleapplication 2020-02-15 16:42:20 +08:00
.gitignore Support custom parameters (#76) 2021-08-15 12:47:02 +08:00
.gitmodules Code refactor, support multiple gateways and non-SAML authentication (#9) 2020-05-23 15:51:10 +08:00
GlobalProtect-openconnect.pro Initial commit 2020-02-15 16:26:32 +08:00
LICENSE Initial commit 2020-02-15 16:23:49 +08:00
PKGBUILD.template Mark for inclusion in aarch64 archlinux repository (#58) 2021-05-06 15:19:07 +08:00
README.md Update future plan 2021-08-18 16:16:52 +08:00
screenshot.png Move image 2020-02-20 23:31:33 +08:00

GlobalProtect-openconnect

A GlobalProtect VPN client (GUI) for Linux based on Openconnect and built with Qt5, supports SAML auth mode, inspired by gp-saml-gui.

Features

  • Similar user experience as the official client in macOS.
  • Supports both SAML and non-SAML authentication modes.
  • Supports automatically selecting the preferred gateway from the multiple gateways.
  • Supports switching gateway from the system tray menu manually.

Future plan

  • Improve the release process
  • Process bugs and feature requests
  • Support for bypassing the gpclient parameters
  • Support the CLI mode

Passing the Custom Parameters to OpenConnect CLI

Custom parameters can be appended to the OpenConnect CLI with the following settings.

Prerequisites

  • Openconnect v8.x
  • Qt5, qt5-webengine, qt5-websockets

Ubuntu

  1. Install openconnect v8.x

    sudo apt install openconnect
    openconnect --version
    

    For Ubuntu 18.04 you might need to build the latest openconnect from source code.

  2. Install the Qt dependencies

    For Ubuntu 20, this should work.

    sudo apt install qtbase5-dev libqt5websockets5-dev qtwebengine5-dev qttools5-dev debhelper
    

    For Ubuntu 21, you need to install the base pieces separately as QT5 is the default.

    sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5-dev qtwebengine5-dev qttools5-dev debhelper
    

OpenSUSE

Install the Qt dependencies

sudo zypper install libqt5-qtbase-devel libqt5-qtwebsockets-devel libqt5-qtwebengine-devel

Fedora

Install the Qt dependencies:

sudo dnf install qt5-qtbase-devel qt5-qttools-devel qt5-qtwebengine qt5-qtwebsockets-devel qt5-qtwebengine-devel

Install

Install from AUR (Arch/Manjaro)

Install globalprotect-openconnect.

Build from source code

git clone https://github.com/yuezk/GlobalProtect-openconnect.git
cd GlobalProtect-openconnect
git submodule update --init

# qmake or qmake-qt5
qmake CONFIG+=release
make
sudo make install

Open GlobalProtect VPN in the application dashboard.

Debian package

Relatively manual process for now:

  • Clone the source tree

    git clone https://github.com/yuezk/GlobalProtect-openconnect.git
    cd GlobalProtect-openconnect
    
  • Install git-archive-all using the pip. Remember to adjust the version numbers etc.

    pip install git-archive-all
    
  • Next create an upstream source tree using git archive.

    git-archive-all --force-submodules --prefix=globalprotect-openconnect-1.3.0/ ../globalprotect-openconnect_1.3.0.orig.tar.gz
    
  • Finally extract the source tree, build the debian package, and install it.

    cd ..
    tar -xzvf globalprotect-openconnect_1.3.0.orig.tar.gz
    cd globalprotect-openconnect-1.3.0
    fakeroot dpkg-buildpackage -uc -us -sa 2>&1 | tee ../build.log
    sudo dpkg -i globalprotect-openconnect_1.3.0-1ppa1_amd64.deb
    

NixOS

In configuration.nix:

services.globalprotect = {
  enable = true;
  # if you need a Host Integrity Protection report
  csdWrapper = "${pkgs.openconnect}/libexec/openconnect/hipreport.sh";
};

environment.systemPackages = [ globalprotect-openconnect ];

License

GPLv3