VTun



VTun is a networking application which can set up Virtual Tunnels over TCP/IP networks. It supports Internet Protocol (IP), Point-to-Point Protocol (PPP) and Serial Line Internet Protocol (SLIP) protocols. It exists as the reference implementation of the Tun/Tap user-space tunnel driver which was included in the Linux kernel as of version 2.4, also originally developed by Maxim Krasnyansky. Bishop Clark is the current maintainer.

Networking
Like most other applications of its nature, VTun creates a single connection between two machines, over which it multiplexes all traffic. VTun connections are initiated via a TCP connection from the client to the server. The server then initiates a UDP connection to the client, if the UDP protocol is requested.

The software allows the creation of tunnels, for routing traffic in a manner similar to PPP, as well as a bridge-friendly ethertap connection.

Authentication
VTun uses a Private Shared Key to negotiate a handshake via a challenge and response.

Non-encrypting versions
A continual source of concern, and the target of more than one strongly worded security assessment, is that the VTun server and client binary applications can be completely built without encryption support. When such binaries are used, the encryption between both endpoints is only a simple XOR cipher, which is completely trivial to decode. This type of build is not supported by the developers.