|
@@ -1,353 +0,0 @@
|
|
|
-# Installation
|
|
|
-- Wird an anderer Stelle des Wiki beschrieben
|
|
|
-
|
|
|
-# Allgemein
|
|
|
-- Informationen auf dieser Seite sind teilweise von anderen Wiki-Seiten übernommen.
|
|
|
-
|
|
|
-Hier sollen die Schritte nach der Installation von Debian 10 (buster) zum Aufbau eines VPN mit Tinc und Bird beschrieben werden.
|
|
|
-Für die meisten Befehle sind root Rechte erforderlich.
|
|
|
-
|
|
|
-Es werden für alle Interfaces statische IPV4 Adressen verwendet, auf dem Laptop ist auch DHCP aktiv.
|
|
|
-Die hier verwendeten Adressen sind dem Wiki [IP-Adressen](IP-Adressen) für berghofen entnommen.
|
|
|
-
|
|
|
-# Hardware
|
|
|
-- APU mit Buster ohne grafische Oberfläche
|
|
|
-- Laptop mit Ubuntu 18.04
|
|
|
-
|
|
|
-berghofen, wie auch die anderen Standorte, bestehen jeweils mindesten aus der APU und einem Laptop sowie einem Internetrouter (F!Box).
|
|
|
-An jedem Standort gibt es mehrere Tincverbindungen:
|
|
|
-- lan: zwischen APU und Laptop
|
|
|
-- wan: zwischen APU und den anderen Standorten
|
|
|
-- wan: zwischen Laptop und den anderen Standorten
|
|
|
-
|
|
|
-# Software
|
|
|
-- Debian 10.7 (buster), auf dem Laptop Ubuntu 18.04
|
|
|
-- Tinc 1.1pre17 oder tinc 1.0.36
|
|
|
-- Bird 2.07
|
|
|
-
|
|
|
-# Dateien der APU
|
|
|
-/etc/network/interfaces
|
|
|
-
|
|
|
- # This file describes the network interfaces available on your system
|
|
|
- # and how to activate them. For more information, see interfaces(5).
|
|
|
-
|
|
|
- source /etc/network/interfaces.d/*
|
|
|
-
|
|
|
- # The loopback network interface
|
|
|
- auto lo
|
|
|
- iface lo inet loopback
|
|
|
- up ip addr add 193.43.220.130/32 dev lo
|
|
|
-
|
|
|
- # The primary network interface
|
|
|
- allow-hotplug enp1s0
|
|
|
- iface enp1s0 inet static
|
|
|
- address 192.168.178.51/24
|
|
|
-
|
|
|
- #default gateway wird von bird erledigt
|
|
|
- # gateway 192.168.178.254
|
|
|
- broadcast 192.168.178.255
|
|
|
- # dns-* options are implemented by the resolvconf package, if installed
|
|
|
- dns-nameservers 192.168.178.254
|
|
|
- dns-search fritz.box
|
|
|
- up ip rule add from all iif enp1s0 lookup 1 prio 1000 || true
|
|
|
- up ip rule add from 192.168.178.0/24 lookup 1 prio 1010 || true
|
|
|
-
|
|
|
- allow-hotplug wan
|
|
|
- iface wan inet static
|
|
|
- address 193.43.220.162/27
|
|
|
- broadcast 193.43.220.191
|
|
|
- mtu 1504
|
|
|
-
|
|
|
- allow-hotplug lan
|
|
|
- iface lan inet static
|
|
|
- address 192.168.34.1/24
|
|
|
- broadcast 192.168.34.255
|
|
|
- mtu 1504
|
|
|
-
|
|
|
- #allow-hotplug wlp5s0 # wlan z.Zt. nicht verwendet
|
|
|
- #iface wlp5s0 inet dhcp
|
|
|
-
|
|
|
-Die Schnittstellen der Interfacesdatei sind:
|
|
|
-- lo Standardloopback
|
|
|
-- enp1s0 ethernet
|
|
|
-- wan virtuelle Tinc Schnittstelle
|
|
|
-- lan virtuelle Tinc Schnittstelle
|
|
|
-- wlp5s0 nicht verwendete, auskommentierte WLAN Schnittstelle
|
|
|
-
|
|
|
-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
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-# Tinc Verzeichnistruktur Tinc APU und Laptop Einstellungen
|
|
|
-
|
|
|
-
|
|
|
- etc/tinc/
|
|
|
- |-- lan
|
|
|
- | |-- hosts
|
|
|
- | | |-- apu
|
|
|
- | | `-- laptop
|
|
|
- | |-- rsa_key.priv
|
|
|
- | |-- ed25519_key.priv ## nur bei tinc 1.1
|
|
|
- | `-- tinc.conf
|
|
|
- `-- wan
|
|
|
- |-- hosts
|
|
|
- | |-- berghofen ## berglap auf dem laptop
|
|
|
- | |-- hoerde
|
|
|
- | `-- nordstadt
|
|
|
- |-- rsa_key.priv
|
|
|
- |-- ed25519_key.priv ## nur bei tinc 1.1
|
|
|
- `-- tinc.conf
|
|
|
-
|
|
|
-/etc/tinc/lan/tinc.conf
|
|
|
-
|
|
|
- ## APU lan tinc.conf
|
|
|
- Name = apu
|
|
|
- Device = /dev/net/tun
|
|
|
- Mode = switch
|
|
|
- AddressFamily = ipv4
|
|
|
- BindToAddress = 192.168.178.51
|
|
|
- Port = 10001
|
|
|
- MaxTimeout = 30
|
|
|
- GraphDumpFile = /var/run/tinc.lan.dot
|
|
|
- ConnectTo = laptop
|
|
|
-
|
|
|
-/etc/tinc/wan/tinc.conf
|
|
|
-
|
|
|
- ## APU wan tinc.conf
|
|
|
- Name = berghofen
|
|
|
- Device = /dev/net/tun
|
|
|
- Mode = switch
|
|
|
- AddressFamily = ipv4
|
|
|
- BindToaddress = 192.168.178.51
|
|
|
- Port = 661
|
|
|
- MaxTimeout = 30
|
|
|
- GraphDumpFile = /var/run/tinc.wan.dot
|
|
|
- ConnectTo = hoerde
|
|
|
- ConnectTo = nordstadt
|
|
|
-
|
|
|
-/etc/tinc/lan/tinc.conf
|
|
|
-
|
|
|
- ## Laptop lan tinc.conf
|
|
|
- Name = laptop
|
|
|
- Device = /dev/net/tun
|
|
|
- Mode = switch
|
|
|
- AddressFamily = ipv4
|
|
|
- BindToAddress = 192.168.178.52
|
|
|
- Port = 10001
|
|
|
- MaxTimeout = 30
|
|
|
- GraphDumpFile = /var/run/tinc.lan.dot
|
|
|
- ConnectTo = apu
|
|
|
-
|
|
|
-/etc/tinc/wan/tinc.conf
|
|
|
-
|
|
|
- ## Laptop wan tinc.conf
|
|
|
- Name = berglap
|
|
|
- Device = /dev/net/tun
|
|
|
- Mode = switch
|
|
|
- AddressFamily = ipv4
|
|
|
- BindToaddress = 192.168.178.52
|
|
|
- Port = 661
|
|
|
- MaxTimeout = 30
|
|
|
- GraphDumpFile = /var/run/tinc.wan.dot
|
|
|
- ConnectTo = hoerde
|
|
|
- ConnectTo = nordstadt
|
|
|
-
|
|
|
-Inhalt der hosts Dateien
|
|
|
-
|
|
|
-Die Public und private Keys werden von Tinc erzeugt:
|
|
|
-
|
|
|
-bei tinc 1.0.36:
|
|
|
-
|
|
|
- tincd -n wan -K 4096
|
|
|
- tincd -n lan -K 4096
|
|
|
-
|
|
|
-bei tinc 1.1:
|
|
|
-
|
|
|
- tinc -n wan generate-keys 4096
|
|
|
- tinc -n lan generate-keys 4096
|
|
|
-
|
|
|
-Die ED25519PublicKey Zeile wird nur bei tinc 1.1 erzeugt/verwendet.
|
|
|
-
|
|
|
-/etc/tinc/lan/hosts/apu auf APU und laptop
|
|
|
-
|
|
|
- Address = 192.168.178.51
|
|
|
- Port = 10001
|
|
|
-
|
|
|
- -----BEGIN RSA PUBLIC KEY-----
|
|
|
- Schlüsseldaten
|
|
|
- -----END RSA PUBLIC KEY-----
|
|
|
- Ed25519PublicKey = WmAmMY95+B/A9FDQz7ZiV6WQcG2qAUUclRP52dwXSdD
|
|
|
-
|
|
|
-
|
|
|
-/etc/tinc/lan/hosts/laptop auf APU und laptop
|
|
|
-
|
|
|
- Address = 192.168.178.52
|
|
|
- Port = 10001
|
|
|
-
|
|
|
- -----BEGIN RSA PUBLIC KEY-----
|
|
|
- Schlüsseldaten
|
|
|
- -----END RSA PUBLIC KEY-----
|
|
|
- Ed25519PublicKey = WCkEAe/gohI7JAGLiHPKdE+ayxYrG1wuTfQQijAROuD
|
|
|
-
|
|
|
-
|
|
|
-/etc/tinc/wan/hosts/berghofen auf APU
|
|
|
-
|
|
|
- -----BEGIN RSA PUBLIC KEY-----
|
|
|
- Schlüsseldaten
|
|
|
- -----END RSA PUBLIC KEY-----
|
|
|
- Ed25519PublicKey = Tkhp7t+MsmQKsWIkO5qimTKoWdkvRigKwctxtfOu2MF
|
|
|
-
|
|
|
-
|
|
|
-/etc/tinc/wan/hosts/hoerde auf APU und berglap
|
|
|
-
|
|
|
- Address = 130.180.53.22
|
|
|
- Port = 661
|
|
|
-
|
|
|
- -----BEGIN RSA PUBLIC KEY-----
|
|
|
- Schlüsseldaten
|
|
|
- -----END RSA PUBLIC KEY-----
|
|
|
- Ed25519PublicKey = MjaltxtfPP1SdHgNH/dUuHmbYDXFdZMEUUbl0Qi/YCA
|
|
|
-
|
|
|
-
|
|
|
-/etc/tinc/wan/hosts/nordstadt auf APU und berglap
|
|
|
-
|
|
|
- Address = 91.204.4.53
|
|
|
- Port = 661
|
|
|
-
|
|
|
- -----BEGIN RSA PUBLIC KEY-----
|
|
|
- Schlüsseldaten
|
|
|
- -----END RSA PUBLIC KEY-----
|
|
|
- Ed25519PublicKey = 4znU87BKnctOFb+/JQhIltGtYN3h3czOVInolRPWgvA
|
|
|
-
|
|
|
-/etc/tinc/wan/hosts/berglap auf berglap
|
|
|
-
|
|
|
- -----BEGIN RSA PUBLIC KEY-----
|
|
|
- Schlüsseldaten
|
|
|
- -----END RSA PUBLIC KEY-----
|
|
|
- Ed25519PublicKey = 4znU87BKnctOFb+/JQhIltGtYN3h3czOVInolRPWgvA
|
|
|
-
|
|
|
-Die Tinc Instanzen können auf APU und berglap gestartet werden mit:
|
|
|
-
|
|
|
- systemctl start tinc@lan
|
|
|
- systemctl start tinc@wan
|
|
|
-
|
|
|
-Um die Programme automatisch nach einem reboot zu starten, eventuell
|
|
|
-falls nicht durch die Installation schon eingerichtet:
|
|
|
-
|
|
|
- systemctl enable tinc@lan
|
|
|
- systemctl enable tinc@wan
|
|
|
-
|
|
|
-
|
|
|
-# Bird auf der APU und berglap
|
|
|
-
|
|
|
-/etc/iproute2/rt_tables identisch auf APU / laptop
|
|
|
-
|
|
|
- #
|
|
|
- # reserved values
|
|
|
- #
|
|
|
- 255 local
|
|
|
- 254 main
|
|
|
- 253 default
|
|
|
- 0 unspec
|
|
|
- #
|
|
|
- # local
|
|
|
- #
|
|
|
- 1 tinc
|
|
|
-
|
|
|
-
|
|
|
-- Die bird.conf des laptops ist bis auf andere IP Adressen identisch
|
|
|
-
|
|
|
-/etc/bird/bird.conf
|
|
|
-
|
|
|
- # bird.conf Alle Anpassungen als defines
|
|
|
- # damit keine übersehen wird
|
|
|
-
|
|
|
- define publicIP = 193.43.220.130;
|
|
|
- define publicIP_32 = 193.43.220.130/32;
|
|
|
- define isprouter = 192.168.178.254;
|
|
|
-
|
|
|
- # ab hier passt alles für unsere lan/wan Netze
|
|
|
-
|
|
|
- router id publicIP;
|
|
|
-
|
|
|
- # log syslog { debug, info, trace, remote }; /* optional */
|
|
|
-
|
|
|
- define AS35675_all = [
|
|
|
- 193.43.220.0/23
|
|
|
- ];
|
|
|
-
|
|
|
- define AS35675_any = [
|
|
|
- 193.43.220.0/23+
|
|
|
- ];
|
|
|
-
|
|
|
- protocol device device0 {
|
|
|
- scan time 10;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /* wg. BSD: */
|
|
|
- protocol direct direct0 {
|
|
|
- ipv4;
|
|
|
- }
|
|
|
-
|
|
|
- protocol kernel kernel0 {
|
|
|
- learn on;
|
|
|
- scan time 120;
|
|
|
- ipv4 {
|
|
|
- import all;
|
|
|
- export where source != RTS_DEVICE;
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
- # erstellt neue routing tabelle
|
|
|
- ipv4 table fib1table;
|
|
|
-
|
|
|
- #RTS route source
|
|
|
- #import / export
|
|
|
- protocol kernel kernel1 {
|
|
|
- kernel table 1;
|
|
|
- learn on;
|
|
|
- scan time 120;
|
|
|
- ipv4 {
|
|
|
- table fib1table;
|
|
|
- import all;
|
|
|
- export where source != RTS_DEVICE;
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
- protocol static static1 {
|
|
|
- ipv4 {
|
|
|
- table fib1table;
|
|
|
- };
|
|
|
- route 0.0.0.0/0 via isprouter; /* zur F!Box */
|
|
|
- }
|
|
|
-
|
|
|
- protocol ospf ospfwan {
|
|
|
- ipv4 {
|
|
|
- import all;
|
|
|
- export where net ~ AS35675_any;
|
|
|
- };
|
|
|
- area 0.0.0.0 {
|
|
|
- stubnet publicIP_32 { cost 1; };
|
|
|
- interface "wan" {
|
|
|
- type broadcast;
|
|
|
- cost 100;
|
|
|
- };
|
|
|
- interface "lan" {
|
|
|
- type broadcast;
|
|
|
- cost 10;
|
|
|
- };
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-Den bird starten und eventuell rebootfest machen:
|
|
|
-
|
|
|
- systemctl start bird
|
|
|
- systemctl enable bird
|
|
|
-
|