A GlobalProtect VPN client (GUI) for Linux based on Openconnect and built with Qt5, supports SAML auth mode, inspired by gp-saml-gui.
- 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.
- Improve the release process
- Process bugs and feature requests
- Support for bypassing the
gpclient
parameters - Support the CLI mode
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.
Install the AppIndicator and KStatusNotifierItem Support extension and you will see the system try icon (Restart the system after the installation).
- Openconnect v8.x
- Qt5, qt5-webengine, qt5-websockets
Clone this repo with:
git clone https://github.com/yuezk/GlobalProtect-openconnect.git
cd GlobalProtect-openconnect
Install from the globalprotect-openconnect AUR.
⚠️ 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
Build and install with:
./scripts/install-opensuse.sh
Build and install with:
./scripts/install-fedora.sh
Install the Qt5 dependencies and OpenConnect:
- QtCore
- QtWebEngine
- QtWebSockets
- QtDBus
- openconnect v8.x
...then build and install with:
./scripts/install.sh
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
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 ];
GPLv3