Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeZefanjas

Neue GUI für LINBO

Von: zefanja
15. Januar 2021 um 05:16

LINBO ist eines der wesentlichen Features von linuxmuster.net – einer freien Schulserverlösung. Mit LINBO kann man viele PCs oder Laptops einfach und in wenig Zeit verwalten. Es hilft den administrativen Aufwand, den man mit vielen Geräten hat, in Grenzen zu halten. Viele Prozesse lassen sich zu dem automatisieren, sodass man fast alle Aufgaben, wie z.B. ein neues Image verteilen, aus der Ferne erledigen kann. Mit Version 7 hat linuxmuster.net ein neues & modernes Webinterface bekommen, einzig LINBO sah man das Alter mit seiner alten Benutzeroberfläche an. Doch damit scheint jetzt bald Schluss zu sein, denn eine neue GUI für LINBO befindet sich in der Testphase. Seht selbst.

Installation

Wer linuxmuster.net an der Schule bereits einsetzt und die neue GUI testen möchte (sie ist noch nicht für den produktiven Einsatz gedacht!), muss die „testing“-Paketquelle einrichten. Man öffnet die Datei /etc/apt/sources.list.d/lmn7.list und ändert die Einträge wie folgt ab:

deb https://archive.linuxmuster.net lmn7-testing/
deb-src https://archive.linuxmuster.net lmn7-testing/

Danach kann man nach einem „apt update && apt upgrade“ die neue GUI für LINBO installieren:

$ apt install linuxmuster-linbo-gui7

Fertig.

Neue Optionen für die start.conf

Mit der neuen GUI gibt es auch ein paar neue Optionen für die start.conf Datei, die man manuell oder im Webinterface einstellen kann. Da alles noch in der Entwicklung ist, können sich diese Parameter aber noch ändern:

UseMinimalLayout = yes
Locale = en-US
BackgroundColor = 0c2842

Man kann also neben der Hintergrundfarbe auch die Sprache einstellen. UseMinimalLayout = yes sorgt dafür, dass LINBO in mit einer minimalistischen GUI startet (die aber sehr schick aussieht, siehe Screenshots).

Screenshots

Linbo Bootscreen LINBO Standard Layout (hell) LINBO Standard Layout (dunkel) LINBO Minimalistische GUI LINBO Admin Menü Client registrieren Neues Image erstellen LINBO Terminal Betriebssystem synchronisieren

Fazit

Mir gefällt die neue GUI sehr. Sie sieht toll & modern aus und lässt sich gut bedienen. Vielen Dank an Dorian Zedler!

Der Beitrag Neue GUI für LINBO erschien zuerst auf zefanjas.

pfBlockerNG – Werbung und unerwünschte Inhalte filtern

Von: zefanja
21. Oktober 2020 um 14:13

Besucht man heute eine durchschnittliche Website, so werden unzählige Skripte und Tracker nachgeladen. Dadurch können die Webseitenbetreiber, Google, Facebook, usw. Daten über mich sammeln und meinen Streifzug durch die Weiten des Internets verfolgen. Zum Glück muss man sich diesem Treiben nicht ergeben und es gibt viele sinnvolle Erweiterungen z.B. für den Browser (uBlock Origin, uMatrix, etc.). Diese Lösungen haben den Nachteil, dass ich sie auf jedem Gerät und für jeden Browser einzeln installieren muss. Deshalb möchte ich heute vorstellen, wie man Werbung und unerwünschte Inhalte mit pfSense und pfBlockerNG netzwerkweit filtern kann. Das ist z.B. sinnvoll in einem Heim- oder Schulnetzwerk.

pfBlockerNG installieren

Zuerst loggen wir uns in pfSense ein und öffnen den Package Manager. Dort wählen wir pfBlockerNG-devel unter „Available Packages“ aus:

pfBlockerNG installieren

Mit „Install“ können wir das Paket installieren. PfSense lädt nun das pfBlockerNG Paket herunter und fügt es der Firewall hinzu.

pfblockerng installation fertig

pfBlockerNG Ersteinrichtung

Als nächsten werden wir pfBlockerNG konfigurieren. Dazu gehen wir zu Firewall  → pfBlockerNG.

pfblockerNG Menü

Es begrüßt und ein Assistent, der uns bei der Einrichtung von pfBlockerNG helfen wird. Mit „Next“ geht es weiter.

pfBlockerNG Assistent Seite 1

Auf der nächsten Seite wird erklärt, welche Dinge nun eingerichtet werden:

  • Es wird ein Standard-Setup für Anfänger mit pfBlockerNG eingerichtet.
  • Falls man vorher schon einmal pfBlockerNG installiert hatte, werden alle Einstellungen gelöscht.
  • Zwei Komponenten werden installiert:
    • IP: Firewall-Regeln für die WAN-Schnittstelle, um die schlimmsten bekannten Angreifer zu sperren.
    • DNSBL: Werbung und andere bekannte bösartige Domains werden geblockt.

Mit „Next“ geht es wieder weiter.

pfBlockernNG Assistent Seite 2

Im nächsten Schritt müssen wir die eingehende Schnittstelle (WAN) und ausgehende Schnittstelle (LAN) auswählen. Wenn man mehrere interne Schnittstellen hat, kann man alle diejenigen auswählen für die man pfBlockerNG einrichten will. Möchte man z.B. das Gäste-WLAN filtern, aber nicht das WLAN für die Lehrkräfte, kann man hier die entsprechenden Schnittstellen aus bzw. abwählen.

pfBlockerNG Schnittstellen

Als nächstes müssen wir eine sogenannte VIP-Adresse festlegen. Auf dieser läuft der Webserver von pfBlockerNG und sollte unter keinen Umständen eine IP aus einem verwendeten Netzwerk sein! Wenn das LAN-Netz z.B. 192.168.1.1/24 ist, sollte die VIP-Adresse nicht in diesem Bereich liegen. Hier in unserem Beispiel lassen wir die Adresse bei 10.10.10.1. Die Ports muss man i.d.R. nicht ändern.

pfBlockerNG VIP Adresse

Das Setup ist nun fertig und wir können den Assistenten mit einem Klick auf „Finish“ beenden.

pfBlockerNG Setup Ende

Danach öffnet sich die pfBlockerNG Updateseite und es werden automatisch alle aktivierten Blocklisten heruntergeladen und aktiviert.

pfBlockerNG einrichten

Wir haben nun ein fertig eingerichtetes pfBlockerNG Setup, dass unerwünschte Werbung und bösartige Domains und Webseiten blockiert. pfBlockerNG ist aber ein sehr mächtiges & flexibles Werkzeug. Deshalb möchte ich gern ein paar Einstellungen hervorheben.

Wichtig: Damit geänderte Einstellungen auch wirksam werden (egal, ob DNSBL oder IP), müssen wir unter Update → Reload → All → Run ausführen, damit die (geänderten) Listen heruntergeladen und aktiviert werden.
pfblockerng update

IP

Im IP Reiter, empfehle ich folgende Einstellungen:

  • Floating Rules → Enable. Wenn man nur eine interne Schnittstelle hat, kann man es auch deaktiviert lassen. Bei vielen Schnittstellen (z.B. in einem Schulnetzwerk), macht es Sinn, diesen Punkt zu aktivieren, damit die Firewallregeln übersichtlicher bleiben.
  • Kill States → Enable. Wenn pfBlockerNG die Blocklisten aktualisiert, werden alle aktiven Verbindungen zu IPs in den Listen zurückgesetzt.pfblockerNG IP Einstellungen

GeoIP Blocking

Möchte man Zugriffe aus bestimmten Regionen der Erde verbieten, muss man sich zuallererst einen kostenloses Konto bei MaxMind erstellen. Daraufhin erhält man einen Lizenzschlüssel, den man unter IP → MaxMind GeoIP Configuration eintragen. Danach muss man einmal unter Update → Reload → IP die GeoIP Datenbanken herunterladen.

pfblocker geoip

Nun können wir unter IP → GeoIP die gewünschten Kontinente oder Top-Spammer auswählen. Dazu klicken wir auf den kleinen Stift rechts und wählen dann in der Liste alle Einträge aus. Unten wählen wir noch „Deny Both“ (List Action). Top Spammer

Hinweis zu „Deny Inbound“ und „Deny Outbound“: „Deny Inbound“ bedeutet, dass die IPs für alle eingehenden Verbindungen geblockt werden. Wenn man z.B. einen Webserver betreibt und man möchte bestimmte Länder blocken, dann kann man das mit „Deny Inbound“ machen. „Deny Outbound“ gilt für alle ausgehenden Verbindungen, d.h. ich kann mich von einem Rechner im Netzwerk nicht zu dieser IP verbinden. Hier muss man aufpassen! Wenn ich z.B. alle IPs Nordamerikas mit „Deny outbound“ sperre, kann ich ab sofort keine Webseiten mehr erreichen, die auf diesem Kontinent gehostet sind!

DNSBL / Feeds

pfBlockerNG blockt neben IPs auch Domains. Es findet also keine Man-in-the-Middle-Attacke statt, um Inhalte zu filtern, sondern es wird einfach in eine lange Liste geschaut, ob eine Domain erlaubt ist oder nicht (funktioniert auch mit HTTPS). Unter Feeds können wir einstellen, welche Listen aktiv genutzt werden sollen. Es gibt dabei Feeds für IP Blocklisten, als auch für DNSBL, also Blocklisten für DNS / Domains.

Alle aktivierten Feeds haben einen Haken am Ende der Zeile. Wenn wir nun einen noch nicht aktiven Feed hinzufügen wollen, klicken wir einfach auf das „+“:

Feed hinzufügen

Es öffnet sich eine Seite auf der wir Details zu dem Feed einstellen können. Folgende Felder sind wichtig:

  • State: ON
  • Action: Unbound
  • Update Frequency: Once a day

Feed Details

Manchmal möchte man einen Feed hinzufügen, der nicht in der Liste ist (z.B. einzelne Feeds von Steven Black). Dazu gehen wir zu DNSBL → DNSBL Groups und klicken unten auf „Add“:

Feed hinzufügen

Auf der nächsten Seite geben wir der DNSBL Gruppe einen Namen und fügen und DNSBL Source Definitions unseren Feed (oder mehrere) hinzu.

  • Name: StevenBlack
  • State: ON
  • Source: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts
  • Header / Label: Glückspiel
  • Action: Unbound
  • Update Frequency: Once a day

Mit „Save“ schließen wir den Vorgang ab.

Custom Feed

Whitelists

Wenn eine Domain nicht geblockt werden soll, muss man sie unter DNSBL → DNSBL Whitelist in die Whiteliste aufnehmen. Wenn man einen Punkt („.“) vor den Domainnamen setzt, werden auch alle Subdomains freigeschaltet, sonst nur genau die (Sub)Domain, die man eingetragen hat.

DNSBL whitelist

SafeSearch

Unter DNSBL → DNSBL SafeSearch kann man SafeSearch für die bekanntesten Suchmaschinen einstellen. Weiterhin können wir auch noch DNS over HTTPS von Firefox blockieren sowie Beschränkungen für Youtube einstellen.

DNSBL SafeSearch

pfSense als DNS Server erzwingen

Damit auch alle Anfragen in unserem Netzwerk durch pfBlockerNG gefiltert werden, müssen wir verhindern, dass jemand im Netzwerk einen anderen DNS-Server als den DNS-Server von pfSense verwendet. Dazu erstellen wir 2 Regeln für die LAN-Schnittstelle (mehr Details hier):

DNS Regel

Fazit

pfBlockerNG ist ein tolles Open Source Projekt. Es hilft Werbung, unerwünschte Inhalte und ganze Netzbereiche zu filtern. Egal ob IPs oder DNS-Blocklisten – mit pfBlockerNG kann man beides verwalten und so konfigurieren, wie man es für sein Netzwerk haben möchte. Es gibt aber auch Alternativen für pfBlockerNG, z.B. pi-hole, welches sich gut auf einem Raspberry Pi oder in einer VM bzw. Container installieren lässt. Unter Strich bleibt, dass ein werbefreies Netzwerk möglich ist!

Nutzt du pfBlockerNG oder pi-hole in deinem (Schul)Netzwerk?

 

Der Beitrag pfBlockerNG – Werbung und unerwünschte Inhalte filtern erschien zuerst auf zefanjas.

Wie man ein gesperrtes BIOS entsperren kann

Von: zefanja
16. Juli 2020 um 13:06

An unserer Schule haben wir in den letzten Jahren keine BIOS Passwörter vergeben. Das war bisher auch kein Problem (v.a. für Linbo), da wir eigentlich nur nette Schüler und Schülerinnen haben 🙂 Seit einiger Zeit haben sich dann aber doch einige den Spaß erlaubt und Passwörter im BIOS vergeben, sodass wir keine Einstellungen mehr ändern konnten. Nicht nur das: Es gibt ja noch weitere Passwörter, die man im BIOS vergeben kann… Das Problem wurde leider auch nicht sofort festgestellt, sodass wir jetzt ein paar Laptops haben, die mit einem BIOS- / Setup- / Admin-Passwort versehen sind. Was nun? Wie können wir nun unser gesperrtes BIOS entsperren?

Zum Glück sind wir nicht die ersten mit diesem Problem – vielen anderen Menschen auf dieser Welt begegnet dieses Phänomen jahrein und jahraus. Eine Lösung sollte also nicht so schwierig sein, oder?

Nein, ist sie auch nicht. In unserem Fall haben wir unsere Laptops mit Hilfe der folgenden Website entsperrt: https://bios-pw.org/

BIOS Passwort

Auf der Website gibt man seinen Code ein (bei unseren Dell-Laptops eine Seriennummer, die erscheint, wenn man auf UNLOCK im BIOS klickt) und erhält dann ein Passwort mit dem das BIOS entsperren kann.BIOS Masterpasswort

WICHTIG: Auch wenn eine deutsche Tastatur verbaut ist, geht das BIOS von einer US-Tastaturbelegung (QWERTY) aus! Bei uns hat der Code nur geklappt, wenn man STRG + ENTER gedrückt hat. Nur ENTER allein hat nicht gereicht.

Sicher gibt es noch andere Wege, wie man das BIOS Passwort zurücksetzen kann. Manchmal gibt es Standardpasswörter für bestimmte BIOS Arten bzw. Hersteller, manchmal kann man das BIOS auch über Jumper auf dem Mainboard zurücksetzten (bei Laptops i.d.R. nicht so einfach möglich). Oder die Supporthotline des Herstellers kann in einigen Fällen sicher auch weiterhelfen. (Das trifft eher auf die großen Hersteller zu, man sollte auch beweisen können, dass man der rechtmäßige Eigentümer des Geräts ist).

Fazit: BIOS Passwörter machen Sinn – vor allem in einer Schule 🙂

Der Beitrag Wie man ein gesperrtes BIOS entsperren kann erschien zuerst auf zefanjas.

Schulserverlösung linuxmuster.net Version 7 veröffentlicht

Von: zefanja
17. April 2020 um 01:58

Knapp vier Jahre nach dem letzten Release wurde heute die neue Version 7 von linuxmuster.net veröffentlicht. Damit ist ein weiterer wichtiger Meilenstein in der Geschichte der freien Open Source Schulserverlösung erreicht.

Zum Release wird es heute (17.04.) um 15:00 Uhr (MESZ) eine kleine Präsentation der LMN 7 geben (virtuell über BigBlueButton): https://bz-pfinztal7.dynalias.org/b/gad-tnt-hdg. Das Passwort für den Raum wird ca. 15min vorher hier veröffnetlicht. Jeder ist herzlich eingeladen.

Was ist neu?

Mit Version 7 haben sich einige Dinge im Vergleich zu den Vorversionen geändert. Hier die wichtigsten Änderungen im Überblick:

  • Wechsel von Samba 3 auf Samba 4 (mehr als nötig, um ein aktuelles Serverbetriebssystem einsetzen zu können, Samba 4 macht weiterhin die Anbindung von Windows und anderer Software leichter)
  • OPNSense ersetzt die bisherige Firewall (IPFire)
  • neue Schulkonsole (webbasierte Administration) ist moderner (Responsive Design, etc.)
  • Version 7 ist mehrschulfähig, d.h. es lassen sich mit einer Installation mehrere Schulen verwalten
  • Netzwerksegmente / IP-Bereiche sind frei wählbar (das war vorher nur sehr eingeschränkt der Fall)

Schulkonsole

weitere (bekannte) Features

Neben den oben genannten Veränderungen bringt linuxmuster.net noch weitere Features mit, die bereits in den vorhergehenden Versionen enthalten waren.

  • Linbo – für mich das Killerfeature bei linuxmuster.net, weil es einem sehr sehr viel Arbeit bei der Verwaltung der Schulcomputer und -laptops abnimmt. Mit Linbo lassen sich viele Rechner und Konfigurationen sehr einfach (und sogar aus der Ferne) verwalten (siehe auch „Warum Linbo eines der besten Features von linuxmuster.net ist„).
  • Schulkonsole – in der Schulekonsole lassen sich alle administrativen und pädagogischen Funktionen steuern, wie z.B. Zugang zum Internet / WLAN ein/ausschalten, Aufgaben verteilen und einsammeln, Klassenarbeitsmodus, etc.

Umsteigen?

Wir verwenden aktuell noch Version 6.2 bei uns an der Schule. In den nächsten Wochen werden wir aber den Umstieg vorbereiten und Version 7 installieren, testen und einen neuen Linuxclient einrichten. Bisher haben wir noch Ubuntu 16.04 auf den Rechnern, welches aber durch ein aktuelles OS (Ubuntu? Kubuntu? Xubuntu?) ersetzt werden soll.

Alle, die bisher eine andere Schulserverlösung einsetzen, sollten meiner Meinung nach mal den Blick über den Tellerrand wagen und sich mit linuxmuster.net auseinandersetzen. Es ist ein System, welches von vielen engagierten Lehrkräften weiterentwickelt wird und somit nah an Schule ist. Die Community (https://ask.linuxmuster.net) ist sehr hilfbereich und man bekommt Hilfe zu allen Themen rund um Schul-IT.

Der Beitrag Schulserverlösung linuxmuster.net Version 7 veröffentlicht erschien zuerst auf zefanjas.

Wekan – eine Open Source Trello Alternative

Von: zefanja
03. April 2020 um 07:25

In den letzten Wochen habe ich eine Software ausprobiert, die schon lange auf meiner Liste stand: Wekan. Wekan ist eine Open Source Alternative für Trello, einer Kanban-Software. Mit ihr lassen sich mit der Kanban-Methode Projekte oder Abläufe managen. Manche verwenden es auch als Aufgabenmanagementsystem. Es gibt verschiedene Open Source Alternativen zu Trello – Wekan ist eine, die dem Original am nächsten kommt. Ich möchte heute zeigen, wie man Wekan installiert und einrichtet.

Installation

Wekan kann man auf verschiedene Art und Weise installieren (manuell, Docker, snap, …). Wir werden es heute in einem LXD Container (Ubuntu 18.04) einrichten (LXD Container waren hier schon mehrmals Thema im Blog). Als erstes erstellen wir einen Container für Wekan:

$ lxc launch ubuntu:b wekan

Nachdem der Container erstellt und gestartet ist, loggen wir uns im Container ein:

$ lxc exec wekan bash

Wir werden Wekan als Snap installieren. In den Ubuntu LXD Container ist snapd schon installiert. Wir können also direkt Wekan installieren mit

$ snap install wekan

Nun legen wir die Haupt-URL und den Port für Wekan fest:

$ snap set wekan root-url="http://wekan.example.com"
$ snap set wekan port="80"

Optional kann man noch einstellen, das Updates automatisch installiert werden:

$ snap set core refresh.schedule=02:00-04:00

Fertig 🙂

Einrichtung

Nun können wir unter der IP unseres LXD Containers Wekan aufrufen. Wenn man LXD nicht lokal, sondern auf einem Server betreibt, kann es unter Umständen hilfreich sein eine Netzwerkbrücke für den Container einzurichten. Alternativ kann man auch Nginx als Reverse Proxy verwenden. Hinweise zur Einrichtung findet man im Wiki von Wekan.

Wekan Login

Hinweis: Der erste Benutzer, den wir einrichten, ist Administrator für Wekan.

Wir klicken als auf Registrieren und legen einen neuen Benutzer an.

Wekan Registrieren

Wenn wir nun auf Registrieren klicken, erscheint eine Fehlermeldung („Internal Server Error“). Das liegt daran, weil wir noch keinen EMail-Server eingerichtet haben.

Wekan Error

Wekan funktioniert aber auch ohne einen EMail-Server, deswegen öffnen wir einfach wieder unsere Hauptseite (wekan.example.com bzw. die IP des Containers) und können uns mit den eben angelegten Benutzer anmelden.

wekan open source

Nun können wir neue Boards in diesen neue Listen und Karten erstellen. Die Funktionsweise ist dem von Trello sehr ähnlich.

Fazit

Wer nach einer Open Source Alternative für Trello sucht, die man selber hosten kann, findet in Wekan einen guten Ersatz. Ich habe bisher oft Trello verwendet. Mit Wekan habe ich endlich einen Ersatz gefunden, der so ziemlich ein 1:1 Ersatz für Trello ist.

Der Beitrag Wekan – eine Open Source Trello Alternative erschien zuerst auf zefanjas.

Wie man Telegram in Zammad integrieren kann

Von: zefanja
02. November 2019 um 06:42

An unserer Schule verwenden wir Zammad als Support-Plattform bzw. Helpdesk. Zammad ist eine wirklich tolle Software, die mit jedem Release neue Features mitbringt. Mittlerweile gehört auch ein Wissensdatenbank (aka Knowlegdebase) zum Angebot von Zammad. Mit Zammad bekommt alles man (und mehr), was man sich von einer Support-Plattform in der Schule wünscht. Zammad bietet verschiedene Supportkanäle an. Neben eMail, Chat, SMS, Twitter oder Facebook gibt es auch die Möglichkeit über Telegram Supporttickets zu erhalten. Heute möchte ich zeigen, wie man Telegram in Zammad integrieren kann.

Hinweis: Die Integration von Telegram klappt nur, wenn Zammad öffentlich per HTTPS erreichbar ist!

Telegram-Bot erstellen

Um über Telegram Supportanfragen erhalten zu können, muss man zuerst einen Telegram-Bot erstellen. Telegram-Bots sind Telegram-Konten, die von Computern bedient werden (Roboter-Accounts), oft in Verbindung mit künstlicher Intelligenz. Wie man einen Bot erstellt, steht hier.

Zuerst sucht man den „Vater aller Bots“ – Botfather und gibt folgenden Befehl ein:

/newbot

Telegram Bot erstellen

Man muss nun einen Namen für den Bot angeben und einen Benutzernamen, der

  1. nicht vergeben sein darf und
  2. auf _bot endet.

Zammad Telegram Bot Neu

Am Ende erhält man einen Link zum Bot und den API Key, den wir gleich brauchen werden.

Telegram in Zammad integrieren

In Zammad befinden sich die Einstellungen zu Telgram unter Admin → Kanäle → Telegram. Mit einem Klick auf Bot hinzufügen kann nun der eben erstellte Bot hinzugefügt werden. Dazu gibt man den API Key ein und kann bei Bedarf noch die Willkommensnachricht und die Gruppe anpassen, der die Tickets zugeordnet werden sollen.

Telegram Bot hinzufügen

Nach dem Klick auf Übermitteln ist der Bot nun einsatzbereit und neue Tickets können per Telegram erstellt werden.

Telegram Bot aktiv

Telegram-Kanal benutzen

Um ein neues Ticket zu erstellen, muss der Benutzer bzw. Kunde nur den Telegram-Bot suchen. In unserem Fall heißt er myschool_support_bot.

Telegram-Bot suchen

Wenn man den Bot ausgewählt hat, muss man nur unten einmal auf Starten klicken und schon begrüßt einen Zammad mit der Willkommensnachricht, die wir vorher festgelegt haben:

Telegram Zammad Ticket erstellen

Sobald man nun eine weitere Nachricht schreibt, erstellt Zammad daraus ein Ticket.

Telegram Zammad Ticket erstellen

Eine entsprechende Benachrichtigung erscheint nun in Zammad.

Zammad neues Ticket

In Zammad kann man nun direkt auf das Ticket antworten. Wichtig ist, das man nicht einfach in das Textfeld unten schreibt, sondern vorher auf antworten klickt. Neben dem Textfeld erscheint nun auch das Telegram-Symbol.

Zammad Telegram Ticket beantworten

Mit einem Klick auf Aktualisieren wird die Nachricht an den Kunden bzw. Telegram-Benutzer geschickt.

Telegram Ticket aktualisiert

Wünsche

Die Integration Telegram in Zammad funktioniert zuverlässig. Trotzdem ist die bisherige Implementation nur rudimentär. Folgende Features finde ich wünschenswert:

  • mehr Befehle für den Bot, um z.B. den Status des Tickets abzurufen, alle Tickets anzeigen zu lassen, …
  • aktuell kann immer nur ein Ticket gleichzeitig erstellt werden. Es wäre schön, wenn man mit Hilfe des Bots auch parallel mehrere Tickets erstellen könnte.
  • Möglichkeit für Agents Tickets direkt in Telegram beantworten zu können
  • Telegram zusätzlich als Integration um z.B. Benachrichtigungen über neue Tickets zu erhalten

Fazit

Tickets zu melden (so meine Erfahrungen aus dem Schulumfeld) ist für viele eine Herausforderung. Früher hatten wir ein Webformular, dass nur wenige genutzt haben. Dann haben wir mit Zammad einen eMail-Kanal eingerichtet. Die Hürde ein Ticket zu erstellen wurde dadurch niedriger. Mit der Integration von Telegram in Zammad ist diese Hürde noch einmal geringer geworden – zumindest für alle die diesen Messenger benutzen.

1 Kommentar

Der Beitrag Wie man Telegram in Zammad integrieren kann erschien zuerst auf .:zefanjas:..

linuxmuster.net – Neuigkeiten zur Schulserverlösung

Von: zefanja
09. Juli 2019 um 03:39

linuxmuster.net ist eine Open Source Schulserverlösung für Schulen jeglicher Art und Größe. Aktuell ist die Version 7 in Entwicklung und der Start der Beta-Phase steht unmittelbar bevor. In den letzten Monaten ist einiges passiert und ich möchte in diesem Artikel kurz einen Überblick über die aktuellen Entwicklungen geben.

Neuigkeiten rund um linuxmuster.net

  • linuxmuster.net hat in diesem Jahr bereits zwei Auszeichnungen erhalten. Die freie Schulserverlösung hat einen 2. Platz beim Thomas-Krenn Award gewonnen sowie die Auszeichnung mit dem „Comenius eduMedia Siegel“ erhalten.
  • In Kürze findet eine Schulung zur neuen Version 7 für Dienstleister statt. Wer Interesse hat, findet hier weitere Informationen.
  • Die Beta-Phase von linuxmuster.net v7 steht in den Startlöchern. Vieles ist schon fertig und einige Schulen setzen die neue Lösung bereits produktiv ein. Ganz fertig ist sie allerdings noch nicht und es fehlt v.a. noch einiges an Dokumentation.
  • Auf den Chemnitzer Linuxtagen gab es einen Vortrag zu linuxmuster.net. Sehr zu empfehlen für alle, die einen kompakten Überblick über die Schulserverlösung erhalten wollen.

Mithelfen

Ein Open Source Projekt lebt von der Mitarbeit vieler – nicht anders ist das bei linuxmuster.net. Wenn du also mithelfen möchtest, findest du hier eine gute Übersicht, in welchen Bereichen, das Projekt noch Hilfe braucht. Egal ob Entwicklung, Dokumentation, Fehler finden, Support – in jedem Bereich gibt es die Möglichkeit sich einzubringen.

Fazit

Wir setzen linuxmuster.net seit 3 Jahren bei uns in der Schule ein und sind wirklich sehr zufrieden damit. Die vielen Möglichkeiten zur Erweiterung oder individuellen Anpassung sind großartig und mit LINBO gibt es ein sehr praktisches Tool, um viele Rechner mit wenig Aufwand in einer Schule zu verwalten. Aktuell planen wir den Umstieg auf linuxmuster.net v7. Dies wird ein größeres Update sein, da sich viele Dinge geändert haben.

Für jeden, der sich für die Schulserverlösung interessiert und vielleicht in den Sommerferien damit erste Erfahrungen sammeln möchte, empfehle ich die linuxmuster.net v7. Es gibt viele hilfsbereite Schuladmins und auch einen offiziellen Support von Seiten des Projekts, wo man seine Fragen loswerden und in jedem Fall eine Antwort bekommen kann (und dazu meist sehr schnell).

8 Kommentare

Der Beitrag linuxmuster.net – Neuigkeiten zur Schulserverlösung erschien zuerst auf .:zefanjas:..

Zammad sichern und wiederherstellen

Von: zefanja
06. Juli 2019 um 07:05

Seit einigen Jahren verwenden wir Zammad als Support- bzw. Helpdesk-Software in unserer Schule. Wir sind damit sehr zufrieden, denn Zammad bietet viele Features und ein angenehm zu bedienende Benutzeroberfläche. Vor einiger Zeit mussten wir unseren Server umziehen und somit auch unsere Zammad-Installation. In diesem Artikel möchte ich kurz zeigen, wie man Zammad sichern und wiederherstellen kann.

Zammad sichern

Zammad bietet von Haus aus ein Backup-Skript, welches aber standardmäßig deaktiviert ist. Man kann das Skript dazu benutzen, um regelmäßige Backups anzulegen. Es befindet sich unter /opt/zammad/contrib/backup/. Das Backup-Skript greift auf eine Konfigurationsdatei zu, in der alle wichtigen Einstellungen vorgenommen werden. Diese Datei muss man zuerst umbenennen:

$ mv /opt/zammad/contrib/backup/config.dist /opt/zammad/contrib/backup/config

Anschließend öffnet man die Datei und kann einige wenige Dinge einstellen:

$ nano /opt/zammad/contrib/backup/config 

...
BACKUP_DIR='/var/tmp/zammad_backup'
HOLD_DAYS='10'
DEBUG='no'

BACKUP_DIR legt fest, wohin die Backups gespeichert werden sollen. Das Verzeichnis muss existieren! HOLD_DAYS gibt an, wie lange ein bzw. wie viele Backup(s) aufbewahrt werden sollen.

Nun kann man das Backup-Skript ausführen:

$ cd /opt/zammad/contrib/backup
$ ./zammad_backup.sh

Das Skript legt zwei Archive an (Datenbanksicherung und Zammad-Ordner), die sich nun im konfigurieren Backup-Ordner befinden.

Hinweis: Wenn man eine Installation migrieren möchte, ist es sinnvoll, Zammad vorher anzuhalten und erst dann das Backup zu erstellen. Das spielt aber nur bei größeren Installationen eine Rolle.

Zammad wiederherstellen

Wenn man ein Backup auf dem gleichen Host wiederherstellen möchte, kann man das mit dem Wiederherstellungsskript erledigen:

$ cd /opt/zammad/contrib/backup
$ ./zammad_restore.sh

Fertig 🙂

Wenn man allerdings eine Zammad-Installation umziehen möchte (Migration, Neuinstallation), gibt es einige Dinge zu beachten:

  • Zammad muss installiert sein (inklusive Elasticsearch)
  • die Zammad-Version sollte gleich oder höher sein (als die vom Backup)
  • es sollte die gleiche Datenbank verwendet werden (ein Wechsel ist wohl möglich, aber sehr aufwändig, da die Daten abgepasst werden müssen).
  • Es sollte genügend freier Speicherplatz vorhanden sein (ca. 2x so viel wie die Größe des Backups)

Wenn alle Bedingungen erfüllt sind, muss man zuerst die Konfiguration auf dem Zielsystem aktivieren:

$ mv /opt/zammad/contrib/backup/config.dist /opt/zammad/contrib/backup/config

Danach die Backupdateien in den konfigurierten Backup-Ordner kopieren (mit cp oder wenn man LXD-Container verwendet mit lxc file push/pull) und letztendlich das Wiederherstellungsskript laufen lassen:

$ cd /opt/zammad/contrib/backup
$ ./zammad_restore.sh

Weitere Informationen finden sich in der offiziellen Dokumentation.

Fazit

Zammad bringt einen einfachen Sicherungs- und Wiederherstellungsmechanismus mit, der zuverlässig funktioniert. Wer seine Zammad-Installation nicht anderweitig sichert, kann für das Backup-Skript auch einen Cron-Job einrichten, um regelmäßig ein Backup zu erstellen.

 

1 Kommentar

Der Beitrag Zammad sichern und wiederherstellen erschien zuerst auf .:zefanjas:..

Xen Orchestra installieren und aktualisieren (Vollversion)

Von: zefanja
10. Mai 2019 um 12:24

An unserer Schule verwenden wir  Citrix Hypervisor (ehemals XenServer) (bald xcp-ng) für die Virtualisierung unseres Schulservers und anderer Anwendungen. Citrix liefert mit XenCenter ein Verwaltungstool für Windows. Damit kann man bequem alle virtuellen Maschienen verwalten und Einstellungen am Citrix Hypervisor vornehmen. Eine andere Möglichkeit ist Xen Orchestra. Es ist ein webbasiertes Tool, was noch einiges mehr als XenCenter kann. Auf der Website kann man sich eine fertig eingerichtete Appliance herunterladen. Diese ist allerdings von den Features stark eingeschränkt (man hat ca. 2 Wochen Zeit alle Features zu testen). Deshalb möchte ich einen kleinen Tipp weitergeben, wie man Xen Orchestra installieren kann – mit allen Features der Enterprice und Premium Edition.

Xen Orchestra installieren

Xen Orchestra ist eine Open Source Projekt, deshalb kann es sich jeder selbst den Quellcode nehmen und installieren. Die Anleitung dazu findet man in der offiziellen Dokumentation. Auf Github findet man auch ein Installationsskript, welches die Installation automatisch durchführt. Damit kann man Xen Orchestra in wenigen Schritten installieren. Auf einem frischen Ubuntu LTS Server muss man nur die folgenden Befehle ausführen:

$ sudo bash
$ curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh | bash

Das war es auch schon 🙂 Xen Orchestra kann man nun unter IP des Servers erreichen. Der Standard-Benutzername ist admin@admin.net, das Password admin.

Xen Orchestra installieren

Xen Orchestra aktualisieren

Wenn man Xen Orchestra fertig eingerichtet hat und sollte man es natürlich aktuell halten, um alle Sicherheitsupdates und neue Features zu bekommen. Eigentlich bringt jede Version einige neue Features mit, welche die Arbeit mit dem XenServer (bzw. xcp-ng) erweitern oder erleichtern. Der Autor des Installationsskript stellt ein weiteres Skript für die Aktualisierungen bereit. Zu finden ist es ebenfalls auf Github.

Das Aktualisierungsskript bietet verschiedene Optionen an. Zum einfachen Aktualisieren reicht der folgende Aufruf:

$ sudo bash
$ sudo curl https://raw.githubusercontent.com/Jarli01/xenorchestra_updater/master/xo-update.sh | bash

Nach wenigen Minuten ist Xen Orchestra wieder auf den aktuellen Stand!

Wer sich unwohl dabei fühlt ein Skript aus dem Netz als root laufen zu lassen, kann sich das Skript natürlich vorher noch genau anschauen, was es macht bzw. nicht macht 🙂

Fazit

Xen Orchestra ist ein tolles Projekt. Unser XenServer lässt sich damit leicht verwalten. Backups sind schnell angelegt (seit neustem auch Backups der Konfiguration von Xen Orchestra) inklusiver Benachrichtigungen (eMail oder nach Slack / Mattermost). Diese beiden Skripts haben uns das Leben sehr erleichtert. Ein großes Dankeschön an Jarli01!

1 Kommentar

Der Beitrag Xen Orchestra installieren und aktualisieren (Vollversion) erschien zuerst auf .:zefanjas:..

Open Source Digital Signage für Schulen

Von: zefanja
03. April 2019 um 03:43

Digital Signage oder „Digitale Beschilderung“ bietet auch für Schulen neue Möglichkeiten. Was früher mit Aushängen an sogenannten „schwarzen Brettern“ oder Informationstafeln gelöst wurde, wird zunehmend von Monitoren übernommen. Egal ob Hinweise zu kommenden Veranstaltungen, Vertretungspläne, Raumbeschilderung oder sonstige wichtige Informationen – vieles lässt sich flexibler auf Monitoren darstellen. Aktualisierungen kann man von zentraler Stelle aus vornehmen bzw. auch automatisieren (z.B. beim Vertretungsplan). Welche Open Source Digital Signage Lösungen gibt es? Was könnten Anforderungen sein, die man als Schule hat? Ich möchte heute einige Lösungen auflisten, die in späteren Artikeln noch einmal genauer beleuchtet werden sollen.

Was sollte ein Digital Signage System können?

Die Anforderungen werden sicher von Schule zu Schule verschieden sein, aber es gibt doch ein paar wesentliche Eigenschaften, die von einer Open Source Digital Signage Lösung erfüllt sein sollten:

  • einfach zu benutzen (z.B. Editor zum Erstellen von Folien / Slides)
  • einfache und schnelle Darstellung von Bilder, Videos und anderen Dokumenten
  • zentrale Verwaltung mehrerer Monitore (am besten mit verschiedenen Gruppen / Kanälen, um verschiedene Informationen auf verschiedenen Monitoren anzeigen zu können)
  • Möglichkeiten zur Automatisierung / Zeitplan
  • möglichst kostenfrei (Lizenzen oder monatliche Gebühren)

Welche Open Source Digital Signage Lösungen gibt es?

Wenn man sich nach Open Source Digital Signage Lösungen umschaut, wird man schnell fündig. Allerdings sind viele von den sogenannten „Open Source“ Lösungen eher Freemium – Lösungen bzw. nur teilweise Open Source. Ich habe keine dieser Lösungen bisher selbst im Einsatz gehabt. In den kommenden Monaten werde ich mir aber einige dieser Lösungen anschauen, da wir als Schule noch auf der Suche nach einem passenden Digital Signage System sind.

Screenly OSE

Wenn auf Github nach Digital Signage schaut, ist Screenly OSE mit Abstand das populärste System. Screenly OSE ist für den Raspberry Pi konzipiert. Es bietet grundlegende Features, allerdings muss beim Einsatz mehrerer Geräte, jeder Raspberry Pi einzeln verwaltet werden. Die Unterschiede zur Bezahlversion sind hier aufgelistet.auch

Xibo

Direkt hinter Screenly OSE folgt Xibo, wenn man nach der Anzahl der Sterne auf Github geht. Xibo gibt es schon eine ganze Weile. Im Gegensatz zu Screenly gibt es keine Pro vs. Open Source Version, sondern alle Features sind für alle verfügbar. Xibo besteht aus einem CMS, welches man auch in einem Docker-Container installieren kann und den zugehörigen Player, die auf den Anzeigegeräten selbst installiert werden. Der Player für Windows ist kostenfrei und Open Source, für alle anderen Player müssen Lizenzgebühren bezahlt werden. Es gibt den Xibo Player für Windows, Android und webOS. Ein Player für Linux ist wohl geplant, aber noch nicht verfügbar.

Concerto

Ebenfalls schon länger am Markt ist Concerto. Concerto bietet viele Features und kann selbst gehostet werden. Technisch basiert es auf Ruby. Wenn man sich in dem Projekt auf Github etwas umschaut, scheint die Entwicklung etwas zu stocken. Dem Webinterface sieht man sein Alter auch schon etwas an. Insgesamt aber eine 100% Open Source Lösung.

LibreSignage

LibreSignage ist noch recht neue Open Source Lösung und zu 100%, Browser basiert. Es braucht also keine speziellen „Player“, sondern kann über den Browser benutzt werden. Grundlegende Features und auch Mehrbenutzerbetrieb sind vorhanden.

Foyer

Foyer ist ein WordPress-Plugin. Man kann damit verschiedene Seiten erstellen, Kanäle und verschiedene Displays diesen Kanälen zuweisen. Es ist wie LibreSignage Browser basiert und braucht deshalb keinen besonderen Player.

tabula.info

Tabula.info ist die einzige Lösung, die ich gefunden habe, die speziell für Schulen entwickelt wurde. Es bietet viele nette Features, die in man in einer Schule braucht und ist auf die Anzeige von Vertretungsplänen, HTML-Seiten und zusätzlichen Infos spezialisiert.

Weitere Lösungen

Infobeamer

Infobeamer ist nur für den privaten, nicht öffentlichen Gebrauch kostenfrei. Sonst ist wohl eine der leistungsstärksten und flexibelsten Lösungen. Die Hardware eines Raspberry Pi’s wird maximal ausgenutzt (z.B. Hardwarebeschleunigung – ein Nachteil, den alle Browser basierten Lösungen haben).

Display Monkey

Display Monkey ist ebenfalls eine Open Source Lösung, die allerdings einen Windows Server voraussetzt. Die einzelnen Displays brauchen nur einen Browser.

piSignage

Eine weitere Lösung für Digital Signage ist piSignage. Der Server ist OpenSource und kann auch selbst gehostet werden. Für die einzelnen Displays / Players müssen aber Lizenzen gekauft werden (einmalig). Wie der Name vermuten lässt, verwendet piSignage Raspberry Pi’s als Player. Der Code dafür ist nicht Open Source.

Fazit

Auf den ersten Blick gibt es scheinbar viele Open Source Lösungen. Welche kennst du noch, die hier fehlen? Mit welchem Systemen hast du gute Erfahrungen gemacht? Der Praxistest wird zeigen, welche Lösung für unsere Situation am besten geeignet ist.

11 Kommentare

Der Beitrag Open Source Digital Signage für Schulen erschien zuerst auf .:zefanjas:..

Wie wichtig ist Hochverfügbarkeit in einem Schulnetzwerk?

Von: zefanja
05. März 2019 um 13:35

Schulnetzwerke werden mit wachsenden Anforderungen komplexer. Ein Schulserver, schulweites WLAN, Einsatz von Tablets und Laptops im Unterricht, eine Schulcloud, einheitliche Logins für alle Dienste – die Anforderungen an einen Netzwerkbetreuer oder Dienstleister in der Schule sind vielfältig. Wenn alles funktioniert, ist meist auch alles gut. Aber was ist, wenn der Server, die Firewall oder ein Switch ausfällt? Die Konsequenzen können sehr unterschiedlich sein. Wie schnell kann der Normalbetrieb wiederhergestellt werden? Wie wichtig ist Hochverfügbarkeit in einem Schulnetzwerk?

Hochverfügbarkeit

Laut Wikipedia definiert sich Hochverfügbarkeit folgendermaßen

Hochverfügbarkeit (englisch high availability, HA) bezeichnet die Fähigkeit eines Systems, trotz Ausfalls einer seiner Komponenten mit einer hohen Wahrscheinlichkeit (oft 99,99 % oder besser) den Betrieb zu gewährleisten.

Es geht also darum, dass ein System („das Schulnetzwerk“) einsatzfähig bleibt, auch wenn eine oder mehrere Komponenten einmal ausfallen sollten. Dabei kann es durchaus zu Unterbrechungen kommen. Je nachdem wie lang so eine Unterbrechung ist, teilt man die Hochverfügbarkeit in verschiedene Klassen ein. Ein Schulnetzwerk muss vor allem an Schultagen einsatzfähig sein (ca. 180-200 Tage pro Jahr). Auch wenn eine 99,999% Verfügbarkeit in den wenigsten Schulen absolut notwendig ist, ist der reibungslose Betrieb für den Unterrichtsalltag sehr wichtig.

Single Point of Failures

Um Hochverfügbarkeit herzustellen, müssen sogenannte „Single Point of Failures“ reduziert werden. Es handelt sich dabei um Komponenten bei deren Ausfall das ganze Schulnetzwerk still stehen würde. Was können solche „Single Point of Failures“ sein?

  • Firewall → fällt sie aus, gibt es kein Zugang mehr zum Internet, je nach Konfiguration funktioniert auch das interne Netz nicht mehr
  • Switche (v.a. Hauptswitch) → siehe Firewall, Komplettausfall
  • Server → fällt er aus, sind viele Anwendungen nicht mehr zu erreichen, d.h. keine Anmeldung mehr im internen Logins, Webanwendungen, Schulcloud, …
  • Internetanschlüsse → fällt der einzige Zugang aus, ist man offline.

Kurze Geschichte am Rande:

Letzte Woche ist unsere Firewall ausgefallen (aufgrund des Atom C2000 Bugs). Das Netzwerk lag still, wir waren offline. Ein erster Versuch die Firewall zu virtualisieren scheiterte, sodass wir auf einen kleinen Minicomputer mit 2 Netzwerkkarten ausgewichen sind. Es waren ein paar zusätzliche Konfigurationen an unserem Hauptswitch nötig um alle WANs und VLANs auf zwei Netzwerkkarten aufzuteilen. Nach einigen Stunden lief das Netzwerk dann wieder (wir konnten das Backup der Konfiguration mit wenig Änderungen problemlos wiederherstellen).

Wie kann man die Ausfallsicherheit erhöhen?

Es gibt mehrere Möglichkeiten, wie man die Ausfallsicherheit erhöhen und das System „Schulnetzwerk“ besser gegen Ausfälle schützen kann. Allgemein geht es darum, dass man möglichst wenige (am besten keine) „Single Point of Failures“ hat und kritische Komponenten bei einem Ausfall fehlertolerant sind. Wie bereits oben erwähnt, hängen die Anforderungen an ein hochverfügbares Schulnetzwerk sehr von den Gegebenheiten und Wünschen des Schulträgers ab. Zum einen ist es eine Frage des Geldbeutels, zum anderen muss auch nicht jedes Netzwerk innerhalb weniger Minuten wieder verfügbar sein.

Hier einige Ideen, wie man die Ausfallsicherheit erhöhen kann:

  • qualitative Hardware → gute Hardware kostet zwar mehr, aber sie läuft oft stabiler
  • Backups, Backups → Konfigurationen, Daten, Virtuelle Maschinen, Container – an Backups führt kein Weg dran vorbei (Backups unbedingt auch testen!)
  • Monitoring → ein gutes Monitoring kann in manchen Fälle Fehler früh erkennen bzw. gibt einen Überblick, wo es im Netzwerk gerade Probleme gibt. So kann man schneller reagieren und ist nicht auf die Hinweise der Benutzer im Netzwerk angewiesen („Das Internet geht nicht mehr“, „Der Drucker ist kaputt“, …)
  • Fehlertoleranz erhöhen → auch „Failover“ genannt, d.h. zwei Netzteile im Server, mehrere Internetanschlüsse („Multi-WAN), zwei Firewalls, RAID, zwei Server, …
  • Ersatzteile vorhalten → Festplatten, Ersatzswitch, …
  • UPS/USW → Hardware bei Stromschwankungen schützen und Weiterbetrieb auch bei einem Stromausfall gewährleisten (für begrenzte Zeit)
  • „personelle Redundanz“ → besser zwei oder mehrere Administratoren bzw. Dienstleister (bei Abwesenheit durch Krankheit, Urlaub, …)
  • vorbeugende Wartungen

Fazit

Ein Schulnetzwerk ist sicher kein hochkritisches System, aber mit der fortschreitenden Digitalisierung der Schulen wird es immer wichtiger, dass die IT-Infrastruktur möglichst ohne Ausfälle erreichbar bleibt. An manchen Schulen wiegt ein Ausfall des Internets so schwer, dass kaum weiter gearbeitet werden kann (Onlinesysteme zur Verwaltung, Schulclouds, Online-Lernsysteme, Student Information Systems). Um die Ausfallsicherheit zu erhöhen, muss man nicht immer viel Geld in die Hand nehmen. Viel wichtiger ist, dass man auf einen Ausfall vorbereitet ist (v.a. bei den Single Point of Failures).

3 Kommentare

Der Beitrag Wie wichtig ist Hochverfügbarkeit in einem Schulnetzwerk? erschien zuerst auf .:zefanjas:..

Wie man sein WLAN-Netzwerk mit Freeradius absichern kann

Von: zefanja
09. Dezember 2018 um 03:35

An unserer Schule haben wir ein offenes WLAN mit einem Captive Portal sowie ein weiteres WLAN-Netz (WPA Enterprise, 802.1X), welches nur für Lehrkräfte gedacht ist. Für beide Netze nutzen wir einen RADIUS-Server für die Authentifizierung. Freeradius ist der am weitesten verbreitete OpenSource RADIUS-Server, der auch bei uns zum Einsatz kommt. In diesem Artikel wollen wir einen Freeradius-Server und Zertifikate für eine verschlüsselte Verbindung einrichten. Im Besonderen möchte ich auf die Anbindung an Linuxmuster 6.2 eingehen und die Authentifizierung mit einem LDAP-Server beschreiben.

Ein RADIUS-Server kümmert sich im Allgemeinen um 3 Dinge: Authentifizierung, Autorisierung und Accounting (oft auch als Triple-A oder AAA bezeichnet). Wir werden uns nur mit den ersten beiden „As“ beschäftigen, d.h. ob die Zugangsdaten korrekt sind und ob der Benutzer berechtigt ist, einen Zugang zu erhalten (zum WLAN z.B.).

Installation von freeradius

Die Installation führen wir auf einer aktuellen Linux-Installation (hier Ubuntu 18.04 Server) durch, z.B. in einem LXD Container oder einer virtuellen Maschine.

$ apt install freeradius freeradius-ldap freeradius-utils

Konfiguration

Grundkonfiguration

Um unseren freeradius Server zu testen, kommentieren wir folgende Zeile in /etc/freeradius/3.0/users aus oder fügen sie zu Beginn der Datei ein:

# Das Kommentarzeichen "#" vor dieser Zeile entfernen
steve Cleartext-Password := "testing"

Standardmäßig sollte in der Datei /etc/freeradius/3.0/clients.conf der localhost als Client eingerichtet sein:

client localhost {
  ipaddr = 127.0.0.1
  secret = testing123
}

Nun können wir einen ersten Test durchführen. Dazu stoppen wir den freeradius-Service und starten ihn manuell im Debug-Modus neu:

$ systemctl stop freeradius.service
$ freeradius -X
...
Ready to process request

Wichtig ist, dass am Ende „Ready to process requests“ steht.

Überprüfen der Grundkonfiguration

Als nächstes überprüfen wir, ob unser Test-Benutzer „Steve“ sich am RADIUS-Server anmelden kann (am besten in einem neuen/zweiten Terminal):

$ radtest steve testing 127.0.0.1 10 testing123

Falls alles passt, sollten wir folgende Antwort bekommen:

Sent Access-Request Id 234 from 0.0.0.0:40302 to 127.0.0.1:1812 length 75
    User-Name = "steve"
    User-Password = "testing"
    NAS-IP-Address = 10.18.10.60
    NAS-Port = 10
    Message-Authenticator = 0x00
    Cleartext-Password = "testing"
Received Access-Accept Id 234 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

Wichtig ist, dass wir ein „Received Access-Accept“ bekommen. Hat diese Anfrage geklappt ist der freeradius-Server grundlegend eingerichtet und die folgenden Authentifizierungsverfahren sollten ohne weitere Probleme klappen:

  • PAP
  • CHAP
  • MS-CHAPv1
  • MS-CHAPv2
  • PEAP
  • EAP-TTLS
  • EAP-GTC
  • EAP-MD5

Diese Verfahren sind unterschiedliche Protokolle, die verschieden „sicher“ sind. Alle verwenden einen Benutzernamen und Passwort zur Authentifizierung. Die Bedeutung der (P)EAP Verfahren kann man hier nachlesen. MS-CHAPv1 und v2 sind Verfahren aus dem Hause Microsoft.

Hinweis: Die Zeile mit unserem Benutzer „Steve“ sollten wir jetzt wieder kommentieren oder löschen!

Wir werden im Folgenden das LDAP-Modul konfigurieren und neue Zertifikate für EAP-TTLS erstellen.

LDAP Anbindung einrichten

Die Konfiguration des LDAP-Servers nehmen wir in der Datei /etc/freeradius/3.0/mods-enabled/ldap vor. Falls diese Datei nicht existiert, müssen wir vorher noch einen symbolischen Link erstellen.

$ cd /etc/freeradius/3.0/mods-enabled/
$ ln -s ../mods-available/ldap ./

Ziemlich an Anfang der Datei konfigurieren wir unseren LDAP-Server:

server = "ldaps://linuxmuster.internal.example.com"
identity = "cn=admin,dc=internal,dc=example,dc=com"
password = superSecretPassword
base_dn = "ou=accounts,dc=internal,dc=example,dc=com"

...

group {
    ...
    membership_filter = "(|(member=%{control:Ldap-UserDn})(memberUid=%{%{Stripped-User-Name}:-%{User-Name}}))"
    ...
}

Es muss sichergestellt sein, dass alle nötigen Ports für die Kommunikation zwischen dem RADIUS und LDAP-Server offen sind.

Hinweis: Wenn man Freeradius 3.0 zusammen mit linuxmuster.net v6.2 verwenden möchte, müssen noch folgende Zeilen angepasst werden, damit die Authentifizierung mit Windows klappt (sign…):

update {
            control:Password-With-Header    += 'userPassword'
            control:NT-Password             := 'sambaNTPassword'
            ...
}

LDAP Verbindung testen

Nachdem der LDAP-Server in Freeradius konfiguriert ist, müssen wir ihn einmal neustarten und können anschließend testen, ob sich ein Benutzer aus dem LDAP am RADIUS-Server anmelden kann.

$ systemctl restart freeradius.service
$ radtest testuser password localhost 10 testing123
Sent Access-Request Id 213 from 0.0.0.0:46425 to 127.0.0.1:1812 length 73
    User-Name = "testuser"
    User-Password = "password"
    NAS-IP-Address = 10.18.10.60
    NAS-Port = 10
    Message-Authenticator = 0x00
    Cleartext-Password = "password"
Received Access-Accept Id 213 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

Wenn wir wieder ein „Received Access-Accept“ als Antwort erhalten, klappt die Verbindung zwischen RADIUS und LDAP-Server. Falls es nicht klappt, sollten wir den RADIUS Server manuell starten und schauen, welche Fehler uns der RADIUS-Server ausgibt.

$ systemctl stop freeradius.service 
$ freeradius -X 
... 
Ready to process request

Zertifikate erstellen (für EAP-TTLS)

Standardmäßig verwendet Freeradius sogenannte Snake-Oil-Zertifkate, die natürlich nicht für den produktiven Einsatz gedacht sind. Deshalb erstellen wir in den folgenden Schritten eine neue Root-CA und ein Zertifikat für den Server. Die Zertifikate und die dazugehörigen Konfigurationsdateien befinden sich unter /etc/freeradius/3.0/certs/. Zuerst öffnen wir die Datei ca.cnf und ändern ein paar wenige Einstellungen:

...
[ CA_default ]
...
default_days        = 3650
...
default_md      = sha256
...

[ req ]
....
default_bits        = 2048
input_password      = supersecretandlongpassword
output_password     = supersecretandlongpassword
...

[certificate_authority]
countryName     = US
stateOrProvinceName = My State
localityName        = My Town
organizationName    = My School
emailAddress        = admin@my-school.org
commonName      = "CA Freeradius"
...

Ähnliche Einstellungen nehmen wir nun der Datei server.cnf vor:

...

[ CA_default ]
...
default_days        = 3560
...
default_md      = sha256
...

[ req ]
...
default_bits        = 2048
input_password      = supersecretandlongpassword
output_password     = supersecretandlongpassword

[server]
countryName     = US
stateOrProvinceName = My State
localityName        = My Town
organizationName    = My School
emailAddress        = admin@my-school.org
commonName      = "Freeradius Server Certificate"

Das Passwort muss jetzt auch in der Datei /etc/freeradius/3.0/mods-enabled/eap geändert werden:

tls-config tls-common {
    private_key_password = supersecretandlongpassword
    ...
}

Die Zertifikate erstellen wir mit einem einfachen make:

$ cd /etc/freeradius/3.0/certs/
$ make

EAP-TTLS Anmeldung testen

epol_test kompilieren

radtest unterstützt leider keinen Test für eine EAP-TTLS Authentifizierung. Dazu brauchen wir das Tool eapol_test, welches Teil des wpa_supplicant Pakets ist. Leider wird dieses Tool standardmäßig nicht von wpa_supplicant gebaut, deswegen müssen wir das selbst machen. Wir laden den Quellcode herunter, entpacken ihn und müssen noch einige Abhängigkeiten installieren.

$ wget https://w1.fi/releases/wpa_supplicant-2.7.tar.gz
$ tar -xzvf wpa_supplicant-2.7.tar.gz
$ apt install build-essential pkg-config libnl-3-dev libssl-dev libnl-genl-3-dev
$ cd wpa_supplicant-2.7
$ cp defconfig .config

Danach müssen wir die Datei .config öffnen und die Zeile #CONFIG_EAPOL_TEST=y  finden und das Kommentarzeichen entfernen.

$ nano .config
# Kommentarzeichen "#" entfernen
CONFIG_EAPOL_TEST=y

Mit dem folgenden Befehlen bauen wir nun das Programm und kopieren es noch an die richtige Stelle:

$ make eapol_test
$ cp eapol_test /usr/local/bin

Anmeldung testen

Um EAP-TTLS zu testen, brauchen wir für eapol_test eine kleine Config-Datei, die folgendermaßen aussehen kann:

$ nano eapol_test.conf
network={
        ssid="example"
        key_mgmt=WPA-EAP
        eap=TTLS
        identity="mustermann"
        anonymous_identity="anonymous"
        password="strenggeheim"
        phase2="auth=PAP"
}

Nun können wir eapol_test aufrufen:

$  eapol_test -c eapol_test.conf -a 127.0.0.1 -p 1812 -s testing123

Wenn man am Ende diese Ausgabe erhält, war alles erfolgreich:

MPPE keys OK: 1  mismatch: 0
SUCCESS

Clients einrichten (z.B. Accesspoints)

Bisher haben wir immer nur direkt auf dem RADIUS-Server getestet. Im Normalfall wird die Anfrage für die Authentifizierung aber von einem Accesspoint, Captive Portal oder einem Wireless Controller kommen. Diese müssen auf dem RADIUS-Server als Clients eingerichtet werden. Wir öffnen dazu die Datei /etc/freeradius/3.0/clients.conf und fügen am Ende alle Accesspoints etc. mit ihrer IP und einem Passwort / Secret ein:

$ nano /etc/freeradius/3.0/clients.conf
client AP1 {
    ipaddr = 10.0.0.10
    secret = supersecretsecret
}

Nun kann man auf dem Accesspoint ein WPA Enterprise (802.1X) Netzwerk einrichten und den RADIUS-Server mit seiner IP, den Port (1812) und dem eben festgelegten Passwort/Secret konfigurieren. Nun sollte man sich mit seinem mobilen Gerät im WLAN anmelden können.

Zugang auf bestimmte LDAP Gruppen beschränken

An unserer Schule haben nur Mitarbeiter und Lehrkräfte sowie die Oberstufenschüler Zugang zum WLAN an der Schule. In linuxmuster.net ist das über die Gruppe p_wifi gelöst. Alle, die in dieser Gruppe sind, sollen Zugang bekommen. Bisher ist unser RADIUS-Server aber so konfiguriert, dass jeder Benutzer im LDAP Zugang erhält. Um den Zugang einzuschränken, fügen wir noch folgende Zeilen in der Datei /etc/freeradius/3.0/users hinzu:

DEFAULT Ldap-Group == "cn=p_wifi,ou=groups,dc=internal,dc=example,dc=com"
DEFAULT Auth-Type := Reject
   Reply-Message = "Your are not allowed to access the WLAN!"

Freeradius und linuxmuster.net 6.2

Die Installation von Freeradius für linuxmuster.net 6.2 ist in der Dokumentation beschrieben. Bis auf ein paar wenige Details ist die Konfiguration sehr ähnlich. In Freeradius 2.0 sind die Standardeinstellungen für die Zertifikate nicht mehr zeitgemäß, sodass es zu Verbindungsproblemen mit einigen Clients kommen kann (z.B. mit einem aktuellen macOS). Hier sollte man unbedingt die Vorgaben von Freeradius 3.0 verwenden (siehe oben)!

Unterschiedliche Zugangsbeschränkungen nach WLAN-Netz

An unserer Schule haben wir ein Captive Portal für Gäste und Schüler, sowie ein WPA 802.1X (Enterprise) Netz für Mitarbeiter und Lehrkräfte. Während sich am Captive Portal alle anmelden können, die in der Gruppe p_wifi sind, sollen sie im WPA 802.1X Netzwerk nur Lehrkräfte und Mitarbeiter anmelden dürfen. Die Anfragen vom Captive Portal kommen von einer anderen IP (pfSense) als die für das WPA Enterprise Netzwerk. In der Datei /etc/freeradius/sites-enabled/inner-tunnel haben wir deshalb eine Abfrage eingebaut, die überprüft, von welcher IP die Anfrage kommt und entsprechend entscheidet, ob jemand Zugang bekommt oder nicht:

post-auth {
    ...
    #Only allow Teacher&Staff on WPA 802.1X Teacher and Staff network  
    if (NAS-IP-Address == 10.0.0.10) {
        if (LDAP-Group == "cn=teachers,ou=groups,dc=internal,dc=example,dc=com" || LDAP-Group == "cn=staff,ou=groups,dc=internal,dc=example,dc=com") {
            noop
        } else {
            reject
        }
    }
    ...
}

Fazit

Dieser Artikel beschreibt nur eine von vielen Möglichen Konfigurationen. Ein RADIUS-Server ist komplex, aber dank der guten Standardkonfiguration von Freeradius (v.a. in Version 3) kommt man recht schnell zum Erfolg. Lange Zeit hatten wir nur das Captive Portal im Einsatz und es hat auch gut funktioniert, doch die Benutzerfreundlichkeit und Sicherheit ist mit einem WPA 802.1X (Enterprise) Netzwerk nochmal gestiegen. Ohne den RADIUS-Server wäre das aber nicht möglich gewesen.

Nützliche Links:

2 Kommentare

Der Beitrag Wie man sein WLAN-Netzwerk mit Freeradius absichern kann erschien zuerst auf .:zefanjas:..

pfSense automatisieren mit pfSsh.php

Von: zefanja
28. November 2018 um 13:29

pfSense hat seit einigen Versionen eine völlig überarbeitete Oberfläche. Damit lassen sich alle Einstellungen i.d.R. gut erreichen und einstellen. Das frei konfigurierbare Dashboard ist ebenfalls eine feine Sache. Trotz allem gibt es manchmal den Fall, dass man Einstellungen gern über eine API oder die Kommandozeile vornehmen möchte. pfSense hat aktuell keine API, diese soll erst in einer der kommenden Versionen integriert werden. Bis dahin kann man sich über die pfSense Entwickler-Shell behelfen, auch pfSsh.php genannt.

Auf pfSsh.php zugreifen

Am schnellsten kommt man in die Entwickler-Shell, wenn man sich per SSH mit pfSense verbindet oder direkt einen Bildschirm an die Firewall anschließt. Wenn SSH noch nicht aktiviert ist, kann man das in der Weboberfläche unter System → Advanced nachholen.

pfSense SSH aktivieren

Besser ist es, wenn man das Einloggen mit Passwort verbietet und nur das Anmelden mit Zertifikat erlaubt.

Ist der SSH-Zugang aktivert, kann man sich nun mit dem Admin-Benutzer anmelden (IP anpassen):

$ ssh admin@192.168.1.254

pfSense CLI

Unter Punkt 12 findet man die Entwickler-Shell, die im Grunde eine PHP-Shell ist.

Beispielbefehle für pfSsh.php

Hier einige Beispielbefehle, die zeigen sollen, wie man die Shell verwenden kann. Jede Eingabe ist normaler PHP Code und muss mit exec; abgeschlossen werden.

DHCP Einstellungen anzeigen

pfSense shell: print_r($config["dhcpd"]);
pfSense shell: exec;
Array
(
    [lan] => Array
        (
            [range] => Array
                (
                    [from] => 10.0.1.7
                    [to] => 10.0.255.245
                )

        )

)

Domain festlegen

pfSense shell: $config['system']['domain'] = 'mydomain.com';
pfSense shell: write_config();
pfSense shell: exec;

Shell – Befehle ausführen

Innerhalb der PHP Shell kann man auch normale Shell-Befehle ausführen, indem man ein „!“ davor setzt:

pfSense shell: ! cat /etc/version 
pfSense shell: exec;
2.4.3-RELEASE

Befehle „aufnehmen“ und „abspielen“

Mit pfSsh.php kann man auch mehrere Befehle „aufnehmen“ und später „abspielen“. Diese sogenannten Sessions sind für wiederkehrende Aufgaben nützlich. Ein Beispiel:

pfSense shell: record echoTest
Recording of echoTest started.
pfSense shell: echo "Das\n";
pfSense shell: echo "ist\n";
pfSense shell: echo "ein\n";
pfSense shell: ! echo "Test\n"
pfSense shell: exec;
pfSense shell: stoprecording 
Recording stopped.

Die Eingaben werden unter /etc/phpshellsessions/ gespeichert und können dort bei Bedarf verändert werden.

Die „Aufnahme“ kann man nun wie folgt wiedergeben:

pfSense shell: playback echoTest

Playback of file echoTest started.

Das
ist
ein
Test

pfSense shell:

oder auch direkt von der root-Shell mit:

$ pfSsh.php playback echoTest

Fazit

pfSsh.php ist ein nützliches Werkzeug, um pfSense mit Skripten zu automatisieren oder Anpassungen vorzunehmen. Gerade, wenn man mehrere Instanzen verwaltet oder ein bestimmtes Setup immer wieder braucht, ist pfSsh.php eine große Hilfe. Man kann z.B. alle Einstellung (sprich PHP-Code) in eine Datei packen, unter /etc/phpshellsessions/ speichern und dann ausführen oder direkt die Ausgabe an pfSsh.php weiterleiten:

$ ssh admin@192.168.1.254 '/usr/local/sbin/pfSsh.php' < MeineConfig.txt

 

2 Kommentare

Der Beitrag pfSense automatisieren mit pfSsh.php erschien zuerst auf .:zefanjas:..

Stumm schalten, Maus und primärer Bildschirm – Tipps für die Kommandozeile

Von: zefanja
12. November 2018 um 23:21

Letzte Woche kam ein Kollege auf mich zu, der ein paar individuelle Anpassungen für seinen Rechner im Klassenraum haben wollte. Es waren alles Dinge, die man recht schnell in den Systemeinstellungen einstellen konnte, doch wenn man das nach jedem Start machen muss, stört es schon. Es musste also eine Lösung her, wie man diese Dinge über die Kommandozeile lösen kann, damit wir die gewünschten Änderungen in ein Skript packen können, welches dann bei Anmelden ausgeführt wird. Deshalb hier ein paar kleine Tipps für die Kommandozeile.

Ton anschalten / stumm schalten

In unserem Ubuntu-Image ist der Ton standardmäßig stumm geschaltet. Das macht in den meisten Fällen Sinn – v.a. im Computerraum. In manchen Räumen, z.B. im Musikraum oder auch allgemein an den Lehrkraftrechnern, wäre es benutzerfreundlicher, wenn der Ton automatisch eingeschaltet wird. Das geht mit folgendem Befehl:

# Ton einschalten
$ pactl set-sink-mute 0 0

Möchte man den Ton wieder stumm schalten, muss die letzte Null durch eine „1“ ersetzt werden:

# Ton stumm schalten
$ pactl set-sink-mute 0 1

Primären Bildschirm festlegen

In den meisten Räumen wird standardmäßig der Bildschirm gespiegelt, sobald ein Beamer oder Bildschirm über den HDMI-Switch angeschlossen wird. Im konkreten Fall nutzt der Kollege den Rechner in „seinem“ Raum mehr oder weniger allein und er wollte gern ein Setup mit einem erweiterten Bildschirm. Ubuntu platziert allerdings den Launcher / Starter standardmäßig auf dem Bildschirm mit der größeren Auflösung. Hier brauchten wir eine Lösung, wie man den primären Bildschirm per Kommandozeile umstellen kann, sodass der Hauptbildschirm der Monitor am Lehrertisch ist. Das lässt sich leicht mit xrandr lösen.

$ xrandr --output DVI-0 --primary

DVI-0 ist der Ausgang, an dem der Monitor auf dem Lehrertisch hängt. Über xrandr -q kann man sich alle verfügbaren Anschlüsse anzeigen lassen.

Mauszeiger Geschwindigkeit einstellen

Eigentlich geht es weniger um die Geschwindigkeit, als um die Beschleunigung des Mauszeigers. Wie kann man die Geschwindigkeit des Mauszeigers per Kommandozeile einstellen? Es gibt verschiedene Wege z.B. mit xset oder xinput. Wir haben uns über den Weg mit xinput entschieden. Allgemein kann man die Eigenschaften eines Eingabegerätes wie folgt einstellen:

$ xinput --set-prop Geräte-ID Eigenschafts-ID Wert

Die Geräte-ID bekommen wir indem wir xinput ohne Parameter oder mit --list ausführen. Hier im Beispiel ist eine kabellose Maus angeschlossen.

Mauszeiger Geschwindigkeit

Als nächstes brauchen wir noch die richtige Eigenschaft-ID. Diese bekommen wir über folgenden Befehl heraus („9“ ist unsere Geräte-ID):

$ xinput --list-props 9

Maus Beschleunigung

Um die Beschleunigung der Maus einzustellen, müssen wir den Wert bei Accel Speed (Eigenschaft-ID ist 290) verändern. Es sind Werte zwischen -1 und +1 zugelassen. Um z.B. die Mausbeschleunigung zu verlangsamen, können wir das mit diesem Befehl tun:

$ xinput --set-prop 9 290 -1

Fazit

Alle diese kleinen Änderungen haben wir in ein Skript gepackt und dann per Postsync an den entsprechenden Rechner verteilt. Diese Flexibilität, die Ubuntu oder in unserem Fall linuxmuster.net bietet, ist eines der Hauptargumente, warum wir es einsetzen.

Welche netten und nützlichen Tipps für die Kommandozeile kennst du?

4 Kommentare

Der Beitrag Stumm schalten, Maus und primärer Bildschirm – Tipps für die Kommandozeile erschien zuerst auf .:zefanjas:..

❌
❌