• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

doc/H28-Dec-2015-1,9191,215

m4/H28-Dec-2015-7362

man/H28-Dec-2015-584476

src/H03-May-2022-7,3005,480

.gitignoreH A D28-Dec-2015516 3130

.travis.ymlH A D28-Dec-20151.1 KiB3938

AUTHORSH A D28-Dec-201541 21

INSTALLH A D28-Dec-201514 21

LICENCEH A D28-Dec-20151.3 KiB2322

Makefile.amH A D28-Dec-2015737 2719

README.DebianH A D28-Dec-2015721 2316

README.NetBSD.mdH A D28-Dec-2015555 3930

README.OpenBSD.mdH A D28-Dec-20151.3 KiB6251

README.debug.mdH A D28-Dec-2015662 2721

README.mdH A D28-Dec-20154.6 KiB158129

UPGRADING.mdH A D28-Dec-2015863 2820

autogen.shH A D28-Dec-20152 KiB6244

configure.acH A D03-May-20225.9 KiB193170

git-version-genH A D28-Dec-20155.8 KiB16462

template.amH A D28-Dec-2015296 108

README.Debian

1initial configuration
2---------------------
3Copy on example configuration file from /usr/share/doc/mlvpn/examples/ to /etc/mlvpn/xxx.conf
4Make sure the configuration file is NOT readable by anyone other than root: chmod 0600 /etc/mlvpn/*.conf
5
6multiple configurations in parallel
7-----------------------------------
8When mlvpn is started by /etc/init.d/mlvpn or mlvpn.service,
9the configuration file /etc/default/mlvpn is read and, all tunnels
10defined in AUTOSTART will be started/restarted/...
11
12systemd
13-------
14
15If using systemd, then you can start/stop using:
16  service mlvpn@xxx start
17
18  or
19
20  systemctl start mlvpn@xxx
21
22  where xxx is the name of your configuration file in /etc/mlvpn, without the ".conf" extension.
23

README.NetBSD.md

1Building mlvpn on NetBSD
2========================
3
4This port is NON WORKING at the moment.
5(Some kind of tuntap issue)
6
7Requirements
8============
9
10```shell
11pkg_add pkgin
12pkgin update
13pkgin install mozilla-rootcerts git autoconf automake pkg-config libsodium libev
14```
15
16Build
17=====
18```shell
19git clone https://github.com/zehome/MLVPN mlvpn
20cd mlvpn
21./autogen.sh
22CPPFLAGS="-I/usr/pkg/include/ev" LDFLAGS="-L/usr/pkg/lib/ev" ./configure
23make
24```
25
26Install
27=======
28
29```shell
30make install
31```
32
33
34Run
35===
36```shell
37LD_LIBRARY_PATH=/usr/pkg/include/ev mlvpn ...
38```
39

README.OpenBSD.md

1Building mlvpn on OpenBSD
2=========================
3
4Since OpenBSD 5.9
5=================
6In OpenBSD 5.9 and later, thanks yo Stuart Henderson @sthen,
7you can install mlvpn like any other OpenBSD package:
8
9```sh
10pkg_add mlvpn
11/etc/rc.d/mlvpn start
12```
13
14Install requirements
15====================
16```sh
17pkg_add git autoconf automake libev libsodium
18```
19.. note: For OpenBSD 5.6 and older, you need to build libsodium
20         from source, because the version provided is too old.
21
22Manual build
23============
24
25```sh
26export AUTOCONF_VERSION=2.69
27export AUTOMAKE_VERSION=1.14
28export CPPFLAGS="-I/usr/local/include $CPPFLAGS"
29export LDFLAGS="-L/usr/local/lib $LDFLAGS"
30git clone https://github.com/zehome/MLVPN mlvpn
31cd mlvpn
32./autogen.sh
33./configure
34make
35sudo make install
36```
37
38Manual installation
39===================
40```sh
41sudo make install
42sudo mkdir /etc/mlvpn
43sudo cp /usr/local/share/doc/mlvpn/mlvpn.conf /etc/mlvpn/
44sudo cp /usr/local/share/doc/mlvpn/mlvpn_updown.sh /etc/mlvpn/
45sudo chown -R root:wheel /etc/mlvpn
46sudo chmod 660 /etc/mlvpn/mlvpn.conf
47sudo chmod 700 /etc/mlvpn/mlvpn_updown.sh
48
49# Create a system user for mlvpn
50sudo groupadd _mlvpn
51sudo useradd -c "mlvpn Daemon" -d /var/empty -s /sbin/nologin -L daemon -g _mlvpn _mlvpn
52```
53
54Edit **/etc/mlvpn/mlvpn.conf** for your needs.
55
56Run
57===
58
59```sh
60sudo /usr/local/sbin/mlvpn -c /etc/mlvpn/mlvpn.conf --user _mlvpn
61```
62

README.debug.md

1Debugging mlvpn
2===============
3
4gdb
5---
6```shell
7sudo gdb -x gdb-cmds.txt --args -c test/client.conf -u ed -v --debug
8```
9
10Debug tokens
11------------
12MLVPN can filter debug messages based on specific tokens using -D argument.
13
14Tokens available:
15
16    - config: configuration file related
17    - control: control socket related (HTTP/json, UNIX socket)
18    - dns: DNS related
19    - net: network related (on line per packet AT LEAST)
20    - privsep: privilage separation
21    - protocol: protocol things (MOST COMMON to use for debugging)
22    - reorder: reordering algorithm
23    - rtt: latency measurements
24    - tuntap: system tuntap
25    - wrr: weighted round robin
26
27

README.md

1=========================================
2MLVPN - Multi-Link Virtual Public Network
3=========================================
4[![Build Status](https://travis-ci.org/zehome/MLVPN.svg?branch=ev)](https://travis-ci.org/zehome/MLVPN)
5[![Coverity Status](https://scan.coverity.com/projects/4405/badge.svg)](https://scan.coverity.com/projects/4405)
6
7author: Laurent Coustet <ed arobase zehome.com>
8
9Take a look at the official documentation on [Read The Docs](http://mlvpn.readthedocs.org/en/latest/)
10
11Introduction
12============
13MLVPN will do it's best to acheive the following tasks:
14
15  * Bond your internet links to increase bandwidth (unlimited)
16  * Secure your internet connection by actively monitoring
17    your links and removing the faulty ones, without loosing
18    your TCP connections.
19  * Secure your internet connection to the aggregation server using
20    strong cryptography.
21  * Scriptable automation and monitoring.
22
23Quick install
24=============
25
26Install debian package
27----------------------
28```sh
29sudo apt-key adv --keyserver pgp.mit.edu --recv 3324C952
30echo "deb http://debian.mlvpn.fr unstable/" >/etc/apt/sources.list.d/mlvpn.list
31sudo apt-get update
32sudo apt-get install mlvpn
33```
34
35Install FreeBSD port
36--------------------
37```sh
38pkg install git libev libsodium
39git clone --branch freebsd https://github.com/zehome/MLVPN mlvpn
40cd mlvpn
41make
42```
43
44Build from source
45-----------------
46```sh
47# Debian
48$ sudo apt-get install build-essential make autoconf libev-dev libsodium-dev
49# OR ArchLinux
50$ sudo pacman -S base-devel git libev libsodium
51$ ./autogen.sh
52$ ./configure
53$ make
54$ make install
55```
56
57Build debian package
58--------------------
59```sh
60$ sudo apt-get install build-essential make autoconf
61$ dpkg-buildpackage -us -uc -rfakeroot
62```
63
64Generating a static binary
65--------------------------
66```sh
67apt-get install flex bison build-essential
68MLVPN_VERSION=2.3.0
69EV_VERSION=4.22
70LIBSODIUM_VERSION=1.0.8
71PCAP_VERSION=1.7.4
72wget http://dist.schmorp.de/libev/libev-${EV_VERSION}.tar.gz
73wget https://github.com/jedisct1/libsodium/releases/download/1.0.8/libsodium-${LIBSODIUM_VERSION}.tar.gz
74wget http://www.tcpdump.org/release/libpcap-${PCAP_VERSION}.tar.gz
75tar xzf libev-${EV_VERSION}.tar.gz
76tar xzf libsodium-${LIBSODIUM_VERSION}.tar.gz
77tar xzf libpcap-${PCAP_VERSION}.tar.gz
78
79echo libev
80(cd libev-${EV_VERSION}
81./configure --enable-static --disable-shared --prefix $HOME/libev/
82make -j4 install)
83
84echo libsodium
85(cd libsodium-${LIBSODIUM_VERSION}
86./configure --enable-static --disable-shared --prefix=$HOME/libsodium/
87make -j4 install)
88
89echo libpcap
90(cd libpcap-${LIBPCAP_VERSION}
91./configure --disable-shared --prefix $HOME/libpcap/
92make -j4 install)
93
94wget https://github.com/zehome/MLVPN/releases/download/${MLVPN_VERSION}/mlvpn-${MLVPN_VERSION}.tar.gz
95tar xzf mlvpn-${MLVPN_VERSION}.tar.gz
96cd mlvpn-${MLVPN_VERSION}
97libpcap_LIBS="-L${HOME}/libpcap/lib -lpcap" libpcap_CFLAGS="-I${HOME}/libpcap/include" libsodium_LIBS="-L${HOME}/libsodium/lib -lsodium" libsodium_CFLAGS=-I${HOME}/libsodium/include libev_LIBS="-L${HOME}/libev/lib -lev" libev_CFLAGS=-I${HOME}/libev/include ./configure --enable-filters LDFLAGS="-Wl,-Bdynamic" --prefix=${HOME}/mlvpn/
98make install
99```
100
101Dependencies
102============
103  - libev
104  - libsodium
105  - libpcap (optional)
106
107Security
108========
109
110Privilege separation
111--------------------
112MLVPN uses privilege separation to keep high privileges operations
113away from the core routing stuff.
114
115Code running as root is very minimalist and highly readable to
116avoid risks as much as possible.
117
118Read more about [privilege separation](http://en.wikipedia.org/wiki/Privilege_separation)
119
120Cryptography
121------------
122  * Encryption: Salsa20 stream cipher
123  * Authentication: Poly1305 MAC
124
125Read more on [salsa20](http://cr.yp.to/salsa20.html) and [libsodium](http://doc.libsodium.org/).
126
127
128Principle of operations
129=======================
130**TODO**
131
132Compatibility
133=============
134Linux, OpenBSD, FreeBSD
135
136Windows is *NOT* supported, but MLVPN runs on routers, so you can
137benefit from MLVPN on *ANY* operating system of course.
138
139Contributors
140============
141  * Laurent Coustet, author and maintainer
142  * Philippe Pepiot, contributor (privilege separation, bugfix)
143  * Ghislain Lévèque, contributor (weight round robin)
144  * Fabien Dupont, contributor (bugfix)
145  * Thomas Soëte, contributor (bugfix)
146  * Frank Denis, contributor (documentation)
147  * Nicolas Braud-Santoni, contributor (documentation)
148  * Stuart Henderson, contributor (OpenBSD port/package)
149
150LICENSE
151=======
152See LICENSE file.
153
154Documentation
155=============
156Documentation is available on [Read The Docs](http://mlvpn.readthedocs.org/en/latest/).
157The manpage is also authored in Markdown, and converted using [ronn](http://rtomayko.github.com/ronn/).
158