## Feste IP Adresse Anlegen Um Fehler auszuschließen am besten statische IP-Adressen benutzen, die außerhalb des Bereiches vom lokalen DHCP-Servers (zB. F!Box) liegen.Default route dann manuell zum lokalen uplink gateway (zB zur F!Box) setzen. Konfiguration rebootfest machen (/etc/rc.conf bei BSD, /etc/network/interfaces bei Debian). Die im Folgenden als Beispiel verwendeten private-IP-Adressen natürlich durch die real konfigurierten ersetzen. Wenn man die Netzwerkkonfiguration der APU versemmelt und nicht mehr per ssh drankommt, gibt's ja zum Glück noch die serielle Verbindung:-) In meinem Fall habe ich mich entschieden für die Adressen: Apu (Debian) : 192.168.1.100 Laptop : 192.168.1.99 Einzelheiten zu der Datei interfaces sind [hier](https://wiki.ffdo.de/_edit/Community/Bildung/FF@home/Debian10%20mit%20Tinc%20und%20Bird) zu finden. ## Für die Datenweitergabe zwischen den Netzen ist der folgende Eintrag nötig. /etc/sysctl.conf # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 ## Verzeichnisstruktur anlegen sudo mkdir -p /etc/tinc/lan/hosts/ # für ein lokales Netz sudo mkdir -p /etc/tinc/wan/hosts/ # für ein Netz mit öffentlicher ip Unter OpenBSD sind die Pfade hier zu finden: @hoerde:/usr/local/etc/tinc/... Der Parameter -p unterdrückt die Anzeige eines Fehlers, wenn /lan/ und/oder /hosts/ schon vorhanden sind; sonst werden die Verzeichnisse lan und hosts erzeugt. ## Konfigurationsdateien "lan" und "wan" anlegen Nun müssen eine Reihe von Konfigurationsdateien und -scripten angelegt werden damit Tinc ordnungsgemäß seinen Dienst verrichtet. Die Inhalte und das Vorgehen werden weiter unten beschrieben. "apu" und "laptop" müssen entsprechend der [ip-Liste](https://wiki.ffdo.de/Community/Bildung/FF@home/IP-Adressen) umbenannt werden in z.B. "berghofen" und "berglap" - /etc/tinc/lan/tinc.conf - /etc/tinc/lan/rsa_key.priv (wird mit tincd erzeugt) - /etc/tinc/lan/tinc-up - /etc/tinc/lan/hosts/apu - /etc/tinc/lan/hosts/laptop Dabei sind hosts/apu und hosts/laptop auf beiden Geräten identisch, die anderen gerätespezifisch. Der Pfad lautet entweder /etc/tinc/lan/ oder /etc/tinc/wan/. ## Tinc-Konfigurationsdatei vi /etc/tinc/lan/tinc.conf tinc Instanz aufsetzen (Beschreibung für tinc 1.0.x) Tipp! Für das Übertragen der Einstellungen am besten jeweils mit dem Befehl "cat" arbeiten. Für die tinc-Instanz mit dem Namen "lan" ungefähr Folgendes in die config Datei vi etc/tinc/lan/tinc.conf schreiben: Name = apu Device = /dev/net/tun Mode = switch AddressFamily = ipv4 BindToAddress = 192.168.1.100 Port = 10001 MaxTimeout = 30 GraphDumpFile = /var/run/tinc.lan.dot #LocalDiscovery = yes ConnectTo = laptop # z.B. berglap Und auf dem Laptop ähnliche Daten, bis auf: "Name,BindToAddress und ConnectTo". Name = laptop Device = /dev/net/tun Mode = switch AddressFamily = ipv4 BindToAddress = 192.168.1.99 Port = 10001 MaxTimeout = 30 GraphDumpFile = /var/run/tinc.lan.dot #LocalDiscovery = yes ConnectTo = apu # z.B. berghofen ## Auf beiden Geräten die Schlüsselpaare generieren: Anmerkung: bei mir funktionierte der Befehl nur mit Angabe des Pfades. tincd -n lan -K 4096 oder mit Pfad /usr/sbin/tincd -n lan -K 4096 ebenso für wan: tincd -n wan -K 4096 Die Ausgabe sieht etwa so aus: Generating 4096 bits keys: ............................................................................. ............................................................................. ............................................................................................++++ p ...........................................................++++ q Done. Please enter a file to save private RSA key to [/etc/tinc/lan/rsa_key.priv]: ... ## /etc/tinc/lan/tinc-up und /etc/tinc/wan/tinc-up erstellen In tinc.conf haben wir das Device /dev/net/tun festgelegt. Dieses wird unter Debian beim Aufruf von tincd erstellt und muss aktiviert werden. Dies geschieht mit der Datei tinc-up. `!/bin/sh` `IP=193.43.220.165` `NETLEN=27` `ip a add $IP/$NETLEN brd 193.43.220.191 dev $INTERFACE` `ip link set $INTERFACE mtu 1504 up` IP=193.43.220.165 # Die Variable IP für das wan wird gesetzt. IP=192.168.40.1 # Die Variable IP für das lan wird gesetzt. Die öffentliche ip ist die des tun Gerätes für das wan. Debian erstellt 2 unabhängige Geräte tun, einmal im Verzeichnis /etc/tinc/lan/ für das lan und dann für das wan, beide müssen aktiviert werden. Die ip für das tun im lan ist z.B. 192.168.40.1 NETLEN=27 Die Variable $NETLEN wird gesetzt, sie bestimmt die Netzgröße 193.40.220.160 - 193.43.220.191. Im lan beträgt die Netzgröße 192.168.40.0 - 192.168.40.31 und kann auch größer gewählt werden, wenn notwendig. `ip a add $IP/$NETLEN brd 193.43.220.191 dev $INTERFACE` `ip link set $INTERFACE mtu 1504 up` Der Wert von INTERFACE ist wan. Die Netztmaske $ip/$NETLEN ist 193.43.220.165/27. Das Setzen der MTU ist besonders wichtig, voreingestellt sind 1500, hier werden aber wegen der vpn im Nordstadtrechner 4 Byte mehr benötigt, also 1504. tinc-up kann auch in der Datei interfaces abgebildet werden. ## Die IP-Adressen eintragen Dann in den public key Dateien .. vi /etc/tinc/lan/hosts/apu und vi /etc/tinc/lan/hosts/laptop die IP-Adresse des hosts oben ergänzen: hier zum Beispiel die Änderung für den Apu Address = 192.168.1.100 Port = 10001 für das 192er Netz und Address = 130.180.53.22 #hoerde Port = 661 -----BEGIN RSA PUBLIC KEY----- MIICCgKCAgEAwirLKOYuwraf+MneMpzWqKhv8qCcZCC7yFAN2y+OnT5lXzV/LgwQ [...] Nun die Datei .../tinc/lan/hosts/apu von der APU an die gleiche Stelle auf dem Laptop kopieren. Und umgekehrt .../laptop auf die APU. Für das wan netz müssen entsprechend die publickey dateien der partner (hoerde, nordstadt,...) auf die APU kopiert werden. Genauso muss die publickey Datei der APU nach hoerde und nordstadt kopiert werden. ## Konfiguration rebootfest machen und starten `$:sudo systemctl enable tinc` `$:sudo systemctl enable tinc@lan` `$:sudo systemctl enable tinc@wan` und `$:sudo systemctl start tinc` `$:sudo systemctl start tinc@lan` `$:sudo systemctl start tinc@wan` ## Funktionstest In Debian kann man mit systemctl überprüfen, ob tinc automatisch nach einem Reboot läuft und ob es nach dem Einstellen der Schlüssel auch funktioniert: `$:sudo systemctl status tinc@lan` für das lan `$:sudo systemctl status tinc@wan` für das wan oder nach Änderungen: `$:sudo systemctl restart tinc@lan` für das lan `$:sudo systemctl restart tinc@wan` für das wan Falls die Fehlermeldung auftaucht: Can't write to Linux tun/tap device (tap mode) /dev/net/tun: Input/output error Mit `$:ip a` prüfen, ob das tun Device erstellt wurde. Mit `$:ls -al /dev/net/tun` prüfen, ob das Device rw ist für root. Laut [tinc-Manual](https://tinc-vpn.org/documentation/tinc.pdf) Seite 28: ‘Can’t write to /dev/net/tun: No such device’ • You forgot to ‘modprobe tun’. • You forgot to compile ‘Universal TUN/TAP driver’ in the kernel. • The tun device is located somewhere else in /dev/. modprobe stellt sicher, dass das tun Device auch geladen wird, hat hier geholfen. Ein "systemctl restart tinc@lan oder wan" reicht nicht, am Sichersten ist ein reboot.