adrienverge / openfortivpn
git clone https://github.com/adrienverge/openfortivpn.git
🔥 on GitHub Trending today
Command-line client for PPP+TLS VPN tunnels that spawns pppd and is compatible with Fortinet VPN gateways.
Why you might care
Lets Linux and macOS users connect to Fortinet SSL VPNs without the vendor client, with options for certificates, smartcards via PKCS#11, SAML login, and keeping routes or DNS unchanged. Packages exist for many distros and Homebrew/MacPorts, or it can be built from source.
+1
stars, 24h · #13,808
+~5
stars, 7 days · #17,330
+~20
stars, 30 days · #22,044
3.4k
★ total · +0% this week
379
forks · 141 open issues
Star history (as recorded here)
LanguagePerl
LicenseGPL-3.0
Created2015-01-26 (11y ago)
Last push4d ago
Watchers45
OwnerUser
Seen on GitHub Trending
- 2026-10-23 — #7 daily in perl · +1 ★
- 2026-10-21 — #5 daily in perl
- 2026-10-21 — #11 monthly in perl · +32 ★
- 2026-10-20 — #5 daily in perl
- 2026-10-20 — #11 monthly in perl · +32 ★
Links
README excerpt
openfortivpn ============ openfortivpn is a client for PPP+TLS VPN tunnel services. It spawns a pppd process and operates the communication between the gateway and this process. It is compatible with Fortinet VPNs. Usage ----- [code] Examples -------- * Simply connect to a VPN: [code] * Connect to a VPN using an authentication realm: [code] * Store password securely with a pinentry program: [code] * Connect with a user certificate and no password: [code] * Connect using SAML login: [code] * Don't set IP routes and don't add VPN nameservers to `/etc/resolv.conf`: [code] * Using a configuration file: [code] With `/etc/openfortivpn/my-config` containing: [code] * For the full list of config options, see the `CONFIGURATION` section of [code] Smartcard --------- Smartcard support needs `openssl pkcs engine` and `opensc` to be installed. The pkcs11-engine from libp11 needs to be compiled with p11-kit-devel installed. Check #464 for a discussion of known issues in this area. Building on Fedora since this update will NOT include engine support unless `openssl-devel-engine` is installed. Try first to use `pkcs11-provider` on OpenSSL >= 3.0. To make use of your smartcard put at least `pkcs11:` to the user-cert config or commandline option. It takes the full or a partial PKCS#11 token URI. [code] In most cases `user-cert = pkcs11:` will do it, but if needed you can get the token-URI with `p11tool --list-token-urls`. Multiple readers are currently not supported. Smartcard support has been tested with Yubikey under Linux, but other PIV enabled smartcards may work too. On Mac OS X Mojave it is known that the pkcs engine-by-id is not found. Installing ---------- ### Installing existing packages Some Linux distributions provide `openfortivpn` packages: * Fedora / CentOS * openSUSE / SLE * Gentoo * NixOS * Arch Linux * Debian * Ubuntu * Solus * Alpine Linux On macOS both Homebrew and MacPorts provide an `openfortivpn` package. Either install Homebrew then install openfortivpn: [code] or install MacPorts then install openfortivpn: [code] A more complete overview can be obtained from repology. ### Building and installing from source For other distros, you'll need to build and install from source: 1. Install build dependencies. * RHEL/CentOS/Fedora: `gcc` `automake` `autoconf` `openssl-devel` `make` `pkg-config` * Debian/Ubuntu: `gcc` `automake` `autoconf` `libssl-dev` `make` `pkg-config` * Arch Linux: `gcc` `automake` `autoconf` `openssl` `pkg-config` * Gentoo Linux: `net-dialup/ppp` `pkg-config` * openSUSE: `gcc` `automake` `autoconf` `libopenssl-devel` `pkg-config` * macOS (Homebrew): `automake` `autoconf` `openssl@1.1` `pkg-config` * FreeBSD: `automake` `autoconf` `libressl` `pkgconf` On Linux, if you manage your kernel yourself, ensure to compile those modules: [code] On macOS, install 'Homebrew' to install the build dependencies: [code] 2. Build and install. [code] If targeting platforms with pppd /remote/saml/start?r
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.