Browse Source

Tinc und Bird zugefügt

nemo2016 3 years ago
parent
commit
a59e820587
1 changed files with 353 additions and 0 deletions
  1. 353 0
      Community/Bildung/FF@home/Debian10 mit Tinc und Bird.page

+ 353 - 0
Community/Bildung/FF@home/Debian10 mit Tinc und Bird.page

@@ -0,0 +1,353 @@
+# 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
+