11 Tinc konfigurieren.page 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. ## Feste IP Adresse Anlegen
  2. 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.
  3. 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
  4. Verbindung:-)
  5. In meinem Fall habe ich mich entschieden für die Adressen:
  6. Apu (Debian) : 192.168.1.100
  7. Laptop : 192.168.1.99
  8. Einzelheiten zu der Datei interfaces sind [hier](https://wiki.ffdo.de/_edit/Community/Bildung/FF@home/Debian10%20mit%20Tinc%20und%20Bird) zu finden.
  9. ## Für die Datenweitergabe zwischen den Netzen ist der folgende Eintrag nötig.
  10. /etc/sysctl.conf
  11. # Uncomment the next line to enable packet forwarding for IPv4
  12. net.ipv4.ip_forward=1
  13. ## Verzeichnisstruktur anlegen
  14. sudo mkdir -p /etc/tinc/lan/hosts/ # für ein lokales Netz
  15. sudo mkdir -p /etc/tinc/wan/hosts/ # für ein Netz mit öffentlicher ip
  16. Unter OpenBSD sind die Pfade hier zu finden: @hoerde:/usr/local/etc/tinc/...
  17. 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.
  18. ## Konfigurationsdateien "lan" und "wan" anlegen
  19. Nun müssen eine Reihe von Konfigurationsdateien und -scripten angelegt werden damit Tinc ordnungsgemäß
  20. seinen Dienst verrichtet.
  21. Die Inhalte und das Vorgehen werden weiter unten beschrieben.
  22. "apu" und "laptop" müssen entsprechend der [ip-Liste](https://wiki.ffdo.de/Community/Bildung/FF@home/IP-Adressen)
  23. umbenannt werden in z.B. "berghofen" und "berglap"
  24. - /etc/tinc/lan/tinc.conf
  25. - /etc/tinc/lan/rsa_key.priv (wird mit tincd erzeugt)
  26. - /etc/tinc/lan/tinc-up
  27. - /etc/tinc/lan/hosts/apu
  28. - /etc/tinc/lan/hosts/laptop
  29. Dabei sind hosts/apu und hosts/laptop auf beiden Geräten identisch, die anderen gerätespezifisch.
  30. Der Pfad lautet entweder /etc/tinc/lan/ oder /etc/tinc/wan/.
  31. ## Tinc-Konfigurationsdatei
  32. vi /etc/tinc/lan/tinc.conf
  33. 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.
  34. Für die tinc-Instanz mit dem Namen "lan" ungefähr Folgendes in die config Datei vi etc/tinc/lan/tinc.conf schreiben:
  35. Name = apu
  36. Device = /dev/net/tun
  37. Mode = switch
  38. AddressFamily = ipv4
  39. BindToAddress = 192.168.1.100
  40. Port = 10001
  41. MaxTimeout = 30
  42. GraphDumpFile = /var/run/tinc.lan.dot
  43. #LocalDiscovery = yes
  44. ConnectTo = laptop # z.B. berglap
  45. Und auf dem Laptop ähnliche Daten, bis auf: "Name,BindToAddress und ConnectTo".
  46. Name = laptop
  47. Device = /dev/net/tun
  48. Mode = switch
  49. AddressFamily = ipv4
  50. BindToAddress = 192.168.1.99
  51. Port = 10001
  52. MaxTimeout = 30
  53. GraphDumpFile = /var/run/tinc.lan.dot
  54. #LocalDiscovery = yes
  55. ConnectTo = apu # z.B. berghofen
  56. ## Auf beiden Geräten die Schlüsselpaare generieren:
  57. Anmerkung: bei mir funktionierte der Befehl nur mit Angabe des Pfades.
  58. tincd -n lan -K 4096 oder mit Pfad
  59. /usr/sbin/tincd -n lan -K 4096
  60. ebenso für wan:
  61. tincd -n wan -K 4096
  62. Die Ausgabe sieht etwa so aus:
  63. Generating 4096 bits keys:
  64. .............................................................................
  65. .............................................................................
  66. ............................................................................................++++ p
  67. ...........................................................++++ q
  68. Done.
  69. Please enter a file to save private RSA key to [/etc/tinc/lan/rsa_key.priv]:
  70. ...
  71. ## /etc/tinc/lan/tinc-up und /etc/tinc/wan/tinc-up erstellen
  72. In tinc.conf haben wir das Device /dev/net/tun festgelegt. Dieses wird unter Debian beim Aufruf von tincd erstellt
  73. und muss aktiviert werden. Dies geschieht mit der Datei tinc-up.
  74. `!/bin/sh`
  75. `IP=193.43.220.165`
  76. `NETLEN=27`
  77. `ip a add $IP/$NETLEN brd 193.43.220.191 dev $INTERFACE`
  78. `ip link set $INTERFACE mtu 1504 up`
  79. IP=193.43.220.165 # Die Variable IP für das wan wird gesetzt.
  80. IP=192.168.40.1 # Die Variable IP für das lan wird gesetzt.
  81. Die öffentliche ip ist die des tun Gerätes für das wan. Debian erstellt 2 unabhängige Geräte tun,
  82. einmal im Verzeichnis /etc/tinc/lan/ für das lan und dann für das wan, beide müssen aktiviert werden.
  83. Die ip für das tun im lan ist z.B. 192.168.40.1
  84. NETLEN=27
  85. Die Variable $NETLEN wird gesetzt, sie bestimmt die Netzgröße 193.40.220.160 - 193.43.220.191.
  86. 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.
  87. `ip a add $IP/$NETLEN brd 193.43.220.191 dev $INTERFACE`
  88. `ip link set $INTERFACE mtu 1504 up`
  89. Der Wert von INTERFACE ist wan. Die Netztmaske $ip/$NETLEN ist 193.43.220.165/27.
  90. Das Setzen der MTU ist besonders wichtig, voreingestellt sind 1500, hier werden aber
  91. wegen der vpn im Nordstadtrechner 4 Byte mehr benötigt, also 1504.
  92. tinc-up kann auch in der Datei interfaces abgebildet werden.
  93. ## Die IP-Adressen eintragen
  94. Dann in den public key Dateien ..
  95. vi /etc/tinc/lan/hosts/apu
  96. und
  97. vi /etc/tinc/lan/hosts/laptop
  98. die IP-Adresse des hosts oben ergänzen:
  99. hier zum Beispiel die Änderung für den Apu
  100. Address = 192.168.1.100
  101. Port = 10001
  102. für das 192er Netz und
  103. Address = 130.180.53.22 #hoerde
  104. Port = 661
  105. -----BEGIN RSA PUBLIC KEY-----
  106. MIICCgKCAgEAwirLKOYuwraf+MneMpzWqKhv8qCcZCC7yFAN2y+OnT5lXzV/LgwQ
  107. [...]
  108. Nun die Datei .../tinc/lan/hosts/apu von der APU an die gleiche Stelle
  109. auf dem Laptop kopieren.
  110. Und umgekehrt .../laptop auf die APU.
  111. Für das wan netz müssen entsprechend die publickey dateien der partner (hoerde, nordstadt,...) auf die APU kopiert werden.
  112. Genauso muss die publickey Datei der APU nach hoerde und nordstadt kopiert werden.
  113. ## Konfiguration rebootfest machen und starten
  114. `$:sudo systemctl enable tinc`
  115. `$:sudo systemctl enable tinc@lan`
  116. `$:sudo systemctl enable tinc@wan`
  117. und
  118. `$:sudo systemctl start tinc`
  119. `$:sudo systemctl start tinc@lan`
  120. `$:sudo systemctl start tinc@wan`
  121. ## Funktionstest
  122. 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
  123. auch funktioniert:
  124. `$:sudo systemctl status tinc@lan` für das lan
  125. `$:sudo systemctl status tinc@wan` für das wan
  126. oder nach Änderungen:
  127. `$:sudo systemctl restart tinc@lan` für das lan
  128. `$:sudo systemctl restart tinc@wan` für das wan
  129. Falls die Fehlermeldung auftaucht: Can't write to Linux tun/tap device (tap mode) /dev/net/tun: Input/output error
  130. Mit `$:ip a` prüfen, ob das tun Device erstellt wurde.
  131. Mit `$:ls -al /dev/net/tun` prüfen, ob das Device rw ist für root.
  132. Laut [tinc-Manual](https://tinc-vpn.org/documentation/tinc.pdf) Seite 28:
  133. ‘Can’t write to /dev/net/tun: No such device’
  134. • You forgot to ‘modprobe tun’.
  135. • You forgot to compile ‘Universal TUN/TAP driver’ in the kernel.
  136. • The tun device is located somewhere else in /dev/.
  137. modprobe stellt sicher, dass das tun Device auch geladen wird, hat hier geholfen.