Konsole: Aktueller Raum durch Nextcloud irritiert

Hallo allerseits,

die Option „Aktueller Raum“ in der Schulkonsole zeigt an, dass Benutzer, die parallel auch an der Nextcloud angemeldet sind, sich im Raum des Nextcloud-Servers befinden. Gibt es eine Möglichkeit, das zu verhindern?

Zum Hintergrund: unser Nextcloud-Server (der unabhängig von LMN aufgesetzt ist, weil die LMN nur eines von mehreren Storage-Backends ist) sitzt innerhalb des LMN-Netzes, damit der Traffic nicht immer über die Firewall laufen muss und hat die IP 10.0.0.8. Damit alles ordentlich eingerichtet ist, ist diese auch auf dem Hauptserver als Server in der devices.csv hinterlegt - dabei kommt es scheinbar zum Gerangel, welche SMB-Verbindung des Benutzers gerade Vorrang bei der Bestimmung des Raums haben soll.

Wäre es daher denkbar …

  1. … bestimmte Netzbereich bei der Raumbestimmung ausschließen zu können
    sowie
  2. … den Raum, in dem die SMB-Anmeldung die gleiche Quell-IP nutzt, wie der aktuelle Aufruf der LMN-Konsole, zu bevorzugen
    ?

Alternativ kann ich das auch nur lokal bei uns patchen, wenn mir jemand verrät, wo das am Besten zu machen ist. :slight_smile:

Danke und viele Grüße
Sebastian

Die Funktion prüft mittels smbstatus wo ein Nutzer angemeldet ist. Wirklich Failsafe ist das Feature aus der Sicht generell nicht…

Punkt 1 könnte umgesetzt werden, es handelt sich hierbei um eine sophomorix Funktion welche zu patchen ist. Gerne dann auch so aufbereiten, dass die Blacklist gepflegt werden kann und einen PR machen. Ich kann mir vorstellen, dass das auch andere Nutzer brauchen könnten.

Punkt 2 ist schwieriger da der Zugriff nicht immer Transparent an der Schulkonsole ankommt und somit nicht klar ist welche IP Adresse hier zugreift.

Darüber hinaus würde ich empfehlen, die Nextcloud welche sicherlich auch aus dem Internet zu erreichen ist, aus dem Grünen Netz komplett im Zugriff zu haben. Hier sollte über eine DMZ nachgedacht werden.

Den Traffic über die Firewall zu schleusen sollte dabei eigentlich nicht ins Gewicht fallen. Falls doch immernoch eine ungeschickte Lösung und es sollte eventuell über eine performantere Firewall / Routingmöglichkeit nachgedacht werden.

Hallo Till,

ein paar Rückfragen:

  • in welchen Fällen wäre der Zugriff denn nicht transparent - der Webproxy sollte dafür umgangen werden, oder? Allerdings hätte ich das ohnehin nur als Option angesehen, quasi „wenn beides passt, dann …“, nicht alleinig.
  • die Nextcloud sitzt bei uns prinzipiell in einer DMZ, nur um den Domain-Zugriff hinzubekommen und um den Traffic zu reduzieren haben wir das mit in das Netz genommen. Ich muss das bei Gelegenheit nochmals glatt ziehen, damit das Netz hier wieder sauber getrennt ist - aber würde das Problem dadurch gelöst? Dann erscheint doch auch „nur“ die Firewall in smbstatus, oder?
  • Welche Sophomorix-Funktion muss denn genau dafür gepatcht werden? So wie ich das verstanden habe wäre das sophomorix-query -j --smbstatus --query-user xxx, ja?

Danke und viele Grüße
Sebastian

Hallo Till,

ich habe sophomorix-check inzwischen soweit angepasst, dass ich eine Datei habe, in der ich entsprechende IPs/Netze eintragen kann, die dann ignoriert werden. Hierzu habe ich allerdings eine Datei hardkodiert:

my $ignored_networks_file="/etc/linuxmuster/sophomorix/sophomorix-query.ignored_nets.txt";
my @ignored_networks=();
my $count=0;
open(IGNORED_NETWORKS,"$ignored_networks_file") ||
    die "ERROR: $ignored_networks_file not found!";
while(<IGNORED_NETWORKS>){
    $ignored_networks[$count++] = NetAddr::IP->new($_);
}
close(IGNORED_NETWORKS);

und weiter unten:

 # ignore devices that are listed in ignore-list
 my $net_ip = NetAddr::IP->new($ip);
 my $ip_within_net = 0;
 foreach my $network (@ignored_networks) {
     if ($net_ip->within($network)) {
         $ip_within_net = 1;
         last;
     }
 }
 if ($ip_within_net == 1) {
     next;
 }

Was ist denn der saubere Weg, den Zugriff auf derartige Config-Werte in sophomorix zu lösen? Ich habe versucht, ein Feld sophomorix.query.user.IGNORED_IPS in der Config anzulegen und die zu ignorierenden Netze von dort zu holen - nach dem ich selbiges in der school.conf angelegt habe, konnte ich es nicht über %sophomorix_config abholen. Gibt es dazu irgendwo eine Anleitung, wie man in Sophomorix neue Config-Felder eintragen kann? Configuration · linuxmuster/sophomorix4 Wiki · GitHub ist dahingehend leider nicht so aussagekräftig und in [school] fühlt sich der Eintrag eher hacky an.

Die präferierte IP ist ebenfalls eingebaut, ich teste das hoffentlich morgen im Laufe des Tages.

Ist es in Ordnung, dass mit NetAddr::IP eine zusätzliche Paketabhängigkeit dazu kommt?

Viele Grüße
Sebastian

Maintainer für das Paket ist @jeffbeck, der kann dir da mit Rat und Tat zur Seite stehen :slight_smile:

Hallo Sebastian,
die Entwicklerdoku ist im github wiki. Z.B. hier:

Vielleicht hilft dir das schon weiter?

LG, Rüdiger

Hallo @jeffbeck,

danke für die Links. Da steht aber leider nicht (oder ich überlese es :sweat_smile:) wie ich einen neuen Konfigurationsabschnitt einbauen kann - oder muss das dann wirklich komplett neu einprogrammiert werden? Ich brauche ja eigentlich nur einen entsprechenden Eintrag mit einem möglichst sinnvollen Namen in einer passenden Kategorie für sophomorix-check (siehe PR).

Bei der WebUI brauche ich keine Config-Flag, da ist es zum Glück einfacher. :slight_smile:

Viele Grüße
Sebastian