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:28] – [Optional (Karte/Statistik/...) - nicht dokumentiert] 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/​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 27: 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 56: Zeile 61:
 driftfile /var/lib/ntp/ntp.drift driftfile /var/lib/ntp/ntp.drift
 </code> </code>
 +
 +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 68: 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 77: 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 115: 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.+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 138: Zeile 152:
 } }
 </code> </code>
 +
 +dhcpd4 sollte automatisch starten
  
   * TODO: Feste IPs via API   * TODO: Feste IPs via API
Zeile 239: Zeile 255:
  
 </code> </code>
 +
 +DNS/BIND/named sollte als Systemdienst automatisch starten
  
   * ERR: Das ist für Master, wir bräuchten Multimaster oder Slaves   * ERR: Das ist für Master, wir bräuchten Multimaster oder Slaves
Zeile 325: Zeile 343:
 </code> </code>
 chmod +x nicht vergessen! chmod +x nicht vergessen!
 +
 +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 330: 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
Zeile 398: Zeile 440:
 systemctl restart dhcpd4  systemctl restart dhcpd4 
 </code> </code>
- 
  
 ---- ----
gatewaykonfiguration.1426105722.txt.gz · Zuletzt geändert: 2020/10/17 20:04 (Externe Bearbeitung)