- Change all strcpy() calls to strncpy() to avoid buffer overflow potential - Add ICMP host unreachable support - Logging to syslog if log_file = "syslog:facility" - Now requires libcli 1.5 - All configuration moves to a config structure - Ability to modify and write config on the fly through command-line interface - Config file support is removed, and now handled by the cli - Show hostname in cli prompt - Keep current state type for tunnels - Add uptime command do CLI, which also shows real-time bandwidth utilisation - Add goodbye command to cluster master, which forces droppping a slave - Cache IP address allocation, so that reconnecting users get the same address - Fix tunnel resend timeouts, so that dead tunnels will be cleaned up - Allocate tunnels and radius without using a linked list which had issues - Fix some off-by-one errors in tunnel and session and radius arrays - Save and reload ip address pool when dieing - Check version and size of reloaded data when restarting - Remove plugin_config support - Remove old support for TBF which didn't work anyway. HTB is required to do throttling now. - Add COPYING and Changes files
71 lines
2.2 KiB
Text
71 lines
2.2 KiB
Text
Brief Installation guide for L2TPNS
|
|
|
|
1. Requirements
|
|
|
|
* libcli 1.5.0 or greater
|
|
You can get it from http://sourceforge.net/projects/libcli.
|
|
|
|
* A kernel with iptables support
|
|
|
|
* If you want to use throttling, you must have a kernel and a tc (iproute) which supports HTB.
|
|
|
|
|
|
2. Compile
|
|
|
|
./configure --prefix=/usr --sysconfdir=/etc/l2tpns
|
|
make
|
|
|
|
|
|
3. Install
|
|
|
|
* make install. This does:
|
|
* Install the binaries into /usr/bin (l2tpns, cluster_master and nsctl)
|
|
* Create config dir /etc/l2tpns and create default config files
|
|
* Ensures that /dev/net/tun exists
|
|
|
|
* Modify config file. You probably need to change most of the config options.
|
|
|
|
* Set up basic firewall rules. This should be done in an init script.
|
|
|
|
iptables -t nat -N l2tpns
|
|
iptables -t nat -A PREROUTING -j l2tpns
|
|
iptables -t mangle -N l2tpns
|
|
iptables -t mangle -A PREROUTING -j l2tpns
|
|
|
|
* Set up walled garden firewall rules. This should be done in an init
|
|
script. This is not required unless you are using the garden plugin.
|
|
|
|
iptables -t nat -N garden >/dev/null 2>&1
|
|
iptables -t nat -F garden
|
|
iptables -t nat -A garden -p tcp -m tcp --dport 25 -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p udp -m udp --dport 53 -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p tcp -m tcp --dport 53 -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p tcp -m tcp --dport 80 -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p tcp -m tcp --dport 110 -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p tcp -m tcp --dport 443 -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p icmp -m icmp --icmp-type echo-request -j DNAT --to 192.168.1.1
|
|
iptables -t nat -A garden -p icmp -j ACCEPT
|
|
iptables -t nat -A garden -j DROP
|
|
|
|
* Set up IP address pools in /etc/l2tpns/ip_pool
|
|
|
|
* Set up clustering
|
|
|
|
* Run cluster_master on a separate machine
|
|
* Set the "cluster master" and "bind address" parameters in /etc/l2tpns/l2tpns.cfg
|
|
|
|
* Make l2tpns run on startup
|
|
|
|
* Test it out
|
|
|
|
|
|
|
|
|
|
This software is quite stable and is being used in a production
|
|
environment at a quite large ISP. However, you may have problems
|
|
setting it up, and if so, I would appreciate it if you would file
|
|
useful bug reports on the Source Forge page:
|
|
|
|
http://sourceforge.net/projects/l2tpns/
|
|
|
|
-- David Parrish
|