X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=doc%2Ftinc.texi;h=59aec48112fb90253bcd8e259842e9f2a1b57a9c;hp=46af02dd05a02aaa14653f195e76753240cd3caf;hb=bd0325655867b1dff740d52d0505773bba0606a6;hpb=1243156a5e03a666b36bc4400f1402243a85c9a7 diff --git a/doc/tinc.texi b/doc/tinc.texi index 46af02dd..59aec481 100644 --- a/doc/tinc.texi +++ b/doc/tinc.texi @@ -6,6 +6,9 @@ @c %**end of header @ifinfo +@direntry +* tinc: (tinc). The tinc Manual. +@end direntry This is the info manual for tinc, a Virtual Private Network daemon. @@ -73,7 +76,7 @@ Internet. Because the tunnel appears to the IP level network code as a normal network device, there is no need to adapt any existing software. -This tunneling allows VPN sites to share information with eachother +This tunneling allows VPN sites to share information with each other over the Internet without exposing any information to others. This document is the manual for tinc. Included are chapters on how to @@ -94,9 +97,9 @@ by a few elected computers that participate. This goal is achievable in more than just one way. @cindex private -For instance, a VPN can consist of a single standalone ethernet LAN. Or -even two computers hooked up using a nullmodem cable@footnote{Though -discussable, I think it qualifies as a VPN.}. In these cases, it is +For instance, a VPN can consist of a single stand-alone ethernet LAN. Or +even two computers hooked up using a null-modem cable@footnote{Though +discuss-able, I think it qualifies as a VPN.}. In these cases, it is obvious that the network is @emph{private}. But there is another type of VPN, the type tinc was made for. @@ -110,14 +113,14 @@ As is the case with either type of VPN, anybody could eavesdrop. Or worse, alter data. Hence it's probably advisable to encrypt the data that flows over the network. -` + @c ================================================================== @node tinc, , VPNs, Introduction @section tinc I really don't quite remember what got us started, but it must have been Guus' idea. He wrote a simple implementation (about 50 lines of C) that -used the @emph{ethertap} device that linux knows of since somewhere +used the @emph{ethertap} device that Linux knows of since somewhere about kernel 2.1.60. It didn't work immediately and he improved it a bit. At this stage, the project was still simply called @samp{vpnd}. @@ -125,7 +128,7 @@ Since then, a lot has changed---to say the least. @cindex tincd tinc now supports encryption, it consists of a single daemon (tincd) for -both the receiving and sending end, it hase becom largely +both the receiving and sending end, it has become largely runtime-configurable---in short, it has become a full-fledged professional package. @@ -209,7 +212,7 @@ chown 0.0 /dev/tap0 The permissions now will be such that only the super user may read/write to this file. You'd want this, because otherwise eavesdropping would -become a tad too easy. This does, however, imply that you'd have to run +become a bit too easy. This does, however, imply that you'd have to run tincd as root. If you want to, you may also create more device files, which would be @@ -219,8 +222,8 @@ owned by root and have permission 600. @subsubheading @file{/etc/networks} -You may add a line to @file{/etc/networks} so that your vpn will get a -symoblic name. For example: +You may add a line to @file{/etc/networks} so that your VPN will get a +symbolic name. For example: @example myvpn 10.0.0.0 @@ -230,7 +233,7 @@ myvpn 10.0.0.0 @subsubheading @file{/etc/services} You may add this line to @file{/etc/services}. The effect is that you -may supply a @samp{vpn} as a valid port number to some programs. The +may supply a @samp{tinc} as a valid port number to some programs. The number 655 is registered with the IANA. @example @@ -267,8 +270,8 @@ The @emph{n} here is the number of the ethertap device you want to use. It should be the same @emph{n} as the one you use for @file{/dev/tap@emph{n}}. The @emph{xx}s are four hexadecimal numbers (0--ff). With previous versions of tincd, it didn't matter what they -were. But newer kernels require properly set up ehternet addresses. -In fact, the old behaviour was wrong. It is required that the @emph{xx}s +were. But newer kernels require properly set up ethernet addresses. +In fact, the old behavior was wrong. It is required that the @emph{xx}s match MyOwnVPNIP. @example @@ -315,7 +318,7 @@ included in the source distribution. @c from the manpage -It is perfectly ok for you to run more than one tinc daemon. +It is perfectly OK for you to run more than one tinc daemon. However, in its default form, you will soon notice that you can't use two different configuration files without the -c option. @@ -325,12 +328,12 @@ to this daemon. The effect of this is that the daemon will set its configuration ``root'' to /etc/tinc/nn/, where nn is your argument to the -n -option. You'll notice that it appears in syslog as ``tincd.nn''. +option. You'll notice that it appears in syslog as ``tinc.nn''. However, it is not strictly necessary that you call tinc with the -n option. In this case, the network name would just be empty, and it will be used as such. tinc now looks for files in /etc/tinc/, instead of -/etc/tinc/nn/; the configuration file should be /etc/tinc/tincd.conf, +/etc/tinc/nn/; the configuration file should be /etc/tinc/tinc.conf, and the passphrases are now expected to be in /etc/tinc/passphrases/. But it is highly recommended that you use this feature of tinc, because @@ -345,8 +348,8 @@ assume that you use it. Before going on, first a bit on how tinc sees connections. When tinc starts up, it reads in the configuration file and parses the -commandline options. If it sees a `ConnectTo' value in the file, it will -try to connect to it, on the given port. If this fails, tinc exits. +command-line options. If it sees a `ConnectTo' value in the file, it +will try to connect to it, on the given port. If this fails, tinc exits. @c ================================================================== @@ -354,7 +357,7 @@ try to connect to it, on the given port. If this fails, tinc exits. @section Configuration file The actual configuration of the daemon is done in the file -@file{/etc/tinc/nn/tincd.conf}. +@file{/etc/tinc/nn/tinc.conf}. This file consists of comments (lines started with a #) or assignments in the form of @@ -423,7 +426,7 @@ This is an alias for MyOwnVPNIP. @item Passphrases = directory The directory where tinc will look for passphrases when someone tries to -cennect. Please see the manpage for genauth(8) for more information +connect. Please see the manpage for genauth(8) for more information about passphrases as used by tinc. @item PingTimeout = number @@ -435,7 +438,7 @@ will be notified of this. @item TapDevice = device The ethertap device to use. Note that you can only use one device per daemon. The info pages of the tinc package contain more information -about configuring an ethertap device for linux. +about configuring an ethertap device for Linux. @end table @@ -462,7 +465,7 @@ D: net 10.4.0.0 mask 255.255.0.0 gateway 10.4.3.32 internet IP 4.5.6.7 ``gateway'' is the VPN IP address of the machine that is running the tincd. ``internet IP'' is the IP address of the firewall, which does not need to run tincd, but it must do a port forwarding of TCP&UDP on port -655 (unless otherwise configured).e +655 (unless otherwise configured). In this example, it is assumed that eth0 is the interface that points to the inner LAN of the office. This could be the same as the interface @@ -478,7 +481,7 @@ ifconfig tap0 10.1.54.1 netmask 255.0.0.0 ifconfig eth0 10.1.54.1 netmask 255.255.0.0 broadcast 10.1.255.255 @end example -and in /etc/tinc/tincd.conf: +and in /etc/tinc/tinc.conf: @example TapDevice = /dev/tap0 @@ -493,7 +496,7 @@ ifconfig tap0 10.2.1.12 netmask 255.0.0.0 ifconfig eth0 10.2.43.8 netmask 255.255.0.0 broadcast 10.2.255.255 @end example -and in /etc/tinc/tincd.conf: +and in /etc/tinc/tinc.conf: @example TapDevice = /dev/tap0 @@ -514,7 +517,7 @@ ifconfig tap0 10.3.69.254 netmask 255.0.0.0 ifconfig eth0 10.3.69.254 netmask 255.255.0.0 broadcast 10.3.255.255 @end example -and in /etc/tinc/A/tincd.conf: +and in /etc/tinc/A/tinc.conf: @example MyVirtualIP = 10.3.69.254/16 @@ -534,7 +537,7 @@ ifconfig tap0 10.4.3.32 netmask 255.0.0.0 ifconfig tap0 10.4.3.32 netmask 255.255.0.0 broadcast 10.4.255.255 @end example -and in /etc/tinc/tincd.conf: +and in /etc/tinc/tinc.conf: @example MyVirtualIP = 10.4.3.32/16 @@ -642,7 +645,7 @@ generated automatically, so may be more up-to-date. @table @asis @item -c, --config=FILE Read configuration options from FILE. The default is -@file{/etc/tinc/nn/tincd.conf}. +@file{/etc/tinc/nn/tinc.conf}. @item -d Increase debug level. The higher it gets, the more gets @@ -657,7 +660,7 @@ packets themselves. @item -k, --kill Attempt to kill a running tincd and exit. A TERM signal (15) gets sent -to the daemon that his its PID in /var/run/tincd.nn.pid. +to the daemon that his its PID in /var/run/tinc.nn.pid. Because it kills only one tincd, you should use -n here if you use it normally. @@ -784,54 +787,14 @@ This chapter is a mixture of ideas, reasoning and explanation, please don't take it too serious. @menu -* Encryption:: * Key Management:: -* Authentification:: How to be sure we're talking to the right person +* Authentication:: * Protection:: @end menu @c ================================================================== -@node Encryption, Key Management, Security, Security -@subsection Encryption - -Encryption algorithms come in lots of flavors, most of which are not -safe enough to use on the Internet, if at all. Algorithms that we've -considered using are: RSA, blowfish, twofish and IDEA. - -@itemize @bullet -@item -@cindex RSA -@emph{RSA} is patented. A fee must be paid if you use it, so it can't -be used in an Open Source program. - -@item -@cindex blowfish -@emph{blowfish} was the standard encryption method at least up to version -0.2.23, but as Dekan pointed out, it may not be all that secure. It is -also patented, but it may be used freely. - -@item -@cindex twofish -@emph{twofish} should be better, but i've not seen a useable -ready-to-use implementation somewhere out of the US. I'll remember this -as a future encryption method. - -@item -@cindex IDEA -@emph{IDEA} is patented, and free for non-commercial use. It is going to -be the standard encryption method. - -@end itemize - -You may choose any of the last three encryption methods in tinc. Please -note, however, that ALL computers on your VPN must currenttly use the -same. This should (among other things) be more flexible, tinc could for -instance load a new encryption library the minute it is needed. - - -@c ================================================================== -@node Key Management, Authentification, Encryption, Security +@node Key Management, Authentication, Security, Security @subsection Key Management @c FIXME: recheck @@ -866,13 +829,13 @@ should be 2^129-1 or more. @c ================================================================== -@node Authentification, Protection, Key Management, Security -@subsection Authentification +@node Authentication, Protection, Key Management, Security +@subsection Authentication @c FIXME: recheck @cindex man-in-the-middle attack Because the Diffie-Hellman protocol is in itself vulnerable to the -``man-in-the-middle attack,'' we should introduce an authentification +``man-in-the-middle attack,'' we should introduce an authentication system. We will let A transmit a passphrase that is also known to B encrypted @@ -892,7 +855,7 @@ passphrase to B. @c ================================================================== -@node Protection, , Authentification, Security +@node Protection, , Authentication, Security @subsection Protecting your data Now we have securely hidden our data. But a malicious cracker may still @@ -934,7 +897,7 @@ the meta-protocol, during early identification stages. @node Meta protocol, , Data protocol, The Protocol @subsection The Meta protocol -This protocol consists of separate packets of enformation, that are +This protocol consists of separate packets of information, that are generally formatted thusly: @example @@ -1194,7 +1157,7 @@ Main coder/hacker and maintainer of the package. Originator of it all, co-author. @item Wessel Dankers (Ubiq) -General obfuscator of the code. +General obfuscater of the code. @end table