]> Cypherpunks.ru repositories - govpn.git/blobdiff - doc/example.texi
Ability to use TUN-interfaces under GNU/Linux
[govpn.git] / doc / example.texi
index 9fb3ad1685383f98e7da46a738f5726c25260953..688898a76bf350e646fac90b3ef7f702a5c40aa1 100644 (file)
 Let's assume that there is some insecure link between your computer and
 WiFi-reachable gateway.
 
-@itemize @bullet
+@itemize
 @item You have got @code{wlan0} NIC with 192.168.0/24 network on it.
 @item You want to create virtual encrypted and authenticated 172.16.0/24
 network and use it as a default transport.
-@item @code{wlan0} MTU is 1500, 20 bytes overhead per IPv4. So MTU for
-GoVPN is 1500 - 20 - 8 = 1472.
-@item During startup client and server will say that TAP interface MTU
-is 1432.
+@item Assume that outgoing GoVPN packets can be fragmented, so we do not
+bother configuring MTU of TUN/TAP interfaces. For better performance just
+lower it and check that no fragmentation of outgoing UDP packets occurs.
 @end itemize
 
 @strong{Install}. At first you must @ref{Installation, install} this
-software: download, check the signature, compile.
+software: download, @ref{Integrity, check the signature}, compile.
 
-@strong{Prepare the server}. Create the new client, named (for example)
-"Alice":
+@strong{Prepare the client}. Generate client's verifier for Alice as an
+example:
 
-@example
-server% ./utils/newclient.sh Alice
-Place verifier to peers/6d4ac605ce8dc37c2f0bf21cb542a713/verifier
-@end example
 
-"6d4ac605ce8dc37c2f0bf21cb542a713" -- is the new client's identity.
+@verbatim
+client% ./utils/newclient.sh Alice
+Passphrase:
+Your client verifier is: $balloon$s=32768,t=16,p=2$bwR5VjeCYIQaa8SeaI3rqg
 
-@strong{Prepare the client}. Generate @ref{Verifier} for known client
-identity:
+Place the following YAML configuration entry on the server's side:
 
-@example
-client% ./utils/storekey.sh /tmp/passphrase
-Enter passphrase:[my secure passphrase is here]
-client% govpn-verifier -id 6d4ac605ce8dc37c2f0bf21cb542a713 -key /tmp/passphrase
-562556cc9ecf0019b4cf45bcdf42706944ae9b3ac7c73ad299d83f2d5a169c55
-client% rm /tmp/passphrase
-@end example
+    Alice:
+        up: /path/to/up.sh
+        iface: or TUN/TAP interface name
+        verifier: $balloon$s=32768,t=16,p=2$bwR5VjeCYIQaa8SeaI3rqg$KCNIqfS4DGsBTtVytamAzcISgrlEWvNxan1UfBrFu10
+@end verbatim
 
-"562556cc9ecf0019b4cf45bcdf42706944ae9b3ac7c73ad299d83f2d5a169c55" --
-this is verifier itself.
+@strong{Prepare the server}. Add this entry to @file{peers.yaml}
+configuration file:
 
-@strong{Save verifier on server}.
-
-@example
-server% cat > peers/6d4ac605ce8dc37c2f0bf21cb542a713/verifier <<EOF
-562556cc9ecf0019b4cf45bcdf42706944ae9b3ac7c73ad299d83f2d5a169c55
-EOF
-@end example
+@verbatim
+Alice:
+    iface: tap10
+    verifier: $balloon$s=32768,t=16,p=2$bwR5VjeCYIQaa8SeaI3rqg$KCNIqfS4DGsBTtVytamAzcISgrlEWvNxan1UfBrFu10
+@end verbatim
 
 @strong{Prepare network on GNU/Linux IPv4 server}:
 
-@example
-server% echo "echo tap10" >> peers/6d4ac605ce8dc37c2f0bf21cb542a713/up.sh
+@verbatim
 server% ip addr add 192.168.0.1/24 dev wlan0
-server% tunctl -t tap10
-server% ip link set mtu 1432 dev tap10
+server% ip tuntap add dev tap10 mode tap
 server% ip addr add 172.16.0.1/24 dev tap10
 server% ip link set up dev tap10
-@end example
+@end verbatim
 
 @strong{Run server daemon itself}:
 
-@example
-server% govpn-server -bind 192.168.0.1:1194 -mtu 1472
-@end example
+@verbatim
+server% govpn-server -bind 192.168.0.1:1194
+@end verbatim
 
 @strong{Prepare network on GNU/Linux IPv4 client}:
 
-@example
-client% umask 066
-client% utils/storekey.sh key.txt
+@verbatim
 client% ip addr add 192.168.0.2/24 dev wlan0
-client% tunctl -t tap10
-client% ip link set mtu 1432 dev tap10
+client% ip tuntap add dev tap10 mode tap
 client% ip addr add 172.16.0.2/24 dev tap10
 client% ip link set up dev tap10
-client% ip route add default via 172.16.0.1
-@end example
+client% ip route add 0/1 via 172.16.0.1
+client% ip route add 128/1 via 172.16.0.1
+@end verbatim
 
 @strong{Run client daemon itself}:
-@example
+@verbatim
 client% govpn-client \
-    -key key.txt \
-    -id 6d4ac605ce8dc37c2f0bf21cb542a713 \
+    -verifier '$balloon$s=32768,t=16,p=2$bwR5VjeCYIQaa8SeaI3rqg' \
     -iface tap10 \
-    -remote 192.168.0.1:1194 \
-    -mtu 1472
-@end example
+    -remote 192.168.0.1:1194
+@end verbatim
 
 @strong{FreeBSD IPv6 similar client-server example}:
 
-@example
+@verbatim
 server% ifconfig em0 inet6 fe80::1/64
 server% govpn-server -bind "fe80::1%em0"
-@end example
+@end verbatim
 
-@example
+@verbatim
 client% ifconfig me0 inet6 -ifdisabled auto_linklocal
 client% ifconfig tap10
-client% ifconfig tap10 inet6 fc00::2/96 mtu 1412 up
+client% ifconfig tap10 inet6 fc00::2/96 up
 client% route -6 add default fc00::1
 client% govpn-client \
-    -key key.txt \
-    -id 6d4ac605ce8dc37c2f0bf21cb542a713 \
+    -verifier '$balloon$s=32768,t=16,p=2$bwR5VjeCYIQaa8SeaI3rqg' \
     -iface tap10 \
     -remote "[fe80::1%me0]":1194
-@end example
+@end verbatim