[Haskell-cafe] Name for Haskell based VPN Client/Server

John Van Enk vanenkj at gmail.com
Mon Oct 6 15:18:55 EDT 2008


On Mon, Oct 6, 2008 at 2:52 PM, Don Stewart <dons at galois.com> wrote:

>
> Is the code around somewhere? This sounds intriguing.
>
> -- Don
>

Yes! Though this is the "Works For Me (alpha release)" version.

Keep in mind:
* It's not cabalized yet, so... we use my quick-and-dirty build scripts to
build/clean.
* It's throughput runs at about 800KB/s over Wi-Fi (i should be able to get
this faster).
* Depends on the Data.Binary (binary)
* Depends on Network.Socket.ByteString (network-bytestring)
* Requires that you have the tun module loaded (make sure the /dev/net/tun
device exists)
* Needs to run as root (do you trust me?)
* UDP port is fixed at 24999 for now (remember, WFM alpha release)
* It uses a C file to do the ioctls and setup the IP address, MTU, etc...
(any one able to see a way to remove the C file? It's not doing anything all
that complex...)

Here's how to use it:

sudo ./haskvpn [my vpn ip] [address to bind to] [address to connect to]

Here's any example:

# On machine 1
sudo ./haskvpn 10.0.0.1 0.0.0.0 192.168.128.60

# On machine 2
sudo ./haskvpn 10.0.0.2 0.0.0.0 192.168.128.50

Once that comes up, you should be able to ping, ssh, etc from 10.0.0.1 to
10.0.0.2 and back again.

The code is here: http://sw17ch.com/code/haskvpn-1223320484.tar.gz

Once the code is downloaded, run ./build.sh and you (should) find the
haskvpn binary in the same directory.

There are 338 lines of haskell/c (including comments/whitespace), so it
shouldn't take too long to read over.

Reccomendations/patches/insults are requested!

-- 
/jve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20081006/13529f80/attachment.htm


More information about the Haskell-Cafe mailing list