chiark / gitweb /
Import release 0.1.10
[secnet] / INSTALL
CommitLineData
2fe58dfd
SE
1INSTALLATION INSTRUCTIONS for SECNET
2
974d0468 3USE AT YOUR OWN RISK. THIS IS ALPHA TEST SOFTWARE. I DO NOT
df1b18fc
SE
4GUARANTEE THAT THERE WILL BE PROTOCOL COMPATIBILITY BETWEEN DIFFERENT
5VERSIONS.
6
8689b3a9
SE
7PROTOCOL COMPATIBILITY WAS BROKEN BETWEEN secnet-0.06, secnet-0.07 AND
8secnet-0.08 FOR ENDIANNESS FIXES.
59635212 9
baa06aeb
SE
10THERE WILL BE ANOTHER CHANGE IN PROTOCOL IN THE secnet-0.1.x SERIES
11
df1b18fc
SE
12* Preparation
13
14** System software support
15
2fe58dfd
SE
16Ensure that you have libgmp2-dev and adns installed (and bison and
17flex, and for that matter gcc...).
18
8dea8d37 19[On BSD install /usr/ports/devel/bison]
59635212 20
2fe58dfd 21If you intend to configure secnet to obtain packets from the kernel
974d0468 22through userv-ipif, install and configure userv-ipif. It is part of
2fe58dfd
SE
23userv-utils, available from ftp.chiark.greenend.org.uk in
24/users/ian/userv
25
4efd681a
SE
26If you intend to configure secnet to obtain packets from the kernel
27using the universal TUN/TAP driver, make sure it's configured in your
974d0468
SE
28kernel (it's under "network device support" in Linux-2.4) and that
29you've created the appropriate device files; see
4efd681a
SE
30linux/Documentation/networking/tuntap.txt
31
df1b18fc 32If you're using TUN/TAP on a platform other than Linux-2.4, see
4efd681a
SE
33http://vtun.sourceforge.net/tun/
34
df1b18fc
SE
35Note than TUN comes in two flavours, one (called 'tun' in the secnet
36config file) which has only one device file (usually /dev/net/tun) and
974d0468
SE
37the other (called 'tun-old') which has many device files (/dev/tun*).
38Linux-2.4 has new-style TUN, Linux-2.2, BSD and Solaris have old-style
8689b3a9 39TUN.
df1b18fc
SE
40
41** System and network configuration
42
974d0468
SE
43If you intend to start secnet as root, I suggest you create a userid
44for it to run as once it's ready to drop its privileges. Example (on
df1b18fc
SE
45Debian):
46# adduser --system --no-create-home secnet
47
b2a56f7c
SE
48If you're using the 'soft routes' feature (for some classes of mobile
49device) you'll have to run as root all the time, to enable secnet to
50add and remove routes from your kernel's routing table. (This
51restriction may be relaxed later if someone writes a userv service to
52modify the routing table.)
53
54If you are joining an existing VPN, read that VPN's documentation now.
55It may supersede the next paragraph.
56
974d0468
SE
57You will need to allocate two IP addresses for use by secnet. One
58will be for the tunnel interface on your tunnel endpoint machine (i.e.
59the address you see in 'ifconfig' when you look at the tunnel
60interface). The other will be for secnet itself. These addresses
b2a56f7c
SE
61should probably be allocated from the range used by your internal
62network: if you do this, you should provide appropriate proxy-ARP on
63the internal network interface of the machine running secnet (eg. add
64an entry net/ipv4/conf/eth_whatever/proxy_arp = 1 to /etc/sysctl.conf
65on Debian systems and run sysctl -p). Alternatively the addresses
66could be from some other range - this works well if the machine
67running secnet is the default route out of your network - but this
68requires more thought.
df1b18fc
SE
69
70http://www.ucam.org/cam-grin/ may be useful.
71
df1b18fc
SE
72* Installation
73
9d3a4132
SE
74If you installed the Debian package of secnet, skip to "If installing
75for the first time", below, and note that example.conf can be found in
76/usr/share/doc/secnet/examples.
77
df1b18fc 78To install secnet do
2fe58dfd
SE
79
80$ ./configure
81$ make
974d0468 82# make install
9d3a4132 83# mkdir /etc/secnet
8689b3a9 84
558fa3fb
SE
85(Note: you may see the following warning while compiling
86conffile.tab.c; I believe this is a bison bug:
87/usr/share/bison/bison.simple: In function `yyparse':
88/usr/share/bison/bison.simple:285: warning: `yyval' might be used
89 uninitialized in this function
90)
91
92Any other warnings or errors should be reported to
93steve@greenend.org.uk.
94
8689b3a9
SE
95If installing for the first time, do
96
2fe58dfd
SE
97# cp example.conf /etc/secnet/secnet.conf
98# cd /etc/secnet
99# ssh-keygen -f key -N ""
100
8689b3a9
SE
101[On BSD use
102$ LDFLAGS="-L/usr/local/lib" ./configure
103$ gmake CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
104XXX this should eventually be worked out automatically by 'configure'.]
2fe58dfd 105
df1b18fc 106Generate a site file fragment for your site (see below), and submit it
558fa3fb
SE
107for inclusion in your VPN's 'sites' file. Download the vpn-sites file
108to /etc/secnet/sites - MAKE SURE YOU GET AN AUTHENTIC COPY because the
b2a56f7c 109sites file contains public keys for all the sites in the VPN. Use the
8dea8d37 110make-secnet-sites program provided with the secnet distribution to
b2a56f7c
SE
111convert the distributed sites file into one that can be included in a
112secnet configuration file:
113
8dea8d37 114# make-secnet-sites sites sites.conf
2fe58dfd 115
df1b18fc 116* Configuration
2fe58dfd 117
df1b18fc 118Should be reasonably obvious - edit /etc/secnet/secnet.conf as
974d0468
SE
119prompted by the comments. XXX Fuller documentation of the
120configuration file format should be forthcoming in time. Its syntax
121is described in the README file at the moment.
df1b18fc
SE
122
123* Constructing your site file fragment
2fe58dfd
SE
124
125You need the following information:
126
b2a56f7c 1271. the name of your VPN.
2fe58dfd 128
b2a56f7c 1292. the name of your location(s).
2fe58dfd 130
b2a56f7c
SE
1313. a short name for your site, eg. "sinister". This is used to
132identify your site in the vpn-sites file, and should probably be the
133same as its hostname.
134
1354. the DNS name of the machine that will be the "front-end" for your
974d0468 136secnet installation. This will typically be the name of the gateway
9d3a4132 137machine for your network, eg. sinister.dynamic.greenend.org.uk
2fe58dfd
SE
138
139secnet does not actually have to run on this machine, as long as the
140machine can be configured to forward UDP packets to the machine that
141is running secnet.
142
b2a56f7c 1435. the port number used to contact secnet at your site. This is the
2fe58dfd 144port number on the front-end machine, and does not necessarily have to
b2a56f7c
SE
145match the port number on the machine running secnet. If you want to
146use a privileged port number we suggest 410. An appropriate
147unprivileged port number is 51396. (These numbers were picked at
148random.)
2fe58dfd 149
b2a56f7c 1506. the list of networks accessible at your site over the VPN.
2fe58dfd 151
b2a56f7c 1527. the public part of the RSA key you generated during installation
2fe58dfd 153(in /etc/secnet/key.pub if you followed the installation
974d0468 154instructions). This file contains three numbers and a comment on one
b2a56f7c 155line.
2fe58dfd
SE
156
157If you are running secnet on a particularly slow machine, you may like
158to specify a larger value for the key setup retry timeout than the
974d0468
SE
159default, to prevent unnecessary retransmissions of key setup packets.
160See the notes in the example configuration file for more on this.
2fe58dfd
SE
161
162The site file fragment should look something like this:
163
b2a56f7c
SE
164vpn sgo
165location greenend
166contact steve@greenend.org.uk
167site sinister
168 networks 192.168.73.0/24 192.168.1.0/24 172.19.71.0/24
169 address sinister.dynamic.greenend.org.uk 51396
170 pubkey 1024 35 142982503......[lots more].....0611 steve@sinister