LoRaWAN-Gatewaysetup: Unterschied zwischen den Versionen

Aus Un-Hack-Bar
Zur Navigation springen Zur Suche springen
Zeile 226: Zeile 226:
 
=== Alle Terminal Befehle zusammen ===
 
=== Alle Terminal Befehle zusammen ===
 
   /user add name=unhb copy-from=admin password=AUCHSUPERGEHEIM
 
   /user add name=unhb copy-from=admin password=AUCHSUPERGEHEIM
  /user disable admin    # Achtung: Danach wir man aus der laufenden Session geworfen und man muss sich neu mit unhb anmelden
+
 
 
   /interface l2tp-client add connect-to=router.unhb.de max-mru=1450 max-mtu=1450 user=lorawan-gwXX password=SUPERGEHEIM use-ipsec=yes ipsec-secret=SUPERDUPERGEHEIM  disabled=no name=l2tp-out1
 
   /interface l2tp-client add connect-to=router.unhb.de max-mru=1450 max-mtu=1450 user=lorawan-gwXX password=SUPERGEHEIM use-ipsec=yes ipsec-secret=SUPERDUPERGEHEIM  disabled=no name=l2tp-out1
  
Zeile 238: Zeile 238:
 
   /ip firewall filter add chain=input in-interface=all-ppp action=accept comment="Allow any traffic via VPN"
 
   /ip firewall filter add chain=input in-interface=all-ppp action=accept comment="Allow any traffic via VPN"
 
   /ip firewall filter move 12 5
 
   /ip firewall filter move 12 5
 
  /ipv6 settings set forward=yes accept-redirects=yes accept-router-advertisements=yes
 
  
 
   /lora servers add name="TTN v3" address=eu1.cloud.thethings.network up-port=1700 down-port=1700
 
   /lora servers add name="TTN v3" address=eu1.cloud.thethings.network up-port=1700 down-port=1700
Zeile 249: Zeile 247:
  
 
   /system package update; check-for-updates once; :delay 3s; :if ( [get status] = "New version is available") do={ install }
 
   /system package update; check-for-updates once; :delay 3s; :if ( [get status] = "New version is available") do={ install }
 +
 +
Nach dem Reboot:
 +
 +
  /user disable admin    # Achtung: Danach wir man aus der laufenden Session geworfen und man muss sich neu mit unhb anmelden
 +
  /ipv6 settings set forward=yes accept-redirects=yes accept-router-advertisements=yes
  
 
== automatisiertes Setup ==
 
== automatisiertes Setup ==
 
Noch offen
 
Noch offen

Version vom 25. August 2021, 07:17 Uhr

Allgemeines

Einrichtungsguide für die Gateways aus der Landesförderung

Da die Gateways kein Einfallstor in das Netz des Gastgebers sein sollen müssen die Gateways möglichst sicher konfiguriert werden (was im Grunde aber eh immer eine gute Idee ist...).

Es gibt aktuell 2 Ansätze zur Konfiguration:

  1. Manuell per Hand
  2. Automatisiert mit Ansible/flashfig

manuelles Setup

Achtung: NOCH IN ARBEIT

Im Vorfeld sollte mit dem Gastgeber für ein Node geklärt werden ob der Gastgeber selbst auch zuriff auf das Gateway haben möchte. Außerdem können ggfs. spezielle Wüsnche berücksichtig werden (zB. das Gateway als WLAN Access Point eingerichtet werden um damit das WLAN des Gastgebers zu erweitern). Alles was auf dieser Seite beschrieben ist, ist eine Default-Ausgangskonfig die für die viele Anwendungszwecke ausreicht bzw. nur minimale Änderungen erfordert um weitere Wünsche zu erfüllen.


Nach dem ersten Booten/Factory Reset

In der Default Config nutzen die Gateways den Ethernetport als WAN Zugriff. Daher blockieren sie alle eingehenden Anfragen auf diesem Interface. Um das zu ändern muss man sich mit dem entsprechenden "Mikrotik XXXX" Wifi verbinden (kein Kennwort) und auf die Seite http://192.168.88.1 gehen. Von dort aus dann:

  1. WebFig auswählen (oben rechts)
  2. Auf IP -> Addresses gehen und dort die IP für eth1 notieren
  3. Interfaces -> Interface-List
    Dort nun auf das Interface eth1 klicken und auf "LAN" umstellen.
  4. Anschließend erlaubt das Gateway Zugriffe auf das Webinterface über die per DHCP erhaltene Adresse (siehe Punkt 2 oben)

Folgende Schritte kann man nun per direkt im Netz des Gastgebers auf auf dem Gateway erledigen. Dazu gibt es div. Punkte in den unterschiedlichen Sektionen zu erledigen:

Interfaces

  • (ggfs.) lte1: Deaktivieren
  • (ggfs.) wlan1: Deaktivieren

PPP

Hier legen wir die Verbindung zum Space-Router via L2TP an.

Add New, L2TP Client

Name: l2tp-out1 (Kann frei gewählt werden)
Max MTU 1450
Max MRU 1450
Connect to: router.unhb.space
User: z.B. lorwan-gw01 Entsprechend den Usern unter PPP->Secrets auf dem Space-Router
Siehe auch UNHB-Keepass
Password SUPERGEHEIM Ebenfalls entsprechend den USern unter PPP->Secrets auf dem Space Router
Siehe auch UNHB-Keepass
Use IPsec Yes
IPsec Secret SUPERGEHEIM^2 Wieder siehe Space-Router
Findet sich auch im UNHB-Keepass

Als Terminal Kommandos:

 /interface l2tp-client add connect-to=router.unhb.de max-mru=1450 max-mtu=1450 user=lorawan-gwXX password=SUPERGEHEIM use-ipsec=yes ipsec-secret=SUPERDUPERGEHEIM  disabled=no name=l2tp-out1

System

Im System Abschnitt müssen vor allem weitere User angelegt werden sowie IPv6 aktiviert werden.

User

  1. Sichers Passwort für den User "admin" anlegen und im Anschluss sperren
  2. Neuen User "unhb" mit Admin-Rechten und sicheren Passwort anlegen
  3. (Optional): User für den Gastgeber mit sicheren Passwort anlegen und Zugangsdaten rausgeben

Kennwörter für "unhb" und "admin" im UNHB Keepass speichern!

Als Terminal Kommandos:

 /user disable admin
 /user add name=unhb copy-from=admin password=AUCHSUPERGEHEIM

Packages

  • IPv6 Paket aktivieren

Als Terminal Kommando:

 /system package enable ipv6

Scheduler

Wir möchte automatisch Updates installieren lassen. Dazu legen wir einen entsprechend regelmässig ausgeführten Job an.

Add New

Name: Auto Update (Kann frei gewählt werden)
Start Date: jul/01/2021
Start Time "startup"
Interval 12:00:00 Wir prüfen also 2x am Tag
Policy ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon
On Event /system package update
check-for-updates once
:delay 3s;
:if ( [get status] = "New version is available") do={ install }

Als Terminal Kommando:

 /system scheduler add name="Auto Update" start-date=jul/01/2021 start-time=startup interval=12h policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon on-event="/system package update:check-for-updates once:delay 3s;:if ( [get status] = \"New version is available\") do={ install }"

Identity

Als Terminal Kommando:

 /system identity set name="unhb-de-gwXX-XXX-unhb"

IP

Addresses

  • Link Local IP im Keepass speichern

Ist evtl. später zur Fernwartung mal hilfreich.

DHCP Client

In der Default-Konfig haben die LoRaWAN Gateways kein DHCP-Client aktiviert. Für gewöhnlich werden die Standorte aber wohl einen Router mit eingebauten DHCP-Server verwenden. Daher konfigurieren wir nun die automatische Adresskonfiguration.

Add New mit folgenden Parametern:

Interface: bridge
Add Default Route: Yes
Use Peer DNS Yes
Use Peer NTP Yes
DHCP Options hostname,clientid

Als Terminal Kommando:

 /ip dhcp-client add interface=wlan1 use-peer-dns=yes use-peer-ntp=yes add-default-route=yes dhcp-options=hostname,clientid

DNS

  • Allow Remote Requests: Deaktivieren

Als Terminal Kommando:

 /ip dns set allow-remote-requests=no

Services

  • API: Deaktivieren
  • API-SSL: Deaktivieren
  • FTP: Deaktivieren
  • telnet: Deaktivieren
  • winbox: Deaktivieren
  • www-ssl: Deaktivieren (je nach Absprache mit Standort-Sponsor)
  • www: Aktivieren (je nach Absprache mit Standort-Sponsor)
  • ssh: Aktivieren

Als Terminal Kommando:

 /ip service disable api,api-ss,ftp,telnet,winbox,www-ssl

Firewall

Als Terminal Kommando:

 /ip firewall filter add chain=input in-interface=all-ppp action=accept comment="Allow any traffic via VPN"
 /ip firewall filter move 12 5

IPv6

Da IPv6 sich überwiegend selbst konfiguriert brauchen wir nur wenige Einstellungen.

Settings

  • IPv6 Forward: Aktivieren
  • Accept Redirekt: Aktivieren
  • Accept Router Advertisments: "yes"

Als Terminal Kommando:

 /ipv6 settings set forward=yes accept-redirects=yes accept-router-advertisements=yes

LoRa

In diesem Abschnitt wird die Verbindung zum The Things Network eingerichtet. Dabei gibt es alles in allem nicht viel zu tun.

Servers

Add New

Name: TTN v3 (Kann beliebig verwendet werden)
Address: eu1.cloud.thethings.network
Up port: 1700
Down port: 1700

Als Terminal Kommando:

 /lora servers add name="TTN v3" address=eu1.cloud.thethings.network up-port=1700 down-port=1700

Device

Gerät konfigurieren

Name: z.B. unhb-de-gw10-ltap-unhb Entsprechend Namensschema
Gateway ID: Wie Hardware ID Muss auch in der TTN Console eingetragen werden
Network Server: "TTN v3"
Channel plan: "EU 868"
Forward: "Valid" Pakete die nicht "valid" sind werden vom TTN Netzwerk verworfen.
Das können wir auch lokal erledigen und damit die TTN Server entlasten
Spoof GPS: entsprechend des Standortes eintragen kann man alternativ auch in der TTN Console fix eingetragen

Als Terminal Kommando:

 /lora disable numbers=0
 /lora print       # hardware-id ist die Gateway ID
 /lora set name="unhb-de-gw16-ltap-unhb" gateway-id="3133303723005B00" servers="TTN v3" channel-plan=eu-868 forward=crc-valid disabled=no numbers=0

Alle Terminal Befehle zusammen

 /user add name=unhb copy-from=admin password=AUCHSUPERGEHEIM
 /interface l2tp-client add connect-to=router.unhb.de max-mru=1450 max-mtu=1450 user=lorawan-gwXX password=SUPERGEHEIM use-ipsec=yes ipsec-secret=SUPERDUPERGEHEIM  disabled=no name=l2tp-out1
 /system package enable ipv6
 /system identity set name="unhb-de-gwXX-XXX-unhb"
 /system scheduler add name="Auto Update" start-date=jul/01/2021 start-time=startup interval=12h policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon on-event="/system package update:check-for-updates once:delay 3s;:if ( [get status] = \"New version is available\") do={ install }"
 /ip dhcp-client add interface=wlan1 use-peer-dns=yes use-peer-ntp=yes add-default-route=yes dhcp-options=hostname,clientid
 /ip dns set allow-remote-requests=no
 /ip service disable api,api-ss,ftp,telnet,winbox,www-ssl
 /ip firewall filter add chain=input in-interface=all-ppp action=accept comment="Allow any traffic via VPN"
 /ip firewall filter move 12 5
 /lora servers add name="TTN v3" address=eu1.cloud.thethings.network up-port=1700 down-port=1700
 /lora disable numbers=0
 /lora print       # hardware-id ist die Gateway ID
 /lora set name="unhb-de-gwXX-XXXX-unhb" gateway-id="3133303723005B00" servers="TTN v3" channel-plan=eu-868 forward=crc-valid disabled=no numbers=0

Update via Terminal:

 /system package update; check-for-updates once; :delay 3s; :if ( [get status] = "New version is available") do={ install }

Nach dem Reboot:

 /user disable admin    # Achtung: Danach wir man aus der laufenden Session geworfen und man muss sich neu mit unhb anmelden
 /ipv6 settings set forward=yes accept-redirects=yes accept-router-advertisements=yes

automatisiertes Setup

Noch offen