chiark / gitweb /
Import release 0.1.0
[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
59635212
SE
19[On BSD install /usr/ports/devel/bison and /usr/ports/devel/libgnugetopt]
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
974d0468
SE
48You will need to allocate two IP addresses for use by secnet. One
49will be for the tunnel interface on your tunnel endpoint machine (i.e.
50the address you see in 'ifconfig' when you look at the tunnel
51interface). The other will be for secnet itself. These addresses
52could possibly be allocated from the range used by your internal
53network: if you do this, you should think about providing appropriate
8689b3a9
SE
54proxy-ARP on the internal network interface of the machine running
55secnet (eg. add an entry net/ipv4/conf/eth_whatever/proxy_arp = 1 to
56/etc/sysctl.conf on Debian systems and run sysctl -p). Alternatively
57the addresses could be from some other range - this works well if the
58machine running secnet is the default route out of your network.
df1b18fc
SE
59
60http://www.ucam.org/cam-grin/ may be useful.
61
df1b18fc
SE
62* Installation
63
64To install secnet do
2fe58dfd
SE
65
66$ ./configure
67$ make
974d0468 68# make install
8689b3a9 69
558fa3fb
SE
70(Note: you may see the following warning while compiling
71conffile.tab.c; I believe this is a bison bug:
72/usr/share/bison/bison.simple: In function `yyparse':
73/usr/share/bison/bison.simple:285: warning: `yyval' might be used
74 uninitialized in this function
75)
76
77Any other warnings or errors should be reported to
78steve@greenend.org.uk.
79
8689b3a9
SE
80If installing for the first time, do
81
2fe58dfd
SE
82# mkdir /etc/secnet
83# cp example.conf /etc/secnet/secnet.conf
84# cd /etc/secnet
85# ssh-keygen -f key -N ""
86
8689b3a9
SE
87[On BSD use
88$ LDFLAGS="-L/usr/local/lib" ./configure
89$ gmake CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
90XXX this should eventually be worked out automatically by 'configure'.]
2fe58dfd 91
df1b18fc 92Generate a site file fragment for your site (see below), and submit it
558fa3fb
SE
93for inclusion in your VPN's 'sites' file. Download the vpn-sites file
94to /etc/secnet/sites - MAKE SURE YOU GET AN AUTHENTIC COPY because the
df1b18fc 95sites file contains public keys for all the sites in the VPN.
2fe58dfd 96
df1b18fc 97* Configuration
2fe58dfd 98
df1b18fc 99Should be reasonably obvious - edit /etc/secnet/secnet.conf as
974d0468
SE
100prompted by the comments. XXX Fuller documentation of the
101configuration file format should be forthcoming in time. Its syntax
102is described in the README file at the moment.
df1b18fc
SE
103
104* Constructing your site file fragment
2fe58dfd
SE
105
106You need the following information:
107
974d0468 1081. a short name for your site, eg. "greenend". This is used to
2fe58dfd
SE
109identify your site in the vpn-sites file.
110
974d0468 1112. the name your site will use in the key setup protocol,
2fe58dfd
SE
112eg. "greenend" (these two will usually be similar or the same).
113
974d0468
SE
1143. the DNS name of the machine that will be the "front-end" for your
115secnet installation. This will typically be the name of the gateway
116machine for your network, eg. sinister.dynamic.greenend.org.uk
2fe58dfd
SE
117
118secnet does not actually have to run on this machine, as long as the
119machine can be configured to forward UDP packets to the machine that
120is running secnet.
121
974d0468 1224. the port number used to contact secnet at your site. This is the
2fe58dfd
SE
123port number on the front-end machine, and does not necessarily have to
124match the port number on the machine running secnet.
125
974d0468 1265. the list of networks accessible at your site over the VPN.
2fe58dfd 127
974d0468 1286. the public part of the RSA key you generated during installation
2fe58dfd 129(in /etc/secnet/key.pub if you followed the installation
974d0468 130instructions). This file contains three numbers and a comment on one
558fa3fb
SE
131line. The first number is the key length in bits, and should be
132ignored. The second number (typically small) is the encryption key
133'e', and the third number (large) is the modulus 'n'.
2fe58dfd
SE
134
135If you are running secnet on a particularly slow machine, you may like
136to specify a larger value for the key setup retry timeout than the
974d0468
SE
137default, to prevent unnecessary retransmissions of key setup packets.
138See the notes in the example configuration file for more on this.
2fe58dfd
SE
139
140The site file fragment should look something like this:
141
142shortname {
143 name "sitename";
144 address "your.public.address.org.uk";
145 port 5678;
146 networks "172.18.45.0/24";
147 key rsa-public("35","153279875126380522437827076871354104097683702803616313419670959273217685015951590424876274370401136371563604396779864283483623325238228723798087715987495590765759771552692972297669972616769731553560605291312242789575053620182470998166393580503400960149506261455420521811814445675652857085993458063584337404329");
148 };
df1b18fc
SE
149
150See 'example-sites-file' for more examples.