Go to file
2021-08-26 00:39:13 +08:00
.github/workflows [ci] use action-automatic-releases 2021-08-23 08:53:41 +08:00
debian Remove qt5 default (#68) 2021-07-04 18:31:28 +08:00
GPClient Display error when OpenConnect was not found (#81) 2021-08-21 19:32:13 +08:00
GPService Display error when OpenConnect was not found (#81) 2021-08-21 19:32:13 +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 README.md 2021-08-26 00:39:13 +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.

Tokens with spaces can be surrounded by double quotes; three consecutive double quotes represent the quote character itself.

Display the system tray icon on Gnome 40

Install the AppIndicator and KStatusNotifierItem Support extension and you will see the system try icon (Restart the system after the installation).

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-qtwebengine-devel qt5-qtwebsockets-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