Make sure setlocale() is available.
[tinc] / README
1 This is the README file for tinc version 1.0pre7. Installation
2 instructions may be found in the INSTALL file.
3
4 tinc is Copyright (C) 1998-2002 by:
5
6 Ivo Timmermans <ivo@o2w.nl>,
7 Guus Sliepen <guus@sliepen.eu.org>,
8 and others.
9
10 For a complete list of authors see the AUTHORS file.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2 of the License, or (at
15 your option) any later version. See the file COPYING for more details.
16
17
18 Security statement
19 ------------------
20
21 In August 2000, we discovered the existence of a security hole in all versions
22 of tinc up to and including 1.0pre2. This had to do with the way we exchanged
23 keys. Since then, we have been working on a new authentication scheme to make
24 tinc as secure as possible. The current version uses the OpenSSL library and
25 uses strong authentication with RSA keys.
26
27 On the 29th of December 2001, Jerome Etienne posted a security analysis of tinc
28 1.0pre4. Due to a lack of sequence numbers and a message authentication code
29 for each packet, an attacker could possibly disrupt certain network services or
30 launch a denial of service attack by replaying intercepted packets. The current
31 version adds sequence numbers and message authentication codes to prevent such
32 attacks.
33
34 Cryptography is a hard thing to get right. We cannot make any
35 guarantees. Time, review and feedback are the only things that can
36 prove the security of any cryptographic product. If you wish to review
37 tinc or give us feedback, you are stronly encouraged to do so.
38
39
40 Changes to configuration file format since 1.0pre5
41 --------------------------------------------------
42
43 Some configuration variables have different names now. Most notably "TapDevice"
44 should be changed into "Device", and "Device" should be changed into
45 "BindToDevice".
46
47
48 Requirements
49 ------------
50
51 Since 1.0pre3, we use OpenSSL for all cryptographic functions.  So you
52 need to install this library first; grab it from
53 http://www.openssl.org/.  We recommend version 0.9.5 or better.  If
54 this library is not installed on you system, configure will fail.  The
55 manual in doc/tinc.texi contains more detailed information on how to
56 install this library.
57
58 Since 1.0pre6, the zlib library is used for optional compression. You need this
59 library whether or not you plan to enable the compression. You can find it at
60 http://www.gzip.org/zlib/. Because of a possible exploit in earlier versions we
61 recommand that you download version 1.1.4 or later.
62
63 In order to compile tinc, you will also need autoconf, automake, GNU make, m4
64 and gettext.
65
66
67 Features
68 --------
69
70 This version of tinc supports multiple virtual networks at once. To
71 use this feature, you may supply a netname via the -n or --net
72 options. The standard locations for the config files will then be
73 /etc/tinc/<net>/. Because of this feature, tinc will send packets
74 directly to their destinations, instead of to the uplink. If this
75 behaviour is undesirable (for instance because of firewalls or other
76 restrictions), please use an older version of tinc (I would recommend
77 tinc-0.2.19).
78
79 In order to force the kernel to accept received packets, the
80 destination MAC address will be set to FE:FD:00:00:00:00 upon
81 reception. The MAC address of the ethertap or tun/tap interface must
82 also be set to this address. See the manual for more detailed
83 information.
84
85 tincd regenerates its encryption key pairs. It does this on the first
86 activity after the keys have expired. This period is adjustable in the
87 configuration file, and the default time is 3600 seconds (one hour).
88
89 This version supports multiple subnets at once. They are also sorted
90 on subnet mask size. This means that it is possible to have
91 overlapping subnets on the VPN, as long as their subnet mask sizes
92 differ.
93
94 Since pre5, tinc can operate in several routing modes. The default mode,
95 "router", works exactly like the older version, and uses Subnet lines to
96 determine the destination of packets. The other two modes, "switch" and "hub",
97 allow the tinc daemons to work together like a single network switch or hub.
98 This is useful for bridging networks. The latter modes only work properly on
99 Linux and FreeBSD.
100
101 The algorithms used for encryption and generating message authentication codes
102 can now be changed in the configuration files. All cipher and digest algorithms
103 supported by OpenSSL can be used. Useful ciphers are "blowfish" (default),
104 "bf-ofb", "des", "des3", etcetera. Useful digests are "sha1" (default), "md5",
105 etcetera.
106
107 Support for routing IPv6 packets has been added. Just add Subnet lines with
108 IPv6 addresses (without using :: abbreviations) and use ifconfig or ip (from
109 the iproute package) to give the virtual network interface corresponding IPv6
110 addresses. tinc does not provide autoconfiguration for IPv6 hosts, if you need
111 it use radvd or zebra. Tunneling IPv6 packets only works on Linux, FreeBSD and
112 possibly OpenBSD.
113
114 It is also possible to make tunnels to other tinc daemons over IPv6 networks.
115 In order to enable this feature the option "AddressFamily = any" or
116 "AddressFamily = ipv6" must be added to the tinc.conf file. The host
117 configuration files should contain IPv6 addresses for the "Address" variables,
118 or hostnames which have an AAAA or A6 record.