Linvpn is a secure socket layer for pppd. It allows creation of virtual private networks by using an IP routing system between PPP network interfaces.
Cryptography is done by libgcrypt's 3DES or blowfish, and Initialization Vector (IV) is changed in each packet transmission.
As linvpn works as client and server, and communication is a single TCP connection, it allows creation of secure tunnels even in complex network layouts, when one or both endpoints are behind a firewall or NAT, with or without dynamic IP addresses.
Linvpn has been tested under Linux, FreeBSD, NetBSD and OpenBSD.
To compile and run linvpn you'll need libgcrypt and pppd.
Download is available at SourceForge.net