Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gatewaykonfiguration [2015/03/11 20:13] – adlerweb | gatewaykonfiguration [2020/10/17 20:04] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 15: | Zeile 15: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| - | * [[https:// | + | * [[https:// |
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| - | * [[https:// | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| ==== Optional (Karte/ | ==== Optional (Karte/ | ||
| - | * lighttpd | + | * python |
| * batman-alfred | * batman-alfred | ||
| * batman-alfred-json-git | * batman-alfred-json-git | ||
| + | * meshviewer | ||
| + | * ffmap-backend (patched) | ||
| + | * ffapi-updater (adlerweb) | ||
| + | * Ein Haufen Workarounds… | ||
| ===== Konfiguration ===== | ===== Konfiguration ===== | ||
| Zeile 55: | Zeile 61: | ||
| driftfile / | driftfile / | ||
| </ | </ | ||
| + | |||
| + | NTP sollte automatisch starten | ||
| + | |||
| + | ==== Haveged ==== | ||
| + | |||
| + | Der Server muss z.T. einiges an Crypto abarbeiten und kann daher - vorallen da keine Tastatur/ | ||
| ==== Fastd ==== | ==== Fastd ==== | ||
| - | Fastd ist ein VPN-Server/ | + | Fastd ist ein VPN-Server/ |
| (" | (" | ||
| Zeile 67: | Zeile 79: | ||
| method " | method " | ||
| 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 " | include peers from " | ||
| secret " | secret " | ||
| Zeile 76: | Zeile 88: | ||
| <code php / | <code php / | ||
| + | # | ||
| <?php | <?php | ||
| $url = ' | $url = ' | ||
| - | $out = '/ | + | $out = '/ |
| if(!is_dir($out)) die(' | if(!is_dir($out)) die(' | ||
| Zeile 114: | Zeile 127: | ||
| </ | </ | ||
| - | 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 137: | Zeile 152: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | dhcpd4 sollte automatisch starten | ||
| * TODO: Feste IPs via API | * TODO: Feste IPs via API | ||
| Zeile 238: | Zeile 255: | ||
| </ | </ | ||
| + | |||
| + | DNS/ | ||
| * 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 324: | Zeile 343: | ||
| </ | </ | ||
| 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 | ||
| + | </ | ||
| + | |||
| + | Im Anschluss wird der Daemon vnstatd gestartet und als Systemdienst eingerichtet. | ||
| + | |||
| + | * TODO: Zentrales sammeln | ||
| ==== Routing ==== | ==== Routing ==== | ||
| Zeile 329: | 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 / | ||
| + | batman-adv | ||
| + | </ | ||
| <code bash init.sh> | <code bash init.sh> | ||
| # Fastd starten | # Fastd starten | ||
| - | screen -AmSd fastd fastd -c /etc/fastd/vpn/config | + | screen -AmSd fastd fastd -c /etc/fastd/ff/fastd.conf |
| #Warten sodass fastd die devices sicher erstellt hat | #Warten sodass fastd die devices sicher erstellt hat | ||
| sleep 5 | sleep 5 | ||
| - | # | + | # |
| ip link set down address 02: | ip link set down address 02: | ||
| ip link set up dev ffmyk-mesh-vpn | ip link set up dev ffmyk-mesh-vpn | ||
| + | # | ||
| batctl if add ffmyk-mesh-vpn | batctl if add ffmyk-mesh-vpn | ||
| + | |||
| + | # | ||
| batctl gw server | batctl gw server | ||
| + | |||
| + | #Intervall der Originator-Beacons | ||
| batctl it 10000 | batctl it 10000 | ||
| + | |||
| + | # | ||
| ip link set up dev bat0 | ip link set up dev bat0 | ||
| + | # | ||
| brctl addbr br-ffmyk | brctl addbr br-ffmyk | ||
| brctl addif br-ffmyk bat0 | brctl addif br-ffmyk bat0 | ||
| - | |||
| ip link set up dev br-ffmyk | ip link set up dev br-ffmyk | ||
| - | ip addr add 10.222.100.1/16 dev br-ffmyk | + | #IPs vergeben |
| - | ip addr add 2a01: | + | ip addr add 10.222.xxx.xxx/16 dev br-ffmyk |
| + | ip addr add 2a01: | ||
| #Nur Stat-Server | #Nur Stat-Server | ||
| - | screen -AmSd alfred alfred -i br-ffmyk -b bat0 -m | + | #screen -AmSd alfred alfred -i br-ffmyk -b bat0 -m |
| - | screen -AmSd batadv-vis batadv-vis -i bat0 -s | + | #screen -AmSd batadv-vis batadv-vis -i bat0 -s |
| + | # | ||
| echo 128 > / | echo 128 > / | ||
| + | # | ||
| sysctl -w net.ipv4.ip_forward=1 | sysctl -w net.ipv4.ip_forward=1 | ||
| + | #OpenVPN starten | ||
| systemctl start openvpn@mullvad | systemctl start openvpn@mullvad | ||
| + | # | ||
| iptables -t mangle -A PREROUTING -i br-ffmyk -j MARK --set-xmark 0x1/ | iptables -t mangle -A PREROUTING -i br-ffmyk -j MARK --set-xmark 0x1/ | ||
| + | |||
| + | #Alles auf dem Interface mullvad (via OpenVPN) macht NAT-Masquerading | ||
| iptables -t nat -A POSTROUTING -o mullvad -j MASQUERADE | iptables -t nat -A POSTROUTING -o mullvad -j MASQUERADE | ||
| + | # | ||
| ip route add unreachable default table 42 | ip route add unreachable default table 42 | ||
| + | |||
| + | #Alles, was mit 0x1 markiert wird gehört zu Tabelle 42 | ||
| ip rule add from all fwmark 0x1 table 42 | ip rule add from all fwmark 0x1 table 42 | ||
| + | |||
| + | #Alles mit Freifunk-IP - woher auch immer - gehlrt zu Tabelle 42 | ||
| ip rule add from 10.222.0.0/ | ip rule add from 10.222.0.0/ | ||
| + | |||
| + | #Tabelle 42 routet das Ziel mit Freifunk-IPs über das Device br-ffmyk | ||
| ip route add 10.222.0.0/ | ip route add 10.222.0.0/ | ||
| + | #DHCP brauch bei neu auftauchenden devices (start fastd) einen restart | ||
| systemctl restart dhcpd4 | systemctl restart dhcpd4 | ||
| </ | </ | ||
| - | |||
| - | |||
| ---- | ---- | ||
gatewaykonfiguration.1426104802.txt.gz · Zuletzt geändert: 2020/10/17 20:04 (Externe Bearbeitung)
