Funkinsel mit OpenWRT auf Raspberry Pi 3: Unterschied zwischen den Versionen
(→olsr) |
|||
Zeile 86: | Zeile 86: | ||
== Firewall == | == Firewall == | ||
=== Interfaces/Zonen === | |||
{| class="wikitable" | |||
|<b>Zone</b> | |||
|<b>Interfaces</b> | |||
|- | |||
|WAN | |||
|br0,eth0,tap0 | |||
|- | |||
|LAN | |||
|wlan0 | |||
|- | |||
|mgmnt | |||
|eth0.1100 | |||
|} | |||
=== Zonen === | |||
{| class="wikitable" | |||
|<b>Name</b> | |||
|<b>Zone => Forwardings</b> | |||
|<b>Input</b> | |||
|<b>Output</b> | |||
|<b>Forward</b> | |||
|<b>Masquerading</b> | |||
|<b>MSS clamping</b> | |||
|- | |||
|lan | |||
|lan => wan,mgmnt | |||
|accept | |||
|accept | |||
|accept | |||
|no | |||
|no | |||
|- | |||
|wan | |||
|wan => accept | |||
|reject | |||
|accept | |||
|accept | |||
|yes | |||
|yes | |||
|- | |||
|mgmnt | |||
|mgmnt => wan | |||
|accept | |||
|accept | |||
|reject | |||
|no | |||
|no | |||
|} | |||
Da wir bei wan den input auf reject gesetzt haben, müssen wir ein paar Ports freigeben, da wir nun (von extern) weder auf die Weboberfläche kommen, noch mit olsr kommunizieren können.<br /> | Da wir bei wan den input auf reject gesetzt haben, müssen wir ein paar Ports freigeben, da wir nun (von extern) weder auf die Weboberfläche kommen, noch mit olsr kommunizieren können.<br /> | ||
Zeile 106: | Zeile 147: | ||
IPv4-tcp From any host in wan To IP [INSERT PUBLIC IP] at port 80 on this device | IPv4-tcp From any host in wan To IP [INSERT PUBLIC IP] at port 80 on this device | ||
IPv4-tcp From any host in wan To IP [INSERT PUBLIC IP] at port 443 on this device | IPv4-tcp From any host in wan To IP [INSERT PUBLIC IP] at port 443 on this device | ||
== Letsencrypt == | == Letsencrypt == |
Version vom 18. Juni 2019, 09:24 Uhr
SEITE IN BEARBEITUNG
Nach erfolgreicher Installation einer Funkinsel auf OpenWRT mit einem Raspberry, dokumentiere ich die Konfiguration.
Vorerst mehr Stichwörter als Dokumentation!
Benötigte Pakete
luci-mod-freifunk
luci-app-olsr
luci-ssl
ebtables
acme
luci-app-acme
openvpn-openssl
OpenVPN einrichten
Note: Hier verweise ich nur auf die bereits bestehende Anleitung. Damit diese nur an einer Stelle aktuell gehalten werden muss:
OpenVPN mit LEDE/OpenWRT oder „Bubbles“
(Die Interface Namen in dieser Anleitung können daher etwas abweichen)
Interface Einstellungen
Interface | Name | Bridgeports | Beschreibung |
wlan0 | none | Schnittstelle zu lokalem Netzwerk | |
br-br0 | eth0,tap0 | Bridge für OLSR (public IP /32!) eth0 und tap0 sind unmanaged Interfaces | |
br-mgmnt | eth0.1100 | Management Bridge / eth0.1100 ohne Bridge geht auch |
wlan0 ist als static IP oder DHCP OHNE Default Gateway eingestellt.
unter "Network" --> "Static Routes" muss man daher die Router zum VPN Server anpassen (siehe openvpn config).
OLSR soll über den Interfaces tap0 und eth0 laufen.
- tap0 ist über openvpn verbunden.
- eth0 hat eine Verbindung auf eine NanoBeam, welche als AP eingestellt ist, für weitere Verbindungen.
Daher eine Bridge erstellen, welche diese zwei Ports als Bridgeports hat. (br0)
Interfaces tap0 und eth0 bekommen als Protocol "unmanaged".
Um auf das Management Interface der Nanobeam zu gelangen, benötigt man noch ein Management-VLAN.
Unter /etc/config/network folgendes hinzufügen:
config interface 'mgmnt' option type 'bridge' option ifname 'eth0.1100' option proto 'static' option netmask '255.255.255.0' option ipaddr '10.XX.YY.100' --> XXYY ist die NodeID!
ebtables
System -> Startup
Unter "Local Startup" folgendes eintragen bzw. ergänzen:
ebtables -P FORWARD DROP
Beispiel:
# Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. ebtables -P FORWARD DROP exit 0
Nach einem Neustart, kann man mit ebtables -L überprüfen ob die Forward chain auf DROP steht, anstelle wie default auf ACCEPT
OLSR
Note: In meinem Setup habe ich OLSR für IPV6 deaktiviert, weil ich wenig bit keine Erfahrung mit IPV6 habe.
"Services" --> "OLSR IPv4":
- Öffentliche IP unter "Main IP" eintragen.
- Sicherstellen, dass nur br0 in den Interfaces eingetragen und aktiv ist:
- Plugins wie gewünscht anpassen
- HNA wie gewünscht anpassen
Firewall
Interfaces/Zonen
Zone | Interfaces |
WAN | br0,eth0,tap0 |
LAN | wlan0 |
mgmnt | eth0.1100 |
Zonen
Name | Zone => Forwardings | Input | Output | Forward | Masquerading | MSS clamping |
lan | lan => wan,mgmnt | accept | accept | accept | no | no |
wan | wan => accept | reject | accept | accept | yes | yes |
mgmnt | mgmnt => wan | accept | accept | reject | no | no |
Da wir bei wan den input auf reject gesetzt haben, müssen wir ein paar Ports freigeben, da wir nun (von extern) weder auf die Weboberfläche kommen, noch mit olsr kommunizieren können.
Network --> Firewall --> Traffic Rules:
die Ports 698/udp, 80/tcp und 443/tcp freigeben.
Beispiel von meinen: (auch hier habe ich wieder nur IPV4!)
Any udp From any host in wan To any router IP at port 698 on this device IPv4-tcp From any host in wan To IP [INSERT PUBLIC IP] at port 80 on this device IPv4-tcp From any host in wan To IP [INSERT PUBLIC IP] at port 443 on this device
Letsencrypt
Services --> acme
Account email, Domain names und Webroot directory (/www) ausfüllen und auf "Save" drücken. NICHT auf "Save & Apply".
Hier beschwert sich das System, dass das Feld "DNS API" nicht ausgefüllt ist. Diese Methode wollen wir aber nicht verwenden.
Wenn man nur auf Save klickt und anschließend auf "unsaved Changes" rechts oben drückt und diese dort anwendet, funktioniert es ohne der DNS API.
Anmerkungen
Nur ein kleiner hinweis, da ich diese Möglichkeiten noch nicht kannte, wie ich mit OpenWRT begonnen habe:
um über ssh einen logoutput zu bekommen:
logread bzw. logread -f