Changes largely from Mads Kiilerich.
Removed section about encryption.
This commit is contained in:
parent
ce98ee1ed4
commit
7c665712d6
1 changed files with 22 additions and 62 deletions
|
@ -73,7 +73,7 @@ Internet.
|
||||||
Because the tunnel appears to the IP level network code as a normal
|
Because the tunnel appears to the IP level network code as a normal
|
||||||
network device, there is no need to adapt any existing software.
|
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.
|
over the Internet without exposing any information to others.
|
||||||
|
|
||||||
This document is the manual for tinc. Included are chapters on how to
|
This document is the manual for tinc. Included are chapters on how to
|
||||||
|
@ -94,8 +94,8 @@ by a few elected computers that participate. This goal is achievable in
|
||||||
more than just one way.
|
more than just one way.
|
||||||
|
|
||||||
@cindex private
|
@cindex private
|
||||||
For instance, a VPN can consist of a single standalone ethernet LAN. Or
|
For instance, a VPN can consist of a single stand-alone ethernet LAN. Or
|
||||||
even two computers hooked up using a nullmodem cable@footnote{Though
|
even two computers hooked up using a null-modem cable@footnote{Though
|
||||||
discussable, I think it qualifies as a VPN.}. In these cases, it is
|
discussable, I think it qualifies as a VPN.}. In these cases, it is
|
||||||
obvious that the network is @emph{private}. But there is another type
|
obvious that the network is @emph{private}. But there is another type
|
||||||
of VPN, the type tinc was made for.
|
of VPN, the type tinc was made for.
|
||||||
|
@ -110,14 +110,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
|
worse, alter data. Hence it's probably advisable to encrypt the data
|
||||||
that flows over the network.
|
that flows over the network.
|
||||||
|
|
||||||
`
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
@node tinc, , VPNs, Introduction
|
@node tinc, , VPNs, Introduction
|
||||||
@section tinc
|
@section tinc
|
||||||
|
|
||||||
I really don't quite remember what got us started, but it must have been
|
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
|
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
|
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}.
|
bit. At this stage, the project was still simply called @samp{vpnd}.
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ Since then, a lot has changed---to say the least.
|
||||||
|
|
||||||
@cindex tincd
|
@cindex tincd
|
||||||
tinc now supports encryption, it consists of a single daemon (tincd) for
|
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
|
runtime-configurable---in short, it has become a full-fledged
|
||||||
professional package.
|
professional package.
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ owned by root and have permission 600.
|
||||||
@subsubheading @file{/etc/networks}
|
@subsubheading @file{/etc/networks}
|
||||||
|
|
||||||
You may add a line to @file{/etc/networks} so that your vpn will get a
|
You may add a line to @file{/etc/networks} so that your vpn will get a
|
||||||
symoblic name. For example:
|
symbolic name. For example:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
myvpn 10.0.0.0
|
myvpn 10.0.0.0
|
||||||
|
@ -267,8 +267,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
|
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
|
@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
|
(0--ff). With previous versions of tincd, it didn't matter what they
|
||||||
were. But newer kernels require properly set up ehternet addresses.
|
were. But newer kernels require properly set up ethernet addresses.
|
||||||
In fact, the old behaviour was wrong. It is required that the @emph{xx}s
|
In fact, the old behavior was wrong. It is required that the @emph{xx}s
|
||||||
match MyOwnVPNIP.
|
match MyOwnVPNIP.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -315,7 +315,7 @@ included in the source distribution.
|
||||||
|
|
||||||
@c from the manpage
|
@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
|
However, in its default form, you will soon notice that you can't use
|
||||||
two different configuration files without the -c option.
|
two different configuration files without the -c option.
|
||||||
|
|
||||||
|
@ -345,8 +345,8 @@ assume that you use it.
|
||||||
Before going on, first a bit on how tinc sees connections.
|
Before going on, first a bit on how tinc sees connections.
|
||||||
|
|
||||||
When tinc starts up, it reads in the configuration file and parses the
|
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
|
command-line options. If it sees a `ConnectTo' value in the file, it
|
||||||
try to connect to it, on the given port. If this fails, tinc exits.
|
will try to connect to it, on the given port. If this fails, tinc exits.
|
||||||
|
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
|
@ -423,7 +423,7 @@ This is an alias for MyOwnVPNIP.
|
||||||
|
|
||||||
@item Passphrases = directory
|
@item Passphrases = directory
|
||||||
The directory where tinc will look for passphrases when someone tries to
|
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.
|
about passphrases as used by tinc.
|
||||||
|
|
||||||
@item PingTimeout = number
|
@item PingTimeout = number
|
||||||
|
@ -435,7 +435,7 @@ will be notified of this.
|
||||||
@item TapDevice = device
|
@item TapDevice = device
|
||||||
The ethertap device to use. Note that you can only use one device per
|
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
|
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
|
@end table
|
||||||
|
|
||||||
|
@ -462,7 +462,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
|
``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
|
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
|
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
|
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
|
the inner LAN of the office. This could be the same as the interface
|
||||||
|
@ -784,54 +784,14 @@ This chapter is a mixture of ideas, reasoning and explanation, please
|
||||||
don't take it too serious.
|
don't take it too serious.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Encryption::
|
|
||||||
* Key Management::
|
* Key Management::
|
||||||
* Authentification:: How to be sure we're talking to the right person
|
* Authentication::
|
||||||
* Protection::
|
* Protection::
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
@node Encryption, Key Management, Security, Security
|
@node Key Management, Authentication, 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
|
|
||||||
@subsection Key Management
|
@subsection Key Management
|
||||||
@c FIXME: recheck
|
@c FIXME: recheck
|
||||||
|
|
||||||
|
@ -866,13 +826,13 @@ should be 2^129-1 or more.
|
||||||
|
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
@node Authentification, Protection, Key Management, Security
|
@node Authentication, Protection, Key Management, Security
|
||||||
@subsection Authentification
|
@subsection Authentication
|
||||||
@c FIXME: recheck
|
@c FIXME: recheck
|
||||||
|
|
||||||
@cindex man-in-the-middle attack
|
@cindex man-in-the-middle attack
|
||||||
Because the Diffie-Hellman protocol is in itself vulnerable to the
|
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.
|
system.
|
||||||
|
|
||||||
We will let A transmit a passphrase that is also known to B encrypted
|
We will let A transmit a passphrase that is also known to B encrypted
|
||||||
|
@ -892,7 +852,7 @@ passphrase to B.
|
||||||
|
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
@node Protection, , Authentification, Security
|
@node Protection, , Authentication, Security
|
||||||
@subsection Protecting your data
|
@subsection Protecting your data
|
||||||
|
|
||||||
Now we have securely hidden our data. But a malicious cracker may still
|
Now we have securely hidden our data. But a malicious cracker may still
|
||||||
|
@ -934,7 +894,7 @@ the meta-protocol, during early identification stages.
|
||||||
@node Meta protocol, , Data protocol, The Protocol
|
@node Meta protocol, , Data protocol, The Protocol
|
||||||
@subsection The Meta 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:
|
generally formatted thusly:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
|
Loading…
Reference in a new issue