Skip to content

Commit

Permalink
Updated README.
Browse files Browse the repository at this point in the history
  • Loading branch information
zlogic committed Jul 14, 2024
1 parent 21cce83 commit 59df249
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@

![Build status](https://github.com/zlogic/pterodapter/actions/workflows/cargo-build.yml/badge.svg)

Pterodapter is a userspace VPN adapter that acts as an open/industry standard VPN server, and forwards traffic to
Pterodapter is a userspace SOCKS5-to-FortiVPN adapter that acts as an open standard SOCKS5 proxy server, and forwards traffic to a FortiVPN network.

No drivers to install or root access to create tun/utun devices.

At the moment, the plan is to build an L2TP (or Wireguard) adapter to connect to FortiVPN.
As it can be used with [PAC files](https://en.wikipedia.org/wiki/Proxy_auto-config), hostname-based routing might be a lot easier.
(especially if the IP address keeps changing, and routing tables keep getting out of date).

[smoltcp](https://github.com/smoltcp-rs/smoltcp) emulates L3 physical hardware and allows conversion of L5 (SOCKS5) traffic into L3 packets.

# Reference

Expand All @@ -17,12 +20,14 @@ Used to study and re-implement the FortiVPN protocol:
* [openfortivpn](https://github.com/adrienverge/openfortivpn)
* [OpenConnect](https://www.infradead.org/openconnect/)

The idea of using a proxy (to run as non-root) was originally suggested in [the OpenConnect documentation](https://www.infradead.org/openconnect/nonroot.html).

## WireGuard gateways

WireGuard's VPN client is available in the App Store, and supports split tunneling out of the box.
Could be a possible alternative to proxies - keep split tunneling, but avoid conversion between OSI layers.

If L2TP doesn't work, this would be a good starting point;
in addition, this shows how to do L2/L3 conversion and emulate remote endpoints.
These examples show how to do L2/L3 conversion and emulate remote endpoints.

* [onetun](https://github.com/aramperes/onetun) - listen on a socket and redirect to a server through WireGuard
* [wgslirpy](https://github.com/vi/wgslirpy) - runs a WireGuard server and redirects to an external service

0 comments on commit 59df249

Please sign in to comment.