Skip to content

Releases: maliyilmaz0/vpntoris

VPNToris 2.1.5

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 23 Aug 03:01

VPNToris 2.1.5 — Linux GTK3 GUI, Arch Linux support, and security hardening.

Changes since 2.1.4

  • New native Linux GUI (vpntoris-gui): a GTK3 window with macOS-parity
    design — dark mode, profile cards, real-time traffic rates, inline 2FA/OTP
    on cards, instant search, a multi-protocol profile editor (FortiGate SSL,
    FortiGate IPsec, OpenConnect/GlobalProtect, OpenVPN) and a log viewer.
    Launched from the tray via "Open VPNToris" (merged from PR #3, thanks
    @onurkayaes).
  • Tray rework: on Linux the profile menu is a flat single-click
    connect/disconnect toggle (fixes phantom submenu clicks on KDE Plasma
    Wayland); clicking a profile that awaits 2FA opens the OTP prompt. macOS
    and Windows keep the full per-profile submenus (Connect / OTP / Edit /
    Delete / Logs). The status item is back, and the tray auto-starts the
    user controller when it is offline.
  • Arch Linux packaging: scripts/linux/install-arch.sh and a
    PKGBUILD (with a .install scriptlet) that stages distro VPN engines
    via the shared scripts/linux/stage-engines.sh and records the desktop
    user in /etc/vpntoris/helper-users.conf.
  • FortiGate SSL OTP from the tray: FortiGate profiles with 2FA now enter
    the waiting-otp state on the native path, so the tray/GUI OTP prompt works
    for them too.
  • Helper IPC hardening (fixes #7, #4): every connection to the root
    helper socket is authorized via kernel peer credentials — LOCAL_PEERCRED
    on macOS (previously never checked), SO_PEERCRED on Linux. macOS allows
    root, the install-time uid and the current console owner, so multi-user
    machines and uid changes no longer strand the install; Linux now fails
    closed when the allowlist is missing. The macOS installer aborts loudly
    when the console uid cannot be determined instead of silently using 501.
  • Accept loop hardening (fixes #5): both helpers log accept failures,
    back off exponentially, and shut down cleanly on a closed listener.
  • configs.json hardening (fixes #6): the macOS app writes it with 0600
    permissions, repairs wider permissions at startup, and the legacy
    credential migration verifies each Keychain write before stripping
    secrets from the file — failures are logged and shown in the UI.

Packages

Platform Package
macOS (universal, signed + notarized) VPNToris-2.1.5-universal-complete.pkg
Linux amd64 vpntoris_2.1.5_amd64.deb / vpntoris-2.1.5-1.el9.x86_64.rpm
Linux arm64 vpntoris_2.1.5_arm64.deb / vpntoris-2.1.5-1.el9.aarch64.rpm
Arch Linux x86_64 vpntoris-2.1.5-1-x86_64.pkg.tar.zst (or build from scripts/linux/packaging/arch/PKGBUILD, or run scripts/linux/install-arch.sh)

SHA-256 checksums ship next to each artifact.

VPNToris 2.1.4

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 18 Aug 09:11

VPNToris 2.1.4 — OpenConnect certificate auto-accept.

Changes since 2.1.3

  • GlobalProtect / OpenConnect gateways with untrusted certificates now
    connect without interaction
    : the helper watches the session log for
    "Enter 'yes' to accept" certificate prompts and answers them on stdin
    automatically. The --passwd-on-stdin password is still consumed by
    openconnect at startup (before any TLS handshake), so certificate prompts
    can never swallow the password line. Covers the portal hop and later
    gateway redirects. Verified against a live gateway with a self-signed
    certificate.

Packages

Platform Package
macOS (universal, signed + notarized) VPNToris-2.1.4-universal-complete.pkg
Linux amd64 vpntoris_2.1.4_amd64.deb / vpntoris-2.1.4-1.el9.x86_64.rpm
Linux arm64 vpntoris_2.1.4_arm64.deb / vpntoris-2.1.4-1.el9.aarch64.rpm

SHA-256 checksums ship next to each artifact.

VPNToris 2.1.3

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 17 Aug 13:44

VPNToris 2.1.3 — native-only release.

Changes since 2.1.2

  • Legacy Docker runtime removed: the controller no longer probes,
    bootstraps or falls back to Docker. Native engines are the only connect
    path; profiles fail with a clear "native engine unavailable" error when
    the helper is not running. Docker UI leftovers (banner, settings toggle)
    removed.
  • Fresh-install fix: the helper runtime directory was created 0700,
    blocking the user-session controller from reaching the helper socket on
    new machines (existing installs kept 0755 from older builds). Now created
    and enforced as 0755; socket-level access control is unchanged.
  • Installer fix: launchctl bootstrap after bootout is retried in the
    macOS postinstall — the async bootout race could leave the helper
    unloaded (launchd EIO) until manual intervention.
  • Diagnostics report the real build version instead of "next"/"dev".

Packages

Platform Package
macOS (universal, signed + notarized) VPNToris-2.1.3-universal-complete.pkg
Linux amd64 vpntoris_2.1.3_amd64.deb / vpntoris-2.1.3-1.el9.x86_64.rpm
Linux arm64 vpntoris_2.1.3_arm64.deb / vpntoris-2.1.3-1.el9.aarch64.rpm

SHA-256 checksums ship next to each artifact.

VPNToris 2.1.2

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 14 Aug 19:33

VPNToris 2.1.2 — bugfix release.

Fixed

  • Concurrent FortiGate SSL sessions: when two gateways assign the same
    client IP, the "Interface pppN is UP" log line could name the other
    session's interface, so the second profile's routes and DNS host route
    were installed on the first tunnel and its networks were unreachable.
    Interface detection now uses pppd's authoritative "Using interface pppN"
    line. Regression test included.

Packages

Platform Package
macOS (universal, signed + notarized) VPNToris-2.1.2-universal-complete.pkg
Linux amd64 vpntoris_2.1.2_amd64.deb / vpntoris-2.1.2-1.el9.x86_64.rpm
Linux arm64 vpntoris_2.1.2_arm64.deb / vpntoris-2.1.2-1.el9.aarch64.rpm

SHA-256 checksums ship next to each artifact.

VPNToris 2.1.1

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 12 Aug 13:50

VPNToris 2.1.1 — bugfix release.

Fixed

  • OpenConnect / GlobalProtect tunnel setup on macOS: OpenConnect runs the
    --script helper through /bin/sh -c without quoting, so the engine path
    under /Library/Application Support aborted with error 127 after the ESP
    tunnel came up — the interface was never configured and profiles were stuck
    at "adding routes". Engine side-binaries (vpntoris-vpnc-script,
    vpntoris-browser-open) are now exposed through a symlink in the
    space-free runtime directory. Verified against a GlobalProtect 6.2.x
    portal: ESP tunnel, interface configuration and profile routes all apply.

Packages

Platform Package
macOS (universal, signed + notarized) VPNToris-2.1.1-universal-complete.pkg
Linux amd64 vpntoris_2.1.1_amd64.deb / vpntoris-2.1.1-1.el9.x86_64.rpm
Linux arm64 vpntoris_2.1.1_arm64.deb / vpntoris-2.1.1-1.el9.aarch64.rpm

SHA-256 checksums ship next to each artifact. See the 2.1.0 notes for the
full feature set (Linux tray, libsecret credential store, bundled
AppIndicator extension, helper socket allowlist).

VPNToris 2.1.0

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 08 Aug 16:46

VPNToris 2.1.0 — native multi-platform release (macOS + Linux).

Highlights

  • Linux tray app: profile add/edit/delete, connect/disconnect, OTP, logs and reset — via native zenity/kdialog dialogs, with autostart and a systemd user controller
  • Linux credential store: Secret Service (gnome-keyring / KWallet via libsecret secret-tool) with an atomic 0600 file fallback
  • Self-contained packages: the AppIndicator GNOME Shell extension is bundled (private UUID, enabled by default on next login) — install scriptlets no longer run dnf/apt; ppp resolves via package dependencies
  • Hardening: root helper socket now enforces a per-connection SO_PEERCRED allowlist (/etc/vpntoris/helper-users.conf); controller mutation endpoints reject browser-originated requests; profile store writes are atomic
  • Fixes: reconnect busy-flag leak on profile delete, tray menu data race, hung dialog processes stalling the tray, split-DNS handling for native engines

Packages

Platform Package
macOS (universal, signed + notarized) VPNToris-2.1.0-universal-complete.pkg
Linux amd64 vpntoris_2.1.0_amd64.deb / vpntoris-2.1.0-1.el9.x86_64.rpm
Linux arm64 vpntoris_2.1.0_arm64.deb / vpntoris-2.1.0-1.el9.aarch64.rpm

SHA-256 checksums ship next to each artifact.

Test status

  • macOS: tray, FortiGate SSL, IPsec (XAuth OTP), OpenConnect, OpenVPN — tested
  • Linux (AlmaLinux 9.7): tray + FortiGate SSL — tested; IPsec / OpenConnect / OpenVPN not yet tested
  • Windows: not tested in this release

VPNToris 2.0.0-alpha

VPNToris 2.0.0-alpha Pre-release
Pre-release

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 07 Aug 19:36

VPNToris 2.0.0-alpha

Pre-release of the native multi-platform engine (Docker runtime removed for the v2 path).

What’s in this alpha

  • Native privileged helper + engine packaging for macOS, Linux, and Windows
  • Complete installers only (engines are a required product layer)
  • macOS: signed/notarized complete PKG
  • Linux: DEB/RPM with bundled engines
  • Windows: MSI with OpenVPN + Wintun engines (other Windows protocols still limited)

Install

Download platform packages from this release (or build locally with ./build.sh 2.0.0-alpha <platform> on the maintainer host).

Notes

  • Alpha quality — APIs and packaging may change before stable 2.0.0
  • Local signing secrets and private docs are not in the public tree
  • Public documentation: README.md only

Branch: v2/native-engine
Tag: v2.0.0-alpha

VPNToris 1.1.0

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 04 Aug 08:41

VPNToris 1.1.0 adds simultaneous isolated VPN routing with automatic macOS route-helper installation.

Highlights:

  • Signed and notarized PKG installer that configures the privileged route helper, LaunchDaemon and vpntorisctl automatically
  • FortiGate SSL VPN and FortiClient-compatible IPsec, including DH Group 20 (ECP-384)
  • OpenVPN and GlobalProtect/OpenConnect support (not yet production-tested)
  • Drag-and-drop profile import and installed FortiClient/OpenVPN profile discovery
  • Multiple concurrent VPNs with per-profile CIDR routing and dynamically allocated macOS utun devices
  • OTP/2FA, automatic reconnect, gateway failover, traffic analytics, per-process flows, active routes and diagnostics

Installation:
Download the PKG for the recommended automatic setup. The DMG is available for manual installation.

Supported systems: macOS 13 or later, Universal Apple Silicon and Intel build.

VPNToris 1.0.0

Choose a tag to compare

@maliyilmaz0 maliyilmaz0 released this 03 Aug 20:45

VPNToris 1.0.0 initial release.

This release contains an unsigned Apple Silicon macOS application. The application and bundled executables intentionally have no Apple Developer ID signature or notarization. Sign the binaries and app bundle with your own certificate before distribution or use.

Supported in this release: macOS 13+ on Apple Silicon.
Upcoming: Intel-based macOS, Linux and Windows.