VPNs can often be useful for obscuring personably identifying information (IP, geolocation, etc.) from remote destination servers.
Traffic is routed through a VPN server and forwarded to the destination. As far as the remote destination servers are concerned, the traffic appears to have originated from the VPN server's IP address.
In this sense, the VPN tunnel/server essentially behaves as a proxy, intermediary, or go-between (not unlike a broker); probably not one of the original design goals for this technology, regardless it can often be desirable to exploit (i.e. take advantage of) it's inherent properties to facilitate such a purpose.
However, the IP address from whence the traffic truly originates, will obviously be visible to the VPN server. What solutions exist for hiding (e.g. disguising, obscuring) this information from an untrusted VPN server?
A few ideas immediately come to mind, but suitability, effectiveness, and implementation details are unclear:
- Encapsulate the untrusted VPN tunnel within a (secondary) trusted VPN tunnel (or vice versa?) (but how?).
- VPN router firmware (Tomato, DD-WRT, OpenWRT, etc.) with paid subscription service (e.g. ExpressVPN, Nord, PIA) in conjunction with untrusted VPN client on end-user device.
- Two VPN connections, untrusted VPN in virtual machine, trusted VPN on physical host.
- Full-tunnel / split-tunnel manipulation.
- IPv4 forwarding /
iptables
type magic. - SOCKS Proxy and / or TOR chaining (
proxychains
or similar) (before and / or after vpn connection? encapsulated? serial? both? unsure). - Encapsulating with
ssh
tunnel or vice versa. - Something involving
torify
,torsocks
,tsocks
,shadowsocks
, etc. (more reading required). - Something involving self-hosted proxy or VPN solution (
privoxy
,squid
,nginx
,openvpn
). - Something involving a VPS SaaS.