Coder Social home page Coder Social logo

pyeatt / globalprotect-openconnect Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yuezk/globalprotect-openconnect

0.0 0.0 0.0 6.01 MB

A GlobalProtect VPN client for Linux, written in Rust, based on OpenConnect and Tauri, supports SSO with MFA, Yubikey, etc.

License: GNU General Public License v3.0

Shell 0.10% JavaScript 0.43% C 3.20% Rust 85.77% TypeScript 2.38% CSS 0.08% Makefile 6.23% HTML 0.52% Dockerfile 1.28%

globalprotect-openconnect's Introduction

GlobalProtect-openconnect

A GUI for GlobalProtect VPN, based on OpenConnect, supports the SSO authentication method. Inspired by gp-saml-gui.

Features

  • Better Linux support
  • Support both CLI and GUI
  • Support both SSO and non-SSO authentication
  • Support the FIDO2 authentication (e.g., YubiKey)
  • Support authentication using default browser
  • Support multiple portals
  • Support gateway selection
  • Support connect gateway directly
  • Support auto-connect on startup
  • Support system tray icon

Usage

CLI

The CLI version is always free and open source in this repo. It has almost the same features as the GUI version.

Usage: gpclient [OPTIONS] <COMMAND>

Commands:
  connect     Connect to a portal server
  disconnect  Disconnect from the server
  launch-gui  Launch the GUI
  help        Print this message or the help of the given subcommand(s)

Options:
      --fix-openssl        Get around the OpenSSL `unsafe legacy renegotiation` error
      --ignore-tls-errors  Ignore the TLS errors
  -h, --help               Print help
  -V, --version            Print version

See 'gpclient help <command>' for more information on a specific command.

To use the default browser for authentication with the CLI version, you need to use the following command:

sudo -E gpclient connect --default-browser <portal>

GUI

The GUI version is also available after you installed it. You can launch it from the application menu or run gpclient launch-gui in the terminal.

Note

The GUI version is partially open source. Its background service is open sourced in this repo as gpservice. The GUI part is a wrapper of the background service, which is not open sourced.

Installation

Debian/Ubuntu based distributions

Install from PPA (Ubuntu 18.04 and later, except 24.04)

sudo apt-get install gir1.2-gtk-3.0 gir1.2-webkit2-4.0
sudo add-apt-repository ppa:yuezk/globalprotect-openconnect
sudo apt-get update
sudo apt-get install globalprotect-openconnect

Note

For Linux Mint, you might need to import the GPG key with: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7937C393082992E5D6E4A60453FC26B43838D761 if you encountered an error gpg: keyserver receive failed: General error.

Ubuntu 24.04

The libwebkit2gtk-4.0-37 package was removed from its repo, before the issue gets resolved, you need to install them manually:

wget http://launchpadlibrarian.net/704701349/libwebkit2gtk-4.0-37_2.43.3-1_amd64.deb
wget http://launchpadlibrarian.net/704701345/libjavascriptcoregtk-4.0-18_2.43.3-1_amd64.deb

sudo dpkg --install *.deb

And the latest package is not available in the PPA, you can follow the Install from deb package section to install the latest package.

Ubuntu 18.04

The latest package is not available in the PPA either, but you still needs to add the ppa:yuezk/globalprotect-openconnect repo beforehand to use the required openconnect package. Then you can follow the Install from deb package section to install the latest package.

Install from deb package

Download the latest deb package from releases page. Then install it with apt:

sudo apt install --fix-broken globalprotect-openconnect_*.deb

Arch Linux / Manjaro

Install from AUR

Install from AUR: globalprotect-openconnect-git

yay -S globalprotect-openconnect-git

Install from package

Download the latest package from releases page. Then install it with pacman:

sudo pacman -U globalprotect-openconnect-*.pkg.tar.zst

Fedora 38 and later / Fedora Rawhide

Install from COPR

The package is available on COPR for various RPM-based distributions. You can install it with the following commands:

sudo dnf copr enable yuezk/globalprotect-openconnect
sudo dnf install globalprotect-openconnect

openSUSE Leap 15.6 / openSUSE Tumbleweed

Install from OBS (openSUSE Build Service)

The package is also available on OBS for various RPM-based distributions. You can follow the instructions on this page to install it.

Other RPM-based distributions

Install from RPM package

Download the latest RPM package from releases page.

sudo rpm -i globalprotect-openconnect-*.rpm

Gentoo

Install from the rios or slonko overlays. Example using rios:

1. Enable the overlay

sudo eselect repository enable rios

2. Sync with the repository

  • If you have eix installed, use it:
sudo eix-sync
  • Otherwise, use:
sudo emerge --sync

3. Install

sudo emerge globalprotect-openconnect

Other distributions

  • Install openconnect >= 8.20, webkit2gtk, libsecret, libayatana-appindicator or libappindicator-gtk3.
  • Download globalprotect-openconnect_${version}_${arch}.bin.tar.xz from releases page.
  • Extract the tarball with tar -xJf globalprotect-openconnect_${version}_${arch}.bin.tar.xz.
  • Run sudo make install to install the client.

Build from source

You can also build the client from source, steps are as follows:

Prerequisites

Build

  1. Download the source code tarball from releases page. Choose globalprotect-openconnect-${version}.tar.gz.
  2. Extract the tarball with tar -xzf globalprotect-openconnect-${version}.tar.gz.
  3. Enter the source directory and run make build BUILD_FE=0 to build the client.
  4. Run sudo make install to install the client. (Note, DESTDIR is not supported)

FAQ

  1. How to deal with error Secure Storage not ready

    Try upgrade the client to 2.2.0 or later, which will use a file-based storage as a fallback.

    You need to install the gnome-keyring package, and restart the system (See #321, #316).

  2. How to deal with error (gpauth:18869): Gtk-WARNING **: 10:33:37.566: cannot open display:

    If you encounter this error when using the CLI version, try to run the command with sudo -E (See #316).

About Trial

The CLI version is always free, while the GUI version is paid. There are two trial modes for the GUI version:

  1. 10-day trial: You can use the GUI stable release for 10 days after the installation.
  2. 14-day trial: Each beta release has a fresh trial period (at most 14 days) after released.

GPLv3

globalprotect-openconnect's People

Contributors

yuezk avatar pyeatt avatar aloisdg avatar a-joshi avatar aallrd avatar carloramponi avatar danilojns avatar dariocc avatar osimarr avatar dimitripapadopoulos avatar dmikushin avatar onemanbucket avatar janvlug avatar joeesteves avatar jobr99 avatar havocbane avatar koraa avatar jerith666 avatar michaelarnauts avatar mikedld avatar nigoroll avatar rsantanna avatar rmflight avatar techgaun avatar iamtalhaasghar avatar sarnowski avatar tommoa avatar vjatla avatar wesleyvieira12 avatar gmarco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.