X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=README;h=c88027bd04caf0a074d3d88fd1e29e3241166092;hp=6c9b93b129eea16008cc40b6f53b99189ab3007d;hb=0c7e0210d900185d4c1a9ffd969dc2a26d9523a9;hpb=02746165a21a4a495d0069526c9a2355110a5784 diff --git a/README b/README index 6c9b93b1..c88027bd 100644 --- a/README +++ b/README @@ -1,9 +1,9 @@ -This is the README file for tinc version 1.0.4. Installation +This is the README file for tinc version 1.1pre11. Installation instructions may be found in the INSTALL file. -tinc is Copyright (C) 1998-2005 by: +tinc is Copyright (C) 1998-2014 by: -Ivo Timmermans , +Ivo Timmermans, Guus Sliepen , and others. @@ -15,116 +15,80 @@ the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING for more details. -Security statement ------------------- - -In August 2000, we discovered the existence of a security hole in all versions -of tinc up to and including 1.0pre2. This had to do with the way we exchanged -keys. Since then, we have been working on a new authentication scheme to make -tinc as secure as possible. The current version uses the OpenSSL library and -uses strong authentication with RSA keys. +This is a pre-release +--------------------- -On the 29th of December 2001, Jerome Etienne posted a security analysis of tinc -1.0pre4. Due to a lack of sequence numbers and a message authentication code -for each packet, an attacker could possibly disrupt certain network services or -launch a denial of service attack by replaying intercepted packets. The current -version adds sequence numbers and message authentication codes to prevent such -attacks. +Please note that this is NOT a stable release. Until version 1.1.0 is released, +please use one of the 1.0.x versions if you need a stable version of tinc. -On September the 15th of 2003, Peter Gutmann contacted us and showed us a -writeup describing various security issues in several VPN daemons. He showed -that tinc lacks perfect forward security, the connection authentication could -be done more properly, that the sequence number we use as an IV is not the best -practice and that the default length of the HMAC for packets is too short in -his opinion. We do not know of a way to exploit these weaknesses, but we will -address these issues in tinc 2.0. +Although tinc 1.1 will be protocol compatible with tinc 1.0.x, the +functionality of the tinc program may still change, and the control socket +protocol is not fixed yet. -Cryptography is a hard thing to get right. We cannot make any -guarantees. Time, review and feedback are the only things that can -prove the security of any cryptographic product. If you wish to review -tinc or give us feedback, you are stronly encouraged to do so. +Security statement +------------------ -Changes to configuration file format since 1.0pre5 --------------------------------------------------- +This version uses an experimental and unfinished cryptographic protocol. Use it +at your own risk. -Some configuration variables have different names now. Most notably "TapDevice" -should be changed into "Device", and "Device" should be changed into -"BindToDevice". Compatibility ------------- -Version 1.0.4 is compatible with 1.0pre8, 1.0 and later, but not with older +Version 1.1pre11 is compatible with 1.0pre8, 1.0 and later, but not with older versions of tinc. +When the ExperimentalProtocol option is used, tinc is still compatible with +1.0.X and 1.1pre11 itself, but not with any other 1.1preX version. + Requirements ------------ -Since 1.0pre3, we use OpenSSL for all cryptographic functions. So you -need to install this library first; grab it from -http://www.openssl.org/. You will need version 0.9.7 or later. If -this library is not installed on you system, configure will fail. The -manual in doc/tinc.texi contains more detailed information on how to -install this library. +In order to compile tinc, you will need a GNU C compiler environment. Please +ensure you have the latest stable versions of all the required libraries: -Since 1.0pre6, the zlib library is used for optional compression. You need this -library whether or not you plan to enable the compression. You can find it at -http://www.gzip.org/zlib/. Because of a possible exploit in earlier versions we -recommand that you download version 1.1.4 or later. +- OpenSSL (http://www.openssl.org/) version 1.0.0 or later, with support for + elliptic curve cryptography (ECC) and Galois counter mode (GCM) enabled. -Since 1.0, the lzo library is also used for optional compression. You need this -library whether or not you plan to enable compression. You can find it at -http://www.oberhumer.com/opensource/lzo/. +The following libraries are used by default, but can be disabled if necessary: -In order to compile tinc, you will need a GNU C compiler environment. +- zlib (http://www.gzip.org/zlib/) +- lzo (http://www.oberhumer.com/opensource/lzo/) +- ncurses (http://invisible-island.net/ncurses/) +- readline (ftp://ftp.gnu.org/pub/gnu/readline/) Features -------- -This version of tinc supports multiple virtual networks at once. To -use this feature, you may supply a netname via the -n or --net -options. The standard locations for the config files will then be -/etc/tinc//. - -tincd regenerates its encryption key pairs. It does this on the first -activity after the keys have expired. This period is adjustable in the -configuration file, and the default time is 3600 seconds (one hour). - -This version supports multiple subnets at once. They are also sorted -on subnet mask size. This means that it is possible to have -overlapping subnets on the VPN, as long as their subnet mask sizes -differ. - -Since pre5, tinc can operate in several routing modes. The default mode, -"router", works exactly like the older version, and uses Subnet lines to -determine the destination of packets. The other two modes, "switch" and "hub", -allow the tinc daemons to work together like a single network switch or hub. -This is useful for bridging networks. The latter modes only work properly on -Linux, FreeBSD and Windows. - -The algorithms used for encryption and generating message authentication codes -can now be changed in the configuration files. All cipher and digest algorithms -supported by OpenSSL can be used. Useful ciphers are "blowfish" (default), -"bf-ofb", "des", "des3", etcetera. Useful digests are "sha1" (default), "md5", -etcetera. - -Support for routing IPv6 packets has been added. Just add Subnet lines with -IPv6 addresses (without using :: abbreviations) and use ifconfig or ip (from -the iproute package) to give the virtual network interface corresponding IPv6 -addresses. tinc does not provide autoconfiguration for IPv6 hosts, if you need -it use radvd or zebra. Tunneling IPv6 packets only works on Linux, FreeBSD, -Windows and possibly OpenBSD. - -It is also possible to make tunnels to other tinc daemons over IPv6 networks, -if the operating system supports IPv6. tinc will automatically use both IPv6 -and IPv4 when available, but this can be changed by adding the option -"AddressFamily = ipv4" or "AddressFamily = ipv6" to the tinc.conf file. +Tinc is a peer-to-peer VPN daemon that supports VPNs with an arbitrary number +of nodes. Instead of configuring tunnels, you give tinc the location and +public key of a few nodes in the VPN. After making the initial connections to +those nodes, tinc will learn about all other nodes on the VPN, and will make +connections automatically. When direct connections are not possible, data will +be forwarded by intermediate nodes. + +By default, nodes authenticate each other using 2048 bit RSA (or 521 bit +ECDSA*) keys. Traffic is encrypted using Blowfish in CBC mode (or AES-256 in +GCM mode*), authenticated using HMAC-SHA1 (or GCM*), and is protected against +replay attacks. + +*) When using the ExperimentalProtocol option. + +Tinc fully supports IPv6. + +Tinc can operate in several routing modes. In the default mode, "router", every +node is associated with one or more IPv4 and/or IPv6 Subnets. The other two +modes, "switch" and "hub", let the tinc daemons work together to form a virtual +Ethernet network switch or hub. Normally, when started tinc will detach and run in the background. In a native Windows environment this means tinc will intall itself as a service, which will restart after reboots. To prevent tinc from detaching or running as a service, use the -D option. +The status of the VPN can be queried using the "tinc" command, which connects +to a running tinc daemon via a control connection. The same tool also makes it +easy to start and stop tinc, and to change its configuration.