LM v7 Walkthrough

Ich bin gefragt worden, warum mein walkthrough ifupdown und nicht netplan.io unterstützt. Da ich das wichtig finde, antwort ich einmal hier:

Für den Host gibt es da ja keine Vorgaben. Ich habe kein Ubuntu, weil ich es nicht mag. Stattdessen verwende ich ein systemd-freies Debian-Derivat namens Devuan.

Netplan ist meines Wissens eine Erfindung von Ubuntu und mein erster Versuch damit zeigte instabiles Verhalten. Dennoch würde ich natürlich in das Script Unterstützung dafür einbauen, der „Hook“ ist schon da. Ich kann das aber weder tun noch testen.

Gerade diese Bridge-Konfiguration bricht mir immer wieder die Beine… die brauchen immer eine Zeit, bis sie forwarden und noch habe ich keinen „Trigger“ gefunden, der mir sagt, wenn die Herren dann belieben zu arbeiten :wink:

Ich habe mir einmal die /etc/netplan/01-netcfg.yaml auf dem Server angeschaut. Da kommt mir einiges merkwürdig vor. Da wird zum Beispiel ein Gateway für das Netz gesetzt, in dem das Interface bereits ist. Ist das so gewünscht? Welchen Grund hat das?

Heute wurde ich aus der Firewall ausgesperrt: Etwas hat die /root/.ssh/authorized_keys überschrieben und so meinen pub-key entfernt. Ist das beabsichtigt? Warum wird das gemacht? (Es ist nur noch ein Schlüssel mit dem Vermerk „root@server.fsmw.lan“ vorhanden)

Dass die Firewall nach dem letzten Update und ein paar Klicks in der Web-GUI (ohne Veränderungen) den Server blockiert muss ich noch untersuchen. DNS macht sie für den Server auch nicht mehr. Oder hat jemand einen Tipp was passiert sein könnte?

Hallo,

Ich habe mir einmal die |/etc/netplan/01-netcfg.yaml| auf dem Server
angeschaut. Da kommt mir einiges merkwürdig vor. Da wird zum Beispiel
ein Gateway für das Netz gesetzt, in dem das Interface bereits ist. Ist
das so gewünscht? Welchen Grund hat das?

ich nehme an, dass das so ist wegen Subnetting.
Ich habe Subnetting in der lmn7 und meine yaml sieht so aus:

network:
  ethernets:
    eth0:
      addresses:
      - 10.16.1.1/12
      dhcp4: false
      dhcp6: false
      gateway4: 10.16.1.254
      nameservers:
        addresses:
        - 10.16.1.1
        - 10.16.1.254
        search:
        - bzpf.lan
      routes:
      - to: 10.16.0.0/12
        via: 10.16.1.253
      - to: 10.17.100.0/24
        via: 10.16.1.253
      - to: 10.17.101.0/24
        via: 10.16.1.253
      - to: 10.17.102.0/24
        via: 10.16.1.253
      - to: 10.17.103.0/24
        via: 10.16.1.253
      - to: 10.17.1.0/24
        via: 10.16.1.253
      - to: 10.17.145.0/24
        via: 10.16.1.253
      - to: 10.17.154.0/24
        via: 10.16.1.253
      - to: 10.17.155.0/24
        via: 10.16.1.253
      - to: 10.17.27.0/24
        via: 10.16.1.253
      - to: 10.17.61.0/24
        via: 10.16.1.253
      - to: 10.18.126.0/24
        via: 10.16.1.253
      - to: 10.17.15.0/24
        via: 10.16.1.253
      - to: 10.18.155.0/24
        via: 10.16.1.253
  version: 2

Heute wurde ich aus der Firewall ausgesperrt: Etwas hat die

/root/.ssh/authorized_keys| überschrieben und so meinen pub-key
entfernt. Ist das beabsichtigt? Warum wird das gemacht? (Es ist nur noch
ein Schlüssel mit dem Vermerk „root@server.fsmw.lan“ vorhanden)

bei mir ist das in einem halben Jahr noch nicht passiert.
Was hast du den in der letzten Zeit so gemacht?
War da ein linuxmuster-setup oder ähnliches dabei?

Dass die Firewall nach dem letzten Update und ein paar Klicks in der
Web-GUI (ohne Veränderungen) den Server blockiert muss ich noch
untersuchen. DNS macht sie für den Server auch nicht mehr. Oder hat
jemand einen Tipp was passiert sein könnte?

leider nein :frowning:
Auch das kam bei mir noch nicht vor.

LG

Holger

Dann müssen ja eben auch entsprechende Router da sein, sonst hilft ein Gateway-Eintrag nicht. Für das Standardsetup sind aber server und router (die firewall, .254) im selben Netz. Darum denke ich, ist ein gateway dahin sinnlos. Es wird auch vom System mit einer höheren Regel überschrieben und kommt nicht zum Zuge.

Hast du denn da einen anderen pub-key drin? Sonst fällt das ja nicht auf, wenn du zB nur vom server aus zugreifst. Das funktioniert ja.

Ich weiss aber, wann das passiert: Wenn man die firewall rebootet, das habe ich eben gemacht et voila:

-rw-------  1 root  wheel  403 Jan 30 19:00 .ssh/authorized_keys

und mein key ist wieder raus.

Nun wird’s komisch: Es geht wieder und ich habe die firewall nicht angerührt. Auch DNS gegen die firewall geht. Dafür will die Web-GUI nicht mehr „von aussen“ (ich habe ein wg-VPN, von dem aus es bislang ging). Jetzt antwortet die firewall einfach nicht mehr. Aus dem 10er netz aber schon. Ich muss das mal weiter untersuchen… :confused:

Ok, das war mein Fehler, ich hatte manuell eine Route in der firewall gesetzt, das ist natürlich nicht persistent - weiss jemand, wo ich der firewall manuell routen konfigurieren kann?

Ach ja: Diese Konfiguration ist auch widersprüchlich: Die erste Regel überdeckt alle anderen, weil sie bereits greift und (zum Glück) dasselbe Ergebnis hat.

Das Netz ist (12bit von 10.16.0.0) 00001010.0001xxxx.xxxxxxxx.xxxxxxxx. Die erste Regel sagt, dass alles, was mit den 12bit 00001010.0001 beginnt nach 10.16.1.253 geht. Die nächste Regel sagt, dass alles was mit 0000101010.00010001.01100100.xxxxxxxx beginnt, zum selben Gateway geht. Nun ist das aber doppelt, denn zum einen beginnt das eben auch mit 00001010.0001, darum gilt auch die Regel 1. Zum andren geht’s eh zum selben Gateway. Und für alle weiteren Regel gilt dasselbe. Das Regelwerk wird funktionieren (wenn das Gateway richtig arbeitet), aber es ist eben doppelt gemoppelt und irreführend.

Hallo.
Ohne Subnetting war es seit v6.1 so, dass die Netzmaske 255.240.0.0 lautete und ein riesiges, „flaches“ Netz abdeckte, das zwar Platz für mehr als genug Clients bot; das aber auch bei Broadcasts träger reagieren konnte.

Mit Subnetting wurden das anders – kennst du diesen Beitrag von @Tobias?

Ich denke, dass es auch noch unter v7 immer mal wieder Verwirrung darüber gibt/gab, wie die Netzmaske (vor allem für das Servernetz) denn nun richtigerweise auszusehen hat!
Meine /etc/netplan/01-netcfg.yaml sieht unter v7 beispielsweise so aus:

network:
  ethernets:
    ens18:
      addresses:
      - 10.16.1.1/16
      dhcp4: false
      dhcp6: false
      gateway4: 10.16.1.254
      nameservers:
        addresses:
        - 10.16.1.1
        - 10.16.1.254
        search:
        - linuxmuster.meine-domain.de
      routes:
      - to: 10.16.1.0/24
        via: 10.16.1.253
 .... und alle weiteren Subnetze mit /24er Maske

… dabei sollte ich dazu sagen, dass ich mit der --do-it-like-babo Option migriert habe.
Die „offiziellen“ IP-Adressbereiche stehen hier: http://docs.linuxmuster.net/de/v7/getting-started/prerequisites.html#standard-ip-adressen
hth,
Michael

Ich argumentiere nicht in Bezug auf LM sondern in Bezug auf wie IP funktioniert. Das sollte für LMv6.1 und LMv7 unabhängig gelten. Wenn du Subnetze machst, ist ein Netz, dass all diese Subnetze enthält falsch. Routing-Regeln ist keine Mengenlehre, da gibt es keine Teilmengen :wink:

Wenn ein Interface in einem Netzwerk steht, braucht es dafür kein Gateway (das war meine initiale Feststellung).

Hallo,

Ich argumentiere nicht in Bezug auf LM sondern in Bezug auf wie IP
funktioniert. Das sollte für LMv6.1 und LMv7 unabhängig gelten. Wenn du
Subnetze machst, ist ein Netz, dass all diese Subnetze enthält falsch.
Routing-Regeln ist keine Mengenlehre, da gibt es keine Teilmengen :wink:

Wenn ein Interface in einem Netzwerk steht, braucht es dafür kein
Gateway (das war meine initiale Feststellung).

ich höre deinen Ausführungen sehr aufmerksam zu, da ich mich da nicht so
gut auskenne.

Du sagst also in meiner yaml Datei sind diese beiden Zeilen falsch:

10.16.1.1/12

da sollte folgendes hin

10.16.1.1/24

also nur das serversubnet.

Und ebenfalls falsch ist die Route im servernetz, da ich ja schon „drin“
bin im Netz (also nicht ich, sondern der server :slight_smile: ).

  - to: 10.16.0.0/12
    via: 10.16.1.253

die zwei Zeilen sollten auch weg: korrekt?

LG

Holger

Genau, das meinte ich. Und in deinem Fall sind die vielen Routen OK, da du ja so viele Netze hast (Sub oder nicht ist mir jetzt mal egal, der Begriff „Subnet“ wird mir sowieso inflationär genutzt, das ist ein andres Thema).

Klar funktioniert das auch, wenn du über deine Netze „lügst“, da ja das Gateway immer dasselbe ist, aber es ist nicht korrekt und bricht dir die Beine, wenn du mal etwas hinzufügst, wo zB das GW ein andres ist.

Hallo,

Genau, das meinte ich. Und in deinem Fall sind die vielen Routen OK, da
du ja so viele Netze hast (Sub oder nicht ist mir jetzt mal egal, der
Begriff „Subnet“ wird mir sowieso inflationär genutzt, das ist ein
andres Thema).

Klar funktioniert das auch, wenn du über deine Netze „lügst“, da ja das
Gateway immer dasselbe ist, aber es ist nicht korrekt und bricht dir die
Beine, wenn du mal etwas hinzufügst, wo zB das GW ein andres ist.

ich habe schon verstanden, dass es zwar funktioniert (Erfahrung) und
dass es so trotzdem nicht korrekt ist.
Deswegen ja meine konkrete Frae nach den Zeilen die ich rausnehmen soll
(eine Oben und zwei weiter unten): ist das korrekt.

Ich bin ja gewillt das richtig zu stellen: aber ich will nciht an meinem
produktiven, nicht gerade kleinen und viele Menschen betreffenden Netz
rumdocktern.
Wenn ich genau weiß, was ich ändern muss, dann kann ich das mal machen:
wenn auch nicht an einem normalen Schultag.

Dienstag ist bei uns Notenkonferenz: nach der kann ich länger bleiben
und das testen.

LG

Holger

Meiner Meinung nach: ja.

Was schief gehen kann ist, wenn du ein Netz vergessen hast. In das wird dann nicht mehr über dein Gateway .253 gerouted sondern über das default-Gateway .254 und das weiss dann natürlich nicht, was es tun soll.

Was mich noch wundert (bei meiner Konfiguration war das auch so) ist die Liste der Nameserver. Da wird .1 und .254 genannt.Warum?

In der Dokumentation findet sich folgender Absatz:

Danach unter System | Zugang | Prüfer die Authentifizierung testen. Als Authentifizierungsserver linuxmuster auswählen falls noch nicht ausgewählt. OPNsense Authentifizierungsprüfer Geben Sie einfach einen gültigen Benutzernamen mit Passwort ein und betätigen Sie Test.

Allein was ein „gültiger Benutzername mit Passwort“ ist, steht da nicht. Weiter unten habe ich gefunden:

Das Skript /usr/share/linuxmuster/examples/create-testusers.py
legt die üblichen Verdächtigen an.

Das klingt zwar cool, ist aber wenig hilfreich. Wie die „üblichen Verdächtigen“ heissen und welche Passwörter die haben mögen, ahne ich nicht. Habe ich das irgendwo überlesen? Dann wär hier vielleicht ein Link hilfreich.

Das Script habe ich einmal gestartet, es hängt aber seit einiger Zeit bei „Running sophomorix-add“. Inzwischen ist es durchgelaufen. Im logfile finde ich einen teacher Zell, den hatte ich in der Doku gesehen. Also führe ich den test aus der Doku aus. Der zeigt aber ein anderes Ergebnis und das sophomorix-managementgroup --nowifi zell sagt mir: „ERROR -1: ERROR: Could not find user zell“. Und im logfile create-testusers.log finde ich

ERROR in Sophomorix::SophomorixSambaAD::AD_user_create:
   Can't contact LDAP server

Hm.

Hallo,

Das Skript /usr/share/linuxmuster/examples/create-testusers.py
legt die üblichen Verdächtigen an.

Das klingt zwar cool, ist aber wenig hilfreich. Wie die „üblichen
Verdächtigen“ heissen und welche Passwörter die haben mögen, ahne ich
nicht. Habe ich das irgendwo überlesen? Dann wär hier vielleicht ein
Link hilfreich.

die Nutzer stehen dann in den Dateien
/etc/linuxmuster/sophomorix/default-school/teachers.csv und students.csv
Oder sind über die WebUI einsehbar.

Das Script habe ich einmal gestartet, es hängt aber seit einiger Zeit
bei „Running sophomorix-add“. :frowning:

… ist schon eine Weile her, dass ich das verwendet habe, aber ich
meine, das script funktioniert nicht, weil es eine leere teachers.csv
gibt … oder weil es sie nicht gibt?
Schau mal in das oben genannte Verzeichnis: welche der beiden Dateien
ist da?
Welche ist korrekt gefüllt?

LG

Holger

Hi.
Nur als Erinnerung … es gibt den Befehl sophomorix-newfile – damit hat man dann keine encoding-Probleme, wenn man eine Datei aus den Vorlagen nimmt.

Genaueres hier:


hth,
Michael

Ich bin etwas verloren, ich arbeite nach der Doku, da steht, das man die startet. Ich weiss nicht genau was die macht ausser das Übliche, was auch immer das ist. Irgendwie sind in der Doku Beispieldaten zum Testen genannt, die stecken scheinbar in dem Script, drum dachte ich, ich nutze das.

Hier hast du mich verloren. Vorlagen? Encoding-Probleme (gibts sowas heute noch)? Ich kann nicht mehr folgen.

Irgendwie vermisse ich eine Doku, die konkret eine gradlinige Erstinstallation beschreibt. Keine Sonderfälle, keine Altlasten die nicht mehr funktionieren, einfach so „from scratch“.

Gibt’s sowas?

Hi.
Also damit meinte ich Vorlagen, die man unter /usr/share/linuxmuster/examples/ findet, wenn man keine eigenen User anlegen will sondern auf die Demo-Daten (für die teachers.csv und students.csv) zurückgreifen will. Das hatte ich anfangs gemacht, als ich noch nichts migriert hatte – und bin aufgrund der encoding-Probleme auf die Nase gefallen. Daher sollten diese Dateien nicht einfach mit cp nach /etc/linuxmuster/sophomorix/default-school/ kopiert werden sondern (falls man sie überhaupt verwendet) mit sophomorix-newfile angefasst werden. Es kam hier zu Problemen mit Umlauten bzw dem encoding …

Schönen Gruß,
Michael

Ich muss vielleicht einmal sagen, dass ich LM-Newbie bin. Ich habe bislang kein LM aufgesetzt und lese ausschliesslich die Dokumentation um ein LMv7 aufzusetzen. Und auf der anderen Seite arbeite ich seit gut 30 Jahren mit Unix-Betriebssystemen.

Ich vermute, dass die LMv7 Doku Wissen vorraussetzt und die meisten Leser ein LMv6 bereits aufgesetzt und gepflegt haben und die grundsätzlichen Abläufe, Konzepte und Begriffe kennen.

Das ist vermutlich der Grund, warum ich mit der Doku nicht weit komme…

In github steht, eine Regel anzulegen für Port 1812 UDP. Die Opnsense von 20190724 enthält eine Regel mit entsprechendem Kommentar, sie ist bloß für TCP. Muß diese geändert werden oder wie in der Doku eine weitere Regel erzeugt werden?

Ich habe einmal auf die Web-UI des Servers geschaut. Als erstes wundert mich die Meldung „Sie sollten das Webinterface nicht als root verwenden Beim ersten Mal sollten Sie den Setup-Wizard durchlaufen und anschließend den Global-Admin Account verwenden.“.

Was ist mit dem Setup-Wizard gemeint? Im Menue links finde ich nichts dergleichen. Wenn da linuxmuster-setup gemeint ist, sollte vielleicht ein Hinweis enthalten sein, dass man den auf der Console findet?

Der concolen-setup-wizard setzt immerhin ein adminpw, leider weiss ich nicht, wie ich das nutze, Benutzername admin und administrator sind es nicht. Wie heisst der admin?

Allerdings kann ich nun aus der „Listenverwaltung“ Schüler&Lehrer importieren (was auf der Console schiefging).

Klicke ich auf Images erhalte ich:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/aj/api/endpoint.py", line 74, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_linbo/views.py", line 92, in handle_api_images
    'postsync': open(postsync_file).read().decode(mime.from_buffer(open(desc_file).read())) if os.path.exists(postsync_file) else None,
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 778: ordinal not in range(128)

Als ich einen Administrator hinzufügen möchte erhalte ich:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/aj/api/endpoint.py", line 74, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_users/views.py", line 444, in handle_api_users_schooladmins_create
    result = lmn_getSophomorixValue(sophomorixCommand, '')
  File "/usr/lib/linuxmuster-webui/plugins/lmn_common/api.py", line 243, in lmn_getSophomorixValue
    output = output.split('# JSON-begin')[1]
IndexError: list index out of range

Hi.
Du hast Recht: Leider ist die Doku noch nicht soweit. Das liegt aber auch daran, dass die Entwicklung zum Teil schneller geht als die Doku hinterher kommt – und auch daran, dass Doku und Entwicklung (zumindest teilweise) in unterschiedlichen Händen liegen … aber sehen wir’s mal positiv: langfristig wird die Doku fertig und gut :slight_smile:

Ja, das Verhalten kommt mir bekannt vor … auch ich stand vor dem gleichen Problem als das System installiert war.
Zunächst: Der Admin für die WebUI heißt „global-admin“ und nicht „root“. Warum man nicht auch „root“ nehmen sollte, weiß ich auch nicht; ich tippe aber mal auf einen Sicherheitsaspekt. Mit „Setup-Wizard“ ist der allererste Aufruf der WebUI gemeint – da werden diverse Dinge abgefragt und eingerichtet.

Dass die WebUI nun diesen Fehler ausspuckt, wenn noch gar keine Students/Teacher da sind, kommt mir ebenfalls bekannt vor. Das war seinerzeit der Grund, dass ich zu den o.g. Vorlagen gegriffen habe, um zunächst überhaupt einen User im System zu haben. Anschließend konnte ich dann auch die Listen via WebUI bearbeiten/ergänzen. Aber ganz am Anfang kam auch bei mir die pyhton-Meldung. Ich dachte aber, dass der Fehler mittlerweile behoben sei? Das müsste @Arnaud beantworten…?
Sehe gerade, dass es bei dir um Images und weitere Administratoren und nicht um Students/Teacher ging. Ich nehme aber an, dass die Ursache die gleiche ist: Wenn noch nichts da ist (Datei nicht vorhanden oder Datei leer), spuckt die WebUI diesen Fehler aus?!?

Zum Radius-Port 1812 kann ich im Moment nichts sagen, da ich (noch) kein RADIUS konfiguriert habe. Es ist aber gut möglich, dass UDP und TCP frei gegeben werden müssen…

Schöne Grüße,
Michael

Puh, das erleichtert mich zu hören - dann ist es nicht allein mein Unwissen :wink:

Ja, ich hatte das schon auch so verstanden, dass die LMv7 eben im Beta-Stadium ist, darum ja auch mein walkthrough. Damit liesse sich eben auch prüfen, ob neuere Versionen immer noch funktionieren, da die Installation ohne viel Aufwand wiederholbar ist. Leider sind viele Stellen nicht zu automatisieren, wenn sie nur per Web-GUI auslösbar sind. Da sollten die LM-Entwickler mal 'drüber nachdenken, ob das so klug ist (obwohl mir scheint, dass auch die GUI im Hintergrund Script aufruft). Die Firewall hat auf jeden Fall das Problem, könnte aber im Grunde vollständig vorkonfiguriert sein für den Standardfall.

Ich könnte den aktuellen Stand irgendwo veröffentlichen, als Gist ist das nun nicht mehr möglich, da es inzwischen 3 Dateien sind. Hat LM Interesse an dem Ding oder soll ich es bei mir veröffentlichen in Github oder hat LM diesbezüglich bessere Ideen?