Go to file
2021-09-24 09:25:05 +00:00
.github/workflows Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
.vscode Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
3rdparty Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
cmake Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
debian Remove qt5 default (#68) 2021-07-04 18:31:28 +08:00
GPClient Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
GPService Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
packaging/rpm Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
scripts update doc 2021-09-19 15:40:20 +08:00
snap Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
.gitignore Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
.gitmodules Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
CMakeLists.txt Add snap packaging (#93) 2021-09-20 20:48:24 +08:00
cmakew Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
LICENSE Initial commit 2020-02-15 16:23:49 +08:00
PKGBUILD.template Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
README.md Adding application logs location in the README 2021-09-24 09:25:05 +00:00
VERSION Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +08:00
version.h.in Migrate to cmake and refine the code structure (#92) 2021-09-19 14:32:12 +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

Build & Install

Clone this repo with:

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

Arch/Manjaro

Install from the globalprotect-openconnect AUR.

Ubuntu/Mint

⚠️ REQUIRED for Ubuntu 18.04 ⚠️

Add this dwmw2/openconnect PPA first to install the latest openconnect.

sudo add-apt-repository ppa:dwmw2/openconnect
sudo apt update

Build and install with:

./scripts/install-ubuntu.sh

openSUSE

Build and install with:

./scripts/install-opensuse.sh

Fedora

Build and install with:

./scripts/install-fedora.sh

Other Linux

Install the Qt5 dependencies and OpenConnect:

  • QtCore
  • QtWebEngine
  • QtWebSockets
  • QtDBus
  • openconnect v8.x

...then build and install with:

./scripts/install.sh

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 ];

Troubleshooting

The application logs can be found at: ~/.cache/GlobalProtect-openconnect/gpclient.log

License

GPLv3