Import release 0.08
[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
df1b18fc
SE
10* Preparation
11
12** System software support
13
2fe58dfd
SE
14Ensure that you have libgmp2-dev and adns installed (and bison and
15flex, and for that matter gcc...).
16
59635212
SE
17[On BSD install /usr/ports/devel/bison and /usr/ports/devel/libgnugetopt]
18
2fe58dfd 19If you intend to configure secnet to obtain packets from the kernel
974d0468 20through userv-ipif, install and configure userv-ipif. It is part of
2fe58dfd
SE
21userv-utils, available from ftp.chiark.greenend.org.uk in
22/users/ian/userv
23
4efd681a
SE
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
974d0468
SE
26kernel (it's under "network device support" in Linux-2.4) and that
27you've created the appropriate device files; see
4efd681a
SE
28linux/Documentation/networking/tuntap.txt
29
df1b18fc 30If you're using TUN/TAP on a platform other than Linux-2.4, see
4efd681a
SE
31http://vtun.sourceforge.net/tun/
32
df1b18fc
SE
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
974d0468
SE
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
8689b3a9 37TUN.
df1b18fc
SE
38
39** System and network configuration
40
974d0468
SE
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
df1b18fc
SE
43Debian):
44# adduser --system --no-create-home secnet
45
974d0468
SE
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
8689b3a9
SE
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.
df1b18fc
SE
57
58http://www.ucam.org/cam-grin/ may be useful.
59
df1b18fc
SE
60* Installation
61
62To install secnet do
2fe58dfd
SE
63
64$ ./configure
65$ make
974d0468 66# make install
8689b3a9
SE
67
68If installing for the first time, do
69
2fe58dfd
SE
70# mkdir /etc/secnet
71# cp example.conf /etc/secnet/secnet.conf
72# cd /etc/secnet
73# ssh-keygen -f key -N ""
74
8689b3a9
SE
75[On BSD use
76$ LDFLAGS="-L/usr/local/lib" ./configure
77$ gmake CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
78XXX this should eventually be worked out automatically by 'configure'.]
2fe58dfd 79
df1b18fc 80Generate a site file fragment for your site (see below), and submit it
974d0468 81for inclusion in the vpn-sites file. Download the vpn-sites file to
df1b18fc
SE
82/etc/secnet/sites - MAKE SURE YOU GET AN AUTHENTIC COPY because the
83sites file contains public keys for all the sites in the VPN.
2fe58dfd 84
df1b18fc 85* Configuration
2fe58dfd 86
df1b18fc 87Should be reasonably obvious - edit /etc/secnet/secnet.conf as
974d0468
SE
88prompted by the comments. XXX Fuller documentation of the
89configuration file format should be forthcoming in time. Its syntax
90is described in the README file at the moment.
df1b18fc
SE
91
92* Constructing your site file fragment
2fe58dfd
SE
93
94You need the following information:
95
974d0468 961. a short name for your site, eg. "greenend". This is used to
2fe58dfd
SE
97identify your site in the vpn-sites file.
98
974d0468 992. the name your site will use in the key setup protocol,
2fe58dfd
SE
100eg. "greenend" (these two will usually be similar or the same).
101
974d0468
SE
1023. the DNS name of the machine that will be the "front-end" for your
103secnet installation. This will typically be the name of the gateway
104machine for your network, eg. sinister.dynamic.greenend.org.uk
2fe58dfd
SE
105
106secnet does not actually have to run on this machine, as long as the
107machine can be configured to forward UDP packets to the machine that
108is running secnet.
109
974d0468 1104. the port number used to contact secnet at your site. This is the
2fe58dfd
SE
111port number on the front-end machine, and does not necessarily have to
112match the port number on the machine running secnet.
113
974d0468 1145. the list of networks accessible at your site over the VPN.
2fe58dfd 115
974d0468 1166. the public part of the RSA key you generated during installation
2fe58dfd 117(in /etc/secnet/key.pub if you followed the installation
974d0468
SE
118instructions). This file contains three numbers and a comment on one
119line. The first number is the key length in bits, and can be ignored.
120The second number (typically small) is the encryption key 'e', and the
121third number (large) is the modulus 'n'.
2fe58dfd
SE
122
123If you are running secnet on a particularly slow machine, you may like
124to specify a larger value for the key setup retry timeout than the
974d0468
SE
125default, to prevent unnecessary retransmissions of key setup packets.
126See the notes in the example configuration file for more on this.
2fe58dfd
SE
127
128The site file fragment should look something like this:
129
130shortname {
131 name "sitename";
132 address "your.public.address.org.uk";
133 port 5678;
134 networks "172.18.45.0/24";
135 key rsa-public("35","153279875126380522437827076871354104097683702803616313419670959273217685015951590424876274370401136371563604396779864283483623325238228723798087715987495590765759771552692972297669972616769731553560605291312242789575053620182470998166393580503400960149506261455420521811814445675652857085993458063584337404329");
136 };
df1b18fc
SE
137
138See 'example-sites-file' for more examples.