Benutzer-Werkzeuge

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gatewaykonfiguration [2015/03/11 20:33] adlerwebgatewaykonfiguration [2020/10/17 20:04] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 15: Zeile 15:
   * [[https://www.archlinux.org/packages/extra/x86_64/bind/|bind (named)]] -> DNS-Zone   * [[https://www.archlinux.org/packages/extra/x86_64/bind/|bind (named)]] -> DNS-Zone
   * [[https://www.archlinux.org/packages/core/x86_64/openvpn/|OpenVPN]] -> VPN Internetzugang   * [[https://www.archlinux.org/packages/core/x86_64/openvpn/|OpenVPN]] -> VPN Internetzugang
-  * [[https://www.archlinux.org/packages/extra/x86_64/haveged/|haveged]] -> Genug Entropie bereithalten+  * [[https://www.archlinux.org/packages/extra/x86_64/haveged/|haveged]] -> Genug Entropie bereithalten; alternativ rng-tools
   * [[https://www.archlinux.org/packages/extra/x86_64/ntp/|ntp]] -> Weil Baum   * [[https://www.archlinux.org/packages/extra/x86_64/ntp/|ntp]] -> Weil Baum
   * [[https://www.archlinux.org/packages/extra/x86_64/php/|php]] -> Kleine Hilfsprogramme   * [[https://www.archlinux.org/packages/extra/x86_64/php/|php]] -> Kleine Hilfsprogramme
   * [[https://aur.archlinux.org/packages/batman-adv/|batman-adv (AUR)]] -> B.A.T.M.A.N. Routing (Kompatibilität 15!)   * [[https://aur.archlinux.org/packages/batman-adv/|batman-adv (AUR)]] -> B.A.T.M.A.N. Routing (Kompatibilität 15!)
 +  * [[https://aur.archlinux.org/packages/batctl/|batctl (AUR)]] -> B.A.T.M.A.N. Konfiguration
   * [[https://www.archlinux.org/packages/core/x86_64/bridge-utils/|bridge-utils]] -> Netzwerkbrücke   * [[https://www.archlinux.org/packages/core/x86_64/bridge-utils/|bridge-utils]] -> Netzwerkbrücke
   * [[https://www.archlinux.org/packages/extra/x86_64/screen/|screen]] -> Wir starten fastd in screen - kann ggf. angepasst werden    * [[https://www.archlinux.org/packages/extra/x86_64/screen/|screen]] -> Wir starten fastd in screen - kann ggf. angepasst werden
   * [[https://​www.archlinux.org/​packages/​community/​x86_64/​vnstat/​|vnstat]] -> Traffic-Statistiken    * [[https://​www.archlinux.org/​packages/​community/​x86_64/​vnstat/​|vnstat]] -> Traffic-Statistiken 
   * [[https://​www.archlinux.org/​packages/​extra/​x86_64/​lighttpd/​|lighttpd]] -> Statistiken (und ggf. Karte). Anderer Server mit HTTP geht natürlich auch   * [[https://​www.archlinux.org/​packages/​extra/​x86_64/​lighttpd/​|lighttpd]] -> Statistiken (und ggf. Karte). Anderer Server mit HTTP geht natürlich auch
- 
 ==== Optional (Karte/Statistik/...) - nicht dokumentiert ==== ==== Optional (Karte/Statistik/...) - nicht dokumentiert ====
  
Zeile 29: Zeile 29:
   * batman-alfred   * batman-alfred
   * batman-alfred-json-git   * batman-alfred-json-git
 +  * meshviewer
 +  * ffmap-backend (patched)
 +  * ffapi-updater (adlerweb)
   * Ein Haufen Workarounds…   * Ein Haufen Workarounds…
  
Zeile 60: Zeile 63:
  
 NTP sollte automatisch starten NTP sollte automatisch starten
 +
 +==== Haveged ====
 +
 +Der Server muss z.T. einiges an Crypto abarbeiten und kann daher - vorallen da keine Tastatur/Mausaktionen erfolgen - schnell in einen Entropiemangel laufen. Als Workarround kann haveged gestartet werden um künstlich den Pool hoch zu halten.
  
 ==== Fastd ==== ==== Fastd ====
  
-Fastd ist ein VPN-Server/Client, welcher zur Verbindung mit den Knoten verwendet wird. Er ist durch die geringen Speicheranforderungen optimal für Router geeignet. Als Methode kommt salsa2012+gmac zum Einsatz, zur Kompatibilität mit älteren Firmwareversionen wird auch salsa2012+umac akzeptiert. Eine unverschlüsselte Verbindung, welche bei einigen Communitys zur Steigerung der Performance angeboten wird, ist nicht aktiv. Verbindungen werden über udp/5000 abgewickelt. Für jeden Client muss der öffentliche Schlüssel hinterlegt werden. Auf unseren Gateways lassen wir ausschließlich Knoten zu, welche über das Webinterface registriert wurden (dies gilt nur für VPN, Mesh ist immer möglich!). Ein Abgleich erfolgt über ein PHP-Script, welches die öffentlichen Schlüssel der Clients aus der Datenbank abruft und passende Konfigurationsdateien erzeugt.+Fastd ist ein VPN-Server/Client, welcher zur Verbindung mit den Knoten verwendet wird. Er ist durch die geringen Speicheranforderungen optimal für Router geeignet. Als Methode kommt salsa2012+gmac zum Einsatz, zur Kompatibilität mit älteren Firmwareversionen wird auch salsa2012+umac akzeptiert. Eine unverschlüsselte Verbindung, welche bei einigen Communitys zur Steigerung der Performance angeboten wird, ist nicht aktiv. Verbindungen werden über udp/10000 abgewickelt. Für jeden Client muss der öffentliche Schlüssel hinterlegt werden. Auf unseren Gateways lassen wir ausschließlich Knoten zu, welche über das Webinterface registriert wurden (dies gilt nur für VPN, Mesh ist immer möglich!). Ein Abgleich erfolgt über ein PHP-Script, welches die öffentlichen Schlüssel der Clients aus der Datenbank abruft und passende Konfigurationsdateien erzeugt.
  
 ("lamepassword" durch den geheimen Schlüssel des Servers ersetzen) ("lamepassword" durch den geheimen Schlüssel des Servers ersetzen)
Zeile 72: Zeile 79:
 method "salsa2012+umac"; method "salsa2012+umac";
 secure handshakes yes; secure handshakes yes;
-bind 0.0.0.0:5000;+bind any:10000;
 hide ip addresses yes; hide ip addresses yes;
 hide mac addresses yes; hide mac addresses yes;
-mtu 1426;+mtu 1280;
 include peers from "peers"; include peers from "peers";
 secret "lamepassword"; secret "lamepassword";
Zeile 81: Zeile 88:
  
 <code php /etc/fastd/ff/bin/fastd-api.php> <code php /etc/fastd/ff/bin/fastd-api.php>
 +#!/usr/bin/php -f
 <?php <?php
 $url = '***APIURL***'; $url = '***APIURL***';
-$out = '/etc/fastd/vpn/peers/';+$out = '/etc/fastd/ff/peers/';
  
 if(!is_dir($out)) die('Output Dir missing'); if(!is_dir($out)) die('Output Dir missing');
Zeile 119: Zeile 127:
 </code> </code>
  
-Das PHP-Script sollte mindestens alle 10 Minuten via Cron aufgerufen werden (cd /etc/fastd/vpn/bin ; php -f gen.php). Es ist zu beachten, dass das Script zum Erstellen der Configs und reload des fastd entsprechende Berechtigungen benötigt. Der Daemon selbst wird über das Routing-Script im Screen gestartet und ist nicht als Systemdienst hinterlegt.+Das PHP-Script sollte mindestens alle 10 Minuten via Cron aufgerufen werden (cd /etc/fastd/ff/bin ; php -f fastd-api.php). Es ist zu beachten, dass das Script zum Erstellen der Configs und reload des fastd entsprechende Berechtigungen benötigt. Der Daemon selbst wird über das Routing-Script im Screen gestartet und ist nicht als Systemdienst hinterlegt
 + 
 +Hinweis: Ggf. muss in der php.ini die Variable open_basedir ergänzt oder auskommentiert werden.
  
   * ERR: Inter Supernode VPN   * ERR: Inter Supernode VPN
Zeile 335: Zeile 345:
  
 OpenVPN wird über das Routing-Script gestartet und ist nicht als Systemdienst hinterlegt. OpenVPN wird über das Routing-Script gestartet und ist nicht als Systemdienst hinterlegt.
 +
 +
 +==== Traffic-Statistik ====
 +
 +Um den Überblick zu behalten verwenden wir vnstat um Trafficstatistiken (nur Interface-Auslastung) zu sammeln.
 +
 +Nach der Installation müssen die Interfaces einmalig registriert werden
 +<code bash>
 +vnstat -u -i enp3s0
 +vnstat -u -i br-ffmyk
 +vnstat -u -i mullvad
 +</code>  
 +
 +Im Anschluss wird der Daemon vnstatd gestartet und als Systemdienst eingerichtet.
 +
 +  * TODO: Zentrales sammeln
  
 ==== Routing ==== ==== Routing ====
Zeile 340: Zeile 366:
 Beim Start des Servers sollte ein Script die grundlegende Konfiguration durchführen. Dies beinhaltet u.A. die Einrichtung der Routingtablellen und Netzwerkbrücken. Beim Start des Servers sollte ein Script die grundlegende Konfiguration durchführen. Dies beinhaltet u.A. die Einrichtung der Routingtablellen und Netzwerkbrücken.
  
-[[MAC-Adressen|MAC-Adresse]] aus der Liste wählen - diese wird genutzt um das Gerät in der Map als Gateway zu identifizieren+[[MAC-Adressen|MAC-Adresse]] aus der Liste wählen - diese wird genutzt um das Gerät in der Map als Gateway zu identifizieren
 + 
 +Vor dem Ausführen des Scripts muss das Kernelmodul batman-adv geladen sein. 
 +<code bash /etc/modules-load.d/batman.conf> 
 +batman-adv 
 +</code> 
  
 <code bash init.sh> <code bash init.sh>
 # Fastd starten # Fastd starten
-screen -AmSd fastd fastd -c /etc/fastd/vpn/config --log-level debug+screen -AmSd fastd fastd -c /etc/fastd/ff/fastd.conf --log-level debug
  
 #Warten sodass fastd die devices sicher erstellt hat #Warten sodass fastd die devices sicher erstellt hat
gatewaykonfiguration.1426106027.txt.gz · Zuletzt geändert: 2020/10/17 20:04 (Externe Bearbeitung)