Fix building documentation when using OpenBSD's make.
[oweals/tinc.git] / README
1 This is the README file for tinc version 1.0.33. Installation
2 instructions may be found in the INSTALL file.
3
4 tinc is Copyright (C) 1998-2017 by:
5
6 Ivo Timmermans,
7 Guus Sliepen <guus@tinc-vpn.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 On September the 15th of 2003, Peter Gutmann contacted us and showed us a
35 writeup describing various security issues in several VPN daemons. He showed
36 that tinc lacks perfect forward security, the connection authentication could
37 be done more properly, that the sequence number we use as an IV is not the best
38 practice and that the default length of the HMAC for packets is too short in
39 his opinion. We do not know of a way to exploit these weaknesses, but these
40 issues are being addressed in the tinc 1.1 branch.
41
42 The Sweet32 attack affects versions of tinc prior to 1.0.30.
43
44 Cryptography is a hard thing to get right. We cannot make any
45 guarantees. Time, review and feedback are the only things that can
46 prove the security of any cryptographic product. If you wish to review
47 tinc or give us feedback, you are strongly encouraged to do so.
48
49
50 Changes to configuration file format since 1.0pre5
51 --------------------------------------------------
52
53 Some configuration variables have different names now. Most notably "TapDevice"
54 should be changed into "Device", and "Device" should be changed into
55 "BindToDevice".
56
57
58 Compatibility
59 -------------
60
61 Version 1.0.31 is compatible with 1.0pre8, 1.0 and later, but not with older
62 versions of tinc. Note that since version 1.0.30, tinc requires all nodes in
63 the VPN to be compiled with a version of LibreSSL or OpenSSL that supports the
64 AES256 and SHA256 algorithms.
65
66
67 Requirements
68 ------------
69
70 Since 1.0pre3, we use OpenSSL for all cryptographic functions.  So you need to
71 install this library first; grab it from http://www.openssl.org/. You will
72 need version 1.0.1 or later with support for AES256 and SHA256 enabled. If
73 this library is not installed on you system, configure will fail. The manual
74 in doc/tinc.texi contains more detailed information on how to install this
75 library. Alternatively, you may also use LibreSSL.
76
77 Since 1.0pre6, the zlib library is used for optional compression. You can
78 find it at http://www.gzip.org/zlib/. Because of a possible exploit in
79 earlier versions we recommend that you download version 1.1.4 or later.
80
81 Since 1.0, the lzo library is also used for optional compression. You can
82 find it at http://www.oberhumer.com/opensource/lzo/.
83
84 In order to compile tinc, you will need a GNU C compiler environment.
85
86
87 Features
88 --------
89
90 This version of tinc supports multiple virtual networks at once. To
91 use this feature, you may supply a netname via the -n or --net
92 options. The standard locations for the config files will then be
93 /etc/tinc/<net>/.
94
95 tincd regenerates its encryption key pairs. It does this on the first
96 activity after the keys have expired. This period is adjustable in the
97 configuration file, and the default time is 3600 seconds (one hour).
98
99 This version supports multiple subnets at once. They are also sorted
100 on subnet mask size. This means that it is possible to have
101 overlapping subnets on the VPN, as long as their subnet mask sizes
102 differ.
103
104 Since pre5, tinc can operate in several routing modes. The default mode,
105 "router", works exactly like the older version, and uses Subnet lines to
106 determine the destination of packets. The other two modes, "switch" and "hub",
107 allow the tinc daemons to work together like a single network switch or hub.
108 This is useful for bridging networks. The latter modes only work properly on
109 Linux, FreeBSD and Windows.
110
111 The algorithms used for encryption and generating message authentication codes
112 can now be changed in the configuration files. All cipher and digest algorithms
113 supported by OpenSSL can be used. Useful ciphers are "blowfish" (default),
114 "bf-ofb", "des", "des3", et cetera. Useful digests are "sha1" (default), "md5",
115 et cetera.
116
117 Support for routing IPv6 packets has been added. Just add Subnet lines with
118 IPv6 addresses (without using :: abbreviations) and use ifconfig or ip (from
119 the iproute package) to give the virtual network interface corresponding IPv6
120 addresses. tinc does not provide autoconfiguration for IPv6 hosts. Consider
121 using radvd or zebra if you need it.
122
123 It is also possible to make tunnels to other tinc daemons over IPv6 networks,
124 if the operating system supports IPv6.  tinc will automatically use both IPv6
125 and IPv4 when available, but this can be changed by adding the option
126 "AddressFamily = ipv4" or "AddressFamily = ipv6" to the tinc.conf file.
127
128 Normally, when started tinc will detach and run in the background. In a native
129 Windows environment this means tinc will install itself as a service, which will
130 restart after reboots.  To prevent tinc from detaching or running as a service,
131 use the -D option.
132