Import release 0.09
[secnet] / INSTALL
... / ...
CommitLineData
1INSTALLATION INSTRUCTIONS for SECNET
2
3USE AT YOUR OWN RISK. THIS IS ALPHA TEST SOFTWARE. I DO NOT
4GUARANTEE THAT THERE WILL BE PROTOCOL COMPATIBILITY BETWEEN DIFFERENT
5VERSIONS.
6
7PROTOCOL COMPATIBILITY WAS BROKEN BETWEEN secnet-0.06, secnet-0.07 AND
8secnet-0.08 FOR ENDIANNESS FIXES.
9
10* Preparation
11
12** System software support
13
14Ensure that you have libgmp2-dev and adns installed (and bison and
15flex, and for that matter gcc...).
16
17[On BSD install /usr/ports/devel/bison and /usr/ports/devel/libgnugetopt]
18
19If you intend to configure secnet to obtain packets from the kernel
20through userv-ipif, install and configure userv-ipif. It is part of
21userv-utils, available from ftp.chiark.greenend.org.uk in
22/users/ian/userv
23
24If you intend to configure secnet to obtain packets from the kernel
25using the universal TUN/TAP driver, make sure it's configured in your
26kernel (it's under "network device support" in Linux-2.4) and that
27you've created the appropriate device files; see
28linux/Documentation/networking/tuntap.txt
29
30If you're using TUN/TAP on a platform other than Linux-2.4, see
31http://vtun.sourceforge.net/tun/
32
33Note than TUN comes in two flavours, one (called 'tun' in the secnet
34config file) which has only one device file (usually /dev/net/tun) and
35the other (called 'tun-old') which has many device files (/dev/tun*).
36Linux-2.4 has new-style TUN, Linux-2.2, BSD and Solaris have old-style
37TUN.
38
39** System and network configuration
40
41If you intend to start secnet as root, I suggest you create a userid
42for it to run as once it's ready to drop its privileges. Example (on
43Debian):
44# adduser --system --no-create-home secnet
45
46You will need to allocate two IP addresses for use by secnet. One
47will be for the tunnel interface on your tunnel endpoint machine (i.e.
48the address you see in 'ifconfig' when you look at the tunnel
49interface). The other will be for secnet itself. These addresses
50could possibly be allocated from the range used by your internal
51network: if you do this, you should think about providing appropriate
52proxy-ARP on the internal network interface of the machine running
53secnet (eg. add an entry net/ipv4/conf/eth_whatever/proxy_arp = 1 to
54/etc/sysctl.conf on Debian systems and run sysctl -p). Alternatively
55the addresses could be from some other range - this works well if the
56machine running secnet is the default route out of your network.
57
58http://www.ucam.org/cam-grin/ may be useful.
59
60* Installation
61
62To install secnet do
63
64$ ./configure
65$ make
66# make install
67
68(Note: you may see the following warning while compiling
69conffile.tab.c; I believe this is a bison bug:
70/usr/share/bison/bison.simple: In function `yyparse':
71/usr/share/bison/bison.simple:285: warning: `yyval' might be used
72 uninitialized in this function
73)
74
75Any other warnings or errors should be reported to
76steve@greenend.org.uk.
77
78If installing for the first time, do
79
80# mkdir /etc/secnet
81# cp example.conf /etc/secnet/secnet.conf
82# cd /etc/secnet
83# ssh-keygen -f key -N ""
84
85[On BSD use
86$ LDFLAGS="-L/usr/local/lib" ./configure
87$ gmake CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
88XXX this should eventually be worked out automatically by 'configure'.]
89
90Generate a site file fragment for your site (see below), and submit it
91for inclusion in your VPN's 'sites' file. Download the vpn-sites file
92to /etc/secnet/sites - MAKE SURE YOU GET AN AUTHENTIC COPY because the
93sites file contains public keys for all the sites in the VPN.
94
95* Configuration
96
97Should be reasonably obvious - edit /etc/secnet/secnet.conf as
98prompted by the comments. XXX Fuller documentation of the
99configuration file format should be forthcoming in time. Its syntax
100is described in the README file at the moment.
101
102* Constructing your site file fragment
103
104You need the following information:
105
1061. a short name for your site, eg. "greenend". This is used to
107identify your site in the vpn-sites file.
108
1092. the name your site will use in the key setup protocol,
110eg. "greenend" (these two will usually be similar or the same).
111
1123. the DNS name of the machine that will be the "front-end" for your
113secnet installation. This will typically be the name of the gateway
114machine for your network, eg. sinister.dynamic.greenend.org.uk
115
116secnet does not actually have to run on this machine, as long as the
117machine can be configured to forward UDP packets to the machine that
118is running secnet.
119
1204. the port number used to contact secnet at your site. This is the
121port number on the front-end machine, and does not necessarily have to
122match the port number on the machine running secnet.
123
1245. the list of networks accessible at your site over the VPN.
125
1266. the public part of the RSA key you generated during installation
127(in /etc/secnet/key.pub if you followed the installation
128instructions). This file contains three numbers and a comment on one
129line. The first number is the key length in bits, and should be
130ignored. The second number (typically small) is the encryption key
131'e', and the third number (large) is the modulus 'n'.
132
133If you are running secnet on a particularly slow machine, you may like
134to specify a larger value for the key setup retry timeout than the
135default, to prevent unnecessary retransmissions of key setup packets.
136See the notes in the example configuration file for more on this.
137
138The site file fragment should look something like this:
139
140shortname {
141 name "sitename";
142 address "your.public.address.org.uk";
143 port 5678;
144 networks "172.18.45.0/24";
145 key rsa-public("35","153279875126380522437827076871354104097683702803616313419670959273217685015951590424876274370401136371563604396779864283483623325238228723798087715987495590765759771552692972297669972616769731553560605291312242789575053620182470998166393580503400960149506261455420521811814445675652857085993458063584337404329");
146 };
147
148See 'example-sites-file' for more examples.