<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Open Source on zefanjas.de - Open Source &amp; Education</title>
    <link>https://zefanjas.de/tags/open-source/</link>
    <description>Recent content in Open Source on zefanjas.de - Open Source &amp; Education</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>de-DE</language>
    <lastBuildDate>Sat, 16 Dec 2023 07:37:23 +0000</lastBuildDate><atom:link href="https://zefanjas.de/tags/open-source/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Einführung in Anki 23.10</title>
      <link>https://zefanjas.de/einfuehrung-in-anki-23-10/</link>
      <pubDate>Sat, 16 Dec 2023 07:37:23 +0000</pubDate>
      
      <guid>https://zefanjas.de/einfuehrung-in-anki-23-10/</guid>
      <description>&lt;p&gt;Anki ist eine Karteikarten-App mit einem sehr sehr guten Algorithmus, der einem hilft, das Gelernte nicht mehr zu vergessen. Wie man &lt;a href=&#34;https://zefanjas.de/lernen-ohne-zu-vergessen-mit-anki/&#34;&gt;lernt ohne zu Vergessen&lt;/a&gt; habe ich bereits in meinem letzten Artikel kurz beschrieben. Vor kurzem habe ich den Schülern meiner Schule eine Einführung in Anki gegeben. Dazu habe ich auch einige Videos und Tutorials aufgenommen.&lt;/p&gt;
&lt;h2 class=&#34;wp-block-heading&#34; id=&#34;anki-2310&#34;&gt;Anki 23.10&lt;/h2&gt;
&lt;p&gt;Vor kurzem wurde eine neue Version von Anki veröffentlicht, die mindestens zwei tolle Features enthält.&lt;/p&gt;
&lt;p&gt;Das eine ist ein neuer Algorithmus (&lt;a href=&#34;https://github.com/open-spaced-repetition/fsrs4anki/&#34;&gt;FSRS&lt;/a&gt;), der aktuell einer der &lt;a href=&#34;https://www.reddit.com/r/Anki/comments/18csuer/fsrs_is_now_the_most_accurate_spaced_repetition/&#34;&gt;besten Spaced-Repetition-Algorithmen&lt;/a&gt; ist. Im Prinzip ist dieser Algorithmus das Herzstück von Anki, da er dafür verantwortlich ist, mir genau die Karten zu zeigen, die ich am vergessen bin. Je genauer eine App diesen Zeitpunkt berechnen kann, umso länger kann ich Dinge in meinem Gedächtnis behalten, ohne das ich sie vergesse.&lt;/p&gt;
&lt;p&gt;Ein weiteres tolles Feature ist der neue Notiztyp „Bildverdeckung“, der jetzt nativ integriert wurde. Damit kann ich Teile von von Zeichnungen, Tabellen, Vorlesungsfolien etc. einfach abdecken und damit lernen. Auf die 3 wichtigsten Typen gehe ich in folgenden Video ein:&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube-nocookie.com/embed/HVyks8XRJHM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;h2 class=&#34;wp-block-heading&#34; id=&#34;einführung-in-anki&#34;&gt;Einführung in Anki&lt;/h2&gt;
&lt;p&gt;Anki hat eine etwas steile Lernkurve, d.h. es dauert ein bisschen, bis man die App verstanden und durchdrungen hat. Auf der einen Seite ist sie sehr simpel aufgebaut, auf der anderen gleichzeitig sehr flexibel und erweiterbar. Daher ist es hilfreich, wenn man sich zu Beginn die ersten 5 &lt;a href=&#34;https://docs.ankiweb.net/&#34;&gt;Kapitel der Dokumentation&lt;/a&gt; durchliest.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/@Anki4School&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2023/12/Anki4SchoolHD-1-1024x576.png&#34; alt=&#34;Anki4School&#34;&gt;&lt;/a&gt;
Für meine Schüler habe ich ein paar &lt;a href=&#34;https://www.youtube.com/playlist?list=PL4qiwBYCDtJS0gyY062b-SmzDefRffA-D&#34;&gt;einleitende Videos&lt;/a&gt; erstellt, die die Schritte von der Installation bis zur ersten Benutzung beschreiben. Weitere folgen noch in den nächsten Wochen und Monaten.&lt;/p&gt;
&lt;h2 class=&#34;wp-block-heading&#34; id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Anki ist eine tolle App, die das Lernen sehr effektiv und effizient macht. Es liegt nicht so sehr an der App an sich, sondern eher daran, dass sie auf einer wissenschaftlich sehr gut untersuchte Lerntechnik basiert. Die &lt;a href=&#34;https://pcl.sitehost.iu.edu/rgoldsto/courses/dunloskyimprovinglearning.pdf&#34;&gt;Meta-Studie von John Dunlosky&lt;/a&gt; vergleicht verschiedene beliebte Lerntechniken und kommt ganz klar zu dem Ergebnis, dass verteiltes Wiederholen und Selbsttests die Lerntechniken sind, die den größten Effekt habe.&lt;/p&gt;
&lt;p&gt;Ich möchte jeden ermutigen, egal welchen Alters, sich einmal mit dieser App auseinanderzusetzen und den sogenannten „spacing effect“ an sich selbst zu erfahren. Lernen (fast) ohne zu vergessen ist möglich 🙂&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Lernen ohne zu vergessen mit Anki</title>
      <link>https://zefanjas.de/lernen-ohne-zu-vergessen-mit-anki/</link>
      <pubDate>Mon, 09 Oct 2023 05:00:48 +0000</pubDate>
      
      <guid>https://zefanjas.de/lernen-ohne-zu-vergessen-mit-anki/</guid>
      <description>&lt;p&gt;In den letzten Jahren habe ich mich immer wieder mit Erkenntnissen aus der Lernforschung auseinandergesetzt, um mein persönliches Lernen aber auch das Lernen an unserer &lt;a href=&#34;https://zefanjas.de/tag/schule/&#34;&gt;Schule&lt;/a&gt; stetig zu verbessern. Ein Begriff, der mir dabei immer wieder begegnete, ist „Spaced Repetition“. Was das mit „Lernen ohne zu vergessen“ und mit Anki zu tun, möchte ich in diesem Artikel kurz beschreiben.&lt;/p&gt;
&lt;h2 class=&#34;wp-block-heading&#34; id=&#34;was-ist-8222spaced-repetion8220&#34;&gt;Was ist „Spaced Repetion“?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://de.wikipedia.org/wiki/Spaced_repetition&#34;&gt;Spaced Repetition&lt;/a&gt; kann man am besten mit „zeitlich verteilte Wiederholung“ oder „verteilte Wiederholung“ übersetzen. Im Grunde geht es darum, dass ich Lerninhalte idealerweise dann wiederhole, kurz bevor ich sie vergessen habe. Wenn man Lernen als einen Kampf gegen das Vergessen bezeichnet, ist genau das wichtig: Wiederholen bevor mein Gedächtnis das Gelernte vergessen hat.&lt;/p&gt;
&lt;p&gt;Immer dann, wenn ich Gelerntes wiederhole und mich daran erinnern kann, verlängert sich die „Speicherdauer“ in meinem Gedächtnis.&lt;/p&gt;
&lt;p&gt;Wir alle kennen diesen Effekt. Wenn ich in meiner Schulzeit für einen Vokabeltest gelernt habe (meist am Tag davor 🙂 ), habe ich die meisten Vokabeln nach 3 Tagen wieder vergessen. Dass ist auch der Grund, warum ich mich nur noch an ganz wenige Französischvokabeln erinnern kann, obwohl ich 5 Jahre Sprachunterricht hatte. Hätte ich jedoch jeden Tag eine kleine Menge an Vokabeln gelernt und wiederholt, hätte ich mich wesentlich länger an sie erinnern können. Hier mal eine Grafik, die das Prinzip veranschaulicht:
&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2023/10/Forgetting_curve_and_work_of_Ebbinghaus.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Zusammenfassung: Wenn ich etwas Gelerntes im richtigen Moment wiederhole, kann ich die „Speicherdauer“ im Langzeitgedächtnis deutlich verlängern.&lt;/p&gt;
&lt;p&gt;Doch woher weiß ich, wann der richtige Zeitpunkt ist, um etwas zu wiederholen? Ich möchte ja nur die Dinge wiederholen, die ich gerade am Vergessen bin und nicht die, die ich noch weiß. Das ist eine sehr wichtige Frage. Wenn ich zu viele Dinge wiederhole (v.a. Lerninhalte, die ich noch weiß), steigt mein zeitlicher Aufwand für die Wiederholungen. Wenn ich zu wenige Lerninhalte wiederhole, steigt die Chance, dass ich Dinge vergesse und ich sie letztendlich neu lernen muss.&lt;/p&gt;
&lt;h2 class=&#34;wp-block-heading&#34; id=&#34;anki&#34;&gt;Anki&lt;/h2&gt;
&lt;p&gt;Genau an diesem Punkt kommt &lt;a href=&#34;http://ankiweb.net/&#34;&gt;Anki&lt;/a&gt; ins Spiel. Anki ist eine &lt;a href=&#34;https://zefanjas.de/tag/open-source/&#34;&gt;Open Source&lt;/a&gt; Karteikartensoftware, die mir die Arbeit der Berechnung der richtigen Intervalle abnimmt, sodass ich nur noch das wiederhole, was ich kurz vor dem Vergessen bin. Das genau ist es, was diese Lernmethode so effizient macht, denn nun kann ich Dinge in weniger Zeit lernen bzw. mehr in der gleichen Zeit, die ich bisher zum Lernen aufgewendet habe.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2023/10/grafik.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Anki ist eine sehr mächtige und flexible Anwendung, die sich durch viele &lt;a href=&#34;https://ankiweb.net/shared/addons&#34;&gt;Erweiterungen&lt;/a&gt; anpassen lässt. Das sorgt auch dafür, dass die Lernkurve für diese App etwas steiler ist. Deshalb empfehle ich, dass man sich am besten ein paar einführende Videos anschaut.&lt;/p&gt;
&lt;p&gt;Karteikarten kann man sich entweder selbst erstellen oder nutzt eines der &lt;a href=&#34;https://ankiweb.net/shared/decks&#34;&gt;fertigen Lernpakete&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class=&#34;wp-block-heading&#34; id=&#34;lernen-ohne-zu-vergessen-8211-eine-utopie&#34;&gt;Lernen ohne zu vergessen – eine Utopie?&lt;/h2&gt;
&lt;p&gt;Persönlich nutze ich Anki seit ca. 1 Jahr. Hauptsächlich lerne ich damit Vokabeln (ja, auch wieder Französisch…), &lt;a href=&#34;https://biblez.de&#34;&gt;Bibelverse / -texte&lt;/a&gt;, Markierungen / Zitate aus Büchern, die ich gelesen habe und alles, was mich sonst noch so interessiert. Ich bin total begeistert von den Ergebnissen. Ich hätte nicht gedacht, dass es so leicht ist, sich Dinge langfristig im Gedächtnis zu behalten.&lt;/p&gt;
&lt;p&gt;Wo ist der Haken? Damit das mit den Wiederholen zum richtigen Zeitpunkt auch klappt, &lt;em&gt;muss&lt;/em&gt; ich meine Wiederholungen &lt;em&gt;jeden&lt;/em&gt; Tag machen. Je nachdem wie viele Karten man lernt, können das 5 Minuten am Tag sein oder auch 2 Stunden. Der Schlüssel zum Erfolg ist die tägliche Wiederholung. Es dauert vielleicht ein paar Wochen bis man diese neue Gewohnheit in seinen Alltag integriert hat, aber man wird belohnt mit der Erfahrung, dass dieses Prinzip der verteilten Wiederholung wirklich funktioniert und unser Gedächtnis sich viele (&lt;em&gt;sehr viele)&lt;/em&gt; Dinge merken kann.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Neue GUI für LINBO</title>
      <link>https://zefanjas.de/neue-gui-fuer-linbo/</link>
      <pubDate>Fri, 15 Jan 2021 05:16:30 +0000</pubDate>
      
      <guid>https://zefanjas.de/neue-gui-fuer-linbo/</guid>
      <description>&lt;p&gt;LINBO ist eines der wesentlichen &lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;Features&lt;/a&gt; von &lt;a href=&#34;https://linuxmuster.net&#34;&gt;linuxmuster.net&lt;/a&gt; – einer freien &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserverlösung&lt;/a&gt;. Mit &lt;a href=&#34;https://zefanjas.de/tag/linbo&#34;&gt;LINBO&lt;/a&gt; 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 &lt;a href=&#34;https://zefanjas.de/schulserverloesung-linuxmuster-net-version-7-veroeffentlicht/&#34;&gt;Version 7&lt;/a&gt; hat linuxmuster.net ein neues &amp;amp; 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.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;
&lt;p&gt;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 &lt;code&gt;/etc/apt/sources.list.d/lmn7.list&lt;/code&gt; und ändert die Einträge wie folgt ab:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb https://archive.linuxmuster.net lmn7-testing/
deb-src https://archive.linuxmuster.net lmn7-testing/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach kann man nach einem &lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade&lt;/code&gt; die neue GUI für LINBO installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ apt install linuxmuster-linbo-gui7
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Fertig.&lt;/p&gt;
&lt;h2 id=&#34;neue-optionen-für-die-startconf&#34;&gt;Neue Optionen für die start.conf&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;UseMinimalLayout = yes
Locale = en-US
BackgroundColor = 0c2842
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Man kann also neben der Hintergrundfarbe auch die Sprache einstellen. &lt;em&gt;UseMinimalLayout = yes&lt;/em&gt; sorgt dafür, dass LINBO in mit einer minimalistischen GUI startet (die aber sehr schick aussieht, siehe Screenshots).&lt;/p&gt;
&lt;h2 id=&#34;screenshots&#34;&gt;Screenshots&lt;/h2&gt;
&lt;figure&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/bootscreen-linbo.png&#34;
    alt=&#34;Linbo Bootscreen&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_123.png&#34;
    alt=&#34;LINBO Standard Layout (hell)&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_115.png&#34;
    alt=&#34;LINBO Standard Layout (dunkel)&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_122.png&#34;
    alt=&#34;LINBO Minimalistische GUI&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_116.png&#34;
    alt=&#34;LINBO Admin Menü&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_118.png&#34;
    alt=&#34;Client registrieren&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_119.png&#34;
    alt=&#34;Neues Image erstellen&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_117.png&#34;
    alt=&#34;LINBO Terminal&#34;&gt;
&lt;/figure&gt;

&lt;figure class=&#34;attachment-thumbnail size-thumbnail&#34;&gt;&lt;img src=&#34;https://zefanjas.de/wp-content/uploads/2021/01/Auswahl_121.png&#34;
    alt=&#34;Betriebssystem synchronisieren&#34;&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Mir gefällt die neue GUI sehr. Sie sieht toll &amp;amp; modern aus und lässt sich gut bedienen. Vielen Dank an &lt;a href=&#34;https://github.com/CodeCrafter912&#34;&gt;Dorian Zedler&lt;/a&gt;!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>pfBlockerNG – Werbung und unerwünschte Inhalte filtern</title>
      <link>https://zefanjas.de/pfblockerng/</link>
      <pubDate>Wed, 21 Oct 2020 14:13:32 +0000</pubDate>
      
      <guid>https://zefanjas.de/pfblockerng/</guid>
      <description>&lt;p&gt;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 (&lt;a href=&#34;https://ublockorigin.com/&#34;&gt;uBlock Origin&lt;/a&gt;, &lt;a href=&#34;https://github.com/gorhill/uMatrix&#34;&gt;uMatrix&lt;/a&gt;, 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 &lt;a href=&#34;https://zefanjas.de/tag/pfsense/&#34;&gt;pfSense&lt;/a&gt; und pfBlockerNG netzwerkweit filtern kann. Das ist z.B. sinnvoll in einem Heim- oder &lt;a href=&#34;https://zefanjas.de/tag/pfsense/&#34;&gt;Schulnetzwerk&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;pfblockerng-installieren&#34;&gt;pfBlockerNG installieren&lt;/h2&gt;
&lt;p&gt;Zuerst loggen wir uns in pfSense ein und öffnen den Package Manager. Dort wählen wir pfBlockerNG-devel unter „Available Packages“ aus:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-3019 size-large&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_129-1024x502.png&#34; alt=&#34;pfBlockerNG installieren&#34; width=&#34;640&#34; height=&#34;314&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_129-1024x502.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_129-300x147.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_129-768x376.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_129-551x270.png 551w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_129.png 1163w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Mit „Install“ können wir das Paket installieren. PfSense lädt nun das pfBlockerNG Paket herunter und fügt es der Firewall hinzu.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-3020 size-large&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_130-1024x222.png&#34; alt=&#34;pfblockerng installation fertig&#34; width=&#34;640&#34; height=&#34;139&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_130-1024x222.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_130-300x65.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_130-768x167.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_130-604x131.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_130.png 1174w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;h2 id=&#34;pfblockerng-ersteinrichtung&#34;&gt;pfBlockerNG Ersteinrichtung&lt;/h2&gt;
&lt;p&gt;Als nächsten werden wir pfBlockerNG konfigurieren. Dazu gehen wir zu &lt;em&gt;Firewall  → pfBlockerNG&lt;/em&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-3021&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_131.png&#34; alt=&#34;pfblockerNG Menü&#34; width=&#34;537&#34; height=&#34;306&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_131.png 537w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_131-300x171.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_131-474x270.png 474w&#34; sizes=&#34;(max-width: 537px) 100vw, 537px&#34; /&gt; 
&lt;p&gt;Es begrüßt und ein Assistent, der uns bei der Einrichtung von pfBlockerNG helfen wird. Mit „Next“ geht es weiter.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3022&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_132-1024x278.png&#34; alt=&#34;pfBlockerNG Assistent Seite 1&#34; width=&#34;640&#34; height=&#34;174&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_132-1024x278.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_132-300x82.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_132-768x209.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_132-604x164.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_132.png 1163w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Auf der nächsten Seite wird erklärt, welche Dinge nun eingerichtet werden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es wird ein Standard-Setup für Anfänger mit pfBlockerNG eingerichtet.&lt;/li&gt;
&lt;li&gt;Falls man vorher schon einmal pfBlockerNG installiert hatte, werden alle Einstellungen gelöscht.&lt;/li&gt;
&lt;li&gt;Zwei Komponenten werden installiert:
&lt;ul&gt;
&lt;li&gt;IP: Firewall-Regeln für die WAN-Schnittstelle, um die schlimmsten bekannten Angreifer zu sperren.&lt;/li&gt;
&lt;li&gt;DNSBL: Werbung und andere bekannte bösartige Domains werden geblockt.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mit „Next“ geht es wieder weiter.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3023&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_133-1024x387.png&#34; alt=&#34;pfBlockernNG Assistent Seite 2&#34; width=&#34;640&#34; height=&#34;242&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_133-1024x387.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_133-300x113.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_133-768x290.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_133-604x228.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_133.png 1162w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;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.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3024&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_134-1024x297.png&#34; alt=&#34;pfBlockerNG Schnittstellen&#34; width=&#34;640&#34; height=&#34;186&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_134-1024x297.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_134-300x87.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_134-768x223.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_134-604x175.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_134.png 1158w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;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.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3025&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_135-1024x392.png&#34; alt=&#34;pfBlockerNG VIP Adresse&#34; width=&#34;640&#34; height=&#34;245&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_135-1024x392.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_135-300x115.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_135-768x294.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_135-604x231.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_135.png 1162w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Das Setup ist nun fertig und wir können den Assistenten mit einem Klick auf „Finish“ beenden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3026&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_136-1024x260.png&#34; alt=&#34;pfBlockerNG Setup Ende&#34; width=&#34;640&#34; height=&#34;163&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_136-1024x260.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_136-300x76.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_136-768x195.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_136-604x153.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_136.png 1164w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Danach öffnet sich die pfBlockerNG Updateseite und es werden automatisch alle aktivierten Blocklisten heruntergeladen und aktiviert.&lt;/p&gt;
&lt;h2 id=&#34;pfblockerng-einrichten&#34;&gt;pfBlockerNG einrichten&lt;/h2&gt;
&lt;p&gt;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 &amp;amp; flexibles Werkzeug. Deshalb möchte ich gern ein paar Einstellungen hervorheben.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Wichtig:&lt;/strong&gt; Damit geänderte Einstellungen auch wirksam werden (egal, ob DNSBL oder IP), müssen wir unter &lt;em&gt;Update → Reload → All&lt;/em&gt; &lt;em&gt;→ Run&lt;/em&gt; ausführen, damit die (geänderten) Listen heruntergeladen und aktiviert werden.&lt;br&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3039&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_145-1024x374.png&#34; alt=&#34;pfblockerng update&#34; width=&#34;640&#34; height=&#34;234&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_145-1024x374.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_145-300x110.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_145-768x281.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_145-604x221.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_145.png 1168w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;ip&#34;&gt;IP&lt;/h3&gt;
&lt;p&gt;Im IP Reiter, empfehle ich folgende Einstellungen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;Kill States → Enable. Wenn pfBlockerNG die Blocklisten aktualisiert, werden alle aktiven Verbindungen zu IPs in den Listen zurückgesetzt.&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3031&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_139-1024x530.png&#34; alt=&#34;pfblockerNG IP Einstellungen&#34; width=&#34;640&#34; height=&#34;331&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_139-1024x530.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_139-300x155.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_139-768x398.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_139-522x270.png 522w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_139.png 1163w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;geoip-blocking&#34;&gt;GeoIP Blocking&lt;/h3&gt;
&lt;p&gt;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 &lt;em&gt;IP → MaxMind GeoIP Configuration&lt;/em&gt; eintragen. Danach muss man einmal unter &lt;em&gt;Update → Reload → IP&lt;/em&gt; die GeoIP Datenbanken herunterladen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3028&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_137-1-1024x312.png&#34; alt=&#34;pfblocker geoip&#34; width=&#34;640&#34; height=&#34;195&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_137-1-1024x312.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_137-1-300x92.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_137-1-768x234.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_137-1-604x184.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_137-1.png 1157w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Nun können wir unter &lt;em&gt;IP → GeoIP&lt;/em&gt; 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).&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-medium wp-image-3030&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_138-206x300.png&#34; alt=&#34;Top Spammer&#34; width=&#34;206&#34; height=&#34;300&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_138-206x300.png 206w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_138-185x270.png 185w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_138.png 594w&#34; sizes=&#34;(max-width: 206px) 100vw, 206px&#34; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;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!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;dnsbl--feeds&#34;&gt;DNSBL / Feeds&lt;/h3&gt;
&lt;p&gt;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 &lt;em&gt;Feeds&lt;/em&gt; 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.&lt;/p&gt;
&lt;p&gt;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 „+“:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3034&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_140-1024x92.png&#34; alt=&#34;Feed hinzufügen&#34; width=&#34;640&#34; height=&#34;58&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_140-1024x92.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_140-300x27.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_140-768x69.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_140-604x54.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_140.png 1155w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Es öffnet sich eine Seite auf der wir Details zu dem Feed einstellen können. Folgende Felder sind wichtig:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;State: ON&lt;/li&gt;
&lt;li&gt;Action: Unbound&lt;/li&gt;
&lt;li&gt;Update Frequency: Once a day&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3035&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_142-1024x442.png&#34; alt=&#34;Feed Details&#34; width=&#34;640&#34; height=&#34;276&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_142-1024x442.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_142-300x129.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_142-768x331.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_142-604x261.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_142.png 1166w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Manchmal möchte man einen Feed hinzufügen, der nicht in der Liste ist (z.B. einzelne &lt;a href=&#34;https://github.com/StevenBlack/hosts&#34;&gt;Feeds von Steven Black&lt;/a&gt;). Dazu gehen wir zu &lt;em&gt;DNSBL → DNSBL Groups&lt;/em&gt; und klicken unten auf „Add“:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3036&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_143-1024x394.png&#34; alt=&#34;Feed hinzufügen&#34; width=&#34;640&#34; height=&#34;246&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_143-1024x394.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_143-300x115.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_143-768x295.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_143-604x232.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_143.png 1162w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;Auf der nächsten Seite geben wir der DNSBL Gruppe einen Namen und fügen und &lt;em&gt;DNSBL Source Definitions&lt;/em&gt; unseren Feed (oder mehrere) hinzu.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name: StevenBlack&lt;/li&gt;
&lt;li&gt;State: ON&lt;/li&gt;
&lt;li&gt;Source: &lt;a href=&#34;https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts&#34;&gt;https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Header / Label: Glückspiel&lt;/li&gt;
&lt;li&gt;Action: Unbound&lt;/li&gt;
&lt;li&gt;Update Frequency: Once a day&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mit „&lt;em&gt;Save&lt;/em&gt;“ schließen wir den Vorgang ab.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3041&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146-1024x568.png&#34; alt=&#34;Custom Feed&#34; width=&#34;640&#34; height=&#34;355&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146-1024x568.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146-300x166.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146-768x426.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146-487x270.png 487w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146-1038x576.png 1038w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_146.png 1165w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;h3 id=&#34;whitelists&#34;&gt;Whitelists&lt;/h3&gt;
&lt;p&gt;Wenn eine Domain nicht geblockt werden soll, muss man sie unter &lt;em&gt;DNSBL → DNSBL Whitelist&lt;/em&gt; 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.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3042&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_147-1024x505.png&#34; alt=&#34;DNSBL whitelist&#34; width=&#34;640&#34; height=&#34;316&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_147-1024x505.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_147-300x148.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_147-768x379.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_147-548x270.png 548w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_147.png 1152w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;h3 id=&#34;safesearch&#34;&gt;SafeSearch&lt;/h3&gt;
&lt;p&gt;Unter &lt;em&gt;DNSBL → DNSBL SafeSearch&lt;/em&gt; 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.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3043&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_148-1024x315.png&#34; alt=&#34;DNSBL SafeSearch&#34; width=&#34;640&#34; height=&#34;197&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_148-1024x315.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_148-300x92.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_148-768x236.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_148-604x186.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_148.png 1163w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;h2 id=&#34;pfsense-als-dns-server-erzwingen&#34;&gt;pfSense als DNS Server erzwingen&lt;/h2&gt;
&lt;p&gt;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 (&lt;a href=&#34;https://docs.netgate.com/pfsense/en/latest/recipes/dns-block-external.html&#34;&gt;mehr Details hier&lt;/a&gt;):&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-3044&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_149-1024x69.png&#34; alt=&#34;DNS Regel&#34; width=&#34;640&#34; height=&#34;43&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_149-1024x69.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_149-300x20.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_149-768x52.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_149-604x41.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/Auswahl_149.png 1162w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;pfBlockerNG ist ein tolles &lt;a href=&#34;https://zefanjas.de/die-5-besten-open-source-anwendungen-fuer-eine-schule/&#34;&gt;Open Source Projekt&lt;/a&gt;. Es hilft Werbung, unerwünschte Inhalte und ganze Netzbereiche zu &lt;a href=&#34;https://zefanjas.de/pfsense-webfilter-squidguard-fuer-https-verbindungen/&#34;&gt;filtern&lt;/a&gt;. 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. &lt;a href=&#34;https://pi-hole.net/&#34;&gt;pi-hole&lt;/a&gt;, 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!&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Nutzt du pfBlockerNG oder pi-hole in deinem (Schul)Netzwerk?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Die 5 besten Open Source Anwendungen für eine Schule</title>
      <link>https://zefanjas.de/die-5-besten-open-source-anwendungen-fuer-eine-schule/</link>
      <pubDate>Fri, 09 Oct 2020 00:39:51 +0000</pubDate>
      
      <guid>https://zefanjas.de/die-5-besten-open-source-anwendungen-fuer-eine-schule/</guid>
      <description>&lt;p&gt;Seit vielen Jahren setzen wir stark auf Open Source Anwendungen in unserer Schule – auf dem Server, aber auch auf den Computern und Laptops. Vor allem im Serverbereich ist Open Source Software weit verbreitet und es gibt viele tolle Softwareprojekte, die sich wunderbar in einer Schule einsetzen lassen. Heute möchte ich deshalb meine 5 Favoriten vorstellen.&lt;/p&gt;
&lt;h2 id=&#34;koha&#34;&gt;Koha&lt;/h2&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;size-full wp-image-3008 alignnone&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/index.png&#34; alt=&#34;koha&#34; width=&#34;420&#34; height=&#34;120&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/index.png 420w, https://zefanjas.de/wp-content/uploads/2020/10/index-300x86.png 300w&#34; sizes=&#34;(max-width: 420px) 100vw, 420px&#34; /&gt; 
&lt;p&gt;&lt;a href=&#34;http://koha-community.org/&#34;&gt;Koha&lt;/a&gt; ist ein integriertes Bibliothekssystem. Es wird weltweit in öffentlichen, Schul- und anderen Bibliotheken eingesetzt. Auch wir haben vor ca. 5 Jahren unsere Bibliothek auf diese Software umgestellt. &lt;a href=&#34;https://zefanjas.de/tag/koha/&#34;&gt;Koha&lt;/a&gt; bringt sehr viele Features mit und ist flexibel in der Konfiguration. Der Einstieg ist, wenn man nicht gerade vom Fach ist, etwas steil, aber man wird dafür mit einem tollen System belohnt. Wer mehr über Koha und den Einsatz in Schulen erfahren möchte, sollte sich diese &lt;a href=&#34;https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/&#34;&gt;kleine Blog-Post Serie&lt;/a&gt; anschauen.&lt;/p&gt;
&lt;h2 id=&#34;xcp-ng--lxd&#34;&gt;xcp-ng / LXD&lt;/h2&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;alignnone size-thumbnail wp-image-3011&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/XCP-ng-logo-150x150.png&#34; alt=&#34;xcp-ng&#34; width=&#34;150&#34; height=&#34;150&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/XCP-ng-logo-150x150.png 150w, https://zefanjas.de/wp-content/uploads/2020/10/XCP-ng-logo.png 200w&#34; sizes=&#34;(max-width: 150px) 100vw, 150px&#34; /&gt; 
&lt;p&gt;Mein nächster Favorit betrifft die Serverinfrastruktur. Wer eigene Server in der Schule betreibt, muss sich mit der Frage beschäftigen, welchen Hypervisor er einsetzen will. Die Auswahl ist groß und man kann zwischen einigen Open Source Optionen wählen. Wir haben uns vor Jahren für xcp-ng entschieden (aus XenServer hervorgegangen). Dazu setzen wir &lt;a href=&#34;https://zefanjas.de/xen-orchestra-installieren-und-aktualisieren-vollversion/&#34;&gt;XenOrchestra&lt;/a&gt; ein, um die Server zu verwalten. Mit &lt;a href=&#34;http://xcp-ng.org/&#34;&gt;xcp-ng&lt;/a&gt; verwalten wir unsere virtuellen Maschinen.&lt;/p&gt;
&lt;p&gt;Die meisten unserer (Web)Anwendungen laufen aber in Linuxcontainern. Dafür verwenden wir &lt;a href=&#34;https://linuxcontainers.org/lxd/introduction/&#34;&gt;LXD&lt;/a&gt; – ein Container-Hypervisor. LXD bringt mit lxc einen sehr einfach zu bedienende Anwendung mit, um Container zu erstellen, Backups zu erstellen, usw. Der große Vorteil von Linuxcontainern ist für mich, dass ich sie genauso wie eine virtuelle Maschine verwalten, konfigurieren und administrieren kann. Dafür sind sie wesentlich ressourcensparender als eine VM. Seit dem 4.0 Release kann man sogar „richtige“ VMs mit &lt;a href=&#34;http://zefanjas.de/tag/lxd&#34;&gt;LXD&lt;/a&gt; erstellen und verwalten!&lt;/p&gt;
&lt;h2 id=&#34;pfsense&#34;&gt;pfSense&lt;/h2&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;alignnone wp-image-3012 size-medium&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-300x88.png&#34; alt=&#34;pfsense&#34; width=&#34;300&#34; height=&#34;88&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-300x88.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-1024x301.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-768x226.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-1536x452.png 1536w, https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-2048x602.png 2048w, https://zefanjas.de/wp-content/uploads/2020/10/PfSense_logo-604x178.png 604w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt; 
&lt;p&gt;Für mich ist &lt;a href=&#34;http://pfsense.org/&#34;&gt;pfSense&lt;/a&gt; eines der besten Open Source Firewall Systeme. &lt;a href=&#34;https://zefanjas.de/tag/pfsense/&#34;&gt;PfSense&lt;/a&gt; kann man einfach installieren und benutzen und läuft seit Jahren sehr stabil in unserem Netzwerk. Mit &lt;a href=&#34;https://docs.netgate.com/pfsense/en/latest/packages/pfblocker.html&#34;&gt;pfBlockerNG&lt;/a&gt; hat man zusätzlich ein sehr mächtiges Werkzeug, um Werbung, Malwareseiten u.v.a. aus dem Netzwerk fernzuhalten (Webfilter auf DNS Basis).&lt;/p&gt;
&lt;h2 id=&#34;linuxmusternet&#34;&gt;linuxmuster.net&lt;/h2&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;alignnone size-medium wp-image-3013&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/logo-linuxmuster-color-rgb-positiv-300x52.png&#34; alt=&#34;linuxmuster.net&#34; width=&#34;300&#34; height=&#34;52&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/logo-linuxmuster-color-rgb-positiv-300x52.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/logo-linuxmuster-color-rgb-positiv-768x133.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/logo-linuxmuster-color-rgb-positiv-604x105.png 604w, https://zefanjas.de/wp-content/uploads/2020/10/logo-linuxmuster-color-rgb-positiv.png 1016w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt; 
&lt;p&gt;Über &lt;a href=&#34;http://linuxmuster.net/&#34;&gt;linuxmuster.net&lt;/a&gt; habe ich schon oft in diesem Blog geschrieben. &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;Linuxmuster.net&lt;/a&gt; ist eine Open Source Schulserverlösung, mit der man Benutzer (Lehrkräfte, Schüler/innen) und Schulcomputer einfach verwalten kann. LINBO, ein Werkzeug von linuxmuster.net, ist für mich eines der wichtigsten Features, denn damit kann ich alle Schulcomputer mit nur einem Image verwalten, auch wenn sie unterschiedliche Konfigurationen haben.&lt;/p&gt;
&lt;h2 id=&#34;nextcloud&#34;&gt;Nextcloud&lt;/h2&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;alignnone size-medium wp-image-3014&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Nextcloud_Logo.svg_-300x213.png&#34; alt=&#34;nextcloud&#34; width=&#34;300&#34; height=&#34;213&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/Nextcloud_Logo.svg_-300x213.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/Nextcloud_Logo.svg_-1024x726.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/Nextcloud_Logo.svg_-768x544.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/Nextcloud_Logo.svg_-381x270.png 381w, https://zefanjas.de/wp-content/uploads/2020/10/Nextcloud_Logo.svg_.png 1280w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt; 
&lt;p&gt;&lt;a href=&#34;https://nextcloud.com/&#34;&gt;Nextcloud&lt;/a&gt; darf in dieser Liste nicht fehlen. Gerade in den letzten Monaten sind eine Menge neuer Features dazugekommen, die auch im Schulumfeld sehr nützlich sind. Nextcloud ist dabei weit mehr, als nur eine gemeinsame Dateiablage. Durch die vielen Erweiterungen kann man Nextcloud sehr an die individuellen Bedürfnisse anpassen. Egal ob Online Office Suite, Videokonferenz oder einfach nur ein gemeinsamer Kalender – vieles ist mit Nextcloud möglich.&lt;/p&gt;
&lt;h2 id=&#34;bonus-zammad&#34;&gt;Bonus: Zammad&lt;/h2&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;alignnone size-medium wp-image-3015&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/10/zammad-300x83.png&#34; alt=&#34;zammad&#34; width=&#34;300&#34; height=&#34;83&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/10/zammad-300x83.png 300w, https://zefanjas.de/wp-content/uploads/2020/10/zammad-1024x285.png 1024w, https://zefanjas.de/wp-content/uploads/2020/10/zammad-768x214.png 768w, https://zefanjas.de/wp-content/uploads/2020/10/zammad-1536x427.png 1536w, https://zefanjas.de/wp-content/uploads/2020/10/zammad-2048x570.png 2048w, https://zefanjas.de/wp-content/uploads/2020/10/zammad-604x168.png 604w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt; 
&lt;p&gt;Noch eine kleine Bonusempfehlung am Ende: Zammad. In den letzten Jahren haben wir verschiedene Service Desk / Helpdesk Anwendungen ausprobiert. Letztendlich sind wir bei Zammad gelandet und es gefällt uns sehr gut. Wie auch alle anderen Empfehlungen hier, bringt es viele nette Features mit. Es lässt sich gut in die bestehende Infrastruktur integrieren und man kann über viele verschiedene Kanäle Tickets erstellen (Soziale Netzwerke, eMail, Chat, …).&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Die Liste hier könnte man noch beliebig erweitern. Gerade für den Infrastrukturbereich gibt es eine große Menge an Open Source Anwendungen. Allein diese Liste spricht für sich: &lt;a href=&#34;https://github.com/awesome-selfhosted/awesome-selfhosted&#34;&gt;https://github.com/awesome-selfhosted/awesome-selfhosted&lt;/a&gt;. &lt;a href=&#34;https://moodle.org/&#34;&gt;Moodle&lt;/a&gt; oder &lt;a href=&#34;https://mahara.org/&#34;&gt;Mahara&lt;/a&gt; sollten eigentlich auch noch mit aufgenommen werden, aber damit haben wir bisher kaum Erfahrung sammeln können.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Open Source Anwendungen gehören zu deinen Favoriten, die in keiner Schule fehlen sollten?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Zeiterfassung mit Watson</title>
      <link>https://zefanjas.de/zeiterfassung-mit-watson/</link>
      <pubDate>Sat, 12 Sep 2020 07:54:49 +0000</pubDate>
      
      <guid>https://zefanjas.de/zeiterfassung-mit-watson/</guid>
      <description>&lt;p&gt;Heute möchte ich ein Kommandozeilen-Werkzeug vorstellen, dass ich seit einigen Monaten zur Zeiterfassung benutze. Bis &lt;a href=&#34;https://zefanjas.de/category/ubuntu/&#34;&gt;Ubuntu&lt;/a&gt; 18.04 habe ich immer das Hamster-Applet verwendet, was wirklich toll war. Unter 20.04 funktioniert dieses Applet aber nicht mehr. Deshalb habe ich mich nach Alternativen umgeschaut und bin bei &lt;a href=&#34;https://tailordev.github.io/Watson/&#34;&gt;Watson&lt;/a&gt; gelandet – ein Werkzeug für die Kommandozeile. Die Zeiterfassung mit Watson ist anders als mit dem Hamster-Applet, doch schauen wir uns zuerst die Installation an.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Watson ist ein Python-Programm und man installiert es am besten mit dem Python Paket Manager pip:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install python3-pip
$ sudo pip3 install td-watson
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit die Bedienung einfacher wird, installieren wir noch die Bash-Autovervollständigung:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /etc/bash_completion.d/
$ wget https://raw.githubusercontent.com/TailorDev/Watson/master/watson.completion
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit die Autovervollständigung auch funktioniert, muss man den Terminal neu starten.&lt;/p&gt;
&lt;h2 id=&#34;bedienung-von-watson&#34;&gt;Bedienung von Watson&lt;/h2&gt;
&lt;p&gt;Es gibt eine Reihe von Befehlen, die einem helfen, die Zeit zu erfassen, Zusammenfassungen anzuzeigen oder einzelne Projekte zu verwalten. Die wichtigsten stelle ich kurz vor:&lt;/p&gt;
&lt;h3 id=&#34;zeit-eines-projekts-erfassen&#34;&gt;Zeit eines Projekts erfassen&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ watson start Projektname +Schlagwort1 +Schlagwort2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im Hintergrund wird damit ein „Frame“ oder Zeitabschnitt angelegt für das Projekt inkl. der beiden Schlagwörter. Mit Schlagwörtern kann man z.B. die Zeit für Unterprojekte / Teilaufgaben erfassen.&lt;/p&gt;
&lt;p&gt;Mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ watson stop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;beende ich die Zeiterfassung für das Projekt wieder.&lt;/p&gt;
&lt;h3 id=&#34;andere-hilfreiche-befehle&#34;&gt;Andere hilfreiche Befehle&lt;/h3&gt;
&lt;p&gt;Manchmal kommt es vor, dass ich vergesse „watson stop“ auszuführen. Mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ watson edit
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;kann ich den letzten Zeitabschnitt / „Frame“ bearbeiten:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2997&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/09/Auswahl_109.png&#34; alt=&#34;watson edit&#34; width=&#34;502&#34; height=&#34;175&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/09/Auswahl_109.png 502w, https://zefanjas.de/wp-content/uploads/2020/09/Auswahl_109-300x105.png 300w&#34; sizes=&#34;(max-width: 502px) 100vw, 502px&#34; /&gt; 
&lt;p&gt;Um das letzte Projekt neu zu starten, reicht ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ watson restart
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Um mir eine Zusammenfassung meiner Projekte anzuschauen, kann ich folgende Befehle benutzen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ watson report // letzte 7 Tage
$ watson report -m // aktueller Monat
$ watson report -f &amp;#34;2020-08-01&amp;#34; -t &amp;#34;2020-08-31&amp;#34; // Report vom 01.08. bis 31.08.2020
$ watson aggregate // zeigt eine Zusammenfassung der letzten 7 Tage an (für jeden Tag einzeln)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Weitere nützliche Befehle erhält man mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ watson --help
$ watson Befehl --help
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Watson ist ein wirklich einfach zu bedienendes Kommandozeilen-Werkzeug. Die Zeiterfassung mit Watson gefällt mir wirklich gut, obwohl ich das Hamster-Applet auch sehr praktisch fand. Es gibt einzelne &lt;a href=&#34;https://tailordev.fr/blog/2016/03/31/watson-community-tools/&#34;&gt;Community-Projekte&lt;/a&gt; rund um Watson, die die Arbeit damit noch einmal verbessern, z.B. ein &lt;a href=&#34;https://github.com/jnsebgosselin/qwatson&#34;&gt;GUI&lt;/a&gt; und andere nette Kleinigkeiten. Ein Feature, welches meiner Meinung nach noch fehlt, ist die Möglichkeit Notizen zu einem Zeitabschnitt hinzuzufügen. Es gibt dafür einen Pull Request, aber er ist noch nicht im Projekt.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welches Tool benutzt du zur Zeiterfassung?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Koha LDAP / AD Verbindung einrichten</title>
      <link>https://zefanjas.de/koha-ldap-verbindung-einrichten/</link>
      <pubDate>Thu, 23 Jul 2020 09:40:21 +0000</pubDate>
      
      <guid>https://zefanjas.de/koha-ldap-verbindung-einrichten/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://koha-community.org/&#34;&gt;Koha&lt;/a&gt; ist eine freie Bibliothekssoftware, die wir &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;an unserer Schule verwenden&lt;/a&gt;. Wir verwalten damit unsere Lehrmittel- als auch unsere Schulbibliothek. Vorher haben wir LITTERA dafür verwendet, doch seit letztem Sommer sind wir &lt;a href=&#34;https://zefanjas.de/umstieg-von-littera-zu-koha-teil-1/&#34;&gt;komplett auf Koha umgestiegen&lt;/a&gt;. Der Kern unserer Schulinfrastruktur ist ein &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-1/&#34;&gt;linuxmuster.net&lt;/a&gt; &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserver&lt;/a&gt;. Jeder Schüler und Kollege hat einen schulinternen Benutzernamen, den man für die Anmeldung an unseren Schulcomputern braucht. &lt;a href=&#34;http://www.linuxmuster.net&#34;&gt;linuxmuster.net&lt;/a&gt; bringt dafür einen LDAP Server mit. In diesem Artikel möchte ich zeigen, wie man in Koha die LDAP Verbindung einrichtet, sodass sich alle Benutzer in der Bibliothek mit ihrem schulinternen Login anmelden können.&lt;/p&gt;
&lt;h3 id=&#34;koha-an-active-directory--ad-anbinden-ab-linuxmusternet-v7&#34;&gt;Koha an Active Directory / AD anbinden (ab linuxmuster.net v7)&lt;/h3&gt;
&lt;p&gt;Linuxmuster.net v7 bringt einen Samba 4 Active Directory mit sich. Dadurch hat sich auch die Anbindung an Koha im Vergleich zur Vorgängerversion geändert. Die Einstellungen befinden sich immer noch in der &lt;em&gt;&lt;strong&gt;/etc/koha/sites/library/koha-conf.xml&lt;/strong&gt;&lt;/em&gt; (falls die Koha-Instanz &lt;em&gt;library&lt;/em&gt; heißt). Diese Datei müssen wir nun wie folgt bearbeiten:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;amp;lt;ldapserver id=&amp;#34;ldapserver&amp;#34;  listenref=&amp;#34;ldapserver&amp;#34;&amp;amp;gt;
  &amp;amp;lt;hostname&amp;amp;gt;ldaps://10.16.1.1&amp;amp;lt;/hostname&amp;amp;gt;
  &amp;amp;lt;base&amp;amp;gt;ou=schools,dc=linuxmuster,dc=net&amp;amp;lt;/base&amp;amp;gt;
  &amp;amp;lt;user&amp;amp;gt;cn=global-binduser,ou=Management,ou=GLOBAL,dc=linuxmuster,dc=net&amp;amp;lt;/user&amp;amp;gt;&amp;amp;lt;!-- DN, if not anonymous --&amp;amp;gt;
  &amp;amp;lt;pass&amp;amp;gt;Bind-User-Passwort&amp;amp;lt;/pass&amp;amp;gt;&amp;amp;lt;!-- password, if not anonymous --&amp;amp;gt;
  &amp;amp;lt;replicate&amp;amp;gt;1&amp;amp;lt;/replicate&amp;amp;gt;       &amp;amp;lt;!-- add new users from LDAP to Koha database --&amp;amp;gt;
  &amp;amp;lt;update&amp;amp;gt;1&amp;amp;lt;/update&amp;amp;gt;             &amp;amp;lt;!-- update existing users in Koha database --&amp;amp;gt;
  &amp;amp;lt;anonymous_bind&amp;amp;gt;0&amp;amp;lt;/anonymous_bind&amp;amp;gt;
  &amp;amp;lt;auth_by_bind&amp;amp;gt;1&amp;amp;lt;/auth_by_bind&amp;amp;gt; &amp;amp;lt;!-- set to 1 to authenticate by binding instead of password comparison --&amp;amp;gt;
  &amp;amp;lt;principal_name&amp;amp;gt;%s@linuxmuster.net&amp;amp;lt;/principal_name&amp;amp;gt;
  &amp;amp;lt;update_password&amp;amp;gt;0&amp;amp;lt;/update_password&amp;amp;gt;
  &amp;amp;lt;!-- optional, for auth_by_bind: a printf format to make userPrincipalName from koha userid --&amp;amp;gt;
  &amp;amp;lt;mapping&amp;amp;gt;             &amp;amp;lt;!-- match koha SQL field names to your LDAP record field names --&amp;amp;gt;
   &amp;amp;lt;userid       is=&amp;#34;samAccountName&amp;#34;&amp;amp;gt;&amp;amp;lt;/userid&amp;amp;gt;
   &amp;amp;lt;email        is=&amp;#34;mail&amp;#34;&amp;amp;gt;&amp;amp;lt;/email&amp;amp;gt;
  &amp;amp;lt;/mapping&amp;amp;gt;
&amp;amp;lt;/ldapserver&amp;amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dazu ein paar kurze Hinweise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;hostname&gt;&lt;/strong&gt;: Hier müssen wir die Addresse des LDAP-Servers (der linuxmuster.net Server) angeben. Weiterhin müssen wir sichergehen, dass unser Koha Server den LDAP-Server auch über die Ports (TCP/UDP 636) für LDAPS erreichen kann.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;base&gt;&lt;/strong&gt;: Der LDAP Pfad für unsere Benutzeraccounts. Die Domain am Ende muss wahrscheinlich angepasst werden.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;user&gt;&lt;/strong&gt;: der Bind-User, damit Koha an die Benutzerdaten herankommt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;pass&gt;&lt;/strong&gt;: Das Passwort des Bind-Users. Es befindet sich auf dem linuxmuster.net Server unter &lt;em&gt;&lt;strong&gt;/etc/linuxmuster/.secret/global-binduser&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;replicate&gt;&lt;/strong&gt;: Wenn sich ein Benutzer per LDAP anmeldet, möchten wir, dass er auch ein Koha-Konto bekommt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;update&gt;&lt;/strong&gt;: Diese Option brauchen wir, damit Benutzer mit Informationen aus dem LDAP aktualisiert werden, falls bereits ein Koha-Konto existiert.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;auth_by_bind&amp;gt;&lt;/strong&gt;: Für die Überprüfung der Anmeldedaten wollen wir den Bind-User verwenden. Für Active Directory muss diese Option 1 sein.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;principal_name&amp;gt;&lt;/strong&gt;: Das ist wahrscheinlich der schwierigste Teil. Am besten eignet sich der &lt;em&gt;userPrincipalName&lt;/em&gt; aus dem AD. Bei linuxmuster.net v7 steht dort &lt;a href=&#34;mailto:user@linuxmuster.net&#34;&gt;user@linuxmuster.net&lt;/a&gt; (Domain wieder anpassen!). User wird hier durch %s ersetzt (das wiederrum durch das mapping weiter unten bestimmt wird).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;mapping&gt;&lt;/strong&gt;: Hier können wir festlegen, welche Daten aus dem LDAP welches Attribut in Koha überschreiben soll. Wichtig ist vor allem &lt;em&gt;userid&lt;/em&gt;, denn diese wird verwendet, um das %s in &amp;lt;principal_name&amp;gt; zu ersetzen. Bei Samba 4 / AD sieht das Mapping so aus: &lt;userid is=&amp;#8220;_samAccountName_&amp;#8222;&gt;&lt;/userid&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;konfiguration-für-koha-ldap-verbindung-anpassen-bis-linuxmusternet-v62&#34;&gt;Konfiguration für Koha LDAP Verbindung anpassen (bis linuxmuster.net v6.2)&lt;/h3&gt;
&lt;p&gt;Koha speichert seine Einstellungen in der Datei &lt;em&gt;&lt;strong&gt;koha-conf.xml&lt;/strong&gt;&lt;/em&gt;. Diese Datei befindet sich unter &lt;em&gt;&lt;strong&gt;/etc/koha/sites/library/koha-conf.xml&lt;/strong&gt;&lt;/em&gt;, falls die Koha-Instanz &lt;em&gt;library&lt;/em&gt; heißt. Diese Datei öffnen wir mit einem Editor unserer Wahl und suchen den Eintrag &lt;code&gt;&amp;lt;useldapserver&amp;gt;0&amp;lt;/useldapserver&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo nano /etc/koha/sites/library/koha-conf.xml
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Dokumentation für die Koha LDAP Verbindung ist leider nicht sehr ausführlich. Die wesentlichen Informationen findet man in der &lt;a href=&#34;https://perldoc.koha-community.org/C4/Auth_with_ldap.html#LDAP_Configuration&#34;&gt;Perl-Dokumentation&lt;/a&gt; zum Koha LDAP-Modul. Auf dieser Seite finden wir eine Beispielkonfiguration, die wir größtenteils übernehmen können. Ein paar kleine Änderungen sind allerdings notwendig, damit die Integration zwischen Linuxmuster und Koha auch gut funktioniert. Zuerst ändern wir &lt;code&gt;&amp;lt;useldapserver&amp;gt;0&amp;lt;/useldapserver&amp;gt;&lt;/code&gt; in &lt;code&gt;&amp;lt;useldapserver&amp;gt;1&amp;lt;/useldapserver&amp;gt;&lt;/code&gt;, um Koha mitzuteilen, dass wir gern einen LDAP-Server für die Anmeldung verwenden wollen. Direkt danach fügen wir folgende Zeilen ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;amp;lt;ldapserver id=&amp;#34;ldapserver&amp;#34;  listenref=&amp;#34;ldapserver&amp;#34;&amp;amp;gt;
  &amp;amp;lt;hostname&amp;amp;gt;ldaps://10.16.1.1&amp;amp;lt;/hostname&amp;amp;gt;
  &amp;amp;lt;base&amp;amp;gt;ou=Accounts,dc=linuxmuster,dc=net&amp;amp;lt;/base&amp;amp;gt;
  &amp;amp;lt;user&amp;amp;gt;cn=admin,dc=linuxmuster,dc=net&amp;amp;lt;/user&amp;amp;gt;&amp;amp;lt;!-- DN, if not anonymous --&amp;amp;gt;
  &amp;amp;lt;pass&amp;amp;gt;Bind-User-Passwort&amp;amp;lt;/pass&amp;amp;gt;&amp;amp;lt;!-- password, if not anonymous --&amp;amp;gt;
  &amp;amp;lt;replicate&amp;amp;gt;1&amp;amp;lt;/replicate&amp;amp;gt;       &amp;amp;lt;!-- add new users from LDAP to Koha database --&amp;amp;gt;
  &amp;amp;lt;update&amp;amp;gt;1&amp;amp;lt;/update&amp;amp;gt;             &amp;amp;lt;!-- update existing users in Koha database --&amp;amp;gt;
  &amp;amp;lt;auth_by_bind&amp;amp;gt;1&amp;amp;lt;/auth_by_bind&amp;amp;gt; &amp;amp;lt;!-- set to 1 to authenticate by binding instead of password comparison, e.g., to use A$
  &amp;amp;lt;principal_name&amp;amp;gt;uid=%s,ou=Accounts,dc=internal,dc=cdsc,dc=ac,dc=th&amp;amp;lt;/principal_name&amp;amp;gt;
  &amp;amp;lt;!-- optional, for auth_by_bind: a printf format to make userPrincipalName from koha userid --&amp;amp;gt;
  &amp;amp;lt;mapping&amp;amp;gt;             &amp;amp;lt;!-- match koha SQL field names to your LDAP record field names --&amp;amp;gt;
   &amp;amp;lt;userid       is=&amp;#34;uid&amp;#34;&amp;amp;gt;&amp;amp;lt;/userid&amp;amp;gt;
   &amp;amp;lt;password     is=&amp;#34;userpassword&amp;#34;&amp;amp;gt;&amp;amp;lt;/password&amp;amp;gt;
   &amp;amp;lt;email        is=&amp;#34;mail&amp;#34;&amp;amp;gt;&amp;amp;lt;/email&amp;amp;gt;
  &amp;amp;lt;/mapping&amp;amp;gt;
&amp;amp;lt;/ldapserver&amp;amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dazu ein paar kurze Hinweise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;hostname&gt;&lt;/strong&gt;: Hier müssen wir die Addresse des LDAP-Servers (der linuxmuster.net Server) angeben. Weiterhin müssen wir sichergehen, dass unser Koha Server den LDAP-Server auch über die Ports (TCP/UDP 636) für LDAPS erreichen kann.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;base&gt;&lt;/strong&gt;: Der LDAP Pfad für unsere Benutzeraccounts. Die Domain am Ende muss wahrscheinlich angepasst werden.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;user&gt;&lt;/strong&gt;: der Bind-User, damit Koha an die Benutzerdaten herankommt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;pass&gt;&lt;/strong&gt;: Das Passwort des Bind-Users. Es befindet sich auf dem linuxmuster.net Server unter &lt;em&gt;&lt;strong&gt;/etc/ldap/ldap.secret&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;replicate&gt;&lt;/strong&gt;: Wenn sich ein Benutzer per LDAP anmeldet, möchten wir, dass er auch ein Koha-Konto bekommt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;update&gt;&lt;/strong&gt;: Diese Option brauchen wir, damit Benutzer mit Informationen aus dem LDAP aktualisiert werden, falls bereits ein Koha-Konto existiert.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;auth_by_bind&amp;gt;&lt;/strong&gt;: Für die Überprüfung der Anmeldedaten wollen wir den Bind-User verwenden.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;mapping&gt;&lt;/strong&gt;: Hier können wir festlegen, welche Daten aus dem LDAP welches Attribut in Koha überschreiben soll. Wichtig ist vor allem &lt;em&gt;userid&lt;/em&gt; und &lt;em&gt;password&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;koha-ldap--ad-verbindung-testen&#34;&gt;Koha LDAP / AD Verbindung testen&lt;/h3&gt;
&lt;p&gt;Um die LDAP Verbindung zu testen, rufen wir die Koha OPAC Seite auf und melden uns mit einem linuxmuster.net Benutzeraccount an. Sollte es Probleme beim Laden der Website geben oder die Anmeldung nicht klappen, kann man auf dem Koha-Server unter &lt;em&gt;&lt;strong&gt;/var/log/koha/library/opac-error.log&lt;/strong&gt;&lt;/em&gt; nachschauen, woran es liegt.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2432&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_191.png&#34; alt=&#34;koha login&#34; width=&#34;343&#34; height=&#34;260&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_191.png 343w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_191-300x227.png 300w&#34; sizes=&#34;(max-width: 343px) 100vw, 343px&#34; /&gt; 
&lt;p&gt;Falls die Anmeldung erfolgreich war, sieht man eine Liste mit den aktuellen Ausleihen des Benutzers:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2434&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_190-1.png&#34; alt=&#34;koha user&#34; width=&#34;871&#34; height=&#34;469&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_190-1.png 871w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_190-1-300x162.png 300w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_190-1-768x414.png 768w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_190-1-501x270.png 501w&#34; sizes=&#34;(max-width: 871px) 100vw, 871px&#34; /&gt; 
&lt;h3 id=&#34;koha-ldap--ad-verbindung-per-kommandzeile-testen&#34;&gt;Koha LDAP / AD Verbindung per Kommandzeile testen&lt;/h3&gt;
&lt;p&gt;Gerade beim Einrichten der Verbindung zum LDAP / AD Server geht es schneller, wenn man direkt auf der Kommandozeile testen kann, ob die Konfiguration richtig ist. Dazu gibt man die folgenden Befehle ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ service koha-common restart &amp;amp;&amp;amp; service memcached restart
$ export PERL5LIB=/usr/share/koha/lib/ &amp;amp;&amp;amp; export KOHA_CONF=/etc/koha/sites/library/koha-conf.xml &amp;amp;&amp;amp; perl /usr/share/koha/opac/cgi-bin/opac/opac-user.pl userid=user1 password=foo
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Pfad zur &lt;em&gt;koha-conf.xml&lt;/em&gt;, sowie &lt;em&gt;user&lt;/em&gt; und &lt;em&gt;password&lt;/em&gt; müssen wir natürlich noch anpassen.&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Die Einrichtung der LDAP Verbindung in Koha bringt für unsere Schule einen großen Mehrwert. Vorher war es mit LITERRA nicht möglich, dass einzelne Benutzer ihre aktuellen Ausleihen sehen konnten. Weiterhin müssen jetzt die Benutzerdaten nur noch an einem Ort gepflegt werden und nicht in verschiedenen Programmen. Die Bedienung über ein Webinterface ist für alle Bibliotheksmitarbeiter ein großer Gewinn und eine Arbeitserleichterung. Der Einstieg in Koha ist vielleicht etwas steiler als in andere Bibliotheksprogramme, aber die Möglichkeiten und Flexibilität dieser Open Source Software sind beeindruckend.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man ein gesperrtes BIOS entsperren kann</title>
      <link>https://zefanjas.de/gesperrtes-bios-entsperren/</link>
      <pubDate>Thu, 16 Jul 2020 13:06:27 +0000</pubDate>
      
      <guid>https://zefanjas.de/gesperrtes-bios-entsperren/</guid>
      <description>&lt;p&gt;An unserer Schule haben wir in den letzten Jahren keine BIOS Passwörter vergeben. Das war bisher auch kein Problem (v.a. für &lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;Linbo&lt;/a&gt;), 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?&lt;/p&gt;
&lt;p&gt;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?&lt;/p&gt;
&lt;p&gt;Nein, ist sie auch nicht. In unserem Fall haben wir unsere Laptops mit Hilfe der folgenden Website entsperrt: &lt;a href=&#34;https://bios-pw.org/&#34;&gt;https://bios-pw.org/&lt;/a&gt;&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-2977&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075-1024x542.png&#34; alt=&#34;BIOS Passwort&#34; width=&#34;640&#34; height=&#34;339&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075-1024x542.png 1024w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075-300x159.png 300w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075-768x406.png 768w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075-1536x813.png 1536w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075-510x270.png 510w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_075.png 1557w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;p&gt;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.&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2978&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_076.png&#34; alt=&#34;BIOS Masterpasswort&#34; width=&#34;805&#34; height=&#34;313&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_076.png 805w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_076-300x117.png 300w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_076-768x299.png 768w, https://zefanjas.de/wp-content/uploads/2020/07/Auswahl_076-604x235.png 604w&#34; sizes=&#34;(max-width: 805px) 100vw, 805px&#34; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WICHTIG:&lt;/strong&gt; Auch wenn eine deutsche Tastatur verbaut ist, geht das BIOS von einer US-Tastaturbelegung (&lt;strong&gt;QWERTY&lt;/strong&gt;) aus! Bei uns hat der Code nur geklappt, wenn man &lt;strong&gt;STRG + ENTER&lt;/strong&gt; gedrückt hat. Nur ENTER allein hat nicht gereicht.&lt;/p&gt;
&lt;p&gt;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).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fazit:&lt;/strong&gt; BIOS Passwörter machen Sinn – vor allem in einer Schule 🙂&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Schulserverlösung linuxmuster.net Version 7 veröffentlicht</title>
      <link>https://zefanjas.de/schulserverloesung-linuxmuster-net-version-7-veroeffentlicht/</link>
      <pubDate>Fri, 17 Apr 2020 01:58:26 +0000</pubDate>
      
      <guid>https://zefanjas.de/schulserverloesung-linuxmuster-net-version-7-veroeffentlicht/</guid>
      <description>&lt;p&gt;Knapp vier Jahre nach dem letzten Release wurde heute die neue Version 7 von linuxmuster.net &lt;a href=&#34;https://www.linuxmuster.net/de/2020/04/17/linuxmuster-net-version-7/https://www.linuxmuster.net/de/2020/04/17/linuxmuster-net-version-7/&#34;&gt;veröffentlicht&lt;/a&gt;. Damit ist ein weiterer wichtiger Meilenstein in der Geschichte der freien Open Source Schulserverlösung erreicht.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Zum Release wird es &lt;strong&gt;heute&lt;/strong&gt; (17.04.) um &lt;strong&gt;15:00 Uhr (MESZ)&lt;/strong&gt; eine kleine Präsentation der LMN 7 geben (virtuell über BigBlueButton): &lt;a href=&#34;https://bz-pfinztal7.dynalias.org/b/gad-tnt-hdg&#34;&gt;https://bz-pfinztal7.dynalias.org/b/gad-tnt-hdg&lt;/a&gt;. Das Passwort für den Raum wird ca. 15min vorher &lt;a href=&#34;https://ask.linuxmuster.net/t/releaspraesentation-am-freitag-15-uhr/5196&#34;&gt;hier veröffnetlicht&lt;/a&gt;. Jeder ist herzlich eingeladen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;was-ist-neu&#34;&gt;Was ist neu?&lt;/h2&gt;
&lt;p&gt;Mit Version 7 haben sich einige Dinge im Vergleich zu den Vorversionen geändert. Hier die wichtigsten Änderungen im Überblick:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;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)&lt;/li&gt;
&lt;li&gt;OPNSense ersetzt die bisherige Firewall (IPFire)&lt;/li&gt;
&lt;li&gt;neue Schulkonsole (webbasierte Administration) ist moderner (Responsive Design, etc.)&lt;/li&gt;
&lt;li&gt;Version 7 ist mehrschulfähig, d.h. es lassen sich mit einer Installation mehrere Schulen verwalten&lt;/li&gt;
&lt;li&gt;Netzwerksegmente / IP-Bereiche sind frei wählbar (das war vorher nur sehr eingeschränkt der Fall)&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2969&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite.png&#34; alt=&#34;Schulkonsole&#34; width=&#34;2929&#34; height=&#34;2000&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite.png 2929w, https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite-300x205.png 300w, https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite-1024x699.png 1024w, https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite-768x524.png 768w, https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite-1536x1049.png 1536w, https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite-2048x1398.png 2048w, https://zefanjas.de/wp-content/uploads/2020/04/WebUI-Global-Admin-Hauptseite-395x270.png 395w&#34; sizes=&#34;(max-width: 2929px) 100vw, 2929px&#34; /&gt; 
&lt;h2 id=&#34;weitere-bekannte-features&#34;&gt;weitere (bekannte) Features&lt;/h2&gt;
&lt;p&gt;Neben den oben genannten Veränderungen bringt linuxmuster.net noch weitere Features mit, die bereits in den vorhergehenden Versionen enthalten waren.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/tag/linbo/&#34;&gt;Linbo&lt;/a&gt; – 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 „&lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;Warum Linbo eines der besten Features von linuxmuster.net ist&lt;/a&gt;„).&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;umsteigen&#34;&gt;Umsteigen?&lt;/h2&gt;
&lt;p&gt;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 (&lt;a href=&#34;https://zefanjas.de/welche-linux-distributionen-sind-fuer-schulen-geeignet/&#34;&gt;Ubuntu? Kubuntu? Xubuntu?&lt;/a&gt;) ersetzt werden soll.&lt;/p&gt;
&lt;p&gt;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 (&lt;a href=&#34;https://ask.linuxmuster.net&#34;&gt;https://ask.linuxmuster.net&lt;/a&gt;) ist sehr hilfbereich und man bekommt Hilfe zu allen Themen rund um Schul-IT.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wekan – eine Open Source Trello Alternative</title>
      <link>https://zefanjas.de/wekan-open-source-trello-alternative/</link>
      <pubDate>Fri, 03 Apr 2020 07:25:21 +0000</pubDate>
      
      <guid>https://zefanjas.de/wekan-open-source-trello-alternative/</guid>
      <description>&lt;p&gt;In den letzten Wochen habe ich eine Software ausprobiert, die schon lange auf meiner Liste stand: &lt;a href=&#34;https://wekan.github.io/&#34;&gt;Wekan&lt;/a&gt;. Wekan ist eine Open Source Alternative für Trello, einer &lt;a href=&#34;https://de.wikipedia.org/wiki/Kanban-Tafel&#34;&gt;Kanban-Software&lt;/a&gt;. 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.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Wekan kann man auf verschiedene Art und Weise installieren (manuell, Docker, snap, …). Wir werden es heute in einem LXD Container (Ubuntu 18.04) einrichten (&lt;a href=&#34;https://zefanjas.de/tag/lxd/&#34;&gt;LXD Container&lt;/a&gt; waren hier schon mehrmals Thema im Blog). Als erstes erstellen wir einen Container für Wekan:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc launch ubuntu:b wekan
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nachdem der Container erstellt und gestartet ist, loggen wir uns im Container ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc exec wekan bash
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wir werden Wekan als Snap installieren. In den Ubuntu LXD Container ist snapd schon installiert. Wir können also direkt Wekan installieren mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ snap install wekan
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun legen wir die Haupt-URL und den Port für Wekan fest:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ snap set wekan root-url=&amp;#34;http://wekan.example.com&amp;#34;
$ snap set wekan port=&amp;#34;80&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Optional kann man noch einstellen, das Updates automatisch installiert werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ snap set core refresh.schedule=02:00-04:00
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Fertig 🙂&lt;/p&gt;
&lt;h2 id=&#34;einrichtung&#34;&gt;Einrichtung&lt;/h2&gt;
&lt;p&gt;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 &lt;a href=&#34;https://zefanjas.de/netzwerkbruecke-fuer-lxd-container-einrichten/&#34;&gt;Netzwerkbrücke für den Container&lt;/a&gt; einzurichten. Alternativ kann man auch Nginx als Reverse Proxy verwenden. Hinweise zur Einrichtung findet man im &lt;a href=&#34;https://github.com/wekan/wekan/wiki/Nginx-Webserver-Config&#34;&gt;Wiki von Wekan&lt;/a&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2956 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_394-1.png&#34; alt=&#34;Wekan Login&#34; width=&#34;356&#34; height=&#34;411&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_394-1.png 356w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_394-1-260x300.png 260w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_394-1-234x270.png 234w&#34; sizes=&#34;(max-width: 356px) 100vw, 356px&#34; /&gt; 
&lt;p&gt;&lt;strong&gt;Hinweis:&lt;/strong&gt; Der erste Benutzer, den wir einrichten, ist Administrator für Wekan.&lt;/p&gt;
&lt;p&gt;Wir klicken als auf Registrieren und legen einen neuen Benutzer an.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2955&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_395.png&#34; alt=&#34;Wekan Registrieren&#34; width=&#34;344&#34; height=&#34;467&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_395.png 344w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_395-221x300.png 221w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_395-199x270.png 199w&#34; sizes=&#34;(max-width: 344px) 100vw, 344px&#34; /&gt; 
&lt;p&gt;Wenn wir nun auf &lt;strong&gt;Registrieren&lt;/strong&gt; klicken, erscheint eine Fehlermeldung („Internal Server Error“). Das liegt daran, weil wir noch keinen EMail-Server eingerichtet haben.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2954&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_396.png&#34; alt=&#34;Wekan Error&#34; width=&#34;348&#34; height=&#34;108&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_396.png 348w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_396-300x93.png 300w&#34; sizes=&#34;(max-width: 348px) 100vw, 348px&#34; /&gt; 
&lt;p&gt;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.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2957 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_398.png&#34; alt=&#34;wekan open source&#34; width=&#34;922&#34; height=&#34;251&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_398.png 922w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_398-300x82.png 300w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_398-768x209.png 768w, https://zefanjas.de/wp-content/uploads/2020/04/Auswahl_398-604x164.png 604w&#34; sizes=&#34;(max-width: 922px) 100vw, 922px&#34; /&gt; 
&lt;p&gt;Nun können wir neue Boards in diesen neue Listen und Karten erstellen. Die Funktionsweise ist dem von Trello sehr ähnlich.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man Telegram in Zammad integrieren kann</title>
      <link>https://zefanjas.de/telegram-in-zammad-integrieren/</link>
      <pubDate>Sat, 02 Nov 2019 06:42:14 +0000</pubDate>
      
      <guid>https://zefanjas.de/telegram-in-zammad-integrieren/</guid>
      <description>&lt;p&gt;An unserer Schule verwenden wir &lt;a href=&#34;https://zammad.com&#34;&gt;Zammad&lt;/a&gt; als &lt;a href=&#34;https://zefanjas.de/tag/zammad/&#34;&gt;Support-Plattform bzw. Helpdesk&lt;/a&gt;. 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.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hinweis: Die Integration von Telegram klappt nur, wenn Zammad öffentlich per HTTPS erreichbar ist!&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;telegram-bot-erstellen&#34;&gt;Telegram-Bot erstellen&lt;/h2&gt;
&lt;p&gt;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 &lt;a href=&#34;https://core.telegram.org/bots#3-how-do-i-create-a-bot&#34;&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Zuerst sucht man den „Vater aller Bots“ – Botfather und gibt folgenden Befehl ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/newbot
&lt;/code&gt;&lt;/pre&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2934&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_322.png&#34; alt=&#34;Telegram Bot erstellen&#34; width=&#34;800&#34; height=&#34;629&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_322.png 800w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_322-300x236.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_322-768x604.png 768w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_322-343x270.png 343w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;p&gt;Man muss nun einen Namen für den Bot angeben und einen Benutzernamen, der&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;nicht vergeben sein darf und&lt;/li&gt;
&lt;li&gt;auf _&lt;em&gt;bot&lt;/em&gt; endet.&lt;/li&gt;
&lt;/ol&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2935&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_324.png&#34; alt=&#34;Zammad Telegram Bot Neu&#34; width=&#34;800&#34; height=&#34;756&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_324.png 800w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_324-300x284.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_324-768x726.png 768w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_324-286x270.png 286w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;p&gt;Am Ende erhält man einen Link zum Bot und den API Key, den wir gleich brauchen werden.&lt;/p&gt;
&lt;h2 id=&#34;telegram-in-zammad-integrieren&#34;&gt;Telegram in Zammad integrieren&lt;/h2&gt;
&lt;p&gt;In Zammad befinden sich die Einstellungen zu Telgram unter &lt;em&gt;Admin → Kanäle → Telegram&lt;/em&gt;. Mit einem Klick auf &lt;em&gt;Bot hinzufügen&lt;/em&gt; 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.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2938&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_333.png&#34; alt=&#34;Telegram Bot hinzufügen&#34; width=&#34;450&#34; height=&#34;540&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_333.png 450w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_333-250x300.png 250w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_333-225x270.png 225w&#34; sizes=&#34;(max-width: 450px) 100vw, 450px&#34; /&gt; 
&lt;p&gt;Nach dem Klick auf &lt;em&gt;Übermitteln&lt;/em&gt; ist der Bot nun einsatzbereit und neue Tickets können per Telegram erstellt werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2939&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_326.png&#34; alt=&#34;Telegram Bot aktiv&#34; width=&#34;726&#34; height=&#34;213&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_326.png 726w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_326-300x88.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_326-604x177.png 604w&#34; sizes=&#34;(max-width: 726px) 100vw, 726px&#34; /&gt; 
&lt;h2 id=&#34;telegram-kanal-benutzen&#34;&gt;Telegram-Kanal benutzen&lt;/h2&gt;
&lt;p&gt;Um ein neues Ticket zu erstellen, muss der Benutzer bzw. Kunde nur den Telegram-Bot suchen. In unserem Fall heißt er &lt;em&gt;myschool_support_bot&lt;/em&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2940&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_327.png&#34; alt=&#34;Telegram-Bot suchen&#34; width=&#34;263&#34; height=&#34;239&#34; /&gt; 
&lt;p&gt;Wenn man den Bot ausgewählt hat, muss man nur unten einmal auf &lt;em&gt;Starten&lt;/em&gt; klicken und schon begrüßt einen Zammad mit der Willkommensnachricht, die wir vorher festgelegt haben:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2941&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_328.png&#34; alt=&#34;Telegram Zammad Ticket erstellen&#34; width=&#34;800&#34; height=&#34;594&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_328.png 800w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_328-300x223.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_328-768x570.png 768w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_328-364x270.png 364w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;p&gt;Sobald man nun eine weitere Nachricht schreibt, erstellt Zammad daraus ein Ticket.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2942&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_329.png&#34; alt=&#34;Telegram Zammad Ticket erstellen&#34; width=&#34;800&#34; height=&#34;594&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_329.png 800w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_329-300x223.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_329-768x570.png 768w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_329-364x270.png 364w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;p&gt;Eine entsprechende Benachrichtigung erscheint nun in Zammad.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2943&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_330.png&#34; alt=&#34;Zammad neues Ticket&#34; width=&#34;672&#34; height=&#34;198&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_330.png 672w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_330-300x88.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_330-604x178.png 604w&#34; sizes=&#34;(max-width: 672px) 100vw, 672px&#34; /&gt; 
&lt;p&gt;In Zammad kann man nun direkt auf das Ticket antworten. Wichtig ist, das man nicht einfach in das Textfeld unten schreibt, sondern vorher auf &lt;em&gt;antworten&lt;/em&gt; klickt. Neben dem Textfeld erscheint nun auch das Telegram-Symbol.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2944&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_331.png&#34; alt=&#34;Zammad Telegram Ticket beantworten&#34; width=&#34;1285&#34; height=&#34;692&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_331.png 1285w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_331-300x162.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_331-768x414.png 768w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_331-1024x551.png 1024w, https://zefanjas.de/wp-content/uploads/2019/11/Auswahl_331-501x270.png 501w&#34; sizes=&#34;(max-width: 1285px) 100vw, 1285px&#34; /&gt; 
&lt;p&gt;Mit einem Klick auf &lt;em&gt;Aktualisieren&lt;/em&gt; wird die Nachricht an den Kunden bzw. Telegram-Benutzer geschickt.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2945&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_332.png&#34; alt=&#34;Telegram Ticket aktualisiert&#34; width=&#34;800&#34; height=&#34;594&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/11/Telegram_332.png 800w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_332-300x223.png 300w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_332-768x570.png 768w, https://zefanjas.de/wp-content/uploads/2019/11/Telegram_332-364x270.png 364w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;h2 id=&#34;wünsche&#34;&gt;Wünsche&lt;/h2&gt;
&lt;p&gt;Die Integration Telegram in Zammad funktioniert zuverlässig. Trotzdem ist die bisherige Implementation nur rudimentär. Folgende Features finde ich wünschenswert:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mehr Befehle für den Bot, um z.B. den Status des Tickets abzurufen, alle Tickets anzeigen zu lassen, …&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;Möglichkeit für Agents Tickets direkt in Telegram beantworten zu können&lt;/li&gt;
&lt;li&gt;Telegram zusätzlich als Integration um z.B. Benachrichtigungen über neue Tickets zu erhalten&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>linuxmuster.net – Neuigkeiten zur Schulserverlösung</title>
      <link>https://zefanjas.de/linuxmuster-schulserver-neuigkeiten/</link>
      <pubDate>Tue, 09 Jul 2019 03:39:22 +0000</pubDate>
      
      <guid>https://zefanjas.de/linuxmuster-schulserver-neuigkeiten/</guid>
      <description>&lt;p&gt;linuxmuster.net ist eine Open Source &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserverlösung&lt;/a&gt; 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.&lt;/p&gt;
&lt;h2 id=&#34;neuigkeiten-rund-um-linuxmusternet&#34;&gt;Neuigkeiten rund um linuxmuster.net&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;linuxmuster.net hat in diesem Jahr bereits zwei Auszeichnungen erhalten. Die freie Schulserverlösung hat einen &lt;a href=&#34;https://www.linuxmuster.net/de/2019/03/18/wir-stehen-auf-dem-treppchen/&#34;&gt;2. Platz beim Thomas-Krenn Award&lt;/a&gt; gewonnen sowie die Auszeichnung mit dem „&lt;a href=&#34;https://www.linuxmuster.net/de/2019/06/27/linuxmuster-net-erfolgreich-beim-comenius-edumedia-award-2019/&#34;&gt;Comenius eduMedia Siegel&lt;/a&gt;“ erhalten.&lt;/li&gt;
&lt;li&gt;In Kürze findet eine Schulung zur neuen Version 7 für Dienstleister statt. Wer Interesse hat, findet &lt;a href=&#34;https://www.linuxmuster.net/de/2019/06/30/schulungen-fuer-dienstleister/&#34;&gt;hier&lt;/a&gt; weitere Informationen.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;Auf den Chemnitzer Linuxtagen gab es einen &lt;a href=&#34;https://chemnitzer.linux-tage.de/2019/de/programm/beitrag/142&#34;&gt;Vortrag zu linuxmuster.net&lt;/a&gt;. Sehr zu empfehlen für alle, die einen kompakten Überblick über die Schulserverlösung erhalten wollen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;mithelfen&#34;&gt;Mithelfen&lt;/h2&gt;
&lt;p&gt;Ein Open Source Projekt lebt von der Mitarbeit vieler – nicht anders ist das bei linuxmuster.net. Wenn du also mithelfen möchtest, findest du &lt;a href=&#34;https://ask.linuxmuster.net/t/wir-suchen-dich/3376?u=zefanja&#34;&gt;hier eine gute Übersicht&lt;/a&gt;, 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.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Wir setzen &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;linuxmuster.net seit 3 Jahren&lt;/a&gt; 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 &lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;LINBO&lt;/a&gt; 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 &lt;a href=&#34;https://zefanjas.de/linuxmuster-net-v7-was-wird-sich-aendern/&#34;&gt;viele Dinge geändert&lt;/a&gt; haben.&lt;/p&gt;
&lt;p&gt;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 &lt;a href=&#34;https://ask.linuxmuster.net&#34;&gt;hilfsbereite Schuladmins&lt;/a&gt; und auch einen &lt;a href=&#34;https://www.linuxmuster.net/de/support/hotline/&#34;&gt;offiziellen Support&lt;/a&gt; von Seiten des Projekts, wo man seine Fragen loswerden und in jedem Fall eine Antwort bekommen kann (und dazu meist sehr schnell).&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Zammad sichern und wiederherstellen</title>
      <link>https://zefanjas.de/zammad-sichern-und-wiederherstellen/</link>
      <pubDate>Sat, 06 Jul 2019 07:05:58 +0000</pubDate>
      
      <guid>https://zefanjas.de/zammad-sichern-und-wiederherstellen/</guid>
      <description>&lt;p&gt;Seit einigen Jahren verwenden wir &lt;a href=&#34;http://zammad.org&#34;&gt;Zammad&lt;/a&gt; als &lt;a href=&#34;https://zefanjas.de/zammad-ldap-integration-mit-linuxmuster-net/&#34;&gt;Support- bzw. Helpdesk-Software&lt;/a&gt; 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.&lt;/p&gt;
&lt;h2 id=&#34;zammad-sichern&#34;&gt;Zammad sichern&lt;/h2&gt;
&lt;p&gt;Zammad bietet von Haus aus ein &lt;a href=&#34;https://docs.zammad.org/en/latest/appendix-backup-and-restore.html&#34;&gt;Backup-Skript&lt;/a&gt;, welches aber standardmäßig deaktiviert ist. Man kann das Skript dazu benutzen, um regelmäßige Backups anzulegen. Es befindet sich unter &lt;strong&gt;/opt/zammad/contrib/backup/&lt;/strong&gt;. Das Backup-Skript greift auf eine Konfigurationsdatei zu, in der alle wichtigen Einstellungen vorgenommen werden. Diese Datei muss man zuerst umbenennen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ mv /opt/zammad/contrib/backup/config.dist /opt/zammad/contrib/backup/config
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anschließend öffnet man die Datei und kann einige wenige Dinge einstellen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano /opt/zammad/contrib/backup/config

...
BACKUP_DIR=&amp;#39;/var/tmp/zammad_backup&amp;#39;
HOLD_DAYS=&amp;#39;10&amp;#39;
DEBUG=&amp;#39;no&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;BACKUP_DIR&lt;/em&gt; legt fest, wohin die Backups gespeichert werden sollen. &lt;strong&gt;Das Verzeichnis muss existieren!&lt;/strong&gt; &lt;em&gt;HOLD_DAYS&lt;/em&gt; gibt an, wie lange ein bzw. wie viele Backup(s) aufbewahrt werden sollen.&lt;/p&gt;
&lt;p&gt;Nun kann man das Backup-Skript ausführen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /opt/zammad/contrib/backup
$ ./zammad_backup.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Das Skript legt zwei Archive an (Datenbanksicherung und Zammad-Ordner), die sich nun im konfigurieren Backup-Ordner befinden.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;zammad-wiederherstellen&#34;&gt;Zammad wiederherstellen&lt;/h2&gt;
&lt;p&gt;Wenn man ein Backup auf dem gleichen Host wiederherstellen möchte, kann man das mit dem Wiederherstellungsskript erledigen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /opt/zammad/contrib/backup
$ ./zammad_restore.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Fertig 🙂&lt;/p&gt;
&lt;p&gt;Wenn man allerdings eine Zammad-Installation umziehen möchte (Migration, Neuinstallation), gibt es einige Dinge zu beachten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.zammad.org/en/latest/install-source.html#install-from-source-debian-7-8-ubuntu-16-04-ubuntu-18-04&#34;&gt;Zammad muss installiert&lt;/a&gt; sein (inklusive &lt;a href=&#34;https://docs.zammad.org/en/latest/install-elasticsearch.html#install-elasticsearch&#34;&gt;Elasticsearch&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;die Zammad-Version sollte gleich oder höher sein (als die vom Backup)&lt;/li&gt;
&lt;li&gt;es sollte die gleiche Datenbank verwendet werden (ein Wechsel ist wohl möglich, aber sehr aufwändig, da die Daten abgepasst werden müssen).&lt;/li&gt;
&lt;li&gt;Es sollte genügend freier Speicherplatz vorhanden sein (ca. 2x so viel wie die Größe des Backups)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wenn alle Bedingungen erfüllt sind, muss man zuerst die Konfiguration auf dem Zielsystem aktivieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ mv /opt/zammad/contrib/backup/config.dist /opt/zammad/contrib/backup/config
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach die Backupdateien in den konfigurierten Backup-Ordner kopieren (mit &lt;em&gt;cp&lt;/em&gt; oder wenn man LXD-Container verwendet mit &lt;em&gt;lxc file push/pull&lt;/em&gt;) und letztendlich das Wiederherstellungsskript laufen lassen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /opt/zammad/contrib/backup
$ ./zammad_restore.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Weitere Informationen finden sich in der &lt;a href=&#34;https://docs.zammad.org/en/latest/appendix-backup-and-restore.html#restore-everything&#34;&gt;offiziellen Dokumentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Xen Orchestra installieren und aktualisieren (Vollversion)</title>
      <link>https://zefanjas.de/xen-orchestra-installieren-und-aktualisieren-vollversion/</link>
      <pubDate>Fri, 10 May 2019 12:24:28 +0000</pubDate>
      
      <guid>https://zefanjas.de/xen-orchestra-installieren-und-aktualisieren-vollversion/</guid>
      <description>&lt;p&gt;An unserer Schule verwenden wir  &lt;a href=&#34;https://www.citrix.com/products/citrix-hypervisor/&#34;&gt;Citrix Hypervisor (ehemals XenServer)&lt;/a&gt;{.bar-label.clickable} (bald &lt;a href=&#34;https://xcp-ng.org/&#34;&gt;xcp-ng&lt;/a&gt;) für die Virtualisierung unseres &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulservers&lt;/a&gt; und anderer &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;Anwendungen&lt;/a&gt;. 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 &lt;a href=&#34;https://xen-orchestra.com/&#34;&gt;Xen Orchestra&lt;/a&gt;. 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 &lt;a href=&#34;https://xen-orchestra.com/#!/xo-pricing&#34;&gt;Enterprice und Premium Edition&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;xen-orchestra-installieren&#34;&gt;Xen Orchestra installieren&lt;/h2&gt;
&lt;p&gt;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 &lt;a href=&#34;https://xen-orchestra.com/docs/from_the_sources.html&#34;&gt;offiziellen Dokumentation&lt;/a&gt;. Auf Github findet man auch ein &lt;a href=&#34;https://github.com/Jarli01/xenorchestra_installer&#34;&gt;Installationsskript&lt;/a&gt;, 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:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo bash
$ curl https://raw.githubusercontent.com/Jarli01/xenorchestra_installer/master/xo_install.sh | bash
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Das war es auch schon 🙂 Xen Orchestra kann man nun unter IP des Servers erreichen. Der Standard-Benutzername ist &lt;em&gt;admin@admin.net&lt;/em&gt;, das Password &lt;em&gt;admin&lt;/em&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2906&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/05/Dashboard-Mozilla-Firefox_268.png&#34; alt=&#34;Xen Orchestra installieren&#34; width=&#34;1512&#34; height=&#34;723&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/05/Dashboard-Mozilla-Firefox_268.png 1512w, https://zefanjas.de/wp-content/uploads/2019/05/Dashboard-Mozilla-Firefox_268-300x143.png 300w, https://zefanjas.de/wp-content/uploads/2019/05/Dashboard-Mozilla-Firefox_268-768x367.png 768w, https://zefanjas.de/wp-content/uploads/2019/05/Dashboard-Mozilla-Firefox_268-1024x490.png 1024w, https://zefanjas.de/wp-content/uploads/2019/05/Dashboard-Mozilla-Firefox_268-565x270.png 565w&#34; sizes=&#34;(max-width: 1512px) 100vw, 1512px&#34; /&gt; 
&lt;h2 id=&#34;xen-orchestra-aktualisieren&#34;&gt;Xen Orchestra aktualisieren&lt;/h2&gt;
&lt;p&gt;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 &lt;a href=&#34;https://github.com/Jarli01/xenorchestra_updater&#34;&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Das Aktualisierungsskript bietet verschiedene Optionen an. Zum einfachen Aktualisieren reicht der folgende Aufruf:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo bash
$ sudo curl https://raw.githubusercontent.com/Jarli01/xenorchestra_updater/master/xo-update.sh | bash
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nach wenigen Minuten ist Xen Orchestra wieder auf den aktuellen Stand!&lt;/p&gt;
&lt;p&gt;Wer sich unwohl dabei fühlt ein Skript aus dem Netz als &lt;em&gt;root&lt;/em&gt; laufen zu lassen, kann sich das Skript natürlich vorher noch genau anschauen, was es macht bzw. nicht macht 🙂&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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 &lt;a href=&#34;https://github.com/Jarli01&#34;&gt;Jarli01&lt;/a&gt;!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Open Source Digital Signage für Schulen</title>
      <link>https://zefanjas.de/open-source-digital-signage/</link>
      <pubDate>Wed, 03 Apr 2019 03:43:03 +0000</pubDate>
      
      <guid>https://zefanjas.de/open-source-digital-signage/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;was-sollte-ein-digital-signage-system-können&#34;&gt;Was sollte ein Digital Signage System können?&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;einfach zu benutzen (z.B. Editor zum Erstellen von Folien / Slides)&lt;/li&gt;
&lt;li&gt;einfache und schnelle Darstellung von Bilder, Videos und anderen Dokumenten&lt;/li&gt;
&lt;li&gt;zentrale Verwaltung mehrerer Monitore (am besten mit verschiedenen Gruppen / Kanälen, um verschiedene Informationen auf verschiedenen Monitoren anzeigen zu können)&lt;/li&gt;
&lt;li&gt;Möglichkeiten zur Automatisierung / Zeitplan&lt;/li&gt;
&lt;li&gt;möglichst kostenfrei (Lizenzen oder monatliche Gebühren)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;welche-open-source-digital-signage-lösungen-gibt-es&#34;&gt;Welche Open Source Digital Signage Lösungen gibt es?&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id=&#34;screenly-ose&#34;&gt;Screenly OSE&lt;/h3&gt;
&lt;p&gt;Wenn auf Github nach &lt;a href=&#34;https://github.com/topics/digital-signage&#34;&gt;Digital Signage&lt;/a&gt; schaut, ist &lt;a href=&#34;https://www.screenly.io/ose/&#34;&gt;Screenly OSE&lt;/a&gt; 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 &lt;a href=&#34;https://www.screenly.io/screenly-ose-vs-pro/&#34;&gt;sind hier aufgelistet&lt;/a&gt;.auch&lt;/p&gt;
&lt;h3 id=&#34;xibo&#34;&gt;Xibo&lt;/h3&gt;
&lt;p&gt;Direkt hinter Screenly OSE folgt &lt;a href=&#34;https://xibo.org.uk/&#34;&gt;Xibo&lt;/a&gt;, 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.&lt;/p&gt;
&lt;h3 id=&#34;concerto&#34;&gt;Concerto&lt;/h3&gt;
&lt;p&gt;Ebenfalls schon länger am Markt ist &lt;a href=&#34;http://www.concerto-signage.org/&#34;&gt;Concerto&lt;/a&gt;. 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.&lt;/p&gt;
&lt;h3 id=&#34;libresignage&#34;&gt;LibreSignage&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/eerotal/LibreSignage/&#34;&gt;LibreSignage&lt;/a&gt; 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.&lt;/p&gt;
&lt;h3 id=&#34;foyer&#34;&gt;Foyer&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://foyer.tv/&#34;&gt;Foyer&lt;/a&gt; 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.&lt;/p&gt;
&lt;h3 id=&#34;tabulainfo&#34;&gt;tabula.info&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://tabula.info&#34;&gt;Tabula.info&lt;/a&gt; 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.&lt;/p&gt;
&lt;h2 id=&#34;weitere-lösungen&#34;&gt;Weitere Lösungen&lt;/h2&gt;
&lt;h3 id=&#34;infobeamer&#34;&gt;Infobeamer&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://infobeamer.com/&#34;&gt;Infobeamer&lt;/a&gt; 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).&lt;/p&gt;
&lt;h3 id=&#34;display-monkey&#34;&gt;Display Monkey&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://www.displaymonkey.org/dm/&#34;&gt;Display Monkey&lt;/a&gt; ist ebenfalls eine Open Source Lösung, die allerdings einen Windows Server voraussetzt. Die einzelnen Displays brauchen nur einen Browser.&lt;/p&gt;
&lt;h3 id=&#34;pisignage&#34;&gt;piSignage&lt;/h3&gt;
&lt;p&gt;Eine weitere Lösung für Digital Signage ist &lt;a href=&#34;https://pisignage.com/&#34;&gt;piSignage&lt;/a&gt;. 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.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man ein mobiles Feinstaubmessgerät bauen kann</title>
      <link>https://zefanjas.de/wie-man-ein-mobiles-feinstaubmessgeraet-bauen-kann/</link>
      <pubDate>Sat, 09 Mar 2019 09:45:29 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-ein-mobiles-feinstaubmessgeraet-bauen-kann/</guid>
      <description>&lt;p&gt;Vor ca. einem Jahr habe ich beschrieben, wie man mit einem &lt;a href=&#34;https://zefanjas.de/wie-man-feinstaub-mit-einem-raspberry-pi-messen-kann/&#34;&gt;Raspberry Pi und einem Feinstaubsensor&lt;/a&gt; die Luftqualität messen kann. Das Setup setzen wir so seit einigen Jahren bei uns in der Schule bzw. auch privat ein. Einen Nachteil hat dieses Projekt allerdings: es ist nicht mobil, sondern abhängig von einem WLAN-Netz bzw. einer Netzwerkverbindung. Wenn der Raspberry Pi und das Smartphone / ein Rechner nicht im gleichen Netz sind, kann man nicht auf die Messdaten zugreifen. Deshalb haben wir vor einiger Zeit den Raspberry Pi um einen kleinen Bildschirm ergänzt, sodass man die Werte direkt am Gerät ablesen kann. Wie man diesen Bildschirm für unser mobiles Feinstaubmessgerät einrichtet und welche zusätzlichen Konfigurationen notwendig sind, möchte ich in diesem Artikel kurz vorstellen.&lt;/p&gt;
&lt;h2 id=&#34;bildschirm-für-den-raspberry-pi-einrichten&#34;&gt;Bildschirm für den Raspberry Pi einrichten&lt;/h2&gt;
&lt;p&gt;Auf Amazon oder AliExpress gibt es verschiedene Displays für den Raspberry Pi. Diese reichen von ePaper-Screens bis hin zu LCDs mit Touchfunktion. Wir haben uns für einen 3,5″ LCD mit Touch entschieden, welcher eine Auflösung von 320×480 Pixel hat (&lt;a href=&#34;https://de.aliexpress.com/item/3-5-LCD-TFT-Touch-Screen-Display-with-Stylus-for-Raspberry-Pi-2-Pi-3-Acrylic/32685321852.html&#34;&gt;Modell MPI3501&lt;/a&gt;). Man kann diesen Bildschirm einfach auf die GPIO Pins stecken. Dazu kostet er gerade mal 10-15€. Schön ist auch, dass er mit 3,5″ genauso groß wie ein Raspberry Pi ist.&lt;/p&gt;
&lt;p&gt;Wenn man den Bildschirm aufsteckt und den Raspberry Pi startet, bleibt der Bildschirm weiß. Man muss zuerst noch die &lt;a href=&#34;https://github.com/goodtft/LCD-show&#34;&gt;passenden Treiber für das Display installieren&lt;/a&gt;. Dazu meldet man sich per SSH an und führt folgende Befehle aus:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ rm -rf LCD-show
$ git clone https://github.com/goodtft/LCD-show.git
$ chmod -R 755 LCD-show
$ cd LCD-show/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Je nach Bildschirmmodell muss man nun den passenden Befehl ausführen um die Treiber zu installieren. In unserem Fall (für das Modell MPI3501):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo ./LCD35-show
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dieser Befehl installiert die entsprechenden Treiber und startet den Raspberry Pi anschließend neu.&lt;/p&gt;
&lt;h2 id=&#34;pixel-desktop-installieren-und-autostart-einrichten&#34;&gt;Pixel-Desktop installieren und Autostart einrichten&lt;/h2&gt;
&lt;p&gt;Damit wir die Website mit den Messwerten direkt beim Start auf dem Bildschirm angezeigt bekommen sind noch einige Schritte notwendig. Zuerst muss man die Pixel-Desktopumgebung installieren (falls man bisher Raspian Lite verwendet hat) mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install raspberrypi-ui-mods
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dann fehlt noch der Chromium-Browser, um die Website anzuzeigen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install chromium-browser
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Standardmäßig ist der Autologin für das Benutzer „pi“ nicht eingerichtet. Dies ist aber notwendig, damit die Messwerte direkt nach dem Start angezeigt werden können, ansonsten begrüßt einen nur der Anmeldebildschirm. Den Autologin kann man über das &lt;em&gt;raspi-config&lt;/em&gt; Programm einrichten:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo raspi-config
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im Menü wählt man dann &lt;strong&gt;3 Boot Options&lt;/strong&gt; → &lt;strong&gt;B1 Desktop / CLI&lt;/strong&gt; → &lt;strong&gt;B4 Desktop Autologin&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Zu guter Letzt fehlt noch die Einrichtung des Autostarts, damit Chromium nach dem Booten automatisch mit der AQI-Seite gestartet wird. Dazu legt man den Ordner &lt;em&gt;&lt;strong&gt;/home/pi/.config/lxsession/LXDE-pi/&lt;/strong&gt;&lt;/em&gt; an:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$  mkdir -p /home/pi/config/lxsession/LXDE-pi/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anschließend erstellt man in diesem Ordner die Datei &lt;em&gt;&lt;strong&gt;autostart&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano /home/pi/.config/lxsession/LXDE-pi/autostart
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;und fügt diesen Inhalt ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#@unclutter
@xset s off
@xset -dpms
@xset s noblank

# Chromium im Vollbild beim Start öffnen
@chromium-browser --incognito --kiosk http://localhost
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Möchte man noch den Mauszeiger ausblenden, muss man noch das Paket _unclutter installieren _und am Anfang der &lt;em&gt;&lt;strong&gt;autostart&lt;/strong&gt;&lt;/em&gt; das Kommentarzeichen entfernen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install unclutter
&lt;/code&gt;&lt;/pre&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2889&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/03/IMG_20190309_163035.geaendert.jpg&#34; alt=&#34;mobiler Feinstaubsensor&#34; width=&#34;1024&#34; height=&#34;768&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/03/IMG_20190309_163035.geaendert.jpg 1024w, https://zefanjas.de/wp-content/uploads/2019/03/IMG_20190309_163035.geaendert-300x225.jpg 300w, https://zefanjas.de/wp-content/uploads/2019/03/IMG_20190309_163035.geaendert-768x576.jpg 768w, https://zefanjas.de/wp-content/uploads/2019/03/IMG_20190309_163035.geaendert-360x270.jpg 360w&#34; sizes=&#34;(max-width: 1024px) 100vw, 1024px&#34; /&gt; 
&lt;p&gt;Da ich im letzten Jahr ein paar kleine Änderungen am Code vorgenommen habe, empfiehlt es sich das Skript und die Dateien der AQI-Website neu herunterzuladen (wie das geht, steht im &lt;a href=&#34;https://zefanjas.de/wie-man-feinstaub-mit-einem-raspberry-pi-messen-kann/&#34;&gt;Originalartikel&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Durch das Display hat man nun ein mobiles Feinstaubmessgerät. Wir setzen sie an unserer Schule ein um z.B. die Qualität der Luft in den Klassenzimmern zu überprüfen oder um Vergleichsmessungen durchzuführen. Mit diesem Setup ist man nicht mehr auf eine Netzwerkverbindung oder WLAN angewiesen, sondern kann die kleine Messstation überall einsetzen – mit einer Powerbank sogar noch unabhängig vom Stromnetz.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie wichtig ist Hochverfügbarkeit in einem Schulnetzwerk?</title>
      <link>https://zefanjas.de/hochverfuegbarkeit-in-einem-schulnetzwerk/</link>
      <pubDate>Tue, 05 Mar 2019 13:35:19 +0000</pubDate>
      
      <guid>https://zefanjas.de/hochverfuegbarkeit-in-einem-schulnetzwerk/</guid>
      <description>&lt;p&gt;Schulnetzwerke werden mit wachsenden Anforderungen komplexer. Ein &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserver&lt;/a&gt;, 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?&lt;/p&gt;
&lt;h2 id=&#34;hochverfügbarkeit&#34;&gt;Hochverfügbarkeit&lt;/h2&gt;
&lt;p&gt;Laut &lt;a href=&#34;https://de.wikipedia.org/wiki/Hochverf%C3%BCgbarkeit&#34;&gt;Wikipedia&lt;/a&gt; definiert sich Hochverfügbarkeit folgendermaßen&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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 &lt;a href=&#34;https://de.wikipedia.org/wiki/Hochverf%C3%BCgbarkeit#Hochverf%C3%BCgbarkeit_und_Verf%C3%BCgbarkeitsklassen&#34;&gt;Klassen&lt;/a&gt; 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.&lt;/p&gt;
&lt;h2 id=&#34;single-point-of-failures&#34;&gt;Single Point of Failures&lt;/h2&gt;
&lt;p&gt;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?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Firewall → fällt sie aus, gibt es kein Zugang mehr zum Internet, je nach Konfiguration funktioniert auch das interne Netz nicht mehr&lt;/li&gt;
&lt;li&gt;Switche (v.a. Hauptswitch) → siehe Firewall, Komplettausfall&lt;/li&gt;
&lt;li&gt;Server → fällt er aus, sind viele Anwendungen nicht mehr zu erreichen, d.h. keine Anmeldung mehr im internen Logins, Webanwendungen, Schulcloud, …&lt;/li&gt;
&lt;li&gt;Internetanschlüsse → fällt der einzige Zugang aus, ist man offline.&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Kurze Geschichte am Rande:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Letzte Woche ist unsere &lt;a href=&#34;https://zefanjas.de/tag/pfsense/&#34;&gt;Firewall&lt;/a&gt; ausgefallen (aufgrund des Atom &lt;a href=&#34;https://www.golem.de/news/intel-c2000-atom-ausfall-legt-netzwerkgeraete-lahm-1702-126065.html&#34;&gt;C2000 Bugs&lt;/a&gt;). 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).&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;wie-kann-man-die-ausfallsicherheit-erhöhen&#34;&gt;Wie kann man die Ausfallsicherheit erhöhen?&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hier einige Ideen, wie man die Ausfallsicherheit erhöhen kann:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;qualitative Hardware → gute Hardware kostet zwar mehr, aber sie läuft oft stabiler&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/backup-fuer-lxd-container/&#34;&gt;Backups, Backups&lt;/a&gt; → Konfigurationen, Daten, Virtuelle Maschinen, Container – an Backups führt kein Weg dran vorbei (Backups unbedingt auch testen!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/pfsense-monitoring-mit-check_mk/&#34;&gt;Monitoring&lt;/a&gt; → 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“, …)&lt;/li&gt;
&lt;li&gt;Fehlertoleranz erhöhen → auch „Failover“ genannt, d.h. zwei Netzteile im Server, mehrere Internetanschlüsse („Multi-WAN), zwei Firewalls, RAID, zwei Server, …&lt;/li&gt;
&lt;li&gt;Ersatzteile vorhalten → Festplatten, Ersatzswitch, …&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/&#34;&gt;UPS/USW&lt;/a&gt; → Hardware bei Stromschwankungen schützen und Weiterbetrieb auch bei einem Stromausfall gewährleisten (für begrenzte Zeit)&lt;/li&gt;
&lt;li&gt;„personelle Redundanz“ → besser zwei oder mehrere Administratoren bzw. Dienstleister (bei Abwesenheit durch Krankheit, Urlaub, …)&lt;/li&gt;
&lt;li&gt;vorbeugende Wartungen&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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).&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Netzwerkbrücke für LXD Container einrichten</title>
      <link>https://zefanjas.de/netzwerkbruecke-fuer-lxd-container-einrichten/</link>
      <pubDate>Thu, 07 Feb 2019 14:05:12 +0000</pubDate>
      
      <guid>https://zefanjas.de/netzwerkbruecke-fuer-lxd-container-einrichten/</guid>
      <description>&lt;p&gt;Die meisten unserer Webanwendungen laufen in LXD Containern. Nicht ohne Grund ist LXD für mich eines der &lt;a href=&#34;https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/&#34;&gt;wichtigsten Features&lt;/a&gt; von Ubuntu Server. Es gibt viele Wege um von außen auf eine Webanwendung in einem LXD Container zuzugreifen. So kann man z.B. einen Reverse Proxy nehmen und darüber die Zugriff auf die Container regeln (&lt;a href=&#34;https://zefanjas.de/wie-man-mehrere-webseiten-mit-nginx-und-haproxy-mit-lxd-hosten-kann/&#34;&gt;hier hatte ich schon mal davon berichtet&lt;/a&gt;). Eine andere Möglichkeit ist die Einrichtung einer Netzwerkbrücke, sodass sich die Container im gleichen Netz wie der Containerhost (Ubuntu Server) befinden. In diesem Artikel möchte ich kurz beschreiben, wie man eine Netzwerkbrücke für LXD Container einrichtet.&lt;/p&gt;
&lt;h2 id=&#34;netzwerkbrücke-für-lxd-container&#34;&gt;Netzwerkbrücke für LXD Container&lt;/h2&gt;
&lt;p&gt;Um eine Netzwerkbrücke unter Ubuntu einzurichten, muss man die &lt;em&gt;bridge-utils&lt;/em&gt; installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ apt install bridge-utils
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach kann man die Netzwerkbrücke einrichten.&lt;/p&gt;
&lt;h3 id=&#34;bis-ubuntu-1604&#34;&gt;bis Ubuntu 16.04&lt;/h3&gt;
&lt;p&gt;Bis Ubuntu 16.04 nutzt Ubuntu &lt;em&gt;ifupdown&lt;/em&gt; um Einstellungen für die Netzwerkverbindungen festzulegen. Die Konfiguration nimmt man in den Dateien unter &lt;strong&gt;/etc/network/&lt;/strong&gt; vor. Eine einfache Netzwerkbrücke, um die Container in das Host-Netzwerk zu bekommen, könnte so aussehen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The main Bridge
auto br0
iface br0 inet dhcp
    bridge-ifaces enp4s0
    bridge-ports enp4s0
    up ip link set enp4s0 up

# The primary network interface
iface enp4s0 inet manual
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Hier bekommt die Brücke ihre Adresse vom DHCP-Server mitgeteilt. Die reale Netzwerkkarte &lt;em&gt;enp4s0&lt;/em&gt; wird in den manuellen Modus gesetzt und der Brücke zugewiesen.&lt;/p&gt;
&lt;h3 id=&#34;ab-ubuntu-1804&#34;&gt;ab Ubuntu 18.04&lt;/h3&gt;
&lt;p&gt;Ab Ubuntu 18.04 wird &lt;a href=&#34;https://netplan.io/&#34;&gt;Netplan&lt;/a&gt; für die Konfiguration der Netzwerkverbindungen verwendet. Die Konfigurationsdateien befinden sich unter &lt;strong&gt;/etc/netplan/&lt;/strong&gt;. Eine Definition für die Brücke könnte folgendermaßen aussehen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init&amp;#39;s network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp3s0:
            dhcp4: no
    version: 2
    bridges:
        br0:
            dhcp4: no
            addresses:
            - 10.10.10.5/24
            gateway4: 10.10.10.254
            nameservers:
                addresses:
                - 10.10.10.254
            interfaces:
            - enp3s0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im oberen Teil konfiguriert man die reale Netzwerkkarte (&lt;em&gt;enp3s0&lt;/em&gt;) und weißt ihr keine Adresse zu. Danach folgt die Definition der Netzwerkbrücke. Sie wird wie eine statische Netzwerkverbindung eingerichtet und enthält zusätzlich den Punkt &lt;em&gt;interfaces&lt;/em&gt;. Dort legt man fest, welche reale Netzwerkkarte „überbrückt“ werden soll. &lt;a href=&#34;https://netplan.io/examples#configuring-network-bridges&#34;&gt;Weitere (komplexere) Beispiele&lt;/a&gt; zu Netzwerkbrücken gibt es auf der offiziellen Website.&lt;/p&gt;
&lt;p&gt;Nun werden mit dem folgenden Befehl die Änderungen an den Netzwerkeinstellungen angewendet:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ netplan apply  --debug
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;netzwerkbrücke-zuweisen&#34;&gt;Netzwerkbrücke zuweisen&lt;/h2&gt;
&lt;p&gt;Hat man die Netzwerkbrücke fertig eingerichtet und bekommt sie auch die richtige IP-Adresse, muss man dem LXD Container noch mitteilen, dass er seine IP-Adresse über die Netzwerkbrücke beziehen soll. Das erledigt man mit folgendem Befehl:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc config device add containername eth0 nic nictype=bridged parent=br0 name=eth0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mit &lt;em&gt;name=eth0&lt;/em&gt; legt man fest, unter welchen Namen man die Netzwerkkarte im Container findet. Nun kann man im Container &lt;em&gt;eth0&lt;/em&gt; nach Belieben konfigurieren. Ab sofort sollte der Container eine IP-Adresse aus dem Host-Netzwerk bekommen.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Eine einfache Netzwerkbrücke lässt sich schnell einrichten und man kann sie ohne Probleme einem Container zuweisen. Andere Benutzer im Netzwerk können so ohne die Einrichtungen eines Reverse-Proxys auf eine Webanwendung zugreifen. Auch komplexere Szenarien sind denkbar (VLANs, mehrere Brücken, um die Container in verschiedene Netz zu bekommen etc.), doch das würde den Rahmen dieses kurzen Artikels sprengen.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>WLAN Access Point mit pfSense verbinden</title>
      <link>https://zefanjas.de/pfsense-wlan-access-point/</link>
      <pubDate>Tue, 15 Jan 2019 13:36:39 +0000</pubDate>
      
      <guid>https://zefanjas.de/pfsense-wlan-access-point/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://zefanjas.de/tag/pfsense/&#34;&gt;pfSense&lt;/a&gt; ist eine Open Source Firewalllösung, die man gut zu Hause, in der Schule oder in einem Unternehmen einsetzen kann (siehe &lt;a href=&#34;https://zefanjas.de/pfsense-installieren/&#34;&gt;Installation + Hardwareempfehlungen&lt;/a&gt;). In den meisten Fällen möchte man Clients nicht ausschließlich per Netzwerkkabel verbinden, sondern auch kabellos. Am einfachsten geht es, wenn man dazu einen WLAN Access Point an die Firewall mit anschließt, die sich um die kabellosen Geräte kümmert (z.B. Smartphones).&lt;/p&gt;
&lt;h2 id=&#34;aufbau-des-setups&#34;&gt;Aufbau des Setups&lt;/h2&gt;
&lt;p&gt;Ein Bild sagt bekanntlich mehr als 1000 Worte:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2861&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/01/pfSense-AP-Setup-1.png&#34; alt=&#34;pfSense AP Setup&#34; width=&#34;706&#34; height=&#34;375&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/01/pfSense-AP-Setup-1.png 706w, https://zefanjas.de/wp-content/uploads/2019/01/pfSense-AP-Setup-1-300x159.png 300w, https://zefanjas.de/wp-content/uploads/2019/01/pfSense-AP-Setup-1-508x270.png 508w&#34; sizes=&#34;(max-width: 706px) 100vw, 706px&#34; /&gt; 
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Die LAN-Schnittstelle von pfSense verbindet man mit einem Switch, an dem man dann den Access Point und weitere kabelgebundene Clients anschließen kann.&lt;/p&gt;
&lt;h2 id=&#34;access-point-einrichten&#34;&gt;Access Point einrichten&lt;/h2&gt;
&lt;p&gt;Nachdem der Access Point angeschlossen ist (in unserem Beispiel ein Access Point von tp-link), muss er noch eingerichtet werden. Jeder Access Point bringt meistens auch ein Webinterface mit, über dass man Einstellungen vornehmen kann. Die IP-Adresse des Access Point findet man in pfSense unter &lt;em&gt;&lt;strong&gt;Status → DHCP-Leases&lt;/strong&gt;&lt;/em&gt; heraus.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2858&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_242.png&#34; alt=&#34;pfsense dhcp leases&#34; width=&#34;1159&#34; height=&#34;429&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_242.png 1159w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_242-300x111.png 300w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_242-768x284.png 768w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_242-1024x379.png 1024w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_242-604x224.png 604w&#34; sizes=&#34;(max-width: 1159px) 100vw, 1159px&#34; /&gt; 
&lt;p&gt;Nun kann man auf das Webinterface des Access Point zugreifen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2859&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_243.png&#34; alt=&#34;accesspoint login&#34; width=&#34;530&#34; height=&#34;425&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_243.png 530w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_243-300x241.png 300w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_243-337x270.png 337w&#34; sizes=&#34;(max-width: 530px) 100vw, 530px&#34; /&gt; 
&lt;p&gt;Nach dem Login (bei tp-link ist der Standardbenutzername und das Passwort &lt;em&gt;admin&lt;/em&gt;) richtet man unter &lt;em&gt;Quick Setup&lt;/em&gt; alle wichtigen Einstellungen ein:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Change the login account&lt;/em&gt; → &lt;strong&gt;Ja&lt;/strong&gt; (neuer Benutzername und Passwort festlegen)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Please select the proper operation mode according to your needs&lt;/em&gt; → &lt;strong&gt;Access Point&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Access AP Mode Settings&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Wireless Network Name(SSID)&lt;/em&gt; → &lt;strong&gt;Name des WLAN-Netzes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Channel&lt;/em&gt; → &lt;strong&gt;Auto&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Wireless Security Mode&lt;/em&gt; → &lt;strong&gt;WPA2-PSK&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Wireless Password&lt;/em&gt; → &lt;strong&gt;WLAN Passwort&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Type&lt;/em&gt; → &lt;strong&gt;Static IP&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;IP Address → &lt;strong&gt;eine IP Adresse aus dem LAN auswählen, z.B. 10.10.10.253&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;DHCP Server &lt;strong&gt;→&lt;/strong&gt;&lt;/em&gt; &lt;strong&gt;Disable&lt;/strong&gt; (Da pfSense sich um die IP-Adressen kümmert).&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2860&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_244.png&#34; alt=&#34;access point dhcp &#34; width=&#34;595&#34; height=&#34;343&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_244.png 595w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_244-300x173.png 300w, https://zefanjas.de/wp-content/uploads/2019/01/Auswahl_244-468x270.png 468w&#34; sizes=&#34;(max-width: 595px) 100vw, 595px&#34; /&gt; 
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Es gibt zwar auch Mini-Computer und -router für pfSense, die einen WLAN-Chip mitbringen, doch kann man davon nur sehr wenige im Access Point-Modus betreiben. Meistens unterstützen sie nur den Client-Mode, d.h. man kann sich damit mit einem WLAN-Netz verbinden, aber selbst keines aufspannen. PfSense unterstützt nur wenige Karten im Access Point-Modus. Eine Übersicht &lt;a href=&#34;https://docs.google.com/spreadsheets/d/11cF4UoNL68Me5ZC6qhjFPmzdW7mib56dBIAKz30Qpug/edit#gid=0&#34;&gt;findet man hier&lt;/a&gt;. Schlussendlich ist es IMHO deutlich einfacher einen Access Point mit pfSense zu verbinden statt den richtigen WLAN Chip zu finden.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Auto-Type in KeeWeb konfigurieren</title>
      <link>https://zefanjas.de/auto-type-in-keeweb-konfigurieren/</link>
      <pubDate>Sat, 22 Dec 2018 00:15:30 +0000</pubDate>
      
      <guid>https://zefanjas.de/auto-type-in-keeweb-konfigurieren/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://keeweb.info/&#34;&gt;KeeWeb&lt;/a&gt; ist ein Passwortmanager, der kompatibel zu KeePass ist und für sehr viele Plattformen verfügbar ist. Ich verwende ihn privat als auch beruflich seit einigen Jahren. Heute möchte ich ein geniales Feature vorstellen, das ich erst vor kurzem entdeckt habe: Auto-Type. Mit Auto-Type kann man automatisch seine Login-Daten eintragen lassen, egal ob es eine Website oder eine Desktopanwendung ist. Das Schöne ist, dass man kaum etwas tun muss, um Auto-Type in KeeWeb zu konfigurieren.&lt;/p&gt;
&lt;h2 id=&#34;wie-funktioniert-auto-type&#34;&gt;Wie funktioniert Auto-Type?&lt;/h2&gt;
&lt;p&gt;Animationen sagen mehr als 1000 Worte, deshalb hier ein kleines GIF, das die Funktionsweise von Auto-Type zeigt (im Bild &lt;a href=&#34;https://zefanjas.de/?s=check_mk&#34;&gt;Check_MK&lt;/a&gt;):&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2848&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/12/keeweb-1.gif&#34; alt=&#34;keeweb auto type&#34; width=&#34;425&#34; height=&#34;339&#34; /&gt; 
&lt;p&gt;Wie der Name sagt, füllt KeeWeb automatisch die Eingabefelder aus und meldet einen an. KeeWeb muss dazu (im Hintergrund) geöffnet sein.&lt;/p&gt;
&lt;h2 id=&#34;auto-type-in-keeweb-konfigurieren&#34;&gt;Auto-Type in KeeWeb konfigurieren&lt;/h2&gt;
&lt;p&gt;Auto-Type ist standardmäßig ab Version 1.2 für alle Einträge aktiviert. Die Einstellung dazu findet man unter &lt;strong&gt;mehr → Auto-Type Einstellungen&lt;/strong&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2849&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/12/KeeWeb_238.png&#34; alt=&#34;KeeWeb Einstellungen&#34; width=&#34;1000&#34; height=&#34;728&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/12/KeeWeb_238.png 1000w, https://zefanjas.de/wp-content/uploads/2018/12/KeeWeb_238-300x218.png 300w, https://zefanjas.de/wp-content/uploads/2018/12/KeeWeb_238-768x559.png 768w, https://zefanjas.de/wp-content/uploads/2018/12/KeeWeb_238-371x270.png 371w&#34; sizes=&#34;(max-width: 1000px) 100vw, 1000px&#34; /&gt; 
&lt;p&gt;Es erscheint ein Eingabefeld in das man nun verschiedenen Platzhalter oder Befehle eingeben kann. Für alle Einträge lautet der Standardeintrag:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{USERNAME}{TAB}{PASSWORD}{ENTER}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Es wird also zuerst der Benutzername automatisch ausgefüllt, dann mit TAB in das Passwortfeld gewechselt und das Passwort eingegeben. Am Ende bestätigt Auto-Type mit Enter den Anmelde-Button.&lt;/p&gt;
&lt;p&gt;Für die meisten Websites oder Anwendungen funktioniert diese Einstellung ganz gut. Allerdings gibt es auch Seiten (z.B. GMail), die erst den Benutzernamen überprüfen, bevor sie das Passwortfeld anzeigen. Hier kann man mit &lt;em&gt;{DELAY X}&lt;/em&gt; eine Verzögerung einbauen. Statt X muss man einen Wert in Millisekunden angeben, z.B.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{USERNAME}{ENTER}{DELAY 3000}{PASSWORD}{ENTER}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Auto-Type kennt viele Befehle und Platzhalter. Eine Übersicht findet man &lt;a href=&#34;https://github.com/keeweb/keeweb/wiki/Auto-Type&#34;&gt;hier&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;auto-type-verwenden&#34;&gt;Auto-Type verwenden&lt;/h2&gt;
&lt;p&gt;Damit Auto-Type funktioniert, muss man unter Linux erst noch ein Paket installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install xdotool
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach kann man mit &lt;strong&gt;UMSCHALT+ALT+T&lt;/strong&gt; Auto-Type aktivieren (KeeWeb muss (im Hintergrund) geöffnet sein). Falls KeeWeb nur einen passenden Eintrag findet (z.B. anhand des Fenstertitels oder der URL) füllt KeeWeb die Felder automatisch aus. Wenn keine Überstimmung mit einem Eintrag festgestellt wurde, erscheint ein weiteres Fenster. Dort kann man dann manuell den passenden Benutzernamen / Passwort auswählen.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;KeeWeb schätze ich v.a. aufgrund seiner Verfügbarkeit auf sehr vielen Plattformen als auch die vielen Möglichkeiten der Synchronisation der Passwortdatenbank. Egal ob Nextcloud, Google Drive oder Dropbox – mit KeeWeb hat man seine Passwörter überall zur Hand (auch im Team).&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man sein WLAN-Netzwerk mit Freeradius absichern kann</title>
      <link>https://zefanjas.de/freeradius-wlan-absichern/</link>
      <pubDate>Sun, 09 Dec 2018 03:35:33 +0000</pubDate>
      
      <guid>https://zefanjas.de/freeradius-wlan-absichern/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.).&lt;/p&gt;
&lt;h2 id=&#34;installation-von-freeradius&#34;&gt;Installation von freeradius&lt;/h2&gt;
&lt;p&gt;Die Installation führen wir auf einer aktuellen Linux-Installation (hier Ubuntu 18.04 Server) durch, z.B. in einem [LXD Container][1] oder einer virtuellen Maschine.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ apt install freeradius freeradius-ldap freeradius-utils
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;konfiguration&#34;&gt;Konfiguration&lt;/h2&gt;
&lt;h3 id=&#34;grundkonfiguration&#34;&gt;Grundkonfiguration&lt;/h3&gt;
&lt;p&gt;Um unseren freeradius Server zu testen, kommentieren wir folgende Zeile in &lt;em&gt;&lt;strong&gt;/etc/freeradius/3.0/users&lt;/strong&gt;&lt;/em&gt; aus oder fügen sie zu Beginn der Datei ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Das Kommentarzeichen &amp;#34;#&amp;#34; vor dieser Zeile entfernen
steve Cleartext-Password := &amp;#34;testing&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Standardmäßig sollte in der Datei &lt;em&gt;&lt;strong&gt;/etc/freeradius/3.0/clients.conf&lt;/strong&gt;&lt;/em&gt; der &lt;em&gt;localhost&lt;/em&gt; als Client eingerichtet sein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;client localhost {
  ipaddr = 127.0.0.1
  secret = testing123
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun können wir einen ersten Test durchführen. Dazu stoppen wir den freeradius-Service und starten ihn manuell im Debug-Modus neu:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ systemctl stop freeradius.service
$ freeradius -X
...
&amp;lt;strong&amp;gt;Ready to process request&amp;lt;/strong&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wichtig ist, dass am Ende „&lt;em&gt;Ready to process requests“&lt;/em&gt; steht.&lt;/p&gt;
&lt;h3 id=&#34;überprüfen-der-grundkonfiguration&#34;&gt;Überprüfen der Grundkonfiguration&lt;/h3&gt;
&lt;p&gt;Als nächstes überprüfen wir, ob unser Test-Benutzer „Steve“ sich am RADIUS-Server anmelden kann (am besten in einem neuen/zweiten Terminal):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ radtest steve testing 127.0.0.1 10 testing123
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Falls alles passt, sollten wir folgende Antwort bekommen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Sent Access-Request Id 234 from 0.0.0.0:40302 to 127.0.0.1:1812 length 75
    User-Name = &amp;#34;steve&amp;#34;
    User-Password = &amp;#34;testing&amp;#34;
    NAS-IP-Address = 10.18.10.60
    NAS-Port = 10
    Message-Authenticator = 0x00
    Cleartext-Password = &amp;#34;testing&amp;#34;
Received Access-Accept Id 234 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wichtig ist, dass wir ein „&lt;em&gt;Received Access-Accept&lt;/em&gt;“ bekommen. Hat diese Anfrage geklappt ist der freeradius-Server grundlegend eingerichtet und die folgenden Authentifizierungsverfahren sollten ohne weitere Probleme klappen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PAP&lt;/li&gt;
&lt;li&gt;CHAP&lt;/li&gt;
&lt;li&gt;MS-CHAPv1&lt;/li&gt;
&lt;li&gt;MS-CHAPv2&lt;/li&gt;
&lt;li&gt;PEAP&lt;/li&gt;
&lt;li&gt;EAP-TTLS&lt;/li&gt;
&lt;li&gt;EAP-GTC&lt;/li&gt;
&lt;li&gt;EAP-MD5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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][2]. MS-CHAPv1 und v2 sind Verfahren aus dem Hause Microsoft.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hinweis:&lt;/strong&gt; Die Zeile mit unserem Benutzer „Steve“ sollten wir jetzt wieder kommentieren oder löschen!&lt;/p&gt;
&lt;p&gt;Wir werden im Folgenden das LDAP-Modul konfigurieren und neue Zertifikate für EAP-TTLS erstellen.&lt;/p&gt;
&lt;h3 id=&#34;ldap-anbindung-einrichten&#34;&gt;LDAP Anbindung einrichten&lt;/h3&gt;
&lt;p&gt;Die Konfiguration des LDAP-Servers nehmen wir in der Datei &lt;em&gt;&lt;strong&gt;/etc/freeradius/3.0/mods-enabled/ldap&lt;/strong&gt;&lt;/em&gt; vor. Falls diese Datei nicht existiert, müssen wir vorher noch einen symbolischen Link erstellen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /etc/freeradius/3.0/mods-enabled/
$ ln -s ../mods-available/ldap ./
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ziemlich an Anfang der Datei konfigurieren wir unseren LDAP-Server:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;server = &amp;#34;ldaps://linuxmuster.internal.example.com&amp;#34;
identity = &amp;#34;cn=admin,dc=internal,dc=example,dc=com&amp;#34;
password = superSecretPassword
base_dn = &amp;#34;ou=accounts,dc=internal,dc=example,dc=com&amp;#34;

...

group {
    ...
    membership_filter = &amp;#34;(|(member=%{control:Ldap-UserDn})(memberUid=%{%{Stripped-User-Name}:-%{User-Name}}))&amp;#34;
    ...
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Es muss sichergestellt sein, dass alle nötigen Ports für die Kommunikation zwischen dem RADIUS und LDAP-Server offen sind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hinweis:&lt;/strong&gt; 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…][3]):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;update {
            control:Password-With-Header    += &amp;#39;userPassword&amp;#39;
            control:NT-Password             := &amp;#39;sambaNTPassword&amp;#39;
            ...
}
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;ldap-verbindung-testen&#34;&gt;LDAP Verbindung testen&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ 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 = &amp;#34;testuser&amp;#34;
    User-Password = &amp;#34;password&amp;#34;
    NAS-IP-Address = 10.18.10.60
    NAS-Port = 10
    Message-Authenticator = 0x00
    Cleartext-Password = &amp;#34;password&amp;#34;
Received Access-Accept Id 213 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;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.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ systemctl stop freeradius.service
$ freeradius -X 
... 
Ready to process request
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;zertifikate-erstellen-für-eap-ttls&#34;&gt;Zertifikate erstellen (für EAP-TTLS)&lt;/h3&gt;
&lt;p&gt;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 &lt;em&gt;&lt;strong&gt;/etc/freeradius/3.0/certs/&lt;/strong&gt;&lt;/em&gt;. Zuerst öffnen wir die Datei &lt;strong&gt;&lt;em&gt;ca.cnf&lt;/em&gt;&lt;/strong&gt; und ändern ein paar wenige Einstellungen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;...
[ 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      = &amp;#34;CA Freeradius&amp;#34;
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ähnliche Einstellungen nehmen wir nun der Datei &lt;strong&gt;&lt;em&gt;server.cnf&lt;/em&gt;&lt;/strong&gt; vor:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;...

[ 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      = &amp;#34;Freeradius Server Certificate&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Das Passwort muss jetzt auch in der Datei &lt;em&gt;&lt;strong&gt;/etc/freeradius/3.0/mods-enabled/eap&lt;/strong&gt;&lt;/em&gt; geändert werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;tls-config tls-common {
    private_key_password = supersecretandlongpassword
    ...
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Zertifikate erstellen wir mit einem einfachen &lt;code&gt;make&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /etc/freeradius/3.0/certs/
$ make
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;eap-ttls-anmeldung-testen&#34;&gt;EAP-TTLS Anmeldung testen&lt;/h3&gt;
&lt;h4 id=&#34;epol_test-kompilieren&#34;&gt;epol_test kompilieren&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;radtest&lt;/code&gt; unterstützt leider keinen Test für eine EAP-TTLS Authentifizierung. Dazu brauchen wir das Tool &lt;strong&gt;eapol_test&lt;/strong&gt;, welches Teil des [wpa_supplicant][4] Pakets ist. Leider wird dieses Tool standardmäßig nicht von &lt;em&gt;wpa_supplicant&lt;/em&gt; gebaut, deswegen müssen wir das selbst machen. Wir laden den Quellcode herunter, entpacken ihn und müssen noch einige Abhängigkeiten installieren.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ 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
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach müssen wir die Datei &lt;strong&gt;.config&lt;/strong&gt; öffnen und die Zeile &lt;code&gt;#CONFIG_EAPOL_TEST=y&lt;/code&gt;  finden und das Kommentarzeichen entfernen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano .config
# Kommentarzeichen &amp;#34;#&amp;#34; entfernen
CONFIG_EAPOL_TEST=y
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mit dem folgenden Befehlen bauen wir nun das Programm und kopieren es noch an die richtige Stelle:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ make eapol_test
$ cp eapol_test /usr/local/bin
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;anmeldung-testen&#34;&gt;Anmeldung testen&lt;/h4&gt;
&lt;p&gt;Um EAP-TTLS zu testen, brauchen wir für &lt;strong&gt;eapol_test&lt;/strong&gt; eine kleine Config-Datei, die folgendermaßen aussehen kann:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano eapol_test.conf
network={
        ssid=&amp;#34;example&amp;#34;
        key_mgmt=WPA-EAP
        eap=TTLS
        identity=&amp;#34;mustermann&amp;#34;
        anonymous_identity=&amp;#34;anonymous&amp;#34;
        password=&amp;#34;strenggeheim&amp;#34;
        phase2=&amp;#34;auth=PAP&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun können wir &lt;strong&gt;eapol_test&lt;/strong&gt; aufrufen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$  eapol_test -c eapol_test.conf -a 127.0.0.1 -p 1812 -s testing123
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wenn man am Ende diese Ausgabe erhält, war alles erfolgreich:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MPPE keys OK: 1  mismatch: 0
SUCCESS
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;clients-einrichten-zb-accesspoints&#34;&gt;Clients einrichten (z.B. Accesspoints)&lt;/h3&gt;
&lt;p&gt;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 &lt;em&gt;&lt;strong&gt;/etc/freeradius/3.0/clients.conf&lt;/strong&gt;&lt;/em&gt; und fügen am Ende alle Accesspoints etc. mit ihrer IP und einem Passwort / Secret ein:&lt;/p&gt;
&lt;pre class=&#34;lang:default decode:true  &#34;&gt;$ 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 == &#34;cn=p_wifi,ou=groups,dc=internal,dc=example,dc=com&#34;
DEFAULT Auth-Type := Reject
   Reply-Message = &#34;Your are not allowed to access the WLAN!&#34;
```

## Freeradius und linuxmuster.net 6.2

Die Installation von Freeradius für linuxmuster.net 6.2 ist in der [Dokumentation beschrieben][5]. 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&amp;Staff on WPA 802.1X Teacher and Staff network  
    if (NAS-IP-Address == 10.0.0.10) {
        if (LDAP-Group == &#34;cn=teachers,ou=groups,dc=internal,dc=example,dc=com&#34; || LDAP-Group == &#34;cn=staff,ou=groups,dc=internal,dc=example,dc=com&#34;) {
            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:

  * &lt;http://deployingradius.com/&gt;
  * &lt;https://wiki.freeradius.org/guide/HOWTO&gt;

 [1]: https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/
 [2]: https://wiki.freeradius.org/protocol/EAP
 [3]: https://wiki.freeradius.org/guide/certificate-compatibility
 [4]: https://w1.fi/wpa_supplicant/
 [5]: http://docs.linuxmuster.net/de/latest/systemadministration/network/radius/installation.html</description>
    </item>
    
    <item>
      <title>pfSense automatisieren mit pfSsh.php</title>
      <link>https://zefanjas.de/pfsense-pfssh/</link>
      <pubDate>Wed, 28 Nov 2018 13:29:24 +0000</pubDate>
      
      <guid>https://zefanjas.de/pfsense-pfssh/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://zefanjas.de/tag/pfsense/&#34;&gt;pfSense&lt;/a&gt; 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 &lt;a href=&#34;https://www.netgate.com/docs/pfsense/development/using-the-php-pfsense-shell.html&#34;&gt;pfSsh.php&lt;/a&gt; genannt.&lt;/p&gt;
&lt;h2 id=&#34;auf-pfsshphp-zugreifen&#34;&gt;Auf pfSsh.php zugreifen&lt;/h2&gt;
&lt;p&gt;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 &lt;em&gt;&lt;strong&gt;System → Advanced&lt;/strong&gt;&lt;/em&gt; nachholen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2804&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_221.png&#34; alt=&#34;pfSense SSH aktivieren&#34; width=&#34;1157&#34; height=&#34;226&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_221.png 1157w, https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_221-300x59.png 300w, https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_221-768x150.png 768w, https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_221-1024x200.png 1024w, https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_221-604x118.png 604w&#34; sizes=&#34;(max-width: 1157px) 100vw, 1157px&#34; /&gt; 
&lt;p&gt;Besser ist es, wenn man das Einloggen mit Passwort verbietet und nur das Anmelden mit Zertifikat erlaubt.&lt;/p&gt;
&lt;p&gt;Ist der SSH-Zugang aktivert, kann man sich nun mit dem Admin-Benutzer anmelden (IP anpassen):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ssh admin@192.168.1.254
&lt;/code&gt;&lt;/pre&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2805&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_222.png&#34; alt=&#34;pfSense CLI&#34; width=&#34;663&#34; height=&#34;320&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_222.png 663w, https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_222-300x145.png 300w, https://zefanjas.de/wp-content/uploads/2018/11/Auswahl_222-559x270.png 559w&#34; sizes=&#34;(max-width: 663px) 100vw, 663px&#34; /&gt; 
&lt;p&gt;Unter Punkt 12 findet man die Entwickler-Shell, die im Grunde eine PHP-Shell ist.&lt;/p&gt;
&lt;h2 id=&#34;beispielbefehle-für-pfsshphp&#34;&gt;Beispielbefehle für pfSsh.php&lt;/h2&gt;
&lt;p&gt;Hier einige Beispielbefehle, die zeigen sollen, wie man die Shell verwenden kann. Jede Eingabe ist normaler PHP Code und muss mit &lt;code&gt;exec;&lt;/code&gt; abgeschlossen werden.&lt;/p&gt;
&lt;h3 id=&#34;dhcp-einstellungen-anzeigen&#34;&gt;DHCP Einstellungen anzeigen&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pfSense shell: print_r($config[&amp;#34;dhcpd&amp;#34;]);
pfSense shell: exec;
Array
(
    [lan] =&amp;amp;gt; Array
        (
            [range] =&amp;amp;gt; Array
                (
                    [from] =&amp;amp;gt; 10.0.1.7
                    [to] =&amp;amp;gt; 10.0.255.245
                )

        )

)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;domain-festlegen&#34;&gt;Domain festlegen&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pfSense shell: $config[&amp;#39;system&amp;#39;][&amp;#39;domain&amp;#39;] = &amp;#39;mydomain.com&amp;#39;;
pfSense shell: write_config();
pfSense shell: exec;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;shell-8211-befehle-ausführen&#34;&gt;Shell – Befehle ausführen&lt;/h3&gt;
&lt;p&gt;Innerhalb der PHP Shell kann man auch normale Shell-Befehle ausführen, indem man ein „!“ davor setzt:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pfSense shell: ! cat /etc/version
pfSense shell: exec;
2.4.3-RELEASE
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;befehle-8222aufnehmen8220-und-8222abspielen8220&#34;&gt;Befehle „aufnehmen“ und „abspielen“&lt;/h3&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pfSense shell: record echoTest
Recording of echoTest started.
pfSense shell: echo &amp;#34;Das\n&amp;#34;;
pfSense shell: echo &amp;#34;ist\n&amp;#34;;
pfSense shell: echo &amp;#34;ein\n&amp;#34;;
pfSense shell: ! echo &amp;#34;Test\n&amp;#34;
pfSense shell: exec;
pfSense shell: stoprecording 
Recording stopped.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Eingaben werden unter &lt;em&gt;/etc/phpshellsessions/&lt;/em&gt; gespeichert und können dort bei Bedarf verändert werden.&lt;/p&gt;
&lt;p&gt;Die „Aufnahme“ kann man nun wie folgt wiedergeben:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pfSense shell: playback echoTest

Playback of file echoTest started.

Das
ist
ein
Test

pfSense shell:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;oder auch direkt von der root-Shell mit:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ pfSsh.php playback echoTest
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;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 &lt;em&gt;/etc/phpshellsessions/&lt;/em&gt; speichern und dann ausführen oder direkt die Ausgabe an pfSsh.php weiterleiten:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ssh admin@192.168.1.254 &amp;#39;/usr/local/sbin/pfSsh.php&amp;#39; &amp;amp;lt; MeineConfig.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Xubuntu – bester Kompromiss für Linux in der Schule?</title>
      <link>https://zefanjas.de/xubuntu-bester-kompromiss-fuer-linux-in-der-schule/</link>
      <pubDate>Sat, 17 Nov 2018 03:53:35 +0000</pubDate>
      
      <guid>https://zefanjas.de/xubuntu-bester-kompromiss-fuer-linux-in-der-schule/</guid>
      <description>&lt;p&gt;Auf der Suche nach einem neuen Desktop für unsere Schule möchte ich mir &lt;a href=&#34;https://zefanjas.de/welche-linux-distributionen-sind-fuer-schulen-geeignet/&#34;&gt;verschiedene Desktopumgebungen&lt;/a&gt; anschauen. Die Auswahl ist groß und ich habe einige sehr hilfreiche Kommentare und Vorschläge zu meinem letzten Artikel erhalten. Vielen Dank dafür.  Den Start macht heute Xubuntu. Xubuntu ist ein Derivat von Ubuntu, welches Xfce anstatt GNOME als Desktop nutzt. Auf der Website des Projekt beschreibt sich Xubuntu so:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Xubuntu ist ein elegantes und einfach zu bedienendes Betriebssystem. Es wird mit Xfce ausgeliefert, einer stabilen, leichten und konfigurierbaren Desktop-Umgebung.&lt;/p&gt;
&lt;p&gt;Xubuntu ist perfekt für diejenigen, die das Beste aus ihren Desktops, Laptops und Netbooks mit einem modernen Look und genügend Funktionen für den effizienten, täglichen Gebrauch herausholen wollen. Es funktioniert auch auf älterer Hardware gut.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bietet Xubuntu, was es verspricht? Ist es der beste Kompromiss aus modernem, aber ressourcenarmem Desktop? Das möchte ich mir anhand unserer Kriterien genauer anschauen.&lt;/p&gt;
&lt;h2 id=&#34;stabilität&#34;&gt;Stabilität&lt;/h2&gt;
&lt;p&gt;Die Installation verlief ohne Probleme. Das ist heutzutage in den meisten Fällen kein Problem mehr 🙂 . Bei meinen Tests konnte ich bisher keine Stabilitätsprobleme erkennen.&lt;/p&gt;
&lt;h2 id=&#34;support&#34;&gt;Support&lt;/h2&gt;
&lt;p&gt;Im Gegensatz zu Ubuntu LTS bietet Xubuntu LTS 3 statt 5 Jahre Support. 5 Jahre sind sicher besser, aber in der Regel werden wir unser Image spätestens nach 3 Jahren updaten. Auf dem Server sind die längeren Support-Zeiträume wichtiger als auf dem Desktop.&lt;/p&gt;
&lt;h2 id=&#34;geringe-hardwareanforderungen&#34;&gt;Geringe Hardwareanforderungen&lt;/h2&gt;
&lt;p&gt;Die Hardwareanforderungen sind bei Xubuntu recht gering. Empfohlen werden 1GB Arbeitsspeicher und 20GB freier Speicher auf der Festplatte. Nach dem Start verbraucht Xubuntu ca. 500MB an Arbeitsspeicher. Sobald man aber Firefox mit ein paar Tabs startet steigt der Verbrauch schnell auf über 1GB an. Deshalb sollte man mindestens 2GB installiert haben. Ansonsten ist Xubuntu aber wesentlich genügsamer als Ubuntu mit GNOME oder Unity.&lt;/p&gt;
&lt;h2 id=&#34;einfache-bedienbarkeit&#34;&gt;Einfache Bedienbarkeit&lt;/h2&gt;
&lt;p&gt;Dieser Punkt ist eher subjektiv, denn jeder hat sich im Laufe der Jahre an eine Desktop-Umgebung gewöhnt. Egal ob Windows, macOS, Unity, Gnome, Xfce, KDE – die Liste könnte ich noch lang weiterführen. Ich z.B. habe mich sehr an &lt;a href=&#34;https://zefanjas.de/warum-ich-unity-in-ubuntu-18-04-verwenden-werde/&#34;&gt;Unity&lt;/a&gt; gewöhnt und komme damit gut zurecht. Eine Umstellung auf GNOME oder eine andere Desktopumgebung fällt mir deshalb schwer. In einer Schule gibt es noch eine viel größere Bandbreite. Ich glaube man kann hier nicht so viel falsch machen, wenn man Linux in der Schule einsetzt. Für die meisten wird die Desktopumgebung neu sein. Es ist viel wichtiger Einführungen, Training und Workshops anzubieten, um die Kollegen an eine neue Umgebung zu gewöhnen. Generell kann man entscheiden, ob man sich eher an Windows 10 oder macOS orientiert.&lt;/p&gt;
&lt;p&gt;Xfce hat ein Startmenü und kann mit einem Dock (z.B. &lt;a href=&#34;https://wiki.ubuntuusers.de/Plank/&#34;&gt;Plank&lt;/a&gt;) erweitert werden. Dadurch sollten sich die meisten nach einiger Zeit gut zurechtfinden.&lt;/p&gt;
&lt;h2 id=&#34;modernes--hübsches-aussehen&#34;&gt;Modernes &amp;amp; hübsches Aussehen&lt;/h2&gt;
&lt;p&gt;Standardmäßig wirkt das Aussehen von Xubuntu eher altbacken, weder hübsch noch sonderlich modern. Über den Paketmanager kann man sich weitere Themes installieren, die dem Xfce-Desktop schöner machen. Das ist zum einen das Arc- oder Numix-Theme. Interessant fand ich auch noch das &lt;a href=&#34;https://www.xfce-look.org/p/1230631/&#34;&gt;Qogir-Theme&lt;/a&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2800&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/11/Xubuntu-wird-ausgeführt-Oracle-VM-VirtualBox_214.jpg&#34; alt=&#34;Xubuntu&#34; width=&#34;920&#34; height=&#34;600&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/11/Xubuntu-wird-ausgeführt-Oracle-VM-VirtualBox_214.jpg 920w, https://zefanjas.de/wp-content/uploads/2018/11/Xubuntu-wird-ausgeführt-Oracle-VM-VirtualBox_214-300x196.jpg 300w, https://zefanjas.de/wp-content/uploads/2018/11/Xubuntu-wird-ausgeführt-Oracle-VM-VirtualBox_214-768x501.jpg 768w, https://zefanjas.de/wp-content/uploads/2018/11/Xubuntu-wird-ausgeführt-Oracle-VM-VirtualBox_214-414x270.jpg 414w&#34; sizes=&#34;(max-width: 920px) 100vw, 920px&#34; /&gt; 
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Xubuntu wird auf jeden Fall ein Kandidat für unseren Linux-Desktop in der Schule. Dafür sprechen v.a. die geringen Hardwareanforderungen. Sobald linuxmuster.net v7 als Beta veröffentlicht wird, werden wir Xubuntu noch den Praxistest unterziehen. Die meisten Schwierigkeiten und Stolpersteine zeigen sich bekanntlich erst, wenn man es auch tatsächlich einsetzt. Das Aussehen ist ein kleiner Dämpfer, auch wenn man es hübscher machen kann. An das neue Ubuntu-Theme in Ubuntu 18.10 kommt es m.M.n. aber nicht heran.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Stumm schalten, Maus und primärer Bildschirm – Tipps für die Kommandozeile</title>
      <link>https://zefanjas.de/tipps-fuer-die-kommandozeile/</link>
      <pubDate>Mon, 12 Nov 2018 23:21:01 +0000</pubDate>
      
      <guid>https://zefanjas.de/tipps-fuer-die-kommandozeile/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id=&#34;ton-anschalten--stumm-schalten&#34;&gt;Ton anschalten / stumm schalten&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Ton einschalten
$ pactl set-sink-mute 0 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Möchte man den Ton wieder stumm schalten, muss die letzte Null durch eine „1“ ersetzt werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Ton stumm schalten
$ pactl set-sink-mute 0 1
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;primären-bildschirm-festlegen&#34;&gt;Primären Bildschirm festlegen&lt;/h2&gt;
&lt;p&gt;In den meisten Räumen wird &lt;a href=&#34;https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi/&#34;&gt;standardmäßig der Bildschirm gespiegelt&lt;/a&gt;, 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 &lt;code&gt;xrandr&lt;/code&gt; lösen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ xrandr --output DVI-0 --primary
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;DVI-0&lt;/em&gt; ist der Ausgang, an dem der Monitor auf dem Lehrertisch hängt. Über &lt;code&gt;xrandr -q&lt;/code&gt; kann man sich alle verfügbaren Anschlüsse anzeigen lassen.&lt;/p&gt;
&lt;h2 id=&#34;mauszeiger-geschwindigkeit-einstellen&#34;&gt;Mauszeiger Geschwindigkeit einstellen&lt;/h2&gt;
&lt;p&gt;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 &lt;code&gt;xset&lt;/code&gt; oder &lt;code&gt;xinput&lt;/code&gt;. Wir haben uns über den Weg mit &lt;code&gt;xinput&lt;/code&gt; entschieden. Allgemein kann man die Eigenschaften eines Eingabegerätes wie folgt einstellen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ xinput --set-prop Geräte-ID Eigenschafts-ID Wert
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Geräte-ID bekommen wir indem wir &lt;code&gt;xinput&lt;/code&gt; ohne Parameter oder mit &lt;code&gt;--list&lt;/code&gt; ausführen. Hier im Beispiel ist eine kabellose Maus angeschlossen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2789&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_210.png&#34; alt=&#34;Mauszeiger Geschwindigkeit&#34; width=&#34;734&#34; height=&#34;462&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_210.png 734w, https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_210-300x189.png 300w, https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_210-429x270.png 429w&#34; sizes=&#34;(max-width: 734px) 100vw, 734px&#34; /&gt; 
&lt;p&gt;Als nächstes brauchen wir noch die richtige Eigenschaft-ID. Diese bekommen wir über folgenden Befehl heraus („9“ ist unsere Geräte-ID):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ xinput --list-props 9
&lt;/code&gt;&lt;/pre&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2790&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_211.png&#34; alt=&#34;Maus Beschleunigung&#34; width=&#34;734&#34; height=&#34;570&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_211.png 734w, https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_211-300x233.png 300w, https://zefanjas.de/wp-content/uploads/2018/11/zefanja@x260-_211-348x270.png 348w&#34; sizes=&#34;(max-width: 734px) 100vw, 734px&#34; /&gt; 
&lt;p&gt;Um die Beschleunigung der Maus einzustellen, müssen wir den Wert bei &lt;em&gt;Accel&lt;/em&gt; &lt;em&gt;Speed&lt;/em&gt; (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:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ xinput --set-prop 9 290 -1
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Alle diese kleinen Änderungen haben wir in ein Skript gepackt und dann per &lt;a href=&#34;http://docs.linuxmuster.net/de/latest/clients/postsync/basics.html&#34;&gt;Postsync&lt;/a&gt; an den entsprechenden Rechner verteilt. Diese Flexibilität, die Ubuntu oder in unserem Fall &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;linuxmuster.net&lt;/a&gt; bietet, ist eines der Hauptargumente, warum wir es einsetzen.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche netten und nützlichen Tipps für die Kommandozeile kennst du?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird</title>
      <link>https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi/</link>
      <pubDate>Tue, 30 Oct 2018 12:55:47 +0000</pubDate>
      
      <guid>https://zefanjas.de/bildschirme-automatisch-spiegeln-hdmi/</guid>
      <description>&lt;p&gt;In unserer Schule haben wir einige Rechner, an denen ein &lt;a href=&#34;https://zefanjas.de/kabellose-bilduebertragung-welche-moeglichkeiten-gibt-es/&#34;&gt;Beamer&lt;/a&gt; fest angeschlossen ist. Der Beamer wiederum hängt an einem HDMI-Switch, damit man bequem zwischen verschiedenen Eingängen umschalten kann, z.B. eigener Laptop oder Dokumentenkamera. Ubuntu erweitert standardmäßig den Desktop, wenn man einen Bildschirm anschließt. In unserer Situation wollen wir aber etwas anderes. Der Desktop des Rechners sollte ebenfalls am Beamer gezeigt werden. Es gibt verschiedene Wege, wie man Bildschirme automatisch spiegelt, wenn ein HDMI-Kabel eingesteckt wird. Ich möchte beschreiben, wie man udev verwenden kann, um dieses Problem zu lösen.&lt;/p&gt;
&lt;h2 id=&#34;bildschirme-automatisch-spiegeln&#34;&gt;Bildschirme automatisch spiegeln&lt;/h2&gt;
&lt;h3 id=&#34;potenzielle-möglichkeiten&#34;&gt;Potenzielle Möglichkeiten&lt;/h3&gt;
&lt;p&gt;Es gibt verschiedene Stellen, an denen man ansetzen kann, um Bildschirme zu spiegeln. Einige möchte ich kurz auflisten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;keine Automatisierung. Der Benutzer (in unserem Fall die Lehrkaft) muss sich nach jeder Anmeldung selbst den Bildschirm so einstellen, wie er/sie es haben will.&lt;/li&gt;
&lt;li&gt;Symbol auf dem Desktop. Eine weitere Möglichkeit wäre, dass man ein Skript erstellt, welches den Bildschirm spiegelt und eine Verknüpfung auf den Desktop legt. Mit einem Klick könnte man dann die Bildschirme spiegeln.&lt;/li&gt;
&lt;li&gt;Autostart eines Skripts nach dem Anmelden. Das war bisher unsere Lösung. Ein kleines Skript spiegelt die Bildschirme nach der Anmeldung des Benutzers.&lt;/li&gt;
&lt;li&gt;LightDM / GDM so konfigurieren, dass es schon beim Anmeldeschirm die Bildschirme spiegelt&lt;/li&gt;
&lt;li&gt;In Gnome3 / Unity kann man auch die monitor.xml verwenden, um Bildschirmkonfigurationen zu speichern.&lt;/li&gt;
&lt;li&gt;Ein Skript, was überprüft, ob ein Bildschirm angeschlossen ist oder nicht und entsprechend die Bildschirme spiegelt, auch im laufenden Betrieb.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die meisten Möglichkeiten hier lösen das Problem, dass die Bildschirme nach dem Anmelden / beim Anmelden gespiegelt sind. Bei uns trat aber zusätzlich das Problem auf, dass die Bildschirmeinstellungen zurückgesetzt wurden, sobald man ein eigenes Gerät eingesteckt oder eine andere Quelle am HDMI-Switch ausgewählt hatte. Wenn man dann zurückgeschaltet hat, war der Desktop wieder erweitert, statt gespiegelt.&lt;/p&gt;
&lt;p&gt;Daraus folgt die Frage: Gibt es eine Möglichkeit, eine Aktion auszulösen, sobald ein HDMI-Kabel eingesteckt oder abgezogen (physisch oder über den HDMI-Switch) wird?&lt;/p&gt;
&lt;h3 id=&#34;udev&#34;&gt;udev&lt;/h3&gt;
&lt;p&gt;Ja! &lt;a href=&#34;https://wiki.ubuntuusers.de/udev/&#34;&gt;udev&lt;/a&gt; ist ein Hintergrunddienst, der sich genau darum kümmert. Er kümmert sich um alle Einträge unterhalb von &lt;em&gt;/dev/&lt;/em&gt;, d.h. Festplatten, externe Medien, USB-Geräte und auch Grafikkarten. Wenn ein Kabel angesteckt oder abgezogen wird, löst udev ein Ereignis („Event“) aus, auf das man mit Hilfe einer udev-Regel reagieren kann. Bevor wir jedoch so eine Regel erstellen, wollen wir uns anschauen, was passiert, wenn ein Kabel eingesteckt oder abgezogen wird. Dazu können wir das udev-Management-Tool (udevadm) verwenden.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ udevadm monitor --environment --udev
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wenn wir jetzt das HDMI-Kabel einstecken oder abziehen, bekommen wir folgende Ausgabe:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;UDEV  [2247.166677] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2120
SUBSYSTEM=drm
TAGS=:seat:master-of-seat:uaccess:
USEC_INITIALIZED=15405142
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;udev sagt uns hier, um welches Gerät es sich handelt („card0“), welche Aktion ausgelöst wurde („CHANGE“) und welches Subsystem betroffen ist („DRM“). Diese Angaben brauchen wir gleich für unsere udev-Regel. Diese erstellen wir unter /etc/udev/rules.d/95-hotplug-hdmi.rules:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano /etc/udev/rules.d/95-hotplug-hdmi.rules
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dort fügen wir folgende Zeile ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ACTION==&amp;#34;change&amp;#34;, SUBSYSTEM==&amp;#34;drm&amp;#34;, RUN+=&amp;#34;/bin/bash /usr/sbin/setHDMIStatus&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wir reagieren also auf ein „&lt;em&gt;change&lt;/em&gt;“ Ereignis im Subsystem „&lt;em&gt;drm&lt;/em&gt;“ und wollen, falls dieses Event eintritt das Skript „&lt;em&gt;/usr/sbin/setHDMIStatus&lt;/em&gt;“ ausführen. Das Skript schreibt den aktuellen Status in eine Datei. Es kann auch irgendetwas anderes in die Datei geschrieben werden, Hauptsache, die Datei verändert sich, wenn der Status sich ändert. Warum werden wir gleich noch sehen. Das Skript &lt;em&gt;setHDMIStatus&lt;/em&gt; hat folgenden Inhalt (Benutzernamen anpassen, im Falle von linuxmuster.net kann man den Account des Vorlagenbenutzers bzw. lokalen Admins nehmen):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/bash

STATUS=&amp;#34;$(/bin/cat /sys/class/drm/card0-DVI-D-1/status)&amp;#34;
/bin/echo $STATUS &amp;amp;gt; /home/user/.hdmi_status
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;/sys/class/drm/card0-DVI-D-1/status&lt;/em&gt; ist der Pfad zum Status unseres HDMI-Anschlusses. In diesem Fall ist es ein DVI-Anschluss.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hinweis:&lt;/strong&gt; Das Skript ist ein Workaround, da zum Zeitpunkt des udev-Ereignisses &lt;em&gt;xrandr&lt;/em&gt; den Status &lt;em&gt;disconnected&lt;/em&gt; liefert, obwohl das Kabel angeschlossen war.&lt;/p&gt;
&lt;h3 id=&#34;inotify&#34;&gt;inotify&lt;/h3&gt;
&lt;p&gt;Bis jetzt haben wir lediglich erreicht, dass der Status (connected, disconnected) in eine Datei geschrieben wird. Wir wollen jetzt diese Datei auf Änderungen überwachen und je nach Status die Bildschirme spiegeln. Dazu erstellen wir folgendes Skript (z.B. mit dem Namen &lt;em&gt;/usr/sbin/mirrorDisplays&lt;/em&gt;):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/bin/bash

HDMI_STATUS=/home/user/.hdmi_status
PROJECTOR=/sys/class/drm/card0-DVI-D-1/status
touch $HDMI_STATUS
dmode=&amp;#34;$(cat $PROJECTOR)&amp;#34;

function mirror {
    xrandr --output DVI1 --mode &amp;#34;1280x1024&amp;#34; --same-as VGA1 --output VGA1 --mode &amp;#34;1280x1024&amp;#34;
}

#Initial Login (Spiegeln beim Anmelden)
if [ &amp;#34;${dmode}&amp;#34; = connected ];then
    mirror
fi

# watch HDMI connected status and setup screens
while inotifywait -q -e modify,create,delete,open,close,close_write,access $HDMI_STATUS &amp;amp;&amp;amp;gt; /dev/null;
dmode=&amp;#34;$(cat $PROJECTOR)&amp;#34;
do
    if [ &amp;#34;${dmode}&amp;#34; = connected ];then
     sleep .5s
     mirror
    fi
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit das Skript auch funktioniert, müssen die &lt;strong&gt;inotify-tools&lt;/strong&gt; installiert sein und das Skript ausführbar gemacht werden.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install inotify-tools
$ sudo chmod +x /usr/sbin/mirrorDisplays
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Das Skript überwacht unserer angelegte Datei (&lt;em&gt;/home/user/.hdmi_status&lt;/em&gt;) und löst, wenn ein HDMI-Kabel angeschlossen ist, den &lt;a href=&#34;https://wiki.ubuntuusers.de/RandR/&#34;&gt;xrandr-Befehl&lt;/a&gt; zum Spiegeln der Bildschirme aus.&lt;/p&gt;
&lt;h3 id=&#34;autostart&#34;&gt;Autostart&lt;/h3&gt;
&lt;p&gt;Nun muss das Skript nur noch als Startprogramm festgelegt werden, damit es bei der Anmeldung mit gestartet wird.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2781&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_207.png&#34; alt=&#34;Autostart einrichten&#34; width=&#34;607&#34; height=&#34;524&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_207.png 607w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_207-300x259.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_207-313x270.png 313w&#34; sizes=&#34;(max-width: 607px) 100vw, 607px&#34; /&gt; 
&lt;p&gt; &lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Wir nutzen dieses Setup nun für alle unsere Rechner, an denen ein Beamer hängt. Da wir dank &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;linuxmuster.net&lt;/a&gt; nur ein einziges Ubuntu-Image für alle unsere Rechner verwenden, verteilen wir die oben aufgeführten Skripte per &lt;a href=&#34;http://docs.linuxmuster.net/de/latest/clients/postsync/basics.html&#34;&gt;postsync&lt;/a&gt; an die entsprechenden Rechner.&lt;/p&gt;
&lt;p&gt;Bisher funktioniert alles recht zuverlässig, auch wenn wir weiterhin auf der Suche nach einer Lösung sind, die noch etwas universeller ist und keinen Umweg mit einer extra Datei braucht. Wer einen Vorschlag hat, nur her damit 🙂&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>OpenBoard – App des Monats</title>
      <link>https://zefanjas.de/openboard-app-des-monats/</link>
      <pubDate>Tue, 23 Oct 2018 07:16:00 +0000</pubDate>
      
      <guid>https://zefanjas.de/openboard-app-des-monats/</guid>
      <description>&lt;p&gt;In unserer Schule haben wir einige wenige interaktive Whiteboards, die wir natürlich auch gern unter Ubuntu verwenden wollen. Als Software verwenden wir OpenBoard. Vor einiger Zeit hatte ich bereits einen Artikel zur &lt;a href=&#34;https://zefanjas.de/schul-it-interaktive-whiteboards-und-ubuntu/&#34;&gt;Einrichtung und Integration&lt;/a&gt; von OpenBoard in unsere &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserverlösung&lt;/a&gt; &lt;a href=&#34;https://linuxmuster.net&#34;&gt;linuxmuster.net&lt;/a&gt; geschrieben. Die Software hat seitdem einige Updates erfahren. Für mich ist OpenBoard eine weitere &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;unerlässliche Software&lt;/a&gt; für den Einsatz in der Schule. OpenBoard kann auch gut verwendet werden, wenn man keine interaktiven Whiteboards hat.&lt;/p&gt;
&lt;h2 id=&#34;installation-von-openboard&#34;&gt;Installation von OpenBoard&lt;/h2&gt;
&lt;p&gt;OpenBoard kann man direkt von der Website herunterladen und installieren. Leider gibt es derzeit nur eine Version für Ubuntu 16.04 und noch nicht für 18.04. Nach dem Download kann man OpenBoard wie folgt installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ wget https://github.com/OpenBoard-org/OpenBoard/releases/download/v1.4.1/openboard_ubuntu_16.04_1.4.1_amd64.deb
$ sudo dpkg -i openboard_ubuntu_16.04_1.4.1_amd64.deb
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;features&#34;&gt;Features&lt;/h2&gt;
&lt;h3 id=&#34;einfach-zu-benutzen&#34;&gt;Einfach zu benutzen&lt;/h3&gt;
&lt;p&gt;OpenBoard bietet eine übersichtliche Oberfläche, in der man sich schnell zurechtfindet. Am unteren Bildschirmrand findet man die verschiedenen Werkzeuge, wie z.B. Stift, Textmarker, Laserpointer etc. Am oberen Rand kann man die Farbe, die Linienstärke einstellen oder auch fortgeschrittene Einstellungen zu den Seiten und dem Seitenhintergrund vornehmen. Auf der rechten Seite kann man sich bei Bedarf die Bibliothek (Bilder, Sounds, Videos, …) einblenden lassen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2770 size-large&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_205-1024x537.png&#34; alt=&#34;OpenBoard Oberfläche&#34; width=&#34;640&#34; height=&#34;336&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_205-1024x537.png 1024w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_205-300x157.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_205-768x403.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_205-515x270.png 515w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_205.png 1224w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 
&lt;h3 id=&#34;mini-anwendungen&#34;&gt;Mini-Anwendungen&lt;/h3&gt;
&lt;p&gt;OpenBoard stellt einige Mini-Anwendungen bereit, die teilweise sehr praktisch sind. Es gibt Widgets für Uhren, Countdowns, OpenStreetMap, Google Maps, Taschenrechner, Lineale usw. Zusätzlich stehen auch noch kleine interaktive Anwendungen wie Würfel, Magic Box etc. bereit. Diese lassen sich jeweils einzeln konfigurieren und so gut in den eigenen Unterricht integrieren.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2771&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_206.png&#34; alt=&#34;OpenBoard Widgets&#34; width=&#34;783&#34; height=&#34;571&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_206.png 783w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_206-300x219.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_206-768x560.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Ubuntu-16.04-wird-ausgeführt-Oracle-VM-VirtualBox_206-370x270.png 370w&#34; sizes=&#34;(max-width: 783px) 100vw, 783px&#34; /&gt; 
&lt;h3 id=&#34;podcast--screencast-modus&#34;&gt;Podcast / Screencast Modus&lt;/h3&gt;
&lt;p&gt;Seit Version 1.4 gibt es den Podcast bzw. Screencast Modus auch in der Linux-Version. Damit kann man seinen Unterricht bzw. Präsentation aufnehmen (mit und ohne Ton). Wenn man möchte, kann OpenBoard dieses Video dann direkt auf Youtube oder im eigenen Netz veröffentlichen. Dieses Feature ist sicher für einige interessant, denn es bietet ganz neue Möglichkeiten eine Unterrichtsstunde oder Ausschnitte anderen Personen zur Verfügung zu stellen.&lt;/p&gt;
&lt;h3 id=&#34;weitere-features&#34;&gt;Weitere Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Unterschiedliche Hintergründe für Seiten einstellbar (z.B. Kästchen oder Linien)&lt;/li&gt;
&lt;li&gt;Videos, Audio-Dateien können eingebunden werden&lt;/li&gt;
&lt;li&gt;Integrierte Webbildersuche&lt;/li&gt;
&lt;li&gt;Dokumenten-Management, um die einzelnen Seiten und Dokumente zu organisieren&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Wer einen Bildschirm, einen Beamer oder sogar ein interaktives Whiteboard in seinem Klassenzimmer hat, bekommt mit OpenBoard eine tolle Software an die Hand, die einfach zu verwenden ist. Sie bietet viele Erweiterungen und Gestaltungsmöglichkeiten an, sodass der Kreativität nur wenig Grenzen gesetzt sind.&lt;/p&gt;
&lt;p&gt;Auf &lt;a href=&#34;https://www.openboard.at/&#34;&gt;https://www.openboard.at/&lt;/a&gt; findet man weitere nützliche Tipps, Erweiterungen, Anleitungen und OpenBoard Dokumente.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Titelbild © openboard.ch&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Neue Features in Joplin</title>
      <link>https://zefanjas.de/neue-features-in-joplin/</link>
      <pubDate>Sat, 20 Oct 2018 06:55:13 +0000</pubDate>
      
      <guid>https://zefanjas.de/neue-features-in-joplin/</guid>
      <description>&lt;p&gt;Seit einigen Monaten verwende ich nun &lt;a href=&#34;https://zefanjas.de/joplin-eine-ernsthafte-open-source-evernote-alternative/&#34;&gt;Joplin&lt;/a&gt; und ich bin sehr zufrieden damit. Für alle, die eine Alternative zu Evernote oder einem anderen Notizprogramm suchen, sind wahrscheinlich in den meisten Fällen mit dieser &lt;a href=&#34;https://joplin.cozic.net/&#34;&gt;Open Source Lösung&lt;/a&gt; gut bedient. Im letzten halben Jahr sind einige neue Features in Joplin dazugekommen und viele Bugs wurden gefixt. Einige dieser Neuheiten möchte ich heute kurz vorstellen. Die grundsätzliche Installation, sowie das Einrichten einer verschlüsselten Synchronisierung, habe ich bereits in meinem letzten &lt;a href=&#34;https://zefanjas.de/joplin-eine-ernsthafte-open-source-evernote-alternative/&#34;&gt;Artikel&lt;/a&gt; beschrieben.&lt;/p&gt;
&lt;h2 id=&#34;neue-features-in-joplin&#34;&gt;Neue Features in Joplin&lt;/h2&gt;
&lt;h3 id=&#34;subnotebooks&#34;&gt;Subnotebooks&lt;/h3&gt;
&lt;p&gt;Auf dieses Feature hatte ich persönlich schon lange gewartet und bald wäre ich zu einer anderen Lösung gewechselt. Sobald man mehr als ein paar Notizen verwalten möchte, sind Subnotebooks unerlässlich. Ein Subnotebook kann sehr einfach erstellt werden. Man muss nur ein Notizbuch auf ein anderes ziehen – schon wird es Unter-Notizbuch eingerichtet.&lt;/p&gt;
&lt;p&gt;##&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2759&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Peek-2018-10-20-13-20.gif&#34; alt=&#34;joplin subnotebook&#34; width=&#34;386&#34; height=&#34;307&#34; /&gt;&lt;/p&gt;
&lt;h2 id=&#34;dateianhänge&#34;&gt;Dateianhänge&lt;/h2&gt;
&lt;p&gt;Dateien jeglicher Art lassen sich nun in Notizen einfügen. Dazu reicht es, wenn man die Datei in eine Notiz zieht. Bei Bildern wird i.d.R. eine Vorschau angezeigt, bei allen anderen Dateien ein Link eingefügt. Die Anhänge, auch Ressourcen genannt, werden mit synchronisiert und können dann auf einem anderen Gerät geöffnet werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2760&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Peek-2018-10-20-13-28.gif&#34; alt=&#34;Joplin Dateianhänge&#34; width=&#34;803&#34; height=&#34;572&#34; /&gt; 
&lt;h3 id=&#34;checkboxen&#34;&gt;Checkboxen&lt;/h3&gt;
&lt;p&gt;In Joplin kann man sich sehr leicht eine To-Do Liste erstellen. Möglich ist es dadurch, dass Joplin Markdown als Notizensyntax verwendet (HTML geht übrigens auch). So kann man mit „- [ ]“ eine Checkbox erstellen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2761&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_203.png&#34; alt=&#34;Joplin Todo&#34; width=&#34;803&#34; height=&#34;576&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_203.png 803w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_203-300x215.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_203-768x551.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_203-376x270.png 376w&#34; sizes=&#34;(max-width: 803px) 100vw, 803px&#34; /&gt; 
&lt;p&gt;Es sind übrigens nicht nur Checkboxen möglich, sondern auch komplexere Dinge wie z.B. &lt;a href=&#34;https://github.com/laurent22/joplin#math-notation&#34;&gt;mathematische Formeln&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;tray-icon&#34;&gt;Tray-Icon&lt;/h3&gt;
&lt;p&gt;Seit einigen Version bringt Joplin ein Tray-Icon mit, d.h. man hat nun die Möglichkeit das Anwendungsfenster zu schließen ohne Joplin an sich zu schließen. Ich mag dieses Feature sehr, da ich in der Regel nur Anwendungen geöffnet habe, die ich aktuell auch verwende. Was ich nicht verwende wird geschlossen oder falls möglich in den Tray bzw. das obere Panel geschickt 🙂&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2762&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_204.png&#34; alt=&#34;Joplin Tray&#34; width=&#34;540&#34; height=&#34;31&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_204.png 540w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_204-300x17.png 300w&#34; sizes=&#34;(max-width: 540px) 100vw, 540px&#34; /&gt; 
&lt;h2 id=&#34;portable-version&#34;&gt;Portable Version&lt;/h2&gt;
&lt;p&gt;Ich brauche das zwar nicht, aber mittlerweile gibt es auch eine portable Version von Joplin für Windows. Damit kann man die direkt von einem USB-Stick nutzen ohne sie zu installieren. Hier der &lt;a href=&#34;https://github.com/laurent22/joplin#desktop-applications&#34;&gt;Download-Link&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Seit diesem Schuljahr verwende ich Joplin u.a. zur Unterrichtsvorbereitung. Ich war gespannt, wie gut die Synchronisation (v.a. der Anhänge) zu meinem mobilen Client funktioniert. Bisher gab es keine Probleme und es ist toll seine Notizen überall dabei zu haben. Joplin kann ich nur meine wärmste Empfehlung aussprechen!&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welches Features gefällt dir besonders an Joplin?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Welche Linux-Distributionen sind für Schulen geeignet?</title>
      <link>https://zefanjas.de/welche-linux-distributionen-sind-fuer-schulen-geeignet/</link>
      <pubDate>Wed, 17 Oct 2018 23:01:40 +0000</pubDate>
      
      <guid>https://zefanjas.de/welche-linux-distributionen-sind-fuer-schulen-geeignet/</guid>
      <description>&lt;p&gt;Zur Zeit verwenden wir Ubuntu 16.04 mit Unity in unserer Schule und sind größtenteils zufrieden damit. Im kommenden Jahr wollen wir (im Zusammenhang mit dem Upgrade auf &lt;a href=&#34;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/&#34;&gt;linuxmuster.net v7&lt;/a&gt;) auch den Linux-Client aktualisieren. Da &lt;a href=&#34;https://zefanjas.de/warum-ich-unity-in-ubuntu-18-04-verwenden-werde/&#34;&gt;Unity&lt;/a&gt; standardmäßig nicht mehr Bestandteil von Ubuntu 18.04 ist, stellt sich uns die Frage, ob wir nicht noch mal grundsätzlich Gedanken machen. Ich möchte deshalb anhand verschiedener Punkte die Frage beantworten: „Welche Linux-Distributionen sind für Schulen geeignet“?&lt;/p&gt;
&lt;h2 id=&#34;anforderungen-an-eine-linux-distribution-in-der-schule&#34;&gt;Anforderungen an eine Linux-Distribution in der Schule&lt;/h2&gt;
&lt;p&gt;Allgemein sehen die Zeiten für Linux auf dem Desktop nicht gerade rosig aus. Die Innovation findet derzeit v.a. im Serverbereich statt und speziell Ubuntu auf dem Desktop hat sich in den letzten Jahren kaum weiterentwickelt. Gnome3 ist auch nicht gerade ein unumstrittener Desktop, im KDE-Lager kenne ich mich zu wenig aus, aber viel Innovatives und Kontinuierliches gab es da aus der Ferne betrachtet auch nicht.&lt;/p&gt;
&lt;p&gt;Aber zurück zu unseren Anforderungen. Aus meiner Sicht sind folgende Punkte wichtig, wenn man Linux in der Schule einsetzen möchte:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stabilität&lt;/li&gt;
&lt;li&gt;einfache Wartung &amp;amp; lange Supportzeiträume (Stichwort LTS)&lt;/li&gt;
&lt;li&gt;geringe Hardwareanforderungen&lt;/li&gt;
&lt;li&gt;einfache Bedienbarkeit&lt;/li&gt;
&lt;li&gt;modernes &amp;amp; hübsches Aussehen 🙂&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;stabilität&#34;&gt;Stabilität&lt;/h3&gt;
&lt;p&gt;Stabilität ist in meinem Augen das A&amp;amp;O. Eine Linux-Distribution, die nicht stabil läuft und immer wieder Probleme macht, wird kaum Akzeptanz finden. Als Administrator wird man auch keine Freude damit haben. Deshalb sollte die Distribution möglichst eine große Nutzerbasis haben und weit verbreitet sein. Niemand braucht einen Linux-Desktop in der Schule, der nur von wenigen Entwicklern gepflegt wird.&lt;/p&gt;
&lt;h3 id=&#34;einfache-wartung--lange-supportzeiträume&#34;&gt;Einfache Wartung &amp;amp; lange Supportzeiträume&lt;/h3&gt;
&lt;p&gt;Dieser Punkt hängt auch mit dem ersten zusammen. Wenn eine Distribution stabil läuft, entlastet mich das als Administrator. Lange Supportzeiträume bei LTS-Versionen sorgen dafür, dass ich nicht alle 6 Monate ein Upgrade durchführen muss. Aus diesem Grund fallen für mich eigentlich alle sogenannten „Rolling-Releases“ raus. Klar hat man dadurch nicht immer die aktuellste Software, aber das ist i.d.R. in einer Schule nicht ganz so wichtig. Am besten ist es, wenn eine große Gruppe an Entwicklern oder eine Firma hinter der Distribution steckt, um die Weiterentwicklung zu gewährleisten.&lt;/p&gt;
&lt;h3 id=&#34;geringe-hardwareanforderungen&#34;&gt;Geringe Hardwareanforderungen&lt;/h3&gt;
&lt;p&gt;Je nach Ausstattung der Schule, spielt das auch eine Rolle. Wir verwenden zum Teil noch Hardware, die schon mehr als 6-8 Jahre alt ist. Da ist es wichtig, dass unsere Linux-Distribution nicht zu hohe Hardwareanforderungen hat. Am besten sollte sie mit 2GB (max 4GB) Arbeitsspeicher klarkommen. Das Problem heutzutage ist, dass Browser wir Firefox oder Chromium sehr große Mengen an Arbeitsspeicher brauchen, wenn man mehr als 2 Tabs einer größeren Webanwendung (Youtube etc.) geöffnet hat. Es spielt also nicht nur die Wahl der Desktopumgebung eine Rolle, sondern auch die Wahl der eingesetzten Software.&lt;/p&gt;
&lt;h3 id=&#34;einfache-bedienbarkeit&#34;&gt;Einfache Bedienbarkeit&lt;/h3&gt;
&lt;p&gt;De ausgewählte Linux-Distribution sollte einfach zu bedienen sein. Was heißt das genau? Es gibt viele verschiedene Desktopumgebungen, die sich alle mehr oder weniger stark voneinander unterscheiden in ihrem Konzept und Bedienbarkeit. Schüler haben in der Regel weniger ein Problem, wenn man ihnen eine ungewohnte Umgebung vorsetzt. Am meisten Schwierigkeiten haben die Kollegen, die nur Windows kennen und oft nicht bereit sind, sich auf etwas anderes einzulassen. Hier muss man gut abwägen. Nehme ich eine Umgebung, die sich eher an dem Windows-Bedienkonzept orientiert, um den Umstieg zu erleichtern oder setze ich auf eine komplett andere Umgebung (Unity, Gnome3, …)? Wie auch immer die Wahl ausfällt, sollte man den Kollegen genug Hilfen der Fortbildungen zur Verfügung stellen, damit der Umstieg gelingt. Wenn der Desktop sich dazu (sehr) einfach bedienen lässt, ist das natürlich super. Die Frage ist – gibt es diesen Linux-Desktop?&lt;/p&gt;
&lt;h3 id=&#34;modernes--hübsches-aussehen&#34;&gt;Modernes &amp;amp; hübsches Aussehen&lt;/h3&gt;
&lt;p&gt;Dieser Punkt steht natürlich nicht ohne Grund am Ende, aber ich finde es durchaus wichtig, dass ein Linuxdesktop heutzutage auch modern und hübsch aussehen sollte. Niemand braucht einen altbackenen Desktop – es sollte auch was für’s Auge dabei sein.&lt;/p&gt;
&lt;h2 id=&#34;welche-linux-distributionen-kommen-in-frage&#34;&gt;Welche Linux-Distributionen kommen in Frage?&lt;/h2&gt;
&lt;p&gt;Innerhalb der nächsten Wochen und Monaten möchte ich mir einige Distributionen anschauen und auf ihre Tauglichkeit anhand der oben genannten Punkte testen. Dabei kommen für mich die Folgenden in Frage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ubuntu.com/desktop&#34;&gt;Ubuntu 18.04 (Gnome3)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ubuntu-mate.org/&#34;&gt;Ubuntu Mate 18.04&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.linuxmint.com/&#34;&gt;Linux Mint 19&lt;/a&gt; (Mate, Xfce, Cinnamon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://elementary.io/&#34;&gt;Elementary OS 5.0 Juno&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alle diese Distributionen haben einen Ubuntu-Unterbau. Der Grund dafür ist, dass die Anbindung an den &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;linuxmuster.net&lt;/a&gt; Server möglichst problemlos sein soll.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche anderen Entscheidungskriterien und Distributionen würdest du noch mit in Betracht ziehen?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>linuxmuster.net v7 – erster Blick auf das neue Webinterface</title>
      <link>https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/</link>
      <pubDate>Mon, 15 Oct 2018 23:20:55 +0000</pubDate>
      
      <guid>https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/</guid>
      <description>&lt;p&gt;Schon seit einiger Zeit arbeiten die Entwickler an der neuen Version 7 von linuxmuster.net. Diese Version wird einige Neuerungen mit sich bringen und vielleicht eines der wichtigsten Releases in der Geschichte des Projekts sein. Ubuntu wird auf die LTS (18.04) aktualisiert, der Domaincontroller Samba4 eingeführt und OPNSense wird in Version 7 die Aufgaben der Firewall übernehmen (bisher IPFire). Weiterhin gibt es auch eines neues Webinterface auf Basis von Ajenti. Zum Testen und nur mit einem Teil der Funktionen ist dieses Webinterface auch schon in der aktuellen Version 6.2 verfügbar. Heute möchte ich einen ersten Blick auf das neue Webinterface in linuxmuster.net v7 werfen.&lt;/p&gt;
&lt;h2 id=&#34;installation-eines-linuxmusternet-v7-testsystems&#34;&gt;Installation eines linuxmuster.net v7 Testsystems&lt;/h2&gt;
&lt;p&gt;Alle nötigen Schritte für die &lt;a href=&#34;https://github.com/linuxmuster/linuxmuster-base7/wiki&#34;&gt;Installation sind im Github Wiki&lt;/a&gt; des Projekts dokumentiert. Dort finden sich sowohl für die Firewall, den Server und neuen Dockerhost Appliances, d.h. fertige Virtualbox-Images. Für unseren Einblick in das neue Webinterface benötigen wir die Abbilder für die Firewall und den Server. Nachdem Download können wir die beiden Images in Virtualbox importieren. Der Server hat das Netz 10.0.0.0/16 voreingestellt. Seine IP ist 10.0.0.1 während die Firewall die IP 10.0.0.254 hat. Wir brauchen also noch einen weiteren Rechner, um uns das Webinterface anschauen zu können. Dazu können wir einfach eine weitere VM mit dem Betriebssystem unserer Wahl erstellen. Alles was wir brauchen, ist ein Browser im Subnet 10.0.0.0/16. Ich verwende einfach eine weitere Ubuntu-VM.&lt;/p&gt;
&lt;h2 id=&#34;die-neue-schulkonsole-aka-webui7&#34;&gt;Die neue Schulkonsole aka webUI7&lt;/h2&gt;
&lt;h3 id=&#34;setup&#34;&gt;Setup&lt;/h3&gt;
&lt;p&gt;Nachdem wir unser Testsystem fertig eingerichtet haben, können wir unter http://10.0.0.1:8000 das neue Webinterface von linuxmuster.net erreichen. Am Anfang können wir uns nur als root Benutzer anmelden (Standardpasswort ist Muster!), da noch keine weiteren User existieren. Nach dem Anmelden erscheint der Assistent zur Ersteinrichtung des Servers. Hier legen wir die wichtigsten Daten für unseren Schulserver fest (z.B. Domainname, Adminpasswort, Mail-Server-Setup, etc).&lt;/p&gt;
&lt;div id=&#39;gallery-3&#39; class=&#39;gallery galleryid-2425 gallery-columns-2 gallery-size-medium&#39;&gt;
  &lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_194-2/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;300&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_194-300x300.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Willkommen Webinterface&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_194-300x300.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_194-150x150.png 150w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_194-271x270.png 271w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_194.png 611w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;&lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_195-2/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;296&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_195-300x296.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Grundeinstellungen&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_195-300x296.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_195-274x270.png 274w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_195.png 609w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;&lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_196-2/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;181&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_196-300x181.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Admin Passwort&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_196-300x181.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_196-448x270.png 448w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_196.png 610w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;&lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_197/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;183&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_197-300x183.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Externe Dienste&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_197-300x183.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_197-444x270.png 444w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_197.png 608w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Wenn das Setup abgeschlossen ist, muss der Server einmal neugestartet werden. Danach ist das linuxmuster.net Webinterface nur noch per HTTPS erreichbar (https://10.0.0.1:8000).&lt;/p&gt;
&lt;h3 id=&#34;verwaltung&#34;&gt;Verwaltung&lt;/h3&gt;
&lt;p&gt;Das neue Webinterface teil sich grob in folgende Bereiche auf:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allgemeine Einstellungen&lt;/li&gt;
&lt;li&gt;Benutzerverwaltung&lt;/li&gt;
&lt;li&gt;Listenverwaltung&lt;/li&gt;
&lt;li&gt;Gerätemanagement&lt;/li&gt;
&lt;li&gt;Klassenmanagement&lt;/li&gt;
&lt;li&gt;Einstellungen zu Schulen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je nachdem, welche Rechte ein Benutzer hat, stehen nur einige dieser Bereiche in der webUI zur Verfügung. Viele der Module waren bereits in einer Vorabversion für die aktuelle Version 6.2 verfügbar. Neu ist das Klassenmanagement-Modul, womit Lehrkräfte Funktionen, wie Internetzugang, Webfilter, Dateien austeilen und einsammeln, für ihren Unterricht verwalten können.&lt;/p&gt;
&lt;p&gt;Hier noch ein paar weitere Screenshots:&lt;/p&gt;
&lt;div id=&#39;gallery-4&#39; class=&#39;gallery galleryid-2425 gallery-columns-2 gallery-size-medium&#39;&gt;
  &lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_198/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;141&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_198-300x141.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Dashboard&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_198-300x141.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_198-768x360.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_198-1024x480.png 1024w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_198-576x270.png 576w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_198.png 1181w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;&lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_199/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;222&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_199-300x222.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Linbo&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_199-300x222.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_199-768x569.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_199-365x270.png 365w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_199.png 914w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;&lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon landscape&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_200/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;300&#34; height=&#34;199&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_200-300x199.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Schüler&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_200-300x199.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_200-768x511.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_200-1024x681.png 1024w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_200-406x270.png 406w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_200.png 1188w&#34; sizes=&#34;(max-width: 300px) 100vw, 300px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;&lt;figure class=&#39;gallery-item&#39;&gt; 
  &lt;div class=&#39;gallery-icon portrait&#39;&gt;
    &lt;a href=&#39;https://zefanjas.de/linuxmuster-net-v7-erster-blick-auf-das-neue-webinterface/auswahl_201/&#39;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;80&#34; height=&#34;300&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_201-80x300.png&#34; class=&#34;attachment-medium size-medium&#34; alt=&#34;Menü&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_201-80x300.png 80w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_201-72x270.png 72w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_201.png 221w&#34; sizes=&#34;(max-width: 80px) 100vw, 80px&#34; /&gt;&lt;/a&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Noch befindet sich die LMNv7 in einem frühen Entwicklungsstadium. Viel ist passiert in den letzten Wochen und zunehmend gewinnt die neue Version der freien Schulserverlösung an Stabilität. Das gilt v.a. auch für das neue Webinterface. Ich bin gespannt auf die neue Version, da dadurch mehr möglich sein wird, als es das in der derzeitigen Version ist (Samba4, bessere Firewall, …).&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teil 6: Ausleihkonditionen – Wie man Koha installiert und für Schulen einrichtet</title>
      <link>https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</link>
      <pubDate>Sat, 06 Oct 2018 07:05:51 +0000</pubDate>
      
      <guid>https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</guid>
      <description>&lt;p&gt;Bisher haben wir Koha installiert, konfiguriert und erste Medien katalogisiert. Die Barcodes sind gedruckt und kleben in den Büchern. Eigentlich wartet alles darauf, dass wir endlich die Bücher an unsere Leser ausleihen können. Ein letzter Schritt fehlt noch und um den soll es heute gehen: die Ausleihkonditionen. Damit können wir festlegen, wer welche Medien, wie lange ausleihen darf. Aber auch Gebühren, Verlängerungen und noch vieles mehr können wir in Koha festlegen, bevor die ersten Bücher die Bibliothek verlassen.&lt;/p&gt;
&lt;p&gt;Dieser Artikel ist ein Teil einer Serie:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/&#34;&gt;Installation und Einrichtung einer ersten Bibliothek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/koha-installation-schule-bibliografische-framework/&#34;&gt;Das bibliografische Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Grundeinstellungen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Buchaufnahme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Drucken von Etiketten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Ausleihkonditionen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Verbinden mit einem Z.39.50 / SRU Server&lt;/li&gt;
&lt;li&gt;Benachrichtigungen und Erinnerungen&lt;/li&gt;
&lt;li&gt;Mahnungen und Gebühren&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;ausleihkonditionen-festlegen&#34;&gt;Ausleihkonditionen festlegen&lt;/h2&gt;
&lt;h3 id=&#34;neue-regel-erstellen&#34;&gt;Neue Regel erstellen&lt;/h3&gt;
&lt;p&gt;Wir finden die Einstellungen zu den Ausleihkonditionen unter &lt;strong&gt;Administration → Ausleihkonditionen&lt;/strong&gt;. Hier können wir Regeln für alle Bibliotheken oder auch nur für eine ganz bestimmte festlegen. Aktuell haben wir nur eine Bibliothek angelegt. Deshalb ist es für egal, ob wir die Regeln direkt für die Schulbibliothek festlegen oder allgemein für alle Bibliotheken.&lt;/p&gt;
&lt;p&gt;Standardmäßig ist bereits eine Regel angelegt, die für &lt;em&gt;Alle&lt;/em&gt; gilt.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2723&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_170.png&#34; alt=&#34;Regel für Alle&#34; width=&#34;1271&#34; height=&#34;245&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_170.png 1271w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_170-300x58.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_170-768x148.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_170-1024x197.png 1024w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_170-604x116.png 604w&#34; sizes=&#34;(max-width: 1271px) 100vw, 1271px&#34; /&gt; 
&lt;p&gt;Zuerst sollten wir diese Regel für „Alle“ an unsere Anforderungen anpassen. Danach können wir bei Bedarf noch weitere Regeln für einzelne Benutzergruppen erstellen, z.B. für Schüler oder Eltern. Wir klicken also auf &lt;strong&gt;Bearbeiten&lt;/strong&gt; und können dann alle Parameter anpassen:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2725&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_171.png&#34; alt=&#34;Ausleihkonditionen bearbeiten&#34; width=&#34;1267&#34; height=&#34;347&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_171.png 1267w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_171-300x82.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_171-768x210.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_171-1024x280.png 1024w, https://zefanjas.de/wp-content/uploads/2018/09/Auswahl_171-604x165.png 604w&#34; sizes=&#34;(max-width: 1267px) 100vw, 1267px&#34; /&gt; 
&lt;h3 id=&#34;erläuterungen&#34;&gt;Erläuterungen&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Benutzerkategorie&lt;/em&gt; → Für welche Benutzerkategorie soll die Regel gelten?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Medientyp&lt;/em&gt; → Für welchen Medientyp soll die Regel gelten?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Anzahl gleichzeitiger Ausleihen&lt;/em&gt; → so viele Bücher dürfen gleichzeitig ausgeliehen werden&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Anzahl gleichzeitiger Vor-Ort-Ausleihen&lt;/em&gt; → hier geht es um Medien, die nur innerhalb der Bibliothek ausgeliehen werden können.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Leihfrist&lt;/em&gt; → Wie lange darf ein Medium ausgeliehen werden?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Einheit&lt;/em&gt; → Tage oder Stunden, i.d.R. Tage&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Endgültiges Fälligkeitsdatum&lt;/em&gt; → macht z.B. für eine Lehrmittelbibliothek Sinn. Hier können wir dann das Datum des Schuljahresende als festes Fälligkeitsdatum eingeben. Sonst leer lassen.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Mahngebühr&lt;/em&gt; → Hier wird die Höhe der Mahngebühren für unsere Einheit festgelegt (d.h. in unserem Fall Mahngebühren pro Tag).&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Intervall für Gebühren&lt;/em&gt; → In welchen Abständen sollen die Gebühren berechnet werden? „1“ bedeutet z.B. jeden Tag, „5“ alle fünf Tage.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Wann berechnen&lt;/em&gt; → Intervallende bedeutet, dass die Gebühren am Ende am des Intervalls berechnet werden. Habe ich z.B. „1“ bei Intervall eingegeben, werden die Gebühren &lt;em&gt;nach&lt;/em&gt; dem 1. überfälligen Tag berechnet. Wenn ich jedoch Intervallanfang auswähle, werden Gebühren für jedes angefangene Intervall fällig.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Gnadenfrist für Gebühr&lt;/em&gt; → Für wie viele Tage / Stunden nach dem Fälligkeitsdatum soll keine Gebühr berechnet werden? „2“ bedeutet z.B. dass man das Buch bis 2 Tage nach Fälligkeit abgegeben kann, ohne dass man eine Gebühr bezahlen muss. Dies hängt aber auch davon ab, welche Einstellung man für den Systemparameter &lt;em&gt;FinesIncludeGracePeriod&lt;/em&gt; gewählt hat.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Maximale Mahngebühr&lt;/em&gt; → Wie hoch sollen die maximalen Gebühren / Medium sein?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Maximale Mahngebühr = Buchersatzpreis&lt;/em&gt; → die maximale Gebühr soll den Buchersatzpreis nicht überschreiten&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sperrung (in Tagen)&lt;/em&gt; → Alternative „Gebühr“, wenn man Benutzer sperren will, falls sie überfällige Medien haben&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Maximale Sperrung (in Tagen)&lt;/em&gt; → maximale Sperrung (geht nur bei Einheit „Tage“, nicht „Stunden“)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Berechnungsintervall für Sperren&lt;/em&gt; → siehe „Intervall für Gebühren“&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Erlaubte Verlängerungen (Anzahl)&lt;/em&gt; → Wie oft darf ein Benutzer sein Buch verlängern?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Verlängerungszeitraum&lt;/em&gt; → Für wie viele Tage / Stunden wird bei einer Verlängerung verlängert?_&lt;br&gt;
_&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Weitere Verlängerung nicht möglich vor →&lt;/em&gt; Hier können wir festlegen, ab wie vielen Tagen / Stunden vor dem Fälligkeitsdatum eine Verlängerung möglich ist. Bleibt das Feld leer, kann man jederzeit verlängern.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Automatische Verlängerung&lt;/em&gt; → Hier können wir entscheiden, ob Medien automatisch verlängert werden sollen.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Keine automatische Verlängerung nach&lt;/em&gt; → Nach wie vielen Tagen soll keine automatische Verlängerung mehr erfolgen?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Keine automatische Verlängerung nach (hartes Datum)&lt;/em&gt; → Wie oben, nur das wir hier ein fixes Datum eingeben können.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Erlaubte Vormerkungen (Anzahl)&lt;/em&gt; → Wie viele Vormerkungen sind erlaubt?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Erlaubte Vormerkungen pro Titel (Anzahl)&lt;/em&gt; → Wie viele Vormerkungen sollen pro Titel erlaubt sein?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Vormerkung verfügbarer Titel&lt;/em&gt; → Verschiedene Einstellungen, ob und wie verfügbare Titel vorgemerkt werden können_&lt;br&gt;
_&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Exemplarvormerkungen&lt;/em&gt; → siehe oben, verschiedene Einstellungen zu Exemplarvormerkungen._&lt;br&gt;
_&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Artikelbestellungen&lt;/em&gt; → verschiedene Einstellungen, ob und wie Artikel bestellt werden können._&lt;br&gt;
_&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Rabatt auf Leihgebühr (%)&lt;/em&gt; → Falls Leihgebühren auf bestimmte Medien erhoben werden, kann man hier einen Rabatt festlegen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachdem wir alles nach unseren Wünschen eingestellt haben, klicken wir auch &lt;strong&gt;Speichern&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;weitere-einstellungen&#34;&gt;Weitere Einstellungen&lt;/h3&gt;
&lt;p&gt;Weiter unten können wir optional noch weitere Einstellungen vornehmen, z.B. wie vielen Medien pro Benutzerkategorie ausgeliehen werden darf (falls es noch nicht oben bei den Ausleihkonditionen geschehen ist).&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2729&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_174.png&#34; alt=&#34;weitere Einstellungen&#34; width=&#34;1171&#34; height=&#34;667&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_174.png 1171w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_174-300x171.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_174-768x437.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_174-1024x583.png 1024w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_174-474x270.png 474w&#34; sizes=&#34;(max-width: 1171px) 100vw, 1171px&#34; /&gt; 
&lt;h2 id=&#34;schließtage&#34;&gt;Schließtage&lt;/h2&gt;
&lt;p&gt;Für die Berechnung der Fälligkeitstage ist es wichtig, dass Koha weiß, wann unsere Bibliothek geschlossen hat, weil z.B. Ferien sind oder einfach nur Wochenende. Dazu öffnen wir unter &lt;strong&gt;Mehr → Werkzeuge → Kalender&lt;/strong&gt; den Kalender und geben dort alle Tage ein, an denen die Schulbibliothek geschlossen hat.&lt;/p&gt;
&lt;p&gt;Wenn wir z.B. Wochenenden als Schließtage definieren wollen, klicken wir auf einen Samstag und wählen dann &lt;em&gt;Schließtag, der sich jede Woche an diesem Tag wiederholt&lt;/em&gt;. Das müssen wir dann auch noch für den Sonntag machen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2730&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_175.png&#34; alt=&#34;Schließtage definieren&#34; width=&#34;848&#34; height=&#34;753&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_175.png 848w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_175-300x266.png 300w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_175-768x682.png 768w, https://zefanjas.de/wp-content/uploads/2018/10/Auswahl_175-304x270.png 304w&#34; sizes=&#34;(max-width: 848px) 100vw, 848px&#34; /&gt; 
&lt;p&gt;Für Ferien können wir auch einen Schließzeitraum wählen und oben den Beginn und das Ende der Ferien eingeben.&lt;/p&gt;
&lt;p&gt;Als letztes müssen wir noch festlegen, ob Koha Schließtage bei der Berechnung von Fälligkeitsterminen berücksichtigen soll oder nicht. Das geht über den Systemparameter &lt;em&gt;useDaysMode&lt;/em&gt;. Wenn wir Schließtage ausschließen wollen (was in einer Schulbibliothek aufgrund der Ferien viel Sinn macht), wählen wir an dieser Stelle  &lt;em&gt;des Kalenders und verlege das Rückgabedatum ggf. auf den nächsten Öffnungstag.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Wir haben jetzt alles eingestellt, um unsere Bücher und andere Medien an unsere Benutzer auszuleihen. Fälligkeiten werden korrekt unter Berücksichtigung der Schließtage berechnet. Alle weiteren Teile dieser Serie sind optional, aber erleichtern die Arbeit mit Koha teilweise enorm. Die Gebühren haben wir z.B. in den Ausleihkonditionen bereits festgelegt, aber sie werde noch nicht berechnet. Dazu sind noch weitere Schritte nötig, die ich in einem späteren Artikel beschreiben werde.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teil 5: Etikettendruck – Wie man Koha installiert und für Schulen einrichtet</title>
      <link>https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</link>
      <pubDate>Sat, 22 Sep 2018 05:19:28 +0000</pubDate>
      
      <guid>https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</guid>
      <description>&lt;p&gt;Koha ist eines der besten &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;Open Source Projekte&lt;/a&gt;, die ich kenne. Es ist eine sehr flexible Lösung, die etwas Zeit braucht, bis man sich darin zurechtfindet. Einen Großteil der Punkte haben wir aber bereits abgearbeitet, v.a. die &lt;a href=&#34;https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/&#34;&gt;Installation (Teil 1)&lt;/a&gt; und das &lt;a href=&#34;https://zefanjas.de/koha-installation-schule-bibliografische-framework/&#34;&gt;bibliografische Framework (Teil 2)&lt;/a&gt;. Im &lt;a href=&#34;https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;letzten Teil&lt;/a&gt; haben wir einige Bücher aufgenommen. Bevor wir jedoch anfangen können, Bücher oder andere Medien auszuleihen, braucht jedes Buch einen Barcode. Weiterhin müssen wir Regeln für die Ausleihe festlegen. Heute geht es um den Etikettendruck. Dieser Artikel ist ein Teil einer Serie:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/&#34;&gt;Installation und Einrichtung einer ersten Bibliothek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/koha-installation-schule-bibliografische-framework/&#34;&gt;Das bibliografische Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Grundeinstellungen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Buchaufnahme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Drucken von Etiketten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Ausleihkonditionen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Verbinden mit einem Z.39.50 / SRU Server&lt;/li&gt;
&lt;li&gt;Benachrichtigungen und Erinnerungen&lt;/li&gt;
&lt;li&gt;Mahnungen und Gebühren&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;etikettendruck-vorbereiten-wp-block-heading-für-die-barcodes-in-unserer-bibliothek-verwenden-wir-einfache-klebeetiketten-als-beispiel-nehmen-wir-einen-a4-bogen-mit-27-etiketten-der-größe-55x30mm-darauf-wollen-wir-unseren-barcode-drucken-sowie-den-titel-und-die-isbn-des-buches-für-den-etikettendruck-müssen-wir-zwei-dinge-erstellen&#34;&gt;Etikettendruck vorbereiten {.wp-block-heading} Für die Barcodes in unserer Bibliothek verwenden wir einfache Klebeetiketten. Als Beispiel nehmen wir einen A4-Bogen mit 27 Etiketten der Größe 55x30mm. Darauf wollen wir unseren Barcode drucken, sowie den Titel und die ISBN des Buches. Für den Etikettendruck müssen wir zwei Dinge erstellen:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;ein Layout für das Aussehen des Etiketts, d.h. welche Informationen sollen auf das Etikett gedruckt werden?&lt;/li&gt;
&lt;li&gt;ein Template des Etikettenbogens, d.h. wie viele Etiketten sind auf einem Blatt? Welche Größe hat das Etikett? Wie ist der Abstand?&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;layout-erstellen-wp-block-heading-wir-erstellen-zuerst-ein-layout-für-unser-etikett-mit-allen-informationen-die-wir-später-neben-dem-barcode-haben-wollen-dazu-gehen-wir-zu&#34;&gt;Layout erstellen {.wp-block-heading} Wir erstellen zuerst ein Layout für unser Etikett mit allen Informationen, die wir später neben dem Barcode haben wollen. Dazu gehen wir zu&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Werkzeuge → Etikettendruck&lt;/strong&gt; und erstellen mit &lt;strong&gt;Neu → Layout&lt;/strong&gt; eine neue Vorlage. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;399&#34; height=&#34;249&#34; class=&#34;wp-image-2697&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-6.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-6.png 399w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-6-300x187.png 300w&#34; sizes=&#34;(max-width: 399px) 100vw, 399px&#34; /&gt;&lt;/figure&gt; Nun müssen wir verschiedene Angaben machen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Layoutname → kann frei gewählt werden&lt;/li&gt;
&lt;li&gt;Barcodetyp → EAN13&lt;/li&gt;
&lt;li&gt;Layout-Typ → Titel/Barcode (d.h. erst wird der Titel und dann der Barcode gedruckt&lt;/li&gt;
&lt;li&gt;Bibliographische Daten → Hier wählen wir Listenfelder (d.h. wir können die Marc21-Tags direkt eingeben&lt;/li&gt;
&lt;li&gt;Datenfelder → &lt;em&gt;245a, 245b, isbn, issn&lt;/em&gt; (Ich hatte anfangs Probleme das Layout so hinzubekommen wie ich es wollte, mit den Datenfeldern und den Marc21-Tags hatte es dann geklappt)&lt;/li&gt;
&lt;li&gt;Weiter unten können dann noch Angaben zur Schriftgröße und Art gemacht werden (hier muss man etwas experimentieren, wie man es haben will).&lt;figure class=&#34;wp-block-image&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;809&#34; height=&#34;802&#34; class=&#34;wp-image-2698&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-7.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-7.png 809w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-7-150x150.png 150w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-7-300x297.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-7-768x761.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-7-272x270.png 272w&#34; sizes=&#34;(max-width: 809px) 100vw, 809px&#34; /&gt; &lt;/figure&gt; Am Ende klicken wir auf &lt;strong&gt;Speichern&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id=&#34;template-erstellen-wp-block-heading-nachdem-wir-nun-unser-layout-für-das-etikett-erstellt-haben-müssen-wir-koha-noch-mitteilen-wie-unser-etikettbogen-aussieht-dazu-erstellen-wir-ein-neues-template-mit&#34;&gt;Template erstellen {.wp-block-heading} Nachdem wir nun unser Layout für das Etikett erstellt haben, müssen wir Koha noch mitteilen, wie unser Etikettbogen aussieht. Dazu erstellen wir ein neues Template mit&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Neu → Template&lt;/strong&gt;. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;466&#34; height=&#34;226&#34; class=&#34;wp-image-2700&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-8.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-8.png 466w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-8-300x145.png 300w&#34; sizes=&#34;(max-width: 466px) 100vw, 466px&#34; /&gt;&lt;/figure&gt; In der Eingabemaske sind folgende Angaben notwendig:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Template-Code und -beschreibung → kann frei gewählt werden&lt;/li&gt;
&lt;li&gt;Einheiten → mm oder cm, je nachdem, wie man die Maße angeben will (ich habe mm genommen in unserem Beispiel)&lt;/li&gt;
&lt;li&gt;Seitenhöhe und -breite → Höhe und Breite des Etikettbogens (bei uns A4)&lt;/li&gt;
&lt;li&gt;Etikettenbreite und -höhe → Größe des Etiketts&lt;/li&gt;
&lt;li&gt;Oberer Seitenrand → Abstand von oben bis zum Rand des ersten Etiketts&lt;/li&gt;
&lt;li&gt;Linker Seitenrand → Abstand vom linken Seitenrand bis zum Rand des ersten Etiketts&lt;/li&gt;
&lt;li&gt;Oberer und Linker Textrand → Abstand des Textes vom Rand des Etiketts&lt;/li&gt;
&lt;li&gt;Anzahl Spalten und Reihen → Wie viele Reihen und Spalten hat der Bogen (bei 3×9 = 27 Etiketten)&lt;/li&gt;
&lt;li&gt;Abstand zwischen Spalten → Abstand zwischen den Etiketten (rechts / links)&lt;/li&gt;
&lt;li&gt;Abstand zwischen den Zeilen → Abstand zwischen den Etiketten (oben/unten)&lt;figure class=&#34;wp-block-image&#34;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1138&#34; height=&#34;472&#34; class=&#34;wp-image-2701&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-9.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-9.png 1138w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-9-300x124.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-9-768x319.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-9-1024x425.png 1024w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-9-604x251.png 604w&#34; sizes=&#34;(max-width: 1138px) 100vw, 1138px&#34; /&gt; &lt;/figure&gt; Am Ende wieder auf &lt;strong&gt;Speichern&lt;/strong&gt;. Statt einem Komma muss ein Punkt verwendet werden, falls man Maße mit Stellen nach dem Komma hat.&lt;/p&gt;
&lt;h3 id=&#34;barcodes-drucken-wp-block-heading-nun-haben-wir-alles-vorbereitet-und-können-unsere-barcodes-der-bereits-aufgenommenen-medien-ausdrucken-dazu-erstellen-wir-einen-neuen&#34;&gt;Barcodes drucken {.wp-block-heading} Nun haben wir alles vorbereitet und können unsere Barcodes der bereits aufgenommenen Medien ausdrucken. Dazu erstellen wir einen neuen&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Etiketten-Batch&lt;/em&gt; mit &lt;strong&gt;Neu → Etiketten-Batch&lt;/strong&gt;. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;416&#34; height=&#34;244&#34; class=&#34;wp-image-2702&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-10.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-10.png 416w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-10-300x176.png 300w&#34; sizes=&#34;(max-width: 416px) 100vw, 416px&#34; /&gt;&lt;/figure&gt; Es öffnet sich ein neues Eingabefeld über das wir unsere Barcodes eingeben können. Solange das Eingabefeld leer ist und wir unten auf &lt;strong&gt;Exemplare hinzufügen&lt;/strong&gt; klicken, öffnet sich ein neues Fenster, indem wir einfach die Barcodes unserer Medien suchen können. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;639&#34; height=&#34;300&#34; class=&#34;wp-image-2703&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-11.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-11.png 639w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-11-300x141.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-11-575x270.png 575w&#34; sizes=&#34;(max-width: 639px) 100vw, 639px&#34; /&gt;&lt;/figure&gt; Man kann einen Zeitraum angeben, indem man nach aufgenommenen Exemplaren suchen möchte. Nach einem Klick auf &lt;strong&gt;Suche&lt;/strong&gt; bekommt man die Ergebnisse präsentiert: &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;496&#34; height=&#34;264&#34; class=&#34;wp-image-2705&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-13.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-13.png 496w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-13-300x160.png 300w&#34; sizes=&#34;(max-width: 496px) 100vw, 496px&#34; /&gt;&lt;/figure&gt; Da wir alle aufgenommen Exemplare hinzufügen wollen, wählen wir oben &lt;strong&gt;Alles auswählen&lt;/strong&gt;, dann &lt;strong&gt;Markierte hinzufügen&lt;/strong&gt; und zum Schluss &lt;strong&gt;Fertig&lt;/strong&gt;. Nun sind alle unsere Exemplare im Eingabefeld und wir können sie mit &lt;strong&gt;Exemplare hinzufügen&lt;/strong&gt; zu unserem Etiketten-Batch hinzufügen. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;989&#34; height=&#34;532&#34; class=&#34;wp-image-2706&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-14.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-14.png 989w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-14-300x161.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-14-768x413.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-14-502x270.png 502w&#34; sizes=&#34;(max-width: 989px) 100vw, 989px&#34; /&gt;&lt;/figure&gt; Nun können wir mit &lt;strong&gt;Gesamten Batch exportieren&lt;/strong&gt; alle Etiketten in unserem Batch drucken. Es öffnet sich ein Popup. Dort wählen wir unser Etiketten-Layout und das Template aus. Zusätzlich können wir noch angeben, bei welchem Etikett auf dem Bogen der Ausdruck später starten soll. Das ist besonders praktisch, wenn man angefangene Bogen hat. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;800&#34; height=&#34;264&#34; class=&#34;wp-image-2707&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-15.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-15.png 800w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-15-300x99.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-15-768x253.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-15-604x199.png 604w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt;&lt;/figure&gt; Abschließend auf &lt;strong&gt;Export&lt;/strong&gt; klicken und wir können anschließend die Druckvorlage als &lt;strong&gt;PDF herunterladen&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#34;wp-block-image&#34;&gt;
  &lt;figure class=&#34;aligncenter&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;805&#34; height=&#34;262&#34; class=&#34;wp-image-2708&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-16.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-16.png 805w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-16-300x98.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-16-768x250.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-16-604x197.png 604w&#34; sizes=&#34;(max-width: 805px) 100vw, 805px&#34; /&gt;&lt;/figure&gt;
&lt;/div&gt; Fertig sind unsere Barcodes 🙂 Wir können sie nun ausdrucken. Beim Drucken müssen wir darauf achten, dass keine Seitenskalierung oder automatisch auf den Druckbereich verkleinert wird, da sonst du Maße nicht mehr stimmen. Unter Ubuntu sieht das z.B. so aus: &lt;figure class=&#34;wp-block-image&#34;&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;576&#34; height=&#34;159&#34; class=&#34;wp-image-2710&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-18.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-18.png 576w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-18-300x83.png 300w&#34; sizes=&#34;(max-width: 576px) 100vw, 576px&#34; /&gt; &lt;/figure&gt; Titel und ISBN helfen uns später das Etikett in das richtige Buch zu kleben.&lt;/p&gt;
&lt;div class=&#34;wp-block-image&#34;&gt;
  &lt;figure class=&#34;aligncenter is-resized&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;wp-image-2709&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-17.png&#34; alt=&#34;&#34; width=&#34;271&#34; height=&#34;141&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-17.png 476w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-17-300x156.png 300w&#34; sizes=&#34;(max-width: 271px) 100vw, 271px&#34; /&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 id=&#34;fazit-wp-block-heading-koha8217s-werkzeug-zum-etikettendruck-ist-sehr-flexibel-einstellbar-haben-wir-erstmal-unser-layout-und-template-erstellt-stellt-der-spätere-druck-der-etiketten-keine-hürde-mehr-dar-ich-empfehle-auf-jeden-fall-einige-probedrucke-auf-normalen-papier-um-die-abstände-und-das-layout-der-etiketten-zu-überprüfen-im-nächsten-teil-geht-es-weiter-mit-den-ausleihkonditionen&#34;&gt;Fazit {.wp-block-heading} Koha’s Werkzeug zum Etikettendruck ist sehr flexibel einstellbar. Haben wir erstmal unser Layout und Template erstellt, stellt der spätere Druck der Etiketten keine Hürde mehr dar. Ich empfehle auf jeden Fall einige Probedrucke auf normalen Papier, um die Abstände und das Layout der Etiketten zu überprüfen. Im nächsten Teil geht es weiter mit den Ausleihkonditionen.&lt;/h3&gt;
</description>
    </item>
    
    <item>
      <title>Teil 4: Katalogisierung – Wie man Koha installiert und für Schulen einrichtet</title>
      <link>https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</link>
      <pubDate>Wed, 05 Sep 2018 22:00:55 +0000</pubDate>
      
      <guid>https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</guid>
      <description>&lt;p&gt;Nach einer etwas zu lang geratenen Pause geht es heute weiter in der Serie „Wie man Koha installiert und für Schulen einrichtet“. Nachdem das System installiert, das bibliographische Framework eingerichtet und grundlegende Einstellungen vorgenommen sind, werden wir uns in diesem Artikel mit der Aufnahme von Büchern in Koha bzw. der Katalogisierung beschäftigen. Dieser Artikel ist ein Teil einer Serie:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/&#34;&gt;Installation und Einrichtung einer ersten Bibliothek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/koha-installation-schule-bibliografische-framework/&#34;&gt;Das bibliografische Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Grundeinstellungen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Buchaufnahme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Drucken von Etiketten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Ausleihkonditionen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Verbinden mit einem Z.39.50 / SRU Server&lt;/li&gt;
&lt;li&gt;Benachrichtigungen und Erinnerungen&lt;/li&gt;
&lt;li&gt;Mahnungen und Gebühren&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;buchaufnahme-wp-block-heading-ein-buch-können-wir-über-den-punkt&#34;&gt;Buchaufnahme {.wp-block-heading} Ein Buch können wir über den Punkt&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Katalogisierung → Neuer Titel → Schnellaufnahme&lt;/strong&gt;&lt;/em&gt; aufnehmen. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;763&#34; height=&#34;125&#34; class=&#34;wp-image-2675&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik.png&#34; alt=&#34;Buchaufnahme&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik.png 763w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-300x49.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-604x99.png 604w&#34; sizes=&#34;(max-width: 763px) 100vw, 763px&#34; /&gt;&lt;/figure&gt; Es erscheint eine Eingabemaske, in der wir alle wichtigen Daten zu unserem Buch eingeben können. Als Beispiel habe ich hier das Buch „Irgendwie anders“ ausgewählt. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;a href=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-1.png&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;761&#34; height=&#34;918&#34; class=&#34;wp-image-2676&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-1.png&#34; alt=&#34;Eingabemaske Katalogisierung&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-1.png 761w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-1-249x300.png 249w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-1-224x270.png 224w&#34; sizes=&#34;(max-width: 761px) 100vw, 761px&#34; /&gt;&lt;/a&gt;&lt;/figure&gt; Mit einem Klick auf „Speichern“ am oberen Bildschirmrand kommen wir zur nächsten Eingabemaske.&lt;/p&gt;
&lt;h3 id=&#34;exemplar-hinzufügen-wp-block-heading-wir-haben-bisher-den-titel-aufgenommen-jetzt-können-wir-zu-diesem-titel-exemplare-hinzufügen-in-einer-schulbibliothek-ist-das-in-der-regel-ein-exemplar-manchmal-existieren-aber-auch-mehrere-exemplare-eines-titels-va-wenn-man-auch-schulbücher-mit-in-das-system-aufnimmt&#34;&gt;Exemplar hinzufügen {.wp-block-heading} Wir haben bisher den Titel aufgenommen. Jetzt können wir zu diesem Titel Exemplare hinzufügen. In einer Schulbibliothek ist das in der Regel ein Exemplar. Manchmal existieren aber auch mehrere Exemplare eines Titels (v.a. wenn man auch Schulbücher mit in das System aufnimmt). &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-4.png&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;794&#34; height=&#34;748&#34; class=&#34;wp-image-2679&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-4.png&#34; alt=&#34;Exemplar hinzufügen&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-4.png 794w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-4-300x283.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-4-768x724.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-4-287x270.png 287w&#34; sizes=&#34;(max-width: 794px) 100vw, 794px&#34; /&gt;&lt;/a&gt;&lt;/figure&gt; Die wichtigsten Felder sind die Sammlung, der Aufstellungsort, die Signatur und der Barcode. Die anderen Felder können zusätzlich ausgefüllt werden. Der Barcode sollte automatisch generiert werden, wenn man in das Feld klickt und die Systemeinstellung „autoBarcode“ aktiviert hat (siehe Teil 3 dieser Serie). Unter Sammlung erscheinen alle Werte, die wir ebenfalls in Teil 3 unter „Normierten Werten → CCODE“ eingerichtet haben. Ebenso der Aufstellungsort (Normierte Werte → LOC).&lt;/p&gt;
&lt;h3 id=&#34;signaturen-und-systematik-wp-block-heading-je-nach-größe-der-bibliothek-ist-es-sinnvoll-eine-systematik-einzuführen-eine-systematik-beschreibt-wie-man-die-bücher-gruppieren-und-innerhalb-der-bibliothek-ordnen-möchte-es-gibt-dafür-verschiedene-systeme-und-generell-ist-es-sinnvoll-eine-systematik-zu-haben-die-sich-an-der-stadtbibliothek-oder-einer-anderen-bibliothek-in-der-nähe-orientiert-so-finden-sich-die-kinder-schnell-zurecht-und-lernen-wie-man-sich-einer-bibliothek-orientiert-in-deutschland-gibt-es-verschiedene-empfehlungen-die-sich-in-ihrer-komplexität-unterscheiden-generell-sollte-die-systematik-so-einfach-wie-möglich-sein-um-eine-schnelle-orientierung-zu-ermöglichen-hier-ein-beispiel-von-unserer-schulbibliothek-es-fehlt-die-erwachsenenliteratur&#34;&gt;Signaturen und Systematik {.wp-block-heading} Je nach Größe der Bibliothek ist es sinnvoll eine Systematik einzuführen. Eine Systematik beschreibt, wie man die Bücher gruppieren und innerhalb der Bibliothek ordnen möchte. Es gibt dafür verschiedene Systeme und generell ist es sinnvoll eine Systematik zu haben, die sich an der Stadtbibliothek oder einer anderen Bibliothek in der Nähe orientiert. So finden sich die Kinder schnell zurecht und lernen, wie man sich einer Bibliothek orientiert. In Deutschland gibt es verschiedene Empfehlungen, die sich in ihrer Komplexität unterscheiden. Generell sollte die Systematik so einfach wie möglich sein, um eine schnelle Orientierung zu ermöglichen. Hier ein Beispiel von unserer Schulbibliothek (es fehlt die Erwachsenenliteratur): &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1029&#34; height=&#34;304&#34; class=&#34;wp-image-2678&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-3.png&#34; alt=&#34;&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-3.png 1029w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-3-300x89.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-3-768x227.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-3-1024x303.png 1024w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-3-604x178.png 604w&#34; sizes=&#34;(max-width: 1029px) 100vw, 1029px&#34; /&gt; &lt;/figure&gt; Jede Kategorie hat also seine Farbe und ihre Abkürzung, die wir für die Signatur verwenden können. Auch für Signaturen gibt es verschiedene Systeme und Möglichkeiten. Wir haben uns entschieden die Abkürzung aus der Systematik mit den ersten drei Buchstaben des Autors zu verbinden. In unserem Fall also „1.4 Cav“, d.h. „1.4“ für Bilderbücher ab 3 Jahren und „Cav“ für die ersten drei Buchstaben des Nachnamens der Autorin. Man kann aber auch fortlaufend Nummern vergeben. Mit einem Klick auf „Exemplar hinzufügen“ wird das Exemplar in Koha gespeichert. &lt;figure class=&#34;wp-block-image&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1121&#34; height=&#34;392&#34; class=&#34;wp-image-2681&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-5.png&#34; alt=&#34;Detailansicht Titel&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/09/grafik-5.png 1121w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-5-300x105.png 300w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-5-768x269.png 768w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-5-1024x358.png 1024w, https://zefanjas.de/wp-content/uploads/2018/09/grafik-5-604x211.png 604w&#34; sizes=&#34;(max-width: 1121px) 100vw, 1121px&#34; /&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;h3 id=&#34;fazit-wp-block-heading-wir-haben-nun-unseren-ersten-titel-in-das-system-aufgenommen-nach-dem-gleichen-muster-können-nun-weitere-bücher-oder-auch-andere-medien-in-koha-aufgenommen-werden-im-nächsten-teil-wird-es-um-den-druck-von-etiketten-mit-barcode-und-signaturschildern-gehen&#34;&gt;Fazit {.wp-block-heading} Wir haben nun unseren ersten Titel in das System aufgenommen. Nach dem gleichen Muster können nun weitere Bücher oder auch andere Medien in Koha aufgenommen werden. Im nächsten Teil wird es um den Druck von Etiketten (mit Barcode) und Signaturschildern gehen.&lt;/h3&gt;
</description>
    </item>
    
    <item>
      <title>Was gibt es neues von linuxmuster.net v7?</title>
      <link>https://zefanjas.de/was-gibt-es-neues-von-linuxmuster-net-v7/</link>
      <pubDate>Sat, 18 Aug 2018 03:29:34 +0000</pubDate>
      
      <guid>https://zefanjas.de/was-gibt-es-neues-von-linuxmuster-net-v7/</guid>
      <description>&lt;p&gt;Seit dem letzten Arbeitstreffen der Entwickler Anfang Mai gab es auf der Website des linuxmuster.net Projekts keine Neuigkeiten. Der &lt;a href=&#34;https://zefanjas.de/linuxmuster-v7-bald-als-alpha-version-verfuegbar/&#34;&gt;Plan&lt;/a&gt; war, dass es im Mai eine Alpha-Version geben sollte und im Juli eine Beta-Version. Was ist der aktuelle Stand rund um die neue linuxmuster.net v7?&lt;/p&gt;
&lt;p&gt;Auch wenn man von offizieller Seite kaum etwas Neues hört, so sind die Entwickler fleißig dabei Version 7 der freien Schulserverlösung vorwärts zu bringen. Die neue Version ist quasi eine Neuentwicklung, da sich sehr viele Komponenten ändern. Der Wechsel von Samba3 auf Samba4, eine neue Firewall und eine neue Schulkonsole. Einzig Linbo, der Bootmanager bzw. Imageverwaltung bleibt aus der aktuellen Version erhalten.&lt;figure class=&#34;wp-block-image&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1188&#34; height=&#34;955&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/08/grafik.png&#34; alt=&#34;Die neue Schulkonsole&#34; class=&#34;wp-image-2668&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/08/grafik.png 1188w, https://zefanjas.de/wp-content/uploads/2018/08/grafik-300x241.png 300w, https://zefanjas.de/wp-content/uploads/2018/08/grafik-768x617.png 768w, https://zefanjas.de/wp-content/uploads/2018/08/grafik-1024x823.png 1024w, https://zefanjas.de/wp-content/uploads/2018/08/grafik-336x270.png 336w&#34; sizes=&#34;(max-width: 1188px) 100vw, 1188px&#34; /&gt; &lt;figcaption&gt;Die neue Schulkonsole&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Wer interessiert ist, kann sich mit wenigen Schritten eine Testumgebung aufsetzen. Alle benötigten Dateien und Infos befinden sich im &lt;a href=&#34;https://github.com/linuxmuster/linuxmuster-base7/wiki&#34;&gt;Wiki des entsprechenden Github-Repository&lt;/a&gt;.Ich vermute, dass der ursprüngliche Release-Plan nicht eingehalten werden kann. In der linuxmuster.net Community galt bereits in der Vergangenheit der Grundsatz: „Es ist fertig, wenn es fertig ist“. Letztendlich ist es wichtiger eine stabile Version zu haben (gerade wegen der ganzen Wechsel), anstatt eine unfertige Version vorzeitig zu veröffentlichen.&lt;/p&gt;
&lt;p&gt;An unserer Schule verwenden wir seit ca. 2 Jahren die freie Schulserverlösung und sind bisher zufrieden damit. Im Bereich Schule ist dieses Projekt eine tolle Alternative zu anderen (oft teuren) Musterlösungen für einen Schulserver.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Backup für LXD-Container</title>
      <link>https://zefanjas.de/backup-fuer-lxd-container/</link>
      <pubDate>Sat, 12 May 2018 02:44:26 +0000</pubDate>
      
      <guid>https://zefanjas.de/backup-fuer-lxd-container/</guid>
      <description>&lt;p&gt;[LXD][1] ist ein Hypervisor für Linuxcontainer, den es seit einigen Versionen in Ubuntu gibt. Ein Linuxcontainer ist im Prinzip wie eine virtuelle Maschine, nur leichtgewichtiger. Wir verwenden LXD / LXC für viele unserer Anwendungen an der Schule. LXD lässt sich leicht bedienen und es gibt so [einige Gründe][2], warum wir es verwenden. Heute möchte ich zeigen, wie man das Backup für LXD-Container machen kann.&lt;/p&gt;
&lt;h3 id=&#34;1-möglichkeit-lxc-copy&#34;&gt;1. Möglichkeit: lxc copy&lt;/h3&gt;
&lt;p&gt;Die einfachste Möglichkeit besteht darin, das man einen LXD-Container einfach auf einen anderen Rechner kopiert. Dazu braucht man einen zweiten LXD-Host, den man auf dem ersten als Remote hinzufügt.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo lxc remote add lxd2 192.168.1.50
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;lxd2&lt;/em&gt; ist dabei der Name, den man dem zweiten LXD-Host geben wollen, gefolgt von der IP. Beim Setup des zweiten LXD-Hosts muss man darauf achten, dass er über das Netzwerk erreichbar ist und man muss auch ein Admin-Passwort vergeben. Dieses Passwort muss man eingeben, wenn man die Remote hinzufügen will.&lt;/p&gt;
&lt;p&gt;Ist alles eingerichtet kann man sich z.B. alle Container auf der Remote anzeigen lassen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc list lxd2:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Um nun ein Backup eines Containers zu machen, kopiert man ihn bzw. einen Snapshot auf die eben hinzugefügte Remote:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc snapshot my-container my-snapshot
$ lxc copy my-container/my-snapshot lxd2:my-backup
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In umgekehrter Weise kann man den Container wieder auf dem ursprünglichen Host wiederherstellen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc copy lxd2:my-backup my-container-restored
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;2-möglichkeit-lxc-export-und-lxc-publish&#34;&gt;2. Möglichkeit: lxc export und lxc publish&lt;/h3&gt;
&lt;p&gt;Mit LXD kann man auch einen Container als komprimiertes Image exportieren und dann auf einem NAS, einem Offsite-Backup oder einem Cloud-Speicher sichern. Später können diese Images dann mit &lt;code&gt;lxc import&lt;/code&gt; wieder importiert bzw. wiederherstellt werden.&lt;/p&gt;
&lt;p&gt;Auf [Github habe ich ein Skript gefunden][3], welches genau unsere Anforderungen erfüllt. Es exportiert den gewünschten Container und sichert ihn dann mit &lt;code&gt;rclone&lt;/code&gt; (tolles Projekt!!!) auf einen Cloud-Speicher/NAS unserer Wahl.&lt;/p&gt;
&lt;p&gt;Dazu muss man sich erst noch &lt;code&gt;rclone&lt;/code&gt; installieren und einrichten. Ein Anleitung für die Installation und Pakete für alle Plattformen gibt auf der [Projektwebseite][4]. &lt;code&gt;rclone&lt;/code&gt; unterstützt so ziemlich jeden Cloud-Speicher und Protokoll (ssh, webdav, …). Wir haben uns für ein Backup auf Google Drive entschieden, da wir da durch GSuite for Education unbegrenzten Speicherplatz haben 🙂&lt;/p&gt;
&lt;p&gt;Ist &lt;code&gt;rclone&lt;/code&gt; eingerichtet lädt man sich das Backup-Skript herunter, macht es ausführbar:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ wget https://raw.githubusercontent.com/cloudrkt/lxdbackup/master/lxdbackup
$ chmod +x lxdbackup
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit der Upload des Backups auch funktioniert muss man noch einige Parameter festlegen (v.a. RCLONETARGET).&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;$ nano lxdbackup
# Settings

# The target bucket or container in your Rclone cloudstorage 
RCLONETARGETDIR=&#34;lxdbackup&#34; 
# Optional Rclone settings.
RCLONEOPTIONS=&#34;&#34;
# Rclone target cloud used in your rlcone.conf
RCLONETARGET=&#34;my-remote&#34;
# Directory were local images are stored before upload
WORKDIR=&#34;/tmp/lxdbackup&#34;
```

Nun kann man das Skript mit folgendem Aufruf testen:

```
$ lxdbackup my-container
```

Wenn alles gut geht, sollten man sein Backup nach einiger Zeit (der Export eines Containers kann etwas dauern, je nach Größe) auf dem Speichern finden, den man in `rclone` konfiguriert hat.

### Fazit

Bisher haben wir einfach den LXD-Host im Gesamten gesichert. Das reicht in der Regel aus, aber man verliert die Möglichkeit einzelne Container getrennt voneinander wiederherstellen zu können. Mit dem lxdbackup-Skript und der Kombination mit `rclone` haben wir nun viel mehr Möglichkeiten und können unsere Container sehr flexibel sichern. Mit Hilfe von Cronjobs haben wir das Backup automatisiert. Manche Container werden z.B. 2x am Tag gesichert, andere nur 1x in der Woche ([und das nur, wenn keine Schulferien sind][5]) &amp;#8211; je nach Anwendungsfall.

 [1]: https://linuxcontainers.org/lxd/
 [2]: https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/
 [3]: https://github.com/cloudrkt/lxdbackup/
 [4]: https://rclone.org/
 [5]: https://github.com/anschuetz/linuxmuster/tree/master/schultag</description>
    </item>
    
    <item>
      <title>Linuxmuster v7 bald als Alpha-Version verfügbar</title>
      <link>https://zefanjas.de/linuxmuster-v7-bald-als-alpha-version-verfuegbar/</link>
      <pubDate>Sat, 05 May 2018 02:34:09 +0000</pubDate>
      
      <guid>https://zefanjas.de/linuxmuster-v7-bald-als-alpha-version-verfuegbar/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.linuxmuster.net/de/2018/05/04/arbeitstagung-und-mitgliederversammlung-in-pfinztal-linuxmuster-net-v7-wird-konkret/&#34;&gt;Am letzten Wochenende&lt;/a&gt; haben sich die Entwickler und Aktive rund um das &lt;a href=&#34;http://www.linuxmuster.net&#34;&gt;linuxmuster.net Projekt&lt;/a&gt; zu einem Arbeitstreffen getroffen. Dort stellten sie unter anderem den aktuelle Stand zur neuen Version der Schulserverlösung vor. Die neue Version v7 wird ein großer Schritt um Vergleich zur aktuellen Version, da sich einige Dinge ändern werden. Darüber hatte ich bereits &lt;a href=&#34;https://zefanjas.de/linuxmuster-net-v7-was-wird-sich-aendern/&#34;&gt;vor einigen Monaten gebloggt&lt;/a&gt;. Linuxmuster v7 soll bald als Alpha-Version verfügbar sein!&lt;/p&gt;
&lt;h3 id=&#34;releaseplan&#34;&gt;Releaseplan&lt;/h3&gt;
&lt;p&gt;Der Releaseplan sieht wie folgt aus, wobei der Grundsatz gilt: Es ist fertig, wenn es fertig ist!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alpha Version → Mitte Mai 2018&lt;/li&gt;
&lt;li&gt;Beta-Version → Juli 2018&lt;/li&gt;
&lt;li&gt;Release von linuxmuster.net v7 → Dezember 2018&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es werden Tester gesucht, die bereit sind, die Alpha- und Beta-Versionen zu testen. Dazu kann man sich vorgefertigte Virtualbox-Images herunterladen. Eine &lt;a href=&#34;https://github.com/linuxmuster/linuxmuster-base7/wiki/Die-Appliances&#34;&gt;Anleitung für die Ersteinrichtung&lt;/a&gt; und das Setup gibt es im Github-Repo des Projekts. Anleitung für die Ersteinrichtung&lt;/p&gt;
&lt;p&gt;Die Protokolle der Arbeitstagungen werden i.d.R. im &lt;a href=&#34;http://linuxmuster.net/vereinswiki/arbeitstreffen_verein&#34;&gt;Vereinwiki des Projekts&lt;/a&gt; veröffentlicht.&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Persönlich freue ich mich sehr auf die neue Version von linuxmuster.net, denn die aktuelle Version funktioniert zwar gut und zuverlässig, doch technisch gesehen ist sie schon etwas in die Jahre gekommen (Samba3, Ubuntu 12.04). Auch der Wechsel zu einer neuen (besseren) Firewall finde ich gut, denn mit der neuen Version können wir unsere Firewall pfSense noch besser mit linuxmuster.net integrieren.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>XenServer automatisch herunterfahren mit NUT</title>
      <link>https://zefanjas.de/xenserver-automatisch-herunterfahren-mit-nut/</link>
      <pubDate>Sat, 21 Apr 2018 00:18:23 +0000</pubDate>
      
      <guid>https://zefanjas.de/xenserver-automatisch-herunterfahren-mit-nut/</guid>
      <description>&lt;p&gt;Unsere Kerninfrastruktur an der Schule ist mit USVs /UPS abgesichert. Wir haben leider immer wieder Stromausfälle (meist kurze) und mit Hilfe der USVs können wir diese zumindest etwas überbrücken. An unserer USV / UPS hängt [ein Raspberry Pi, der als NUT Server][1] eingerichtet ist. Wenn der Strom ausfällt und die USV / UPS auf Batteriebetrieb umschaltet, sendet der Raspberry Pi ab einem bestimmten Ladestand einen Befehl an alle verbunden Server. Diese fahren sich dann automatisch herunter. Alle unsere Virtuellen Maschinen, Backup-Systeme und Server werden damit heruntergefahren. Ein wesentlicher Server hat aber bisher noch gefehlt: der Virtualisierungshost. Deshalb möchte ich heute kurz beschreiben, wie man einen XenServer automatisch herunterfahren lassen kann, indem man ihn als NUT-Client einrichtet.&lt;/p&gt;
&lt;h3 id=&#34;nut-client-installieren&#34;&gt;NUT-Client installieren&lt;/h3&gt;
&lt;p&gt;XenServer basiert auf CentOS, aber die Installation von Fremdpaketen ist nicht erlaubt. Man sollte sich auch bewusst sein, dass man evtl. keinen Support mehr erhält (falls man einen Supportvertrag hat), wenn man zusätzliche Pakete installiert.&lt;/p&gt;
&lt;p&gt;Um den NUT-Client installieren zu können, mussten wir bei unserem XenServer 7 noch folgende Anpassung in der Datei &lt;em&gt;&lt;strong&gt;/etc/yum.repos.d/CentOS-Base.repo&lt;/strong&gt;&lt;/em&gt; vornehmen. Im Abschnitt &lt;code&gt;[extras]&lt;/code&gt; haben wir in der Zeile &lt;code&gt;baseurl&lt;/code&gt; &lt;code&gt;$releaseserver&lt;/code&gt; mit einer &lt;code&gt;7&lt;/code&gt; ersetzt.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano /ect/yum.repos.d/CentOS-Base.repo
...
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;amp;arch=$basearch&amp;amp;rep$
baseurl=http://mirror.centos.org/centos/7/extras/$basearch/
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach können wir das Epel-Repo einrichten und den NUT-Client installieren:&lt;/p&gt;
&lt;pre class=&#34;code&#34;&gt;$ yum clean all
$ yum --enablerepo=extras -y install epel-release
```

Nun schauen wir, welches Paket unseren NUT-Client zur Verfügung stellt und installieren es:

```
$ yum provides /usr/sbin/upsmon
Geladene Plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.bangmodhosting.com
nut-2.7.2-3.el7.x86_64 : Network UPS Tools
Quelle : epel
Übereinstimmung von:
Dateiname : /usr/sbin/upsmon
```

```
$ yum install nut-client-2.7.2-3.el7.x86_64
```

### NUT einrichten

Nachdem der NUT-Client nun installiert ist, müssen wir ihn noch konfigurieren, damit unserer XenServer auch herunterfährt, falls der Strom ausfällt. Zuerst müssen wir noch eine Datei erstellen, um NUT mitzuteilen, dass unser XenServer ein Client ist:

```
$ nano /etc/ups/nut.conf
MODE=netclient

```

In der Datei _**/etc/ups/upsmon.conf**_ findet die Hauptkonfiguration statt. Dort ändern wir zwei Zeilen:

```
$ nano /etc/ups/upsmon.conf
...
MONITOR ups@192.168.1.2 1 upsremote password slave
...
SHUTDOWNCMD &#34;/etc/ups/xen-shutdown.sh&#34;
...
```

Je nach Konfiguration des NUT-Masters muss hier noch der UPS-Name, die IP, sowie Benutzername und Passwort angepasst werden.

Bevor unser XenServer herunterfährt, soll er vorher noch alle Virtuellen Maschinen ausschalten. Dazu habe ich [folgendes Skript][2] gefunden, welches wir nun herunterladen und ausführbar machen.

```
$ cd /etc/ups/
$ wget https://raw.githubusercontent.com/serrc-techops/NUT-Configuration/master/slave/xen/xen-shutdown.sh
$ chmod +x xen-shutdown.sh
```

Damit der NUT-Client auch automatisch startet, müssen wir noch einen Systemd-Service einrichten. Dazu erstellen wir die Datei _**/etc/systemd/system/nut-monitor.service**_ und fügen folgenden Inhalt ein:

```
$ nano /etc/systemd/system/nut-monitor.service

[Unit]
Description=Network UPS Tools - power device monitor and shutdown controller
After=local-fs.target network.target

[Service]
ExecStart=/usr/sbin/upsmon
PIDFile=/run/nut/upsmon.pid
Type=forking

[Install]
WantedBy=multi-user.target
```

Nun aktivieren wir diesen Service und starten ihn:

```
$ systemctl enable nut-monitor.service
$ systemctl daemon-reload
$ systemctl start nut-monitor
```

Mit `systemctl status nut-monitor` können wir uns anzeigen lassen, ob alles läuft:

```
nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller
Loaded: loaded (/etc/systemd/system/nut-monitor.service; enabled; vendor preset: disabled)
Active: active (running) since Mi 2018-04-18 17:13:42 ICT; 1 day 12h ago
Process: 997 ExecStart=/usr/sbin/upsmon (code=exited, status=0/SUCCESS)
Main PID: 1001 (upsmon)
CGroup: /system.slice/nut-monitor.service
├─1000 /usr/sbin/upsmon
└─1001 /usr/sbin/upsmon
```

### Automatisches Herunterfahren testen

Zuerst können wir das Skript zum Herunterfahren des XenServers testen und schauen, ob auch alle gestarteten VMs heruntergefahren werden. Dazu führen wir das Skript einfach aus:

```
$ sh /etc/ups/xen-shutdown.sh
```

Um einen Stromausfall zu simulieren und können wir auf dem _NUT Master_ folgenden Befehl absetzen:

```
$ sudo upsmon -c fsd
```

Danach muss man allerdings alle Geräte wieder von Hand einschalten oder per Wake-on-Lan wecken.

### Fazit

[NUT][3] ist ein tolles Projekt und es erlaubt uns sehr flexible Einsatzszenarien. Zur Zeit haben wir nur eine große UPS am NUT Master angeschlossen, aber es ist auch durchaus denkbar, mehrere UPS an den NUT Master anzuschließen. In Kombination mit Check_MK können wir somit den Status der USV / UPS ständig überwachen und bekommen ganz nebenbei auch eine Statistik, wie oft der Strom bei uns ausgefallen ist.

 [1]: https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/
 [2]: https://github.com/serrc-techops/NUT-Configuration/blob/master/slave/xen/xen-shutdown.sh
 [3]: http://networkupstools.org/</description>
    </item>
    
    <item>
      <title>Teil 3: Grundeinstellungen – Wie man Koha installiert und für Schulen einrichtet</title>
      <link>https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</link>
      <pubDate>Wed, 11 Apr 2018 05:00:30 +0000</pubDate>
      
      <guid>https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/</guid>
      <description>&lt;p&gt;Nachdem wir Koha im ersten Teil installiert und im zweiten Teil das Bibliografische Framework eingerichtet haben, geht es heute darum einige Grundeinstellungen in Koha vorzunehmen. Wir wollen neue Kategorien für unsere Benutzer und Medien einrichten, sowie einige Systemparameter ändern.&lt;/p&gt;
&lt;p&gt;Dieser Artikel ist ein Teil einer Serie:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/&#34;&gt;Installation und Einrichtung einer ersten Bibliothek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/koha-installation-schule-bibliografische-framework/&#34;&gt;Das bibliografische Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Grundeinstellungen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Buchaufnahme&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Drucken von Etiketten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/&#34;&gt;Ausleihkonditionen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Verbinden mit einem Z.39.50 / SRU Server&lt;/li&gt;
&lt;li&gt;Benachrichtigungen und Erinnerungen&lt;/li&gt;
&lt;li&gt;Mahnungen und Gebühren&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;grundeinstellungen&#34;&gt;Grundeinstellungen&lt;/h3&gt;
&lt;h4 id=&#34;bibliothek&#34;&gt;Bibliothek&lt;/h4&gt;
&lt;p&gt;Wir loggen uns wieder mit unseren Administrator-Account aus Teil 1 ein und wählen &lt;em&gt;&lt;strong&gt;Administration → Basisparameter → Bibliotheken und Gruppen&lt;/strong&gt;&lt;/em&gt;. In der Tabelle klicken wir auf Bearbeiten und können nun weitere Angaben zu unserer Bibliothek machen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2611&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_031.png&#34; alt=&#34;Koha Basisparameter Bibliotheken&#34; width=&#34;713&#34; height=&#34;334&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_031.png 713w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_031-300x141.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_031-576x270.png 576w&#34; sizes=&#34;(max-width: 713px) 100vw, 713px&#34; /&gt; 
&lt;p&gt;Neben der Post-Adresse können wir eine eMail-Adresse angeben oder eine zusätzliche Informationen, die im OPAC erscheinen sollen. Der OPAC ist der Teil von Koha, den die Benutzer sehen und in dem sie den Bestand durchsuchen können, sozusagen der öffentliche Teil der Bibliothekswebseite.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2612&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_032.png&#34; alt=&#34;Koha Bibliothek ausgefüllt&#34; width=&#34;829&#34; height=&#34;360&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_032.png 829w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_032-300x130.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_032-768x334.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_032-604x262.png 604w&#34; sizes=&#34;(max-width: 829px) 100vw, 829px&#34; /&gt; 
&lt;h4 id=&#34;medientypen&#34;&gt;Medientypen&lt;/h4&gt;
&lt;p&gt;Bei der Installation haben wir bereits den Medientyp „Buch“ angelegt. Diesen wollen zuerst bearbeiten unter &lt;em&gt;&lt;strong&gt;Administration → Basisparameter → Medientypen&lt;/strong&gt;&lt;/em&gt;. In der Tabelle klicken wir wieder auf Bearbeiten und können noch einiges einstellen. So können wir ein Bild festlegen oder bestimmen, ob Medien generell ausleihbar sind oder nicht. Wenn man möchte, kann man noch einen Leihgebühr, Bearbeitungskosten bei Verlust oder eine einen allgemeinen Rückgabehinweis eintragen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2613&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_033.png&#34; alt=&#34;Koha Medientypen&#34; width=&#34;1165&#34; height=&#34;740&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_033.png 1165w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_033-300x191.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_033-768x488.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_033-1024x650.png 1024w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_033-425x270.png 425w&#34; sizes=&#34;(max-width: 1165px) 100vw, 1165px&#34; /&gt; 
&lt;p&gt;Nach dem gleichen Muster legen wir jetzt noch weitere Medientypen an. Hier muss jeder selbst entscheiden, welche Medientypen er braucht. Man kann z.B. nur einen Typ für Bücher haben, oder mehrere anlegen z.B. zusätzlich für Präsenzexemplare. Für eine Schulbibliothek empfehle ich folgende Typen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buch (BU)&lt;/li&gt;
&lt;li&gt;DVD (DV)&lt;/li&gt;
&lt;li&gt;CD-Audio (CD)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wenn man noch Karten, CD-ROMs, … hat, kann man dafür natürlich noch weitere Medientypen anlegen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2615&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_034.png&#34; alt=&#34;Koha Medientypen&#34; width=&#34;1298&#34; height=&#34;397&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_034.png 1298w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_034-300x92.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_034-768x235.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_034-1024x313.png 1024w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_034-604x185.png 604w&#34; sizes=&#34;(max-width: 1298px) 100vw, 1298px&#34; /&gt; 
&lt;h4 id=&#34;benutzerkategorien&#34;&gt;Benutzerkategorien&lt;/h4&gt;
&lt;p&gt;Nachdem wir nun die Medientypen angelegt haben, brauchen wir noch verschiedene Kategorien für unsere Benutzer. Für jede Benutzerkategorie können wir separat Ausleihkonditionen oder Gebühren bei überfälligen Medien festlegen. Bei der Installation haben wir bereits eine Kategorie für Bibliotheksmitarbeiter angelegt. Unter &lt;em&gt;&lt;strong&gt;Administration → Benutzer und Ausleihe → Benutzertypen&lt;/strong&gt;&lt;/em&gt; richten wir nun noch folgende Gruppen ein:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bibliotheksmitarbeiter – (MA) → haben wir bereits&lt;/li&gt;
&lt;li&gt;Schüler (S)&lt;/li&gt;
&lt;li&gt;Eltern (P)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Über „+ Neue Kategorie“ können wir einen neuen Benutzertyp hinzufügen. Man kann entweder ein festes Ablaufdatum für diese Kategorie festlegen oder eine in Monaten angeben. Ich habe mich hier für 10 Jahre entschieden, also 120 Monate. Wenn man möchte kann man auch noch ein Mindest- oder Höchstalter festlegen. Unter Kategorie muss man eine der vorgebenden Kategorien wählen, in diesem Fall „Kind“.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2619&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_035.png&#34; alt=&#34;Koha neuer Benutzertyp&#34; width=&#34;573&#34; height=&#34;910&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_035.png 573w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_035-189x300.png 189w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_035-170x270.png 170w&#34; sizes=&#34;(max-width: 573px) 100vw, 573px&#34; /&gt; 
&lt;p&gt;Das gleiche machen wir jetzt auch für unsere Elternkategorie. Die Felder können individuell angepasst werden, nur beim Punkt Kategorie wählen wir „Erwachsener“. Wenn man zwischen Grundschülern und Mittel- bzw. Oberstufenschülern unterscheiden möchte (z.B. Ausleihkonditionen), braucht man dafür noch extra Benutzertypen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2621&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_036.png&#34; alt=&#34;Koha Benutzertypen&#34; width=&#34;1572&#34; height=&#34;297&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_036.png 1572w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_036-300x57.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_036-768x145.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_036-1024x193.png 1024w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_036-604x114.png 604w&#34; sizes=&#34;(max-width: 1572px) 100vw, 1572px&#34; /&gt; 
&lt;h4 id=&#34;normierte-werte-anpassen&#34;&gt;Normierte Werte anpassen&lt;/h4&gt;
&lt;p&gt;Normierte Werte sind immer dann sinnvoll, wenn man möchte, dass festgelegte Werte verwendet werden sollen. In der Regel braucht man das z.B. für den Status von Medien (verloren, beschädigt, …) oder für Standorte. Die Einstellungen zu den Normierten Werten befinden sich unter &lt;em&gt;&lt;strong&gt;Administration → Basisparameter → Normierte Werte&lt;/strong&gt;&lt;/em&gt;. Im Drop-Down Menü können wir die Kategorie auswählen und dann die Werte anpassen oder neue ergänzen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2630&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_042.png&#34; alt=&#34;Koha Normierte Werte&#34; width=&#34;788&#34; height=&#34;639&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_042.png 788w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_042-300x243.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_042-768x623.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_042-333x270.png 333w&#34; sizes=&#34;(max-width: 788px) 100vw, 788px&#34; /&gt; 
&lt;p&gt;Folgende Normierte Werte sollten wir uns anschauen und gegebenenfalls ändern bzw. ergänzen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LOC → Standorte&lt;/li&gt;
&lt;li&gt;CCODE → Sammlungen&lt;/li&gt;
&lt;li&gt;LOST → Status für verlorene Medien&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;systemparameter&#34;&gt;Systemparameter&lt;/h3&gt;
&lt;p&gt;Über die vielen verschiedenen Systemparameter können wir global Einstellungen in Koha vornehmen und verändern. Darüber kann man Koha sehr individuell anpassen. Wir werden jetzt einige wichtige Parameter kontrollieren und anpassen, sodass es für unseren Einsatzzweck passt. Hier die wichtigsten Paremeter:&lt;/p&gt;
&lt;h4 id=&#34;sprache-und-formate&#34;&gt;&lt;strong&gt;Sprache und Formate&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;dateformat → Datumsformat&lt;/li&gt;
&lt;li&gt;CalendarFirstDayOfWeek → ersten Tag der Woche definieren&lt;/li&gt;
&lt;li&gt;opaclanguagesdisplay → nur interessant, wenn man mehrere Sprachen installiert hat&lt;/li&gt;
&lt;li&gt;opaclanguages → nur interessant, wenn man mehrere Sprachen installiert hat&lt;/li&gt;
&lt;li&gt;language → nur interessant, wenn man mehrere Sprachen installiert hat&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2631&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_043.png&#34; alt=&#34;Koha i18n l10n&#34; width=&#34;986&#34; height=&#34;715&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_043.png 986w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_043-300x218.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_043-768x557.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/Auswahl_043-372x270.png 372w&#34; sizes=&#34;(max-width: 986px) 100vw, 986px&#34; /&gt; 
&lt;h4 id=&#34;ausleihe&#34;&gt;&lt;strong&gt;Ausleihe&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Unter diesem Punkt gibt es sehr viele Parameter. Die meisten von ihnen können wir in der Standardeinstellung so lassen bzw. werden wir später noch anpassen. Wenn wir eine Altersbeschränkung einrichten wollen, z.B. für DVDs oder Bücher, müssen folgenden Paramter ändern:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AgeRestrictionMarker → in &lt;em&gt;FSK|PEGI|Age|&lt;/em&gt; ändern&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Danach speichern.&lt;/p&gt;
&lt;h4 id=&#34;benutzer&#34;&gt;Benutzer&lt;/h4&gt;
&lt;p&gt;Bei Bedarf können wir folgende Parameter ändern:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CardnumberLength → Länge der Benutzernummer&lt;/li&gt;
&lt;li&gt;minPasswordLength → Mindestlänge für das Passwort eines Benutzers&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;katalogisierung&#34;&gt;Katalogisierung&lt;/h4&gt;
&lt;p&gt;Hier ändern wir nur einen Parameter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; autoBarcode  → inkrementelle EAN-13-Barcodes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;kataloganreicherung&#34;&gt;Kataloganreicherung&lt;/h4&gt;
&lt;p&gt;Die folgenden Parameter bewirken, dass Cover-Bilder von Amazon im OPAC bzw. in der Dienstoberfläche (Backend / Intranet) angezeigt werden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; AmazonCoverImages → auf &lt;em&gt;Zeige&lt;/em&gt; ändern&lt;/li&gt;
&lt;li&gt;OPACAmazonCoverImages → auf &lt;em&gt;Zeige&lt;/em&gt; ändern&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;opac&#34;&gt;OPAC&lt;/h4&gt;
&lt;p&gt;Zum Schluss können wir noch den OPAC an unsere Schulbibliothek anpassen. Auch hier gibt es wieder recht viele Parameter, von denen die meisten so gelassen werden können. Einige sollten wir aber bei Bedarf ändern:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; LibraryName → Name der Bibliothek&lt;/li&gt;
&lt;li&gt;OpacMainUserBlock→ Willkommensnachricht für die Hauptseite&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Die wichtigsten Grundeinstellungen in Koha haben wir nur abgearbeitet. Koha ist nun soweit eingerichtet, dass wir unsere ersten Bücher aufnehmen und ausleihen können. Das wird das Thema im nächsten Teil sein. Danach werden wir uns noch mit weiteren Themen wie Mahnungen und Gebühren, Benutzerverwaltung und -Import beschäftigen.&lt;/p&gt;
&lt;p&gt;Viel Spaß beim Einrichten der Schulbibliothek!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Warum ich Unity in Ubuntu 18.04 verwenden werde</title>
      <link>https://zefanjas.de/warum-ich-unity-in-ubuntu-18-04-verwenden-werde/</link>
      <pubDate>Sun, 08 Apr 2018 23:34:07 +0000</pubDate>
      
      <guid>https://zefanjas.de/warum-ich-unity-in-ubuntu-18-04-verwenden-werde/</guid>
      <description>&lt;p&gt;Am Wochenende habe ich die Zeit genutzt, um die &lt;a href=&#34;http://releases.ubuntu.com/bionic/&#34;&gt;Ubuntu 18.04&lt;/a&gt; auf meinem Rechner zu installieren. Bisher habe ich Ubuntu 16.04 mit Unity verwendet. Vom Typ her bin ich jemand, der möglichst den Standard verwendet, weil ich meine Zeit nicht jedes Mal mit vielen Anpassungen verschwenden möchte. Der Wechsel vor vielen Jahren von Gnome2 auf Unity verlief damals recht schmerzlos und ich konnte mich schnell damit anfreunden. Das war ehrlich gesagt auch meine Hoffnung beim Installieren von Ubuntu 18.04 und dem neuen Gnome3 Desktop. Ubuntu hat ja einige Änderungen vorgenommen, um den Umstieg von Unity auf Gnome3 zu erleichtern. Ist es ihnen gelungen? Persönlich sage ich nein. Nach zwei Tagen bin ich wieder zurück bei Unity in Ubuntu 18.04. Warum?&lt;/p&gt;
&lt;h3 id=&#34;was-ich-in-gnome3-als-unity-umsteiger-vermisse&#34;&gt;Was ich in Gnome3 als Unity-Umsteiger vermisse&lt;/h3&gt;
&lt;p&gt;Ich habe mich ja bereits als Unity-Liebhaber geoutet. Damit konnte ich mich schnell anfreunden und finde es in vielen Punkten sehr benutzerfreundlich und gelungen. Auf den neuen Gnome3 Desktop war ich neugierig und war ehrlich bereit mich darauf einzulassen, aber das wird einem nicht gerade leicht gemacht. Es fehlen mir viele kleine Dinge, die ich an Unity schätzen gelernt habe und die mir meine Arbeit mit dem Computer erleichtern. Hier einige Beispiele.&lt;/p&gt;
&lt;h4 id=&#34;einbindung-externer-medien&#34;&gt;Einbindung externer Medien&lt;/h4&gt;
&lt;p&gt;Ich habe mir gleich Dash-to-Dock installiert, um mehr Möglichkeiten bei der Anpassung des Docks zu haben, z.B. um den Programmstarter (heißt das so?) oben statt unten im Dock zu haben. In Unity werden externe Medien wie USB-Sticks als weiteres Symbol im Dock angezeigt – in Gnome3 als Icon auf dem Desktop. Das finde ich unpraktisch, gerade, wenn man mit maximierten Fenstern arbeitet, da man erst diese minimieren muss, um das Symbol zusehen und öffnen zu können. Vielleicht gibt es auch hier irgendeine Erweiterung dafür, aber das ist genau der Punkt. Ich möchte den Desktop nicht erst durch 50 Erweiterungen anpassen müssen, bis er sich so verhält, wie ich es gern hätte, zumindest nicht für grundlegende Sachen, wie das folgende Beispiel.&lt;/p&gt;
&lt;h4 id=&#34;computer-in-bereitschaft-setzen&#34;&gt;Computer in Bereitschaft setzen&lt;/h4&gt;
&lt;p&gt;Im Gnome3-Menü gibt es standardmäßig nur Buttons für Systemeinstellungen, Bildschirm sperren und Herunterfahren. Ich versetze meinen Laptop am Ende des Tages in Bereitschaft. Das kann ich aber in Gnome3 nur, wenn ich gleichzeitig die ALT-Taste drücke oder mir eine Erweiterung installiere. In Unity reichen 2 Klicks aus, in Gnome3 brauche ich dafür 2 Hände  oder eine Erweiterung.&lt;/p&gt;
&lt;h4 id=&#34;ausnutzung-des-bildschirmplatzes&#34;&gt;Ausnutzung des Bildschirmplatzes&lt;/h4&gt;
&lt;p&gt;Einen großen Vorteil von Unity sehe ich in der oberen Bildschirmleiste. Dort sind die Fenstermenüs und auch die Buttons für Schließen, minimieren und maximieren versteckt. Mir erleichtert es das Arbeiten enorm, wenn ich mit der Maus nur in die oberste linke Ecke fahren und klicken muss und weiß, das Fenster wird geschlossen. Ich muss nicht „zielen“ oder die Maus pixelgenau navigieren. Einfach links hoch schieben, klick und fertig. Weiterhin spart die Integration der Menüs in die obere Leiste eine Menge Bildschirmplatz. Gerade bei kleineren Bildschirmen. Standardmäßig ist das bei Gnome3 nicht so, kann natürlich wieder über Erweiterungen erreicht werden.&lt;/p&gt;
&lt;h4 id=&#34;icons-in-der-topbar&#34;&gt;Icons in der Topbar&lt;/h4&gt;
&lt;p&gt;Es scheint mir, dass einige Anwendungen eher auf Unity, statt auf Gnome3 optimiert sind, v.a. die Icons in der oberen Bildschirmleiste angeht. Ich hatte einige Anwendungen (z.B. Mattermost Desktop), die unter Unity gut integriert sind, die ich aber in Gnome3 – mal wieder – nur mit einer Erweiterung integrieren konnte.&lt;/p&gt;
&lt;h4 id=&#34;gdm-vs-lightdm&#34;&gt;GDM vs. LightDM&lt;/h4&gt;
&lt;p&gt;Auch wieder so eine Sache. Es sind die kleinen Dinge, die das Leben einfacher machen. Abgesehen davon, dass ich den Lightdm Anmeldeschirm im Vergleich zu dem vom GDM wesentlich schöner und hübscher finde, bietet er noch andere Vorteile. Standardmäßig wird sowohl bei GDM als auch Lightdm die Anmeldemaske nur auf einem Bildschirm angezeigt (wenn man mehr als einen Bildschirm angeschlossen hat). Bei Lightdm muss ich nur die Maus von einem Schirm auf den nächsten verschieben, um die Anmeldemaske auf den anderen Bildschirm zu holen. Das geht bei GDM nicht. Ein großer Nachteil, vor allem in &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;Schulen&lt;/a&gt;, wo in den &lt;a href=&#34;https://zefanjas.de/kabellose-bilduebertragung-welche-moeglichkeiten-gibt-es/&#34;&gt;Klassenräumen oft ein Beamer&lt;/a&gt; angeschlossen ist. Wenn die Anmeldemaske am Beamer erscheint, kann ich sie nicht „einfach so“ auf den angeschlossenen Rechner holen.&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Vielleicht sind das alles nur kleine Dinge und sicher lassen die sich auch größtenteils mit entsprechenden Erweiterungen anpassen, aber genau das ist der springende Punkt. Ich wünsche mir einen Desktop, den man produktiv einsetzen kann, ohne ihn erst durch Erweiterungen anpassen zu müssen. Sicher bin ich auch einige Jahre durch Unity geprägt und schaue jetzt stark durch diese gefärbte Brille, aber es sind u.a. die oben genannten Dinge, die mir die Arbeit am Rechner erleichtern.&lt;/p&gt;
&lt;p&gt;Für meinen Teil bin ich wieder zurück bei Unity, was mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install ubuntu-unity-desktop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;auch in Ubuntu 18.04 schnell erledigt ist – inklusive lightdm.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;An alle Unity-Liebhaber &amp;#8211; werdet ihr auf Gnome3 in Ubuntu 18.04 wechseln?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>GeoGebra – App des Monats</title>
      <link>https://zefanjas.de/geogebra-app-des-monats/</link>
      <pubDate>Thu, 05 Apr 2018 07:05:17 +0000</pubDate>
      
      <guid>https://zefanjas.de/geogebra-app-des-monats/</guid>
      <description>&lt;p&gt;Heute möchte ich kurz GeoGebra als weitere &lt;a href=&#34;https://zefanjas.de/tag/app-des-monats/&#34;&gt;App des Monats&lt;/a&gt; vorstellen. Es ist ein &lt;a href=&#34;http://www.geogebra.org&#34;&gt;sehr bekanntes Projekt&lt;/a&gt; und wir wahrscheinlich in fast allen Schulen im Mathematikunterricht eingesetzt. Doch was genau ist GeoGebra?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;GeoGebra (Kofferwort aus Geometrie und Algebra) ist eine Dynamische-Geometrie-Software (DGS), die zu ihren geometrischen Objekten nicht nur die übliche geometrische, sondern auch eine algebraische Schnittstelle zur Verfügung stellt. Geometrische Objekte können damit nicht nur gezeichnet, sondern auch durch die Angabe beziehungsweise Manipulation von Gleichungen verändert werden. Neben elementargeometrischen Objekten erlauben neuere Versionen von GeoGebra auch die Erzeugung von Funktionsgraphen, ebenen Kurven und Vektoren und verfügen über ein integriertes Computeralgebrasystem (CAS) und eine Tabellenkalkulation. (&lt;a href=&#34;https://de.wikipedia.org/wiki/GeoGebra&#34;&gt;Wikipedia&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;funktionen-von-geogebra&#34;&gt;Funktionen von GeoGebra&lt;/h3&gt;
&lt;p&gt;Der Wikipedia-Artikel über GeoGebra listet einige Funktionen auf. Kurz kann man sagen, dass GeoGebra viele leistungsstarke Funktionen hinter einer einfach zu bedienenden Benutzeroberfläche zugänglich macht. Dazu zählen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Funktionsgraphen (inkl. Krümmung, Extrema, Wendepunkt, Tangenten, Asymptoten, Spiegelungen etc.)&lt;/li&gt;
&lt;li&gt;Bestimmte Integrale sowie Stammfunktionen&lt;/li&gt;
&lt;li&gt;Geraden und ihre Steigung, Halbgerade&lt;/li&gt;
&lt;li&gt;Mittelpunkt, Mittelsenkrechte, Lote, Parallele, Winkelhalbierende&lt;/li&gt;
&lt;li&gt;Fläche von beliebigen Polygonen und regelmäßigen Vielecken&lt;/li&gt;
&lt;li&gt;Länge von Strecken, Größe von Winkeln&lt;/li&gt;
&lt;li&gt;Kegelschnitte: Ellipse, Kreis, Pol und Polare&lt;/li&gt;
&lt;li&gt;Kreissektoren, Kreisbögen, Umkreis&lt;/li&gt;
&lt;li&gt;Vektoren, Normalenvektor&lt;/li&gt;
&lt;li&gt;Rechnen mit komplexen Zahlen, Matrizen, Polynomen&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;GeoGebra ist ein weiteres Beispiel dafür, dass es heutzutage immer weniger auf das Betriebssystem ankommt, sondern man eigentlich nur noch einen Browser braucht. Es ist für eine Vielzahl an Plattformen verfügbar, aber man kann es auch &lt;a href=&#34;https://www.geogebra.org/classic&#34;&gt;online nutzen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Auf der Webseite des Projekts gibt es &lt;a href=&#34;https://www.geogebra.org/download&#34;&gt;Pakete im DEB oder RPM Format&lt;/a&gt; zum Download. Dort findet man auch eine portable Version, die man vom direkt von einem USB-Stick starten kann. Um die DEB für Debian oder Ubuntu zu installieren, &lt;a href=&#34;http://www.geogebra.org/download/deb.php?arch=amd64&amp;amp;ver=6&#34;&gt;lädt man sich das entsprechende Paket herunter&lt;/a&gt; und installiert es mit der Paketverwaltung.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo dpkg -i geogebra-classic*
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach kann man das Programm über den Programmstarter starten.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2600&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/04/GeoGebra-Classic_030.png&#34; alt=&#34;GeoGebra&#34; width=&#34;1024&#34; height=&#34;796&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/04/GeoGebra-Classic_030.png 1024w, https://zefanjas.de/wp-content/uploads/2018/04/GeoGebra-Classic_030-300x233.png 300w, https://zefanjas.de/wp-content/uploads/2018/04/GeoGebra-Classic_030-768x597.png 768w, https://zefanjas.de/wp-content/uploads/2018/04/GeoGebra-Classic_030-347x270.png 347w&#34; sizes=&#34;(max-width: 1024px) 100vw, 1024px&#34; /&gt; 
&lt;p&gt;GeoGebra gibt es noch in verschiedenen anderen Versionen für fast alle Plattformen zum Download. Unter anderem auch eine Augmented Reality App. Damit kann man Funktionen, Körper etc. virtuell im Raum darstellen. Hier ein Beispiel:&lt;/p&gt;
&lt;p&gt;An unserer Schule verwenden wir GeoGebra hauptsächlich im Mathematikunterricht. Ich persönlich verwende es als Grundschullehrer aber eher weniger in meinem Unterricht 🙂&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;GeoGebra ist eine preisgekrönte Software, die man sehr gut im Unterricht einsetzen kann. Es gibt auch einen „Klassenarbeitsmodus“, sodass man die App in Klausuren verwenden kann. Manche allerdings kritisieren die &lt;a href=&#34;https://www.geogebra.org/license&#34;&gt;Lizenz&lt;/a&gt;, die für diese Software verwendet wird. Teile der Software stehen unter der GPL, andere Teile (wie z.B. der Installer oder auch die Sprachdateien) sind unter einer eigenen Lizenz lizenziert. Die Nutzung für den Unterricht ist kostenfrei möglich – für Schüler und Lehrkräfte.&lt;/p&gt;
&lt;p&gt;Insgesamt kann man diese Software nur empfehlen, da es eine Unmenge an Features bietet und dabei noch einfach zu bedienen bleibt.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Zeitsteuerung in GRUB einrichten</title>
      <link>https://zefanjas.de/zeitsteuerung-in-grub-einrichten/</link>
      <pubDate>Mon, 02 Apr 2018 00:30:51 +0000</pubDate>
      
      <guid>https://zefanjas.de/zeitsteuerung-in-grub-einrichten/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://wiki.ubuntuusers.de/GRUB_2/&#34;&gt;GRUB 2&lt;/a&gt; hat viele Funkionen in Module ausgelagert. Dadurch ist es möglich, dass man nur die benötigten Funktionen lädt und damit kleinere Core-Images möglich sind. Man kann diese Module aber auch nutzen, um GRUB zu erweitern, z.B. um eine Zeitsteuerung in GRUB einzubauen. Damit ist es möglich ein bestimmtes Betriebssystem zu einer festgelegten Zeit zu starten.&lt;/p&gt;
&lt;p&gt;Eine Liste aller vorhandenen Module erhält man mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ls /boot/grub/i386-pc/
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;zeitsteuerung-in-grub-konfigurieren&#34;&gt;Zeitsteuerung in GRUB konfigurieren&lt;/h3&gt;
&lt;p&gt;Für die Zeitsteuerung in GRUB braucht man das Module &lt;code&gt;datehook&lt;/code&gt;. Damit können in GRUB auf folgende Variablen zugreifen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DAY&lt;/li&gt;
&lt;li&gt;HOUR&lt;/li&gt;
&lt;li&gt;MINUTE&lt;/li&gt;
&lt;li&gt;SECOND&lt;/li&gt;
&lt;li&gt;MONTH&lt;/li&gt;
&lt;li&gt;WEEKDAY&lt;/li&gt;
&lt;li&gt;YEAR&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alle diese Werte basieren auf der Uhrzeit und dem Datum, das im BIOS eingestellt wurde (i.d.R. die Hardwareuhr des Mainboards). Das muss man im Hinterkopf behalten, wenn man die Zeitsteuerung in GRUB einrichtet.&lt;/p&gt;
&lt;p&gt;Mit dem folgenden Befehl erhält man eine Liste mit allen Menü-Punkten des GRUB-Menüs:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ grep -E &amp;#39;^menuentry|^submenu&amp;#39; /boot/grub/grub.cfg | cut -d &amp;#39;&amp;#34;&amp;#39; -f2 | cut -d &amp;#34;&amp;#39;&amp;#34; -f2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der erste Eintrag hat die Nummer 0, der zweite die Nummer 1 usw.&lt;/p&gt;
&lt;p&gt;Als nächstes öffnet man die Datei &lt;em&gt;&lt;strong&gt;/boot/grub/grub.cfg&lt;/strong&gt;&lt;/em&gt; und fügt folgende Zeilen relativ am Anfang der Datei ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;insmod datehook
# Eine extra Null beo Minute 0-9 hinzufügen, sodass MINUTE immer zweistellig ist
if [ $MINUTE -lt 10 ]; then PADDING=&amp;#34;0&amp;#34;; else PADDING=&amp;#34;&amp;#34;; fi  
TIME=$HOUR$PADDING$MINUTE

# Standardmäßig Ubuntu starten
set default=0

# Starte &amp;#34;Windows 10&amp;#34; von 17 bis 23 Uhr
if [ $TIME -ge 1700 -a $TIME -lt 2300 ]; then
  set default=3
fi
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Am Anfang fügt man eine extra Null bei Minuten kleiner als 10 ein, sodass die Minutenzahl immer zweistellig ist. Dann konstruiert man eine neue Variable TIME, die die aktuelle Uhrzeit mit dem Format HHMM hat. Diese kann man nun nutzen, um die Zeitsteuerung in GRUB zu implementieren.&lt;/p&gt;
&lt;p&gt;Ubuntu soll standardmäßig gestartet werden, aber am Abend bekommt Windows 10 den Vorrang. Eventuell muss man die Uhrzeiten noch anpassen, da im BIOS oft die Zeitzone UTC eingerichtet ist.&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Die Änderungen oben gelten nur solange bis zum nächsten Mal &lt;code&gt;update-grub&lt;/code&gt; ausgeführt wird. Damit die Änderungen dauerhaft in GRUB erhalten bleiben, sollte man ein Template mit diesem Code unter &lt;em&gt;&lt;strong&gt;/etc/grub.d/&lt;/strong&gt;&lt;/em&gt; anlegen.&lt;/p&gt;
&lt;p&gt;Wir nutzen diese Option, um unsere Rechner in der Schule &lt;a href=&#34;https://zefanjas.de/einsatzmoeglichkeiten-von-linbo-remote-im-schulalltag/&#34;&gt;besser verwalten zu können&lt;/a&gt;. Am Tag wird standardmäßig Ubuntu gestartet, aber während der Nacht lassen wir Linbo booten, damit die Rechner dann z.B. aktualisiert oder &lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;mit einem neuen Image versorgt&lt;/a&gt; werden können.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teil 2: Das bibliografische Framework – Wie man Koha installiert und für Schulen einrichtet</title>
      <link>https://zefanjas.de/koha-installation-schule-bibliografische-framework/</link>
      <pubDate>Fri, 30 Mar 2018 08:15:58 +0000</pubDate>
      
      <guid>https://zefanjas.de/koha-installation-schule-bibliografische-framework/</guid>
      <description>&lt;p&gt;Im [ersten Teil dieser Serie][1] haben wir bereits Koha installiert. Bevor wir ein Buch aufnehmen oder verleihen können, müssen noch einige Einstellungen vorgenommen werden. Ein großes Thema ist das bibliografische Framework. Bei der Installation haben wir bereits MARC21 gewählt. Was das ist, warum es wichtig ist und wie wir das Framework für eine Schule anpassen können, darum geht es in diesem 2. Teil.&lt;/p&gt;
&lt;p&gt;Dieser Artikel ist ein Teil einer Serie:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;[Installation und Einrichtung einer ersten Bibliothek][1]&lt;/li&gt;
&lt;li&gt;[Das bibliografische Framework][2]&lt;/li&gt;
&lt;li&gt;[Grundeinstellungen][3]&lt;/li&gt;
&lt;li&gt;[Buchaufnahme][4]&lt;/li&gt;
&lt;li&gt;[Drucken von Etiketten][5]&lt;/li&gt;
&lt;li&gt;[Ausleihkonditionen][6]&lt;/li&gt;
&lt;li&gt;Verbinden mit einem Z.39.50 / SRU Server&lt;/li&gt;
&lt;li&gt;Benachrichtigungen und Erinnerungen&lt;/li&gt;
&lt;li&gt;Mahnungen und Gebühren&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;was-ist-das-bibliografische-framework&#34;&gt;Was ist das bibliografische Framework?&lt;/h3&gt;
&lt;p&gt;Am besten stellen wir uns das bibliografische Framework wie eine Vorlage vor, nach der Bücher oder andere Medien in Koha aufgenommen werden. In dieser Vorlage legen wir fest, welche Daten wir in unserem System haben wollen. Das könnten z.B. folgende sein:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Titel und Author/in&lt;/li&gt;
&lt;li&gt;Verlag, Erscheinigsort und -jahr&lt;/li&gt;
&lt;li&gt;ISBN / ISSN&lt;/li&gt;
&lt;li&gt;Altersbeschränkung&lt;/li&gt;
&lt;li&gt;evtl. Sprache&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diese Liste lässt sich beliebig erweitern, aber für eine Schulbibliothek wollen wir es so einfach wie möglich machen. Diese Daten nennt man auch Felder.&lt;/p&gt;
&lt;p&gt;Damit sich nicht jede Bibliothek ihre eigenen Felder ausdenken muss, wurde vor vielen Jahren ein Standard geschaffen, der in Koha verwendet wird: MARC21.&lt;/p&gt;
&lt;h3 id=&#34;marc21&#34;&gt;MARC21&lt;/h3&gt;
&lt;p&gt;[Wikipedia][7] definiert MARC folgendermaßen:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;MARC (&lt;strong&gt;MA&lt;/strong&gt;chine-&lt;strong&gt;R&lt;/strong&gt;eadable &lt;strong&gt;C&lt;/strong&gt;ataloging) ist ein bibliographisches Datenformat. Entwickelt wurde es 1966 in den USA. Im Lauf der Jahre folgten zahlreiche verschiedene Versionen, von denen bis heute vor allem die Version MARC 21 weltweit von Bibliotheken verwendet wird. MARC 21 ist ein allgemeines Format, das von verschiedensten Anwendungen gelesen und verarbeitet werden kann. Hauptzweck ist die Übertragung von bibliographischen Daten zwischen Bibliotheken.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Es geht also einen bibliografischen Datensatz, der von einem Computer gelesen werden kann.&lt;/p&gt;
&lt;p&gt;Koha verwendet ebenfalls MARC21, deswegen müssen wir uns ein wenig damit auseinander setzen. Es gibt eine gute Einführung in MARC21, die aber nur in Englisch verfügbar ist. Ich kann sie sehr empfehlen, da sie mir geholfen hat MARC21 besser zu verstehen: [Understanding MARC][8].&lt;/p&gt;
&lt;p&gt;Ein MARC21 Feld besteht aus einem Tag (einer dreistelligen Zahl), zwei Indikatoren und einem Unterfeld-Code. Hier ein Beispiel für das Feld ISBN:&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;020 ##  $a 0877547637
```

Die ersten drei Zahlen **020** stehen für das MARC21 Feld bzw. Tag. Die zwei &amp;#8222;##&amp;#8220; stehen für die beiden Indikatoren, die für dieses Feld nicht definiert sind. Mit **$a** folgt das Unterfeld **a** für die ISBN. Zum Schluss steht die ISBN. Laut Definition kann man im Unterfeld **$z** auch eine nicht mehr gültige ISBN angeben.

Eine Übersicht über alle MARC21-Felder gibt es hier: &lt;https://www.loc.gov/marc/bibliographic/&gt;

### MARC21 für Schulbibliotheken anpassen

Ich empfehle wirklich jedem, der Koha einsetzen möchte, sich die oben verlinkte Einführung in MARC durchzulesen, denn es hilft ungemein beim Verständnis, wie Koha funktioniert und wie man es verwenden kann und muss.

#### Framework exportieren

Da wir jetzt grob wissen, was MARC21-Felder sind, wollen wir in Koha das bibliografische Framework anpassen. Dazu loggen wir uns mit unserem im Teil 1 erstellen Benutzer ein und öffnen den Menüpunkt _Administration_.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2577&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_019.png&#34; alt=&#34;Koha Menü&#34; width=&#34;1290&#34; height=&#34;569&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_019.png 1290w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_019-300x132.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_019-768x339.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_019-1024x452.png 1024w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_019-604x266.png 604w&#34; sizes=&#34;(max-width: 1290px) 100vw, 1290px&#34; /&gt; 

Dort wählen wir den Punkt _bibliografisches_ _Framework_.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2578&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_020.png&#34; alt=&#34;Koha Admin Menü&#34; width=&#34;770&#34; height=&#34;277&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_020.png 770w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_020-300x108.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_020-768x276.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_020-604x217.png 604w&#34; sizes=&#34;(max-width: 770px) 100vw, 770px&#34; /&gt; 

Hier sehen wir nun eine Liste mit allen bibliografischen Frameworks. Wir können theoretisch für jeden Medientyp ein eigenes Framework erstellen, doch wir möchten es so einfach wie möglich haben.

Das Framework können wir gut im Browser anpassen, aber es ist mit viel Klicken und Warten verbunden. Deshalb werden wir das Framework exportieren und anschließend wieder importieren.

In der Liste klicken wir neben Framework mit dem Code &amp;#8222;FA&amp;#8220; und dem Namen &amp;#8222;Schnellaufnahme&amp;#8220; auf _Aktionen → Export_. (Falls das Schnellaufnahme Framework fehlt, wurde bei der Installation vergessen, den Haken an der entsprechenden Stelle zu setzen&amp;#8230;)

####&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2579&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_022.png&#34; alt=&#34;Koha Frameworks&#34; width=&#34;710&#34; height=&#34;395&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_022.png 710w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_022-300x167.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_022-485x270.png 485w&#34; sizes=&#34;(max-width: 710px) 100vw, 710px&#34; /&gt; Framework anpassen

Nun müssen wir die heruntergeladene Datei (man kann zwischen CSV, Exel oder Open Document Format wählen) mit einer Tabellenkalkulation unserer Wahl öffnen und wie folgt anpassen.

Im ersten Reiter **marc\_tag\_structure**  und zweitem Reiter **marc\_subfield\_structure** alle Zeilen löschen mit den Tags:

  * 010, 050, 082, 090, 099

Im zweiten Reiter werden wir noch einige Felder verstecken, damit die Maske zur Aufnahme der Bücher übersichtlicher wird. In der Spalte _hidden_ geben wir an folgenden Stellen &amp;#8222;[5][9]&amp;#8220; für folgende Tags und Unterfelder ein:

  * 020 → alle bis auf Unterfeld a
  * 022  → alle bis auf Unterfeld a
  * 100  → alle bis auf Unterfeld a (und l optional)
  * 245  → alle bis auf Unterfelder a und b
  * 250  → alle bis auf Unterfeld a
  * 260  → alle bis auf Unterfelder a, b und c
  * 300  → alle
  * 500  → alle bis auf Unterfeld a
  * 942  → alle bis auf Unterfeld c
  * 952 → nur Unterfelder 2, b, e, f, i, j, l, m, n, q, r, s, u, v, w, y

Wenn wir das geschafft haben, haben wir eine große Hürde bei der Verwendung von Koha genommen. Das was jetzt noch kommt, wird wieder leichter 🙂

#### Framework importieren

Nun müssen wir unser bearbeitetes Framework wieder importieren. Dazu klicken wir auf _Aktionen → Import_ und wählen unserer bearbeitet Tabellenkalkulationsdatei, die wir gerade eben bearbeitet haben, aus. Mit _Import_ wird unser &amp;#8222;FA&amp;#8220; Framework aktualisiert.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2581&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_025.png&#34; alt=&#34;Koha Framework Import&#34; width=&#34;714&#34; height=&#34;387&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_025.png 714w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_025-300x163.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_025-498x270.png 498w&#34; sizes=&#34;(max-width: 714px) 100vw, 714px&#34; /&gt; 

### Fazit

Wir haben nun ein sehr wichtiges Element in der Konfiguration von Koha eingerichtet &amp;#8211; unser bibliografisches Framework! Es ist fast alles für die Aufnahme oder den [Import][10] unserer Medien eingerichtet. Im nächsten Teil dieser Serie geht es um weitere grundlegende Einstellungen für Schulen sowie die Einrichtung weitere Medien- und Benutzergruppen.

 [1]: https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/
 [2]: https://zefanjas.de/koha-installation-schule-bibliografische-framework/
 [3]: https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [4]: https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [5]: https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [6]: https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [7]: https://de.wikipedia.org/wiki/Machine-Readable_Cataloging
 [8]: https://www.loc.gov/marc/umb/
 [9]: https://wiki.koha-community.org/wiki/Hidden_values
 [10]: https://zefanjas.de/umstieg-von-littera-zu-koha-teil-1/</description>
    </item>
    
    <item>
      <title>Einsatzmöglichkeiten von linbo-remote im Schulalltag</title>
      <link>https://zefanjas.de/einsatzmoeglichkeiten-von-linbo-remote-im-schulalltag/</link>
      <pubDate>Fri, 23 Mar 2018 05:45:43 +0000</pubDate>
      
      <guid>https://zefanjas.de/einsatzmoeglichkeiten-von-linbo-remote-im-schulalltag/</guid>
      <description>&lt;p&gt;Linbo ist eines der besten Features von &lt;a href=&#34;http://www.linuxmuster.net&#34;&gt;linuxmuster.net&lt;/a&gt; – einer freien &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserverlösung&lt;/a&gt;. Einen Überklick, was alles mit Linbo möglich ist, habe ich bereits in &lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;einen meiner letzten Artikel&lt;/a&gt; beschrieben. Dort habe ich ein Kommandozeilenprogramm erwähnt, das für die Administration der Schulrechner einfach super ist: &lt;em&gt;linbo-remote&lt;/em&gt;. Damit kann man fast alles machen, was man sonst über die Linbo-GUI erledigen würde, z.B.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rechner partitionieren und formatieren, starten, herunterfahren, etc.&lt;/li&gt;
&lt;li&gt;neue Images in einem Raum oder in der ganzen Schule verteilen (in Kombination mit Wake-on-Lan)&lt;/li&gt;
&lt;li&gt;zu einer beliebigen Zeit Rechner synchronisieren und das Betriebssystem der Wahl starten lassen&lt;/li&gt;
&lt;li&gt;Images auf einem Rechner erstellen und auf den Server hochladen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;linbo-remote&lt;/code&gt; mit anderen Skripten kombinieren&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ich möchte heute beschreiben, wie wir &lt;code&gt;linbo-remote&lt;/code&gt; in unserer Schule einsetzen und zeigen, was man damit alles machen kann.&lt;/p&gt;
&lt;h3 id=&#34;neue-images-verteilen-mit-linbo-remote&#34;&gt;Neue Images verteilen mit linbo-remote&lt;/h3&gt;
&lt;p&gt;In regelmäßigen Abständen aktualisieren wir unser Ubuntu-Image, welches wir auf allen unseren Schulrechnern verwenden. Wir machen das meistens in den Ferien oder wenn es neue größere Updates gibt (e.g. Firefox, LibreOffice, wichtige Sicherheitsupdates). Mit folgendem Befehl verteilen wir das Image auf alle Rechner in einem Raum:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ linbo-remote -r raum1 -p sync:1,halt -w 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;oder&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ linbo-remote -r raum1 -c sync:1,halt -w 60
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Eine kurze Erklärung, was die einzelnen Parameter bedeuten.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt; gibt den Raum an. Mit &lt;code&gt;-g&lt;/code&gt; kann man auch einen Gruppe angeben, mit &lt;code&gt;-i&lt;/code&gt; eine IP oder einen Hostnamen.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-w&lt;/code&gt; steht für Wake-on-Lan, d.h. &lt;code&gt;linbo-remote&lt;/code&gt; weckt die Rechner auf. Wake-on-Lan muss man im BIOS aktivieren und es funktioniert nur über ein angestecktes Netzwerkkabel (z.B. bei Notebooks). Die Zahl hinter &lt;code&gt;-w&lt;/code&gt; gibt die Sekunden an, die gewartet werden soll, bis Linbo die Befehle ausführt.&lt;/li&gt;
&lt;li&gt;Der Unterschied zwischen &lt;code&gt;-p&lt;/code&gt; und &lt;code&gt;-c&lt;/code&gt; ist, dass bei &lt;code&gt;-p&lt;/code&gt; Linboo eine Datei mit den Befehlen auf dem Server anlegt. Diese Datei holt sich der Rechner, sobald er nach Linbo gebootet hat, ab. &lt;code&gt;-c&lt;/code&gt; versucht den Befehl direkt per SSH an den Rechner zu schicken. Deshalb habe ich hier auch eine Wartezeit von 60 Sekunden angegeben, sodass genug Zeit für alle Rechner da ist, um aufgeweckt und gebootet zu werden.&lt;/li&gt;
&lt;li&gt;nach &lt;code&gt;-c&lt;/code&gt; und &lt;code&gt;-p&lt;/code&gt; kann man verschiedene Befehle angeben. Alle Möglichkeiten erhält man, wenn man &lt;code&gt;linbo-remote -h&lt;/code&gt; eingibt. Bei fast allen Befehlen folgt nach dem Befehle ein Doppelpunkt und dahinter die Nummer des Betriebssystems. Wenn man z.B. ein Dual-Boot System mit Windows und Ubuntu hat, bekommt Windows die Nr. 1 und Ubuntu die Nr. 2. Man kann auch mehrere Befehle angeben, die man durch ein Komma voneinander trennt.
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sync:1,halt&lt;/code&gt; bedeutet also, dass &lt;code&gt;linbo-remote&lt;/code&gt; das erste Betriebssystem auf dem Rechner synchronisiert und danach den Rechner wieder herunter fährt.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;format:1,sync:1,sync:2,start:2&lt;/code&gt; bedeutet, dass Linbo die Partition des 1. Betriebssystems formatiert und synchronisiert, danach das 2. Betriebssystem ebenfalls synchronisiert und anschließend startet. Beim Synchronisieren schaut Linbo, ob es ein neues Image auf dem Server gibt, lädt dieses gegebenenfalls herunter und kopiert es auf die entsprechende Partition.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;administration-der-schulcomputer-mit-linbo-remote-automatisieren&#34;&gt;Administration der Schulcomputer mit linbo-remote automatisieren&lt;/h3&gt;
&lt;p&gt;Wir haben oben schon gesehen, was alles mit &lt;code&gt;linbo-remote&lt;/code&gt; möglich ist. Verbunden mit einem Cronjob können wir beispielsweise alle Rechner in der Schule oder in einem bestimmten Raum jeden Morgen synchronisieren und starten lassen, sodass alle Rechner „frisch“ für den Einsatz im Unterricht sind.&lt;/p&gt;
&lt;p&gt;Als &lt;em&gt;root&lt;/em&gt; User erstellen wir einen neuen Cronjob mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;root@server$ crontab -e
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;und legen den folgenden Cronjob an:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;30 6 * * * /usr/sbin/linbo-remote -r raum1 -w 0 -p format:1,sync:1,sync:2,start:2 &amp;amp;gt; /dev/null 2&amp;amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Jeden Morgen, um 6:30 Uhr, an jedem Tag im Jahr, kümmert sich jetzt Linbo um unsere Rechner im Raum 1. Dabei synchronisiert er beide Betriebssysteme und startet das zweite, sodass sich die Schüler direkt anmelden können.&lt;/p&gt;
&lt;p&gt;Wir können &lt;code&gt;linbo-remote&lt;/code&gt; auch verwenden, um alle Rechner herunterzufahren, die nach Linbo gebootet wurden.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;0 13,15,17,20 * * * /usr/sbin/linbo-remote -r raum1 -c halt &amp;amp;gt; /dev/null 2&amp;amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Um 13, 15, 17 und 20 Uhr werden alle Rechner im Raum 1, die Linbo gebootet haben, heruntergefahren.&lt;/p&gt;
&lt;p&gt;Diese Cronjobs sind eine große Hilfe, um einen verlässlichen Ist-Zustand jeden Morgen an den Schulcomputern herzustellen. Der Nachteil dieser Lösung ist, dass die Cronjobs an jedem Tag ausgeführt werden, also auch am Wochenende oder in den Ferien. Doch dieses Problem lässt sich lösen 🙂&lt;/p&gt;
&lt;h3 id=&#34;linbo-remote-mit-anderen-programmen-kombinieren&#34;&gt;linbo-remote mit anderen Programmen kombinieren&lt;/h3&gt;
&lt;p&gt;Ein Mitglied der Linuxmuster-Community hat ein Skript geschrieben, dass überprüft, ob heute ein Schultag ist – je nach Bundesland. Das Skript findet man &lt;a href=&#34;https://github.com/anschuetz/linuxmuster/tree/master/schultag&#34;&gt;auf Github&lt;/a&gt; und wir können es wie folgt auf dem Server installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ git clone https://github.com/anschuetz/linuxmuster.git
$ cd linuxmuster/schultag
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In der Datei &lt;code&gt;ist-heute-schultag&lt;/code&gt; müssen wir noch festlegen, welches Bundesland wir verwenden möchten. Standardmäßig ist Baden-Württemberg eingerichtet.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ferien_conf=&amp;#34;ferien_bw.conf&amp;#34;
feiertage_conf=&amp;#34;feiertage_bw.conf&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach installieren wir das Skript mit&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo make install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wenn ein Schultag ist, liefert das Skript einen Rückgabewert von „0“ zurück, sonst z.B. „99“ (für einen Ferientag).&lt;/p&gt;
&lt;p&gt;Die Cronjobs oben können wir anpassen, sodass sie nur noch an einem Schultag ausgeführt werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;30 6 * * * ist-heute-schultag &amp;amp;&amp;amp; /usr/sbin/linbo-remote -r raum1 -w 0 -p format:1,sync:1,sync:2,start:2 &amp;amp;gt; /dev/null 2&amp;amp;gt;&amp;amp;1
0 13,15,17,20 * * * ist-heute-schultag &amp;amp;&amp;amp; /usr/sbin/linbo-remote -r raum1 -c halt &amp;amp;gt; /dev/null 2&amp;amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Linbo und ins besondere &lt;code&gt;linbo-remote&lt;/code&gt; nimmt uns als Schul-IT-Team eine ganze Menge Arbeit ab. Während wir im ersten Jahr noch viel „Turnschuhadministration“ betrieben haben, macht das jetzt &lt;code&gt;linbo-remote&lt;/code&gt; für uns. Vorbei sind die Zeiten, in denen wir von Rechner zu Rechner in der Schule gelaufen sind, um sie mit einem neuen Image zu versorgen. Linbo ist für mich das beste Feature an &lt;a href=&#34;http://zefanjas.de/tag/linuxmuster&#34;&gt;linuxmuster.net&lt;/a&gt; und ich habe bisher keine andere Software kennengelernt, die uns hilft jeden Tag automatisch einen definierten Ist-Zustand herzustellen. Ist das Image einmal auf dem Rechner, funktioniert das ganze übrigens auch offline, d.h. die Schüler können selbstständig ihre Rechner zurücksetzen, falls etwas „kaputt“ ist.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man Check_MK aktualisieren kann</title>
      <link>https://zefanjas.de/wie-man-check_mk-aktualisieren-kann/</link>
      <pubDate>Tue, 20 Mar 2018 05:00:54 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-check_mk-aktualisieren-kann/</guid>
      <description>&lt;p&gt;Zur Überwachung unserer IT-Infrastruktur verwenden wir [OMD/Check_MK][1]. Es lässt sich gut bedienen und wir haben den Status unserer Netzwerkkomponenten, [Server][2], Drucker, etc. immer gut im Blick. Bis zuletzt haben wir noch die „old-stable“ Version verwendet (1.2.8), doch die CPU Auslastung stieg z.T. deutlich an, sodass es Zeit war, ein Upgrade auf die aktuelle stabile Version (1.4.0) vorzunehmen. Heute möchte ich zeigen, wie man Check_MK aktualisieren kann und was es dabei zu beachten gibt.&lt;/p&gt;
&lt;h3 id=&#34;check_mk-aktualisieren&#34;&gt;Check_MK aktualisieren&lt;/h3&gt;
&lt;p&gt;Mit Check_MK lassen sich mehrere Instanzen verwalten. Diese werden „sites“ genannt. Es ist möglich mehrere Versionen von Check_MK parallel zu installieren. Dabei kann jede Instanz eine der installierten Versionen verwenden. Das Softwareupgrade verhält sich also etwas anders, als man es vielleicht gewohnt ist.&lt;/p&gt;
&lt;p&gt;Bevor wir unsere Instanz auf die neue Version upgraden können, müssen wir zuerst Check_MK aktualisieren. Dazu laden wir die [aktuelle Version][3] für Ubuntu 16.04 herunter (1.4.0).&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ wget https://mathias-kettner.de/support/1.4.0p26/check-mk-raw-1.4.0p26_0.xenial_amd64.deb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach müssen wir das Paket und evtl. fehlende Abhängigkeiten installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo dpkg -i check-mk-raw-1.4.0p26_0.xenial_amd64.deb
$ sudo apt install -f
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun können wir uns mit &lt;code&gt;omd versions&lt;/code&gt; anzeigen lassen, ob die neue Version auch als Standard eingerichtet ist:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;root@omd:~# omd versions
1.2.8p13.cre
1.4.0p26.cre (default)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;upgrade-für-omd-instanz-durchführen&#34;&gt;Upgrade für OMD-Instanz durchführen&lt;/h3&gt;
&lt;p&gt;Die neue Version von Check_MK ist jetzt installiert, aber unsere „Site“, d.h. unsere Monitoring-Instanz verwendet noch immer die alte Version. Wir müssen also, neben Check_MK, auch diese noch aktualisieren. Dazu wechseln wir den Benutzer zu unserer Instanz mit&lt;/p&gt;
&lt;pre class=&#34;lang:default decode:true code&#34;&gt;root@omd# su - meineInstanz
```

Zuerst stoppen wir unsere Instanz:

```
$ omd stop
```

Danach können wir das Update durchführen:

```
$ omd update
```

Bei der Durchführung des Upgrade bekommen wir einige Fragen gestellt, um Konflikte in der Konfiguration aufzulösen. Bei uns waren es v.a. Anpassungen von Dateirechten bei einigen Dateien. Hier kann man keine generelle Empfehlung geben, welche Antwort die richtige ist, aber so lange es sich nicht um eigene Anpassungen handelt, kann man i.d.R. die neue Version bzw. die neuen Dateirechte übernehmen.

Mit `omd version` können wir noch überprüfen, ob die aktuelle Version verwendet wird. Anschließend starten wir unsere Instanz wieder:

```
$ omd start
```

Wenn wir nun Check_MK im Browser aufrufen (https://monitoring.server/meineInstanz), kann es sein, dass wir folgende Warnung sehen:&lt;figure style=&#34;width: 641px&#34; class=&#34;wp-caption aligncenter&#34;&gt;

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;&#34; src=&#34;https://mathias-kettner.de/bilder/update_unacked.png&#34; alt=&#34;Check_MK aktualiseren&#34; width=&#34;641&#34; height=&#34;98&#34; /&gt; &lt;figcaption class=&#34;wp-caption-text&#34;&gt;(c) https://mathias-kettner.de&lt;/figcaption&gt;&lt;/figure&gt; 

Durch das Update sind natürlich auch die Plugins aktualisiert oder ersetzt worden. Im Laufe der nächsten Stunden wird es deshalb immer wieder Warnungen über nicht aktive bzw. veraltete Services geben. Check_MK warnt ebenfalls vor inkompatiblen Änderungen (siehe Bild). Mit einem Klick auf &amp;#8222;Show unacknowledged incompatible werks&amp;#8220; können wir uns diese Änderungen anzeigen und mit einem weiteren Klick auf &amp;#8222;Acknowlegde all&amp;#8220; akzeptieren.

### Slack/Mattermost Plugin hinzufügen

Wir verwenden [ein Plugin][4], dass uns im Falle eines Problems eine Nachricht in unseren Mattermost #monitoring Kanal schickt. &lt;del&gt;Dies wurde beim Upgrade nicht mit übernommen, sodass noch etwas Handarbeit nötig ist. Das Plugin müssen wir an die richtige Stelle kopieren und die Rechte anpassen.&lt;/del&gt;

```
$ cp /opt/omd/versions/1.2.8p13.cre/share/check_mk/notifications/slack /opt/omd/versions/1.4.0p26.cre/share/check_mk/notifications/slack
$ chmod +x /opt/omd/versions/1.4.0p26.cre/share/check_mk/notifications/slack
```

Noch besser kopiert man das Plugin nach _/omd/sites/sitename/local/share/check_mk/notifications/_. Dann muss man es nicht nach jedem Update neu kopieren:

```
$ cp /opt/omd/versions/1.2.8p13.cre/share/check_mk/notifications/slack /omd/sites/sitename/local/share/check_mk/notifications/
$ chmod +x /omd/sites/sitename/local/share/check_mk/notifications/slack
```

Falls noch nicht vorhanden, müssen wir auch noch folgendes Paket installieren:

```
$ apt install python-requests
```

Nun taucht das Plugin wieder unter _WATO → Notifications_ auf.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2553&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_018.png&#34; alt=&#34;Check_MK Mattermost Slack&#34; width=&#34;535&#34; height=&#34;108&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_018.png 535w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_018-300x61.png 300w&#34; sizes=&#34;(max-width: 535px) 100vw, 535px&#34; /&gt; 

### Fazit

&lt;p style=&#34;text-align: left;&#34;&gt;
  Nach dem Upgrade läuft Check_MK wieder rund. Check_MK ist ein &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;tolles Projekt&lt;/a&gt; und es hilft uns sehr unser Netzwerk, &lt;a href=&#34;https://zefanjas.de/pfsense-monitoring-mit-check_mk/&#34;&gt;unsere Firewall&lt;/a&gt; und unsere Geräte im Blick zu behalten. So können wir oft Probleme erkennen, bevor jemand anderes sie bemerkt 🙂
&lt;/p&gt;

&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Software nutzt du zur Überwachung deiner IT-Infrastruktur?&lt;/strong&gt;
&lt;/p&gt;

 [1]: https://mathias-kettner.de/index.html
 [2]: https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/
 [3]: https://mathias-kettner.de/check_mk_download.php?HTML=yes
 [4]: https://github.com/rmblake/check_mk-slack</description>
    </item>
    
    <item>
      <title>Ist Joplin eine ernsthafte Open Source Evernote Alternative?</title>
      <link>https://zefanjas.de/joplin-eine-ernsthafte-open-source-evernote-alternative/</link>
      <pubDate>Sat, 17 Mar 2018 04:15:54 +0000</pubDate>
      
      <guid>https://zefanjas.de/joplin-eine-ernsthafte-open-source-evernote-alternative/</guid>
      <description>&lt;p&gt;Viele kennen sicher Evernote oder OneNote – zwei ausgereifte Anwendungen zur Notizverwaltung mit vielen tollen Features. Ein Vorteil – speziell von Evernote – ist, dass es auf vielen Plattformen verfügbar ist. Selbst für Ubuntu gibt es einige nicht offizielle Programme, mit denen man seine Evernote-Notizen synchronisieren und bearbeiten kann. Allerdings haben OneNote wie auch Evernote den Nachteil, dass sie keine quell-offene Software sind und man nicht weiß, was genau mit den Daten passiert oder wie sie verarbeitet werden. Weiterhin erlaubt Evernote in der kostenfreien Variante die Synchronisation nur auf 2 Geräten. Deshalb möchte ich heute Joplin als Evernote Alternative vorstellen.&lt;figure style=&#34;width: 1075px&#34; class=&#34;wp-caption aligncenter&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;size-full&#34; src=&#34;https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/AllClients.jpg&#34; width=&#34;1075&#34; height=&#34;641&#34; /&gt; &lt;figcaption class=&#34;wp-caption-text&#34;&gt;(c) &lt;a href=&#34;http://joplin.cozic.net/&#34;&gt;http://joplin.cozic.net/&lt;/a&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;h3 id=&#34;features&#34;&gt;Features&lt;/h3&gt;
&lt;p&gt;Joplin bietet viele Features, die man von einer Notizverwaltung erwartet. Hier ein Auszug:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apps für Linux/macOS/Windows/Android/iOS und den Terminal (ja, es gibt auch eine CLI-Version :))&lt;/li&gt;
&lt;li&gt;Ende-zu-Ende-Verschlüsselung&lt;/li&gt;
&lt;li&gt;Synchronisation mit verschiedenen Diensten, darunter NextCloud, WebDAV und OneDrive. Dropbox ist geplant.&lt;/li&gt;
&lt;li&gt;Import von Enex-Dateien (Evernote-Exportformat) und Markdown-Dateien.&lt;/li&gt;
&lt;li&gt;Export von JEX-Dateien (Joplin Export Format) und Raw-Dateien.&lt;/li&gt;
&lt;li&gt;Unterstützen Sie Notizen, To-Dos, Tags und Notebooks.&lt;/li&gt;
&lt;li&gt;Sortierung der Notizen nach mehreren Kriterien – Titel, aktualisierte Zeit, etc.&lt;/li&gt;
&lt;li&gt;Unterstützung von Alarmen (Benachrichtigungen) in mobilen und Desktop-Anwendungen.&lt;/li&gt;
&lt;li&gt;Offline-Modus, die gesamten Daten sind auch ohne Internetverbindung immer auf dem Gerät verfügbar&lt;/li&gt;
&lt;li&gt;Markdown Unterstützung, Bilder und und Formatierungen werden in Desktop- und mobilen Anwendungen angezeigt. Unterstützung für zusätzliche Funktionen wie Mathe-Notation und Checkboxen.&lt;/li&gt;
&lt;li&gt;Unterstützung von Dateianhängen – Bilder werden angezeigt, andere Dateien werden verlinkt und können in der jeweiligen Anwendung geöffnet werden.&lt;/li&gt;
&lt;li&gt;Suchfunktionalität&lt;/li&gt;
&lt;li&gt;Geo-Location-Unterstützung&lt;/li&gt;
&lt;li&gt;Unterstützt mehrere Sprachen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Was mir persönlich gut gefällt, ist die Möglichkeit die Notizen verschlüsselt zu synchronisieren und immer offline zur Verfügung zu haben – auf allen Geräten, die ich verwende. Weiterhin ist die Unterstützung für Markdown ein tolles Features!&lt;/p&gt;
&lt;h3 id=&#34;joplin-installieren&#34;&gt;Joplin installieren&lt;/h3&gt;
&lt;p&gt;Joplin wird sehr aktiv entwickelt. Die aktuelle Version findet man am auf der &lt;a href=&#34;http://joplin.cozic.net/&#34;&gt;Webseite des Projekts&lt;/a&gt;. Dort findet man Links zu den Anwendungen für alle Plattformen. Für Linux wird ein AppImage angeboten. Damit man die Anwendung auch installieren kann, muss man nach dem Herunterladen noch die Rechte anpassen. Dazu öffnet man die Eigenschaften der Datei über das Kontextmenü („Rechts-Klick“) und aktiviert unter Zugriffsrecht „Datei als Programm ausführen“.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2533&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Eigenschaften-von-Joplin-1.0.70-x86_64.AppImage_013.png&#34; alt=&#34;Joplin Installation&#34; width=&#34;544&#34; height=&#34;467&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Eigenschaften-von-Joplin-1.0.70-x86_64.AppImage_013.png 544w, https://zefanjas.de/wp-content/uploads/2018/03/Eigenschaften-von-Joplin-1.0.70-x86_64.AppImage_013-300x258.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Eigenschaften-von-Joplin-1.0.70-x86_64.AppImage_013-315x270.png 315w&#34; sizes=&#34;(max-width: 544px) 100vw, 544px&#34; /&gt; 
&lt;p&gt;Schließlich installiert man die App mit einem Doppelklick.&lt;/p&gt;
&lt;h3 id=&#34;synchronisation-einrichten&#34;&gt;Synchronisation einrichten&lt;/h3&gt;
&lt;p&gt;Die Einstellungen für die Synchronisation findet man unter &lt;em&gt;Werkzeuge → Allgemeine Einstellungen&lt;/em&gt;. Dort legt man das Synchronisationsintervall fest, welcher Dienst genutzt werden soll, sowie den Benutzernamen und dass Passwort. Für die Synchronisation mit Nextcloud habe ich WebDav gewählt, weil ich mit der Option „Nextcloud“ es nicht geschafft habe in einen Unterordner in meiner Cloud zu syncen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2535&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Joplin-Optionen_014-1.png&#34; alt=&#34;Joplin Synchronisation&#34; width=&#34;1224&#34; height=&#34;583&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Joplin-Optionen_014-1.png 1224w, https://zefanjas.de/wp-content/uploads/2018/03/Joplin-Optionen_014-1-300x143.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Joplin-Optionen_014-1-768x366.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Joplin-Optionen_014-1-1024x488.png 1024w, https://zefanjas.de/wp-content/uploads/2018/03/Joplin-Optionen_014-1-567x270.png 567w&#34; sizes=&#34;(max-width: 1224px) 100vw, 1224px&#34; /&gt; 
&lt;p&gt;Mit einem Klick auf „Check Synchronisation Configuration“ kann man überprüfen, ob die Einstellungen richtig sind. Die richtige WebDav-URL findet man in Nextcloud hier (siehe Bild, unten links auf das Zahnrad klicken):&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2536&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_015.png&#34; alt=&#34;Nextcloud WebDav&#34; width=&#34;241&#34; height=&#34;216&#34; /&gt; 
&lt;p&gt;Dabei setzt sich die URL so zusammen: &lt;em&gt;&lt;a href=&#34;https://example.org/nextcloud/remote.php/webdav/Unterordner/&#34;&gt;https://example.org/nextcloud/remote.php/webdav/Unterordner/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;ende-zu-ende-verschlüsselung-in-joplin-aktivieren&#34;&gt;Ende-zu-Ende-Verschlüsselung in Joplin aktivieren&lt;/h3&gt;
&lt;p&gt;Standardmäßig werden Notizen und Notizbücher in Joplin unverschlüsselt gespeichert. Damit niemand (Cloud-Anbieter etc.) die Daten lesen kann, sollte man die Verschlüsselung in Joplin aktivieren. Dazu geht man wie folgt vor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verschlüsselungseinstellungen öffnen (&lt;em&gt;Werkzeuge → Verschlüsselungsoptionen&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Verschlüsselung aktivieren und Master-Passwort eingeben&lt;/li&gt;
&lt;li&gt;In der App auf Synchronisieren klicken und warten bis der Sync fertig ist (NICHT abbrechen). Wenn man sehr viele Notizen hat, kann der Sync eine ganze Zeit dauern. Wie gesagt, &lt;em&gt;nicht&lt;/em&gt; abbrechen.&lt;/li&gt;
&lt;li&gt;Wenn die Synchronisation fertig ist, nimmt man das nächste Gerät und startet dort die Synchronisation. Man muss das Master-Passwort eingeben. Danach noch einmal synchronisieren. Die Verschlüsselung ist nun aktiv.&lt;/li&gt;
&lt;li&gt;Schritt 4 für alle weiteren Geräte wiederholen.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Ich nutze Joplin nun seit einigen Wochen und bin bisher sehr zufrieden damit. Die Synchronisationsmöglichkeiten (inkl. Verschlüsselung), die Offline- und Markdown-Unterstützung sind für mich die Killer-Features dieser App. Joplin ist ein Beispiel für eine weitere &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;tolle Open Source App&lt;/a&gt;. Natürlich ist Joplin nicht die einzige &lt;a href=&#34;https://wiki.ubuntuusers.de/Notizen/&#34;&gt;Notizanwendungen&lt;/a&gt;, die es für Linux gibt, aber sieht bietet viele Features, die andere Apps nicht haben.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Anwendung verwendest du um deinen Notizen zu verwalten?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Teil 1: Installation – Wie man Koha installiert und für Schulen einrichtet</title>
      <link>https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/</link>
      <pubDate>Fri, 09 Mar 2018 10:41:22 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/</guid>
      <description>&lt;p&gt;Koha, ein [integriertes Bibliothekssystem][1], ist eines der [besten Open Source Projekte][2], das ich kenne. Wir verwenden es in unserer [Schul- und Lehrmittelbibliothek][3]. Weltweit wird es von vielen Schulen, Universitäten und natürlich Bibliotheken verwendet. Es bringt sehr viele Features mit und man kann es sehr flexibel konfigurieren und anpassen. Jedoch hat es einen Nachteil: Wenn man bisher wenig mit dem Bibliothekswesen zu tun hatte, ist der Einstieg recht steil, weniger in Koha, sondern in das [bibliografische Datenformat MARC 21][4]. Deshalb möchte ich in dieser Artikelreihe zeigen, wie man Koha installiert und für Schulen einrichtet.&lt;/p&gt;
&lt;p&gt;Dieser Artikel ist ein Teil einer Serie:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;[Installation und Einrichtung einer ersten Bibliothek][5]&lt;/li&gt;
&lt;li&gt;[Das bibliografische Framework][6]&lt;/li&gt;
&lt;li&gt;[Grundeinstellungen][7]&lt;/li&gt;
&lt;li&gt;[Buchaufnahme][8]&lt;/li&gt;
&lt;li&gt;[Drucken von Etiketten][9]&lt;/li&gt;
&lt;li&gt;[Ausleihkonditionen][10]&lt;/li&gt;
&lt;li&gt;Verbinden mit einem Z.39.50 / SRU Server&lt;/li&gt;
&lt;li&gt;Benachrichtigungen und Erinnerungen&lt;/li&gt;
&lt;li&gt;Mahnungen und Gebühren&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;h4 id=&#34;vorbereitungen&#34;&gt;Vorbereitungen&lt;/h4&gt;
&lt;p&gt;Koha ist eine Webanwendung für die wir einen Webserver brauchen.  Das kann ein eigener Rechner sein, eine virtuelle Maschine oder ein Linux-Container. Wir werden in diesem Beispiel ein [LXD-Container][11] mit Ubuntu 20.04 verwenden, es geht aber auch jeder andere Rechner mit Debian oder Ubuntu.&lt;/p&gt;
&lt;p&gt;Zuerst fügen wir die Paketquellen und den zugehörigen Schlüssel für Koha hinzu:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ echo deb http://debian.koha-community.org/koha stable main | sudo tee /etc/apt/sources.list.d/koha.list
$ wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach müssen wir die Paketquellen einmal aktualisieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt update
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun können wir Koha und den Datenbankserver installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install koha-common mariadb-server
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit unser Datenbankserver sicherer wird, können wir mit folgendem Befehl einige Einstellungen ändern:&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;$ sudo mysql_secure_installation
```

Bis auf die erste Frage können alle Fragen können mit Ja (&amp;#8222;Y&amp;#8220;) beantwortet werden. Es sollte unbedingt ein Root-Passwort festgelegt werden!

Bevor wir Koha einrichten, müssen wir ein paar grundlegende Einstellungen in der Datei _**/etc/koha/koha-sites.conf**_ vornehmen. Es geht um die Festlegung der Domain unter welcher Koha und der OPAC (die Website für die Benutzer) später erreichbar ist. Sie setzt sich dabei wie folgt zusammen:

  * OPAC: _bibliothek.domain.tld_
  * Koha-Intranet: _bibliothek-intra.domain.tld_

Dazu öffnen wir die Datei und ändern folgende Parameter:

  * DOMAIN &amp;#8211; hier tragen wir die Haupt-Domain ein, z.B. &amp;#8222;.meine-schule.org&amp;#8220;
  * INTRASUFFIX &amp;#8211; standardmäßig &amp;#8222;-intra&amp;#8220;, z.B. bibliothek_-intra_.meine-schule.org

&lt;pre class=&#34;&#34;&gt;$ sudo nano /etc/koha/koha-sites.conf
```

Danach aktivieren wir noch einige Webserver-Module, damit Koha später erreichbar ist:

&lt;pre class=&#34;&#34;&gt;$ sudo a2enmod rewrite
$ sudo a2enmod cgi
$ sudo service apache2 restart
```

#### Deutsches Sprachpaket installieren

Das deutsche Sprachpaket können wir so installieren:

```
$ sudo koha-translate --install de-DE
```

Später ist sowohl der Webinstaller als auch Koha in Deutsch verfügbar.

#### Bibliotheksinstanz erstellen

Mit Koha können wir mehrere Bibliotheken erstellen und verwalten. Bisher existiert aber noch keine, deshalb müssen wir erst einmal eine erstellen.

```
$ sudo koha-create --create-db bibliothek
```

Soll Koha später unter _bibliothek.meine-schule.org_ erreichbar sein, müssen wir _bibliothek_ als Bibliotheksnamen verwenden.

Als nächsten aktivieren noch die neue Konfiguration für den Webserver und starten ihn neu:

&lt;pre class=&#34;&#34;&gt;$ sudo a2enmod deflate
$ sudo a2ensite bibliothek
$ sudo service apache2 restart
```

Damit wir den Webinstaller erreichen können müssen wir die IP und den Domainnamen entweder in unseren DNS-Server eintragen oder lokal in die hosts-Datei. In Ubuntu befindet sie sich unter _**/etc/hosts**__._ Die IP findet man z.B. mit `ifconfig` heraus.

```
$ sudo nano /etc/hosts
...
10.97.127.207 bibliothek.meine-schule.org
10.97.127.207 bibliothek-intra.meine-schule.org
...
```

### Koha einrichten

#### Grundinstallation

Unter http://bibliothek-intra.meine-schule.org erreichen wir den Webinstaller.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2990 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_107.png&#34; alt=&#34;Koha Installation&#34; width=&#34;783&#34; height=&#34;433&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_107.png 783w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_107-300x166.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_107-768x425.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_107-488x270.png 488w&#34; sizes=&#34;(max-width: 783px) 100vw, 783px&#34; /&gt; 

Der Benutzer ist koha__bibliotheksname_. Das Passwort erhalten wir mit folgendem Befehl (_bibliotheksname_ anpassen!):

&lt;pre class=&#34;&#34;&gt;$ sudo xmlstarlet sel -t -v &#39;yazgfs/config/pass&#39; /etc/koha/sites/bibliotheksname/koha-conf.xml;echo
```

Im nächsten Schritt können wir dann die Sprache auswählen:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2513&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_209.png&#34; alt=&#34;koha sprache&#34; width=&#34;942&#34; height=&#34;356&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_209.png 942w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_209-300x113.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_209-768x290.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_209-604x228.png 604w&#34; sizes=&#34;(max-width: 942px) 100vw, 942px&#34; /&gt; 

In den nächsten Schritten werden Abhängigkeiten geprüft, z.B. ob alle Perl-Module vorhanden sind, die Datenbanktabellen eingerichtet und ein MARC-Format muss ausgewählt werden (MARC21 ist der Standard).

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-large wp-image-2991&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_108-1024x294.png&#34; alt=&#34;Koha Marc21&#34; width=&#34;640&#34; height=&#34;184&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_108-1024x294.png 1024w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_108-300x86.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_108-768x220.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_108-604x173.png 604w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_108.png 1035w&#34; sizes=&#34;(max-width: 640px) 100vw, 640px&#34; /&gt; 

Dann kommt eine längere Seite auf der wir die Datenbank mit verschiedenen Vorlagen und Beispieldaten befüllen können. Hier muss jeder für sich entscheiden, was er alles in der Datenbank haben möchte. Wir wählen zu den bereits markierten Punkte noch folgende hinzu:

  * Bibliographisches Standard-Framework für MARC21
  * &amp;#8222;FA&amp;#8220;, ein MARC21-Framework (Erfassungsmaske) für Schnellaufnahmen und Fernleihtitel
  * Beispiele für die Auswahllisten der verschiedenen normierten Werte (Verloren, Beschädigt, Sammlung, Standort etc.) &amp;#8230;
  * Nützliche Benutzerattribute

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2515&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_216.png&#34; alt=&#34;Koha Grundeinstellungen&#34; width=&#34;579&#34; height=&#34;430&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_216.png 579w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_216-300x223.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_216-364x270.png 364w&#34; sizes=&#34;(max-width: 579px) 100vw, 579px&#34; /&gt; 

Damit ist die Grundinstallation abgeschlossen.

#### Bibliothek und erste Einstellungen einrichten

Nun werden wir gefragt, wie unsere Bibliothek heißen soll. Dazu legen wir ein Kürzel fest (kann später nicht geändert werden) und vergeben einen Namen. Wir nennen sie hier im Beispiel _Schulbibliothek_.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2516&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_218.png&#34; alt=&#34;Koha Bibliothek anlegen&#34; width=&#34;944&#34; height=&#34;408&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_218.png 944w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_218-300x130.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_218-768x332.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_218-604x261.png 604w&#34; sizes=&#34;(max-width: 944px) 100vw, 944px&#34; /&gt; 

Als nächstes erstellen wir einen ersten Benutzertypen. Das Admin-Konto, welches wir gleich anlegen, verwendet diesen Benutzertyp. Wieder müssen wir ein Kürzel bzw. Code für die Kategorie vergeben (&amp;#8222;_MA_&amp;#8222;) , eine Beschreibung und die Dauer der Mitgliedschaft. Letztere legt fest, wann ein Benutzerkonto in dieser Kategorie abläuft.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2517&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_220.png&#34; alt=&#34;Koha Benutzertyp&#34; width=&#34;938&#34; height=&#34;747&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_220.png 938w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_220-300x239.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_220-768x612.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_220-339x270.png 339w&#34; sizes=&#34;(max-width: 938px) 100vw, 938px&#34; /&gt; 

Nachdem der Benutzertyp angelegt ist, erstellen wir den Administrator. Dieser Benutzer hat &amp;#8222;_Superlibraian_&amp;#8222;-Rechte. Alle Felder müssen ausgefüllt werden.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2518&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_221.png&#34; alt=&#34;Koha Admin&#34; width=&#34;933&#34; height=&#34;721&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_221.png 933w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_221-300x232.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_221-768x593.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_221-349x270.png 349w&#34; sizes=&#34;(max-width: 933px) 100vw, 933px&#34; /&gt; 

Nun legen wir einen ersten Medientyp fest. Das können Bücher, CDs, DVDs, Karten usw. sein. Wieder brauchen wir ein Code, der später nicht geändert werden kann, und einen Beschreibung:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2519&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_222.png&#34; alt=&#34;Koha Medientyp&#34; width=&#34;942&#34; height=&#34;587&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_222.png 942w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_222-300x187.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_222-768x479.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_222-433x270.png 433w&#34; sizes=&#34;(max-width: 942px) 100vw, 942px&#34; /&gt; 

Zuletzt legen wir die Ausleihkonditionen für den eben erstellten Medientyp fest. Die Einstellungen sind sehr flexibel. Man kann die Leihfrist einstellen oder für welche Bibliothek oder Benutzertyp die Regel gelten soll. Wir können die Regeln später noch ändern.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2520&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_223.png&#34; alt=&#34;Koha Ausleihkonditionen&#34; width=&#34;932&#34; height=&#34;740&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_223.png 932w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_223-300x238.png 300w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_223-768x610.png 768w, https://zefanjas.de/wp-content/uploads/2018/03/Auswahl_223-340x270.png 340w&#34; sizes=&#34;(max-width: 932px) 100vw, 932px&#34; /&gt; 

Damit ist die Grundinstallation von Koha und unserer ersten Bibliothek abgeschlossen! Unter http://bibliothek-intra.meine-schule.org können wir uns nun mit unserem Admin-Konto anmelden und haben damit Zugriff auf die Administrationsseite von Koha. Dort nehmen wir alle weiteren Einstellungen vor, verleihen Bücher oder nehmen sie wieder zurück.

### Fazit

Wir haben nun eine funktionieren Koha-Installation und eine erste Bibliothek. Trotzdem sind viele weitere Einstellungen nötig, bevor wir die ersten Medien in Koha aufnehmen können. Dies möchte ich in den kommenden Artikeln dieser Serie aufzeigen.

 [1]: https://de.wikipedia.org/wiki/Koha_(Bibliothekssoftware)
 [2]: https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/
 [3]: https://zefanjas.de/umstieg-von-littera-zu-koha-teil-1/
 [4]: https://de.wikipedia.org/wiki/Machine-Readable_Cataloging
 [5]: https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/
 [6]: https://zefanjas.de/koha-installation-schule-bibliografische-framework/
 [7]: https://zefanjas.de/teil-3-grundeinstellungen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [8]: https://zefanjas.de/teil-4-katalogisierung-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [9]: https://zefanjas.de/teil-5-etikettendruck-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [10]: https://zefanjas.de/teil-6-ausleihkonditionen-wie-man-koha-installiert-und-fuer-schulen-einrichtet/
 [11]: https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/</description>
    </item>
    
    <item>
      <title>Kabellose Bildübertragung – welche Möglichkeiten gibt es?</title>
      <link>https://zefanjas.de/kabellose-bilduebertragung-welche-moeglichkeiten-gibt-es/</link>
      <pubDate>Thu, 01 Mar 2018 23:26:32 +0000</pubDate>
      
      <guid>https://zefanjas.de/kabellose-bilduebertragung-welche-moeglichkeiten-gibt-es/</guid>
      <description>&lt;p&gt;Wir haben einige &lt;a href=&#34;https://zefanjas.de/klassenraummanagement-mit-epoptes-app-des-monats/&#34;&gt;Klassenzimmer&lt;/a&gt; bei uns mit fest installierten Beamern ausgestattet und weitere werden folgen. Immer wieder wird der Wunsch geäußert, ob man nicht „einfach“ von seinem Smartphone oder privatem Laptop ein Bild / Video oder den ganzen Bildschirm kabellos übertragen kann. Für eigene Geräte haben wir bisher ein VGA / HDMI Kabel zur Verfügung gestellt. Das klappt in der Regel auch ganz gut, doch damit schließt man z.B. Smartphones aus. Deshalb beschäftigen und testen wir schon seit einiger Zeit, welche Lösungen es für die kabellose Bildübertragung zu einem Beamer und Bildschirm gibt und ob es wirklich besser und verlässlicher als eine kabelgebundene Lösung ist.&lt;/p&gt;
&lt;h3 id=&#34;anforderungen&#34;&gt;Anforderungen&lt;/h3&gt;
&lt;p&gt;Die Anforderungen bei uns sehen folgendermaßen aus:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unterstützung aller gängigen Betriebssysteme (Windows, macOS, Linux, Android, iOS)&lt;/li&gt;
&lt;li&gt;Möglichkeit den Bildschirm zu spiegeln&lt;/li&gt;
&lt;li&gt;einfache Bedienbarkeit&lt;/li&gt;
&lt;li&gt;zuverlässig im Schulalltag&lt;/li&gt;
&lt;li&gt;„Hijacking“, d.h. Übernahme der Bildschirme / Beamer durch Dritte (z.B. Schüler) sollte nicht möglich sein&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Es gibt viele HDMI-Wireless-Dongles, die eine kabellose Bildübertragung versprechen. Dazu kommen die vielen unterschiedlichen Standards: Googles Chromecast, Apples Airplay, Microsofts Wireless Display Adapter (Miracast). Wenn man nur ein Betriebssystem unterstützen müsste, wäre die Auswahl recht groß. Ich kenne Schulen, die ihre &lt;a href=&#34;https://zefanjas.de/kann-man-einen-computerraum-fuer-weniger-als-1500e-einrichten-ja/&#34;&gt;Klassenzimmer&lt;/a&gt; mit Apple TVs ausgestattet haben und jedem Kollegen ein iPad geben. Das klappt dann auch recht gut innerhalb dieses Ökosystems, aber dieses Budget haben wir nicht 🙂 Aus diesem Grund gibt es nur sehr wenige Optionen, wenn man v.a. auch Linux unterstützen möchte.&lt;/p&gt;
&lt;h3 id=&#34;chromecast&#34;&gt;Chromecast&lt;/h3&gt;
&lt;p&gt;Der &lt;a href=&#34;http://chromecast.com/&#34;&gt;Chromecast&lt;/a&gt; ist HDMI Stick, der eine große Zahl an Geräten unterstützt, eigentlich alles, worauf ein Chrome / Chromium Browser läuft. Man kann damit einzelne Tabs, den ganzen Bildschirm oder Inhalte aus bestimmten Apps (z.B. Youtube App) recht einfach auf den Beamer oder einen Bildschirm bringen.&lt;/p&gt;
&lt;h4 id=&#34;vorteile&#34;&gt;Vorteile&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Preis (ca. 40€)&lt;/li&gt;
&lt;li&gt;Unterstützung aller gängigen Betriebssysteme&lt;/li&gt;
&lt;li&gt;Anbindung mit Ethernet-Adapter möglich&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;nachteile&#34;&gt;Nachteile&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;unterstützt nur WPA2 Personal, kein WPA Enterprise&lt;/li&gt;
&lt;li&gt;keine Management-Plattform, um viele Chromecasts zu verwalten&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Allgemein kann man sagen, dass der Chromecast für den Heimgebrauch konzipiert wurde und deshalb einige Features fehlen, die man in einem Schul- oder Universitätsnetzwerk gut gebrauchen könnte.&lt;/p&gt;
&lt;h3 id=&#34;airtame&#34;&gt;Airtame&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://airtame.com/&#34;&gt;Airtame&lt;/a&gt; ist ein weiterer HDMI-Dongle, der eine sehr einfache Handhabung verspricht und speziell für Schulen, Unternehmen und Universitäten entwickelt wurde. Auf dem Stick selbst läuft, soweit ich weiß, Fedora.&lt;/p&gt;
&lt;h4 id=&#34;vorteile-1&#34;&gt;Vorteile&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Unterstützung aller gängigen Betriebssysteme&lt;/li&gt;
&lt;li&gt;Anbindung mit Ethernet-Adapter möglich&lt;/li&gt;
&lt;li&gt;echtes Spiegeln des Bildschirms, kein „casten“, d.h. Youtube-Videos werden vom Rechner übertragen im Gegensatz zum Chromecast, der sie selbst aus dem Internet lädt&lt;/li&gt;
&lt;li&gt;unterstützt alle WLAN Standards (auch WPA Enterprise)&lt;/li&gt;
&lt;li&gt;zentrale Plattform, um viele Airtames zu verwalten&lt;/li&gt;
&lt;li&gt;Möglichkeit per PIN verbinden zu lassen&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;nachteile-1&#34;&gt;Nachteile&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Preis (ca. 300€)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Chromecast und Airtame sind zwei Optionen für die kabellose Bildübertragung. Airtame ist eigentlich das Gerät, was man sich für eine Schule wünscht, aber es hat auch seinen Preis. Der Chromecast dagegen ist wesentlich günstiger, doch bietet einige Features nicht, die „nice-to-have“ wären. Wir testen aktuell den Chromecast und schauen, wie gut und verlässlich er im Schulalltag und „Mehrbenutzerbetrieb“ ist. Gerade die Einfachheit der Bedienung muss noch getestet werden, v.a. wie sich das auf den einzelnen Plattformen unterscheidet.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welches Gerät nutzt du zur kabellosen Bildübertragung?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man Feinstaub mit einem Raspberry Pi messen kann [Update]</title>
      <link>https://zefanjas.de/wie-man-feinstaub-mit-einem-raspberry-pi-messen-kann/</link>
      <pubDate>Tue, 27 Feb 2018 12:20:56 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-feinstaub-mit-einem-raspberry-pi-messen-kann/</guid>
      <description>&lt;p&gt;Wir messen an unserer Schule regelmäßig den Feinstaubgehalt in der Luft. Besonders zwischen Februar und Mai sind die Werte hier in Süd-Ost Asien sehr hoch, da es in dieser Zeit kaum regnet, es sehr trocken und heiß ist und viele Wiesen und Felder abgebrannt werden. Das alles wirkt sich negativ auf die Qualität der Luft aus. Heute möchte ich zeigen, wie man den Feinstaub mit einem Raspberry Pi messen kann. Doch vorher möchte ich kurz auf die Frage eingehen: Was ist Feinstaub überhaupt und was wollen wir messen?&lt;/p&gt;
&lt;h3 id=&#34;was-ist-feinstaub&#34;&gt;Was ist Feinstaub?&lt;/h3&gt;
&lt;p&gt;Ganz grob kann man sagen, dass es sich bei Feinstaub um sehr kleine Partikel / Teilchen in der Luft handelt. Man unterscheidet dabei zwischen PM10 und PM2.5 (Particulate Matter, auch F&lt;span class=&#34;tag_trans&#34;&gt;eststoffteilchen&lt;/span&gt;). Bei PM10 handelt es sich dabei um alle Partikel in der Luft, die kleiner als 10µm sind, bei PM2.5 entsprechend alle Teilchen, die kleiner als 2.5µm sind. Je kleiner die Teilchen, also v.a. alles kleiner als 2.5µm, desto gefährlicher sind sie für die Gesundheit, da sie bis in die Lungenbläschen eindringen können.&lt;/p&gt;
&lt;p&gt;Die [WHO][1] empfiehlt z.B. folgende Grenzwerte:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Jahresmittel PM&lt;sub&gt;10&lt;/sub&gt; 20 µg/m³&lt;/li&gt;
&lt;li&gt;Jahresmittel PM&lt;sub&gt;2,5&lt;/sub&gt; 10 µg/m³&lt;/li&gt;
&lt;li&gt;Tagesmittel PM&lt;sub&gt;10&lt;/sub&gt; 50 µg/m³ ohne zulässige Tage, an denen eine Überschreitung möglich ist.&lt;/li&gt;
&lt;li&gt;Tagesmittel PM&lt;sub&gt;2,5&lt;/sub&gt; 25 µg/m³ ohne zulässige Tage, an denen eine Überschreitung möglich ist.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Diese Werte liegen unter den in den meisten Ländern festgelegten Grenzen. In EU ist ein Jahresmittel für PM&lt;sub&gt;10&lt;/sub&gt; von 40 µg/m³ zulässig.&lt;/p&gt;
&lt;h3 id=&#34;was-ist-der-air-quality-index-aqi&#34;&gt;Was ist der Air Quality Index (AQI)?&lt;/h3&gt;
&lt;p&gt;Ausgehend von dem Feinstaubgehalt in der Luft kann man den Air Quality Index berechnen. Er gibt an, wie „gut“ oder „schlecht“ die Luft gerade ist. Leider gibt es hier keinen einheitlichen Standard, da verschiedene Länder diesen jeweils anders berechnen oder andere Skalen haben. Der Wikipedia-Artikel zum Air Quality Index liefert dafür einen gute Übersicht. An unserer Schule richten wir uns nach der Einteilung wie sie von der EPA ([United States Environmental Protection Agency][2]) festgelegt wurde.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2485&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_195.png&#34; alt=&#34;AQI&#34; width=&#34;487&#34; height=&#34;244&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_195.png 487w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_195-300x150.png 300w&#34; sizes=&#34;(max-width: 487px) 100vw, 487px&#34; /&gt; 
&lt;p&gt;Soweit ein kurzer Abriss zum Thema Feinstaub und AQI.&lt;/p&gt;
&lt;h3 id=&#34;was-brauchen-wir-für-die-feinstaubmessung&#34;&gt;Was brauchen wir für die Feinstaubmessung?&lt;/h3&gt;
&lt;p&gt;Eigentlich braucht es nur zwei Dinge:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;einen Raspberry Pi (jedes Modell geht, am besten ein Modell mit WLAN)&lt;/li&gt;
&lt;li&gt;Feinstaubsensor SDS011&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2490&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/46906ab3-a0be-468c-babd-44ed80328876.jpg&#34; alt=&#34;SDS011&#34; width=&#34;600&#34; height=&#34;600&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/46906ab3-a0be-468c-babd-44ed80328876.jpg 600w, https://zefanjas.de/wp-content/uploads/2018/02/46906ab3-a0be-468c-babd-44ed80328876-150x150.jpg 150w, https://zefanjas.de/wp-content/uploads/2018/02/46906ab3-a0be-468c-babd-44ed80328876-300x300.jpg 300w, https://zefanjas.de/wp-content/uploads/2018/02/46906ab3-a0be-468c-babd-44ed80328876-270x270.jpg 270w&#34; sizes=&#34;(max-width: 600px) 100vw, 600px&#34; /&gt; 
&lt;p&gt;Das war es schon 🙂 Wer sich für einen Raspberry Pi Zero W entscheidet, benötigt noch ein Adapterkabel auf einen Standard-USB Anschluss, da der Zero nur Micro-USB hat. Den Sensor bekommt man am besten bei Aliexpress. Dort kostet er um die 17-20$. Der Sensor hat eine USB-Adapter für die serielle Schnittstelle mit dabei.&lt;/p&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;Für unseren Raspberry Pi laden wir uns das entsprechende Raspbian Lite Image herunter und schreiben es auf die Micro-SD Karte. Dokumentiert ist das z.B. [hier][3]. Auf die Einrichtung der WLAN-Verbindung gehe ich an dieser Stelle nicht ein. Dazu gibt es viele Tutorials im Netz.&lt;/p&gt;
&lt;p&gt;Wer nach dem Booten gleich SSH aktiviert haben möchte, muss in der boot-Partition einen leere Datei mit dem Namen &lt;code&gt;ssh&lt;/code&gt; anlegen. Die IP des Raspberry Pis bekommt man am besten über den eigenen Router / DHCP Server heraus. Danach kann man sich per SSH anmelden (Standardpasswort ist &lt;em&gt;raspberry&lt;/em&gt;):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ssh pi@192.168.1.5
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;del&gt;Für unseren Sensor verwenden wir eine &lt;a href=&#34;https://gitlab.com/frankrich/sds011_particle_sensor&#34;&gt;kleines Python-Modul&lt;/a&gt;, was uns einiges an Arbeit abnimmt.&lt;/del&gt; Dazu müssen wir noch einige Pakete installieren &lt;del&gt;und das Repository auf den Pi klonen&lt;/del&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install python-serial python-enum lighttpd
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;del&gt;Alle benötigten Pakete sollten jetzt installiert sein und das Modul für unseren Sensor befindet sich in &lt;em&gt;&lt;strong&gt;/home/pi/sds011&lt;/strong&gt;&lt;/em&gt;. Unter &lt;em&gt;&lt;strong&gt;/home/pi/sds011/Code/text.py&lt;/strong&gt;&lt;/em&gt; gibt es ein Testprogramm, mit dem man den Sensor testen kann.&lt;/del&gt; Bevor wir das Programm aufrufen können, müssen wir noch wissen, an welchem seriellen Port der USB-Adapter steckt. dmesg hilft uns weiter:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ dmesg
[ 5.559802] usbcore: registered new interface driver usbserial
[ 5.559930] usbcore: registered new interface driver usbserial_generic
[ 5.560049] usbserial: USB Serial support registered for generic
[ 5.569938] usbcore: registered new interface driver ch341
[ 5.570079] usbserial: USB Serial support registered for ch341-uart
[ 5.570217] ch341 1-1.4:1.0: ch341-uart converter detected
[ 5.575686] usb 1-1.4: ch341-uart converter now attached to ttyUSB0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In der letzten Zeile steht unsere Schnittstelle: &lt;em&gt;ttyUSB0&lt;/em&gt;. Wir brauchen jetzt noch zwei Dinge: einmal ein kleines Python-Skript, welches die Daten ausliest und in eine JSON-Datei speichert und dann werden wir eine kleine HTML-Seite basteln, die diese Daten ausliest und darstellt.&lt;/p&gt;
&lt;h3 id=&#34;daten-auf-dem-raspberry-pi-auslesen-update&#34;&gt;Daten auf dem Raspberry Pi auslesen [Update]&lt;/h3&gt;
&lt;p&gt;Wir erstellen zuerst eine Instanz des Sensors und lesen dann alle 5 Minuten für 30 Sekunden den Sensor aus. Diese Werte können natürlich angepasst werden. Zwischen den Messintervallen versetzen wir den Sensor in einen Schlafmodus, um die Lebensdauer zu erhöhen (Lebensdauer beträgt laut Hersteller ca. 8000 Stunden).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[Update, 27.02.2018]&lt;/strong&gt; Ich habe festgestellt, das meine Python3 Version des Skripts die serielle Schnittstellen nicht ansprechen konnte, z.B. nach einem Reboot. Erst nach mehrmaligem Starten des Skripts konnten dann die Daten gelesen werden. Woran das liegt, habe ich leider nicht herausgefunden, aber mit Python2.7 funktioniert es ohne Probleme. Deshalb hier eine neue Version des Skripts, welche auf Python2.7 basiert.&lt;/p&gt;
&lt;p&gt;Im Homeverzeichnis legen wir eine Datei mit dem Namen aqi.py an und kopieren den folgenden Inhalt hinein:&lt;/p&gt;
&lt;pre class=&#34;height-set:true lang:python decode:true&#34;&gt;#!/usr/bin/python
# coding=utf-8
# &#34;DATASHEET&#34;: http://cl.ly/ekot
# https://gist.github.com/kadamski/92653913a53baf9dd1a8
from __future__ import print_function
import serial, struct, sys, time, json

DEBUG = 0
CMD_MODE = 2
CMD_QUERY_DATA = 4
CMD_DEVICE_ID = 5
CMD_SLEEP = 6
CMD_FIRMWARE = 7
CMD_WORKING_PERIOD = 8
MODE_ACTIVE = 0
MODE_QUERY = 1

ser = serial.Serial()
ser.port = &#34;/dev/ttyUSB0&#34;
ser.baudrate = 9600

ser.open()
ser.flushInput()

byte, data = 0, &#34;&#34;

def dump(d, prefix=&#39;&#39;):
    print(prefix + &#39; &#39;.join(x.encode(&#39;hex&#39;) for x in d))

def construct_command(cmd, data=[]):
    assert len(data) &amp;lt;= 12
    data += [0,]*(12-len(data))
    checksum = (sum(data)+cmd-2)%256
    ret = &#34;\xaa\xb4&#34; + chr(cmd)
    ret += &#39;&#39;.join(chr(x) for x in data)
    ret += &#34;\xff\xff&#34; + chr(checksum) + &#34;\xab&#34;

    if DEBUG:
        dump(ret, &#39;&amp;gt; &#39;)
    return ret

def process_data(d):
    r = struct.unpack(&#39;&amp;lt;HHxxBB&#39;, d[2:])
    pm25 = r[0]/10.0
    pm10 = r[1]/10.0
    checksum = sum(ord(v) for v in d[2:8])%256
    return [pm25, pm10]
    #print(&#34;PM 2.5: {} μg/m^3  PM 10: {} μg/m^3 CRC={}&#34;.format(pm25, pm10, &#34;OK&#34; if (checksum==r[2] and r[3]==0xab) else &#34;NOK&#34;))

def process_version(d):
    r = struct.unpack(&#39;&amp;lt;BBBHBB&#39;, d[3:])
    checksum = sum(ord(v) for v in d[2:8])%256
    print(&#34;Y: {}, M: {}, D: {}, ID: {}, CRC={}&#34;.format(r[0], r[1], r[2], hex(r[3]), &#34;OK&#34; if (checksum==r[4] and r[5]==0xab) else &#34;NOK&#34;))

def read_response():
    byte = 0
    while byte != &#34;\xaa&#34;:
        byte = ser.read(size=1)

    d = ser.read(size=9)

    if DEBUG:
        dump(d, &#39;&amp;lt; &#39;)
    return byte + d

def cmd_set_mode(mode=MODE_QUERY):
    ser.write(construct_command(CMD_MODE, [0x1, mode]))
    read_response()

def cmd_query_data():
    ser.write(construct_command(CMD_QUERY_DATA))
    d = read_response()
    values = []
    if d[1] == &#34;\xc0&#34;:
        values = process_data(d)
    return values

def cmd_set_sleep(sleep=1):
    mode = 0 if sleep else 1
    ser.write(construct_command(CMD_SLEEP, [0x1, mode]))
    read_response()

def cmd_set_working_period(period):
    ser.write(construct_command(CMD_WORKING_PERIOD, [0x1, period]))
    read_response()

def cmd_firmware_ver():
    ser.write(construct_command(CMD_FIRMWARE))
    d = read_response()
    process_version(d)

def cmd_set_id(id):
    id_h = (id&amp;gt;&amp;gt;8) % 256
    id_l = id % 256
    ser.write(construct_command(CMD_DEVICE_ID, [0]*10+[id_l, id_h]))
    read_response()

if __name__ == &#34;__main__&#34;:
    while True:
        cmd_set_sleep(0)
        cmd_set_mode(1);
        for t in range(15):
            values = cmd_query_data();
            if values is not None:
                print(&#34;PM2.5: &#34;, values[0], &#34;, PM10: &#34;, values[1])
                time.sleep(2)

        # open stored data
        with open(&#39;/var/www/html/aqi.json&#39;) as json_data:
            data = json.load(json_data)

        # check if length is more than 100 and delete first element
        if len(data) &amp;gt; 100:
            data.pop(0)

        # append new values
        data.append({&#39;pm25&#39;: values[0], &#39;pm10&#39;: values[1], &#39;time&#39;: time.strftime(&#34;%d.%m.%Y %H:%M:%S&#34;)})

        # save it
        with open(&#39;/var/www/html/aqi.json&#39;, &#39;w&#39;) as outfile:
            json.dump(data, outfile)

        print(&#34;Going to sleep for 5min...&#34;)
        cmd_set_mode(0);
        cmd_set_sleep()
        time.sleep(300)
```

Schneller geht es mit:

```
$ wget -O /home/pi/aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py
```

Damit das Skript fehlerfrei durchläuft sind noch zwei kleine Dinge nötig:

```
$ sudo chown pi:pi /var/www/html/
$ echo [] &amp;gt; /var/www/html/aqi.json

```

Nun kann man das Skript starten:

```
$ chmod +x aqi.py
$ ./aqi.py
PM2.5: 55.3 , PM10: 47.5
PM2.5: 55.5 , PM10: 47.7
PM2.5: 55.7 , PM10: 47.8
PM2.5: 53.9 , PM10: 47.6
PM2.5: 53.6 , PM10: 47.4
PM2.5: 54.2 , PM10: 47.3
...
```

### Skript automatisch starten lassen [Update]

Damit wir nicht jedes mal das Skript von Hand starten müssen, können wir es mit einem Cronjob z.B. bei jedem Neustart des Raspberry Pis mit starten lassen. Dazu öffnen wir die crontab-Datei

```
$ crontab -e
```

und ergänzen am Ende die nachfolgende Zeile:

```
@reboot cd /home/pi/ &amp;&amp; ./aqi.py
```

Nun startet unser Skript automatisch bei jedem Neustart mit.

### HTML-Seite für Anzeige der Messwerte und AQI

Weiter oben haben wir bereits einen leichtgewichtigen Webserver `lighttpd` installiert. Unsere HTML-, Javascript- und CSS-Datei müssen wir also im Verzeichnis _**/var/www/html/**_ speichern, damit wir von einen anderem Computer / Smartphone auf die Daten zugreifen können. Mit den nächsten drei Befehlen laden wir die entsprechenden Dateien einfach herunter:

```
$ wget -O /var/www/html/index.html https://raw.githubusercontent.com/zefanja/aqi/master/html/index.html
$ wget -O /var/www/html/aqi.js https://raw.githubusercontent.com/zefanja/aqi/master/html/aqi.js
$ wget -O /var/www/html/style.css https://raw.githubusercontent.com/zefanja/aqi/master/html/style.css
```

Die Hauptarbeit findet in der Javascript-Datei statt, die unsere JSON-Datei öffnet, den letzten Wert nimmt und anhand dieses Wertes den AQI berechnet. Dann werden noch die Hintergrundfarben anhand der Skala der EPA angepasst.

Nun man die Adresse des Raspberry Pis einfach im Browser aufrufen und die aktuellen Feinstaubwerte betrachten, z.B. _http://192.168.1.5_:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2487&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_196.png&#34; alt=&#34;AQI Website&#34; width=&#34;576&#34; height=&#34;342&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_196.png 576w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_196-300x178.png 300w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_196-455x270.png 455w&#34; sizes=&#34;(max-width: 576px) 100vw, 576px&#34; /&gt; 

Die Seite ist sehr einfach gestaltet und kann noch erweitert werden, z.B. um eine Grafik, die den Verlauf der letzten Stunden anzeigt usw. Pull Requests sind willkommen 🙂 Der komplette [Quellcode befindet sich auf Github][4].

### Fazit

Für relativ wenig Geld können wir jetzt den Feinstaub mit einem Raspberry Pi messen. Ob draußen fest installiert oder als mobiles Messgerät &amp;#8211; Einsatzmöglichkeiten gibt es viele. An unserer Schule haben wir beides im Einsatz. Einerseits einen Sensor der Tag und Nacht die Werte im Freien misst und einen mobilen Sensor, mit dem wir die Effektivität unserer Luftfilter in den Klassenzimmern überprüfen.

So sieht das ganze bei uns in der Schule aus:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2497&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_202.png&#34; alt=&#34;AQI Sensor&#34; width=&#34;327&#34; height=&#34;490&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_202.png 327w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_202-200x300.png 200w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_202-180x270.png 180w&#34; sizes=&#34;(max-width: 327px) 100vw, 327px&#34; /&gt; 

Unter &lt;http://luftdaten.info&gt; gibt es noch eine andere Möglichkeit einen ähnlichen Sensor zu bauen. Da bekommt man die Software bereits fertig geliefert und das Messgerät ist noch mal kompakter, da kein Raspberry Pi verwendet wird. Tolles Projekt!

Ein Feinstaubsensor ist ein Projekt, was sich auch gut mit Schülern im Informatikunterricht oder einer Arbeitsgemeinschaft umsetzen lässt!

&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Wofür setzt du einen &lt;a href=&#34;https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/&#34;&gt;Raspberry Pi&lt;/a&gt; ein?&lt;/strong&gt;
&lt;/p&gt;

 [1]: https://de.wikipedia.org/wiki/Feinstaub#WHO
 [2]: https://en.wikipedia.org/wiki/United_States_Environmental_Protection_Agency &#34;United States Environmental Protection Agency&#34;
 [3]: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
 [4]: https://github.com/zefanja/aqi</description>
    </item>
    
    <item>
      <title>linuxmuster und KVM – neue Dokumentation</title>
      <link>https://zefanjas.de/linuxmuster-kvm-neue-dokumentation/</link>
      <pubDate>Wed, 21 Feb 2018 08:28:31 +0000</pubDate>
      
      <guid>https://zefanjas.de/linuxmuster-kvm-neue-dokumentation/</guid>
      <description>&lt;h3 id=&#34;neue-dokumentation&#34;&gt;Neue Dokumentation&lt;/h3&gt;
&lt;p&gt;Seit einigen Tagen gibt es eine ausführliche Anleitung zur Installation von &lt;a href=&#34;http://docs.linuxmuster.net/en/latest/systemadministration/install-on-kvm/index.html&#34;&gt;linuxmuster.net auf einem KVM-Virtualisierungshost&lt;/a&gt; in der offiziellen Dokumentation des Projekts. Wenn man dieser Anleitung folgt, hat man nach wenigen Stunden den KVM-Host, den linuxmuster.net &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserver&lt;/a&gt;, die Firewall und einen Administrations-PC fertig eingerichtet.&lt;/p&gt;
&lt;p&gt;Ergänzt wird das Ganze durch Bilder und Videos, welche die einzelnen Schritte noch mal visualisieren. In zwei weiteren Kapiteln stellt &lt;a href=&#34;https://github.com/morpweb&#34;&gt;der Autor&lt;/a&gt; verschiedene Backup-Strategien vor und beschreibt die Einrichtung von VLANs auf dem Server.&lt;/p&gt;
&lt;p&gt;Neben dieser neuen Dokumentation gibt es auch Leitfäden für die manuelle Installation sowie die Installation mit einem XenServer.&lt;/p&gt;
&lt;h3 id=&#34;neuigkeiten-zu-version-7&#34;&gt;Neuigkeiten zu Version 7&lt;/h3&gt;
&lt;p&gt;Die Entwickler arbeiten weiter fleißig an der neuen &lt;a href=&#34;https://zefanjas.de/linuxmuster-net-v7-was-wird-sich-aendern/&#34;&gt;Version 7 von linuxmuster.net&lt;/a&gt;. Aber auch die aktuelle Version 6.2 hat im &lt;a href=&#34;https://www.linuxmuster.net/de/2018/02/03/zahlreiche-feature-und-security-updates-fuer-linuxmuster-net-6-2/&#34;&gt;vergangenen Monat einige Sicherheitsupdates sowie neue Features&lt;/a&gt; erhalten (v.a. &lt;a href=&#34;https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/&#34;&gt;Linbo&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Noch gibt es keine Beta-Version von linuxmuster.net v7, aber wer sich ein Testsystem installieren will, findet im Github-Wiki eine &lt;a href=&#34;https://github.com/linuxmuster/linuxmuster-base7/wiki/Einrichten-eines-linuxmuster.net-7-Testsystems&#34;&gt;Installationsanleitung inkl. fertiger Virtualbox-Images&lt;/a&gt;. Insgesamt wird es wohl noch einige Monate dauern, bis es ein Release geben wird.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Warum Linbo eines der besten Features von linuxmuster.net ist</title>
      <link>https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/</link>
      <pubDate>Fri, 16 Feb 2018 11:30:46 +0000</pubDate>
      
      <guid>https://zefanjas.de/warum-linbo-eines-der-besten-features-von-linuxmuster-net-ist/</guid>
      <description>&lt;p&gt;Es gibt viele Dinge, die ich an [linuxmuster.net][1] toll finde, aber eines der besten Features ist Linbo. Linbo (&lt;strong&gt;Li&lt;/strong&gt;nux &lt;strong&gt;N&lt;/strong&gt;etwork &lt;strong&gt;Bo&lt;/strong&gt;ot) ist ein Mini-OS, mit dem wir alle unsere Rechner verwalten. Mit Linbo registrieren wir neue Rechner im Netz, erstellen neue Images und verteilen sie wiederum auf andere Computer in unserem [Schulnetzwerk][2]. Für Schüler und Lehrer ist Linbo eher ein Bootmanager mit dem sie ihr gewünschtes Betriebssystem auswählen oder zurücksetzen können.&lt;/p&gt;
&lt;p&gt;Was an Linbo so besonders ist und warum es uns sehr sehr viel Zeit einspart, möchte ich in diesem Artikel erklären.&lt;/p&gt;
&lt;h3 id=&#34;computer-registrieren&#34;&gt;Computer registrieren&lt;/h3&gt;
&lt;p&gt;In linuxmuster.net müssen alle Computer, bevor sie von Linbo verwaltet werden können, registriert werden. Jeder Rechner bekommt eine IP-Adresse, eine Rechner-Gruppe, einen Raum und einen Hostnamen. Dazu bootet man den Rechner einfach über das Netzwerk und wählt in Linbo den Tab „&lt;em&gt;Imaging&lt;/em&gt;„. Es erscheint ein Dialog, in dem man alle Infos eintragen kann. Wenn man mehrere Rechner in einem Raum aufnimmt, füllt Linbo die meisten Felder automatisch aus.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2473&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/register-dialog.png&#34; alt=&#34;register-dialog&#34; width=&#34;289&#34; height=&#34;449&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/register-dialog.png 289w, https://zefanjas.de/wp-content/uploads/2018/02/register-dialog-193x300.png 193w, https://zefanjas.de/wp-content/uploads/2018/02/register-dialog-174x270.png 174w&#34; sizes=&#34;(max-width: 289px) 100vw, 289px&#34; /&gt; 
&lt;p&gt;Diese Infos sind wichtig, um später Einstellungen für einzelne Räume oder Rechnergruppen vorzunehmen. Ein Beispiel dafür ist die [Einrichtung von Epoptes][3], einer Klassenraummanagement-Software.&lt;/p&gt;
&lt;h3 id=&#34;images-erstellen&#34;&gt;Images erstellen&lt;/h3&gt;
&lt;p&gt;Mit Linbo kann man Abbilder von Partitionen erstellen („Images“), die man dann später auf andere Rechner verteilt. Das erleichtert die Verwaltung von vielen Rechnern enorm, da man i.d.R. nur ein Master-Image erstellt und es dann an mehreren Rechner nutzt. Da Linbo ein Abbild der Partition erstellt, unterstützt es fast jedes Betriebssystem (Ubuntu, Windows, …). Im Reiter „&lt;em&gt;Imaging&lt;/em&gt;“ hat man verschiedene Optionen zur Auswahl.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2474&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/linbo-imagingscreen.png&#34; alt=&#34;linbo-imagingscreen&#34; width=&#34;800&#34; height=&#34;601&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/linbo-imagingscreen.png 800w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-imagingscreen-300x225.png 300w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-imagingscreen-768x577.png 768w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-imagingscreen-359x270.png 359w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;p&gt;Über den Button „&lt;em&gt;Image erstellen&lt;/em&gt;“ kann man ein Abbild erstellen und es gleich auf den Server hochladen.&lt;/p&gt;
&lt;h3 id=&#34;rechner-synchronisieren-auch-offline&#34;&gt;Rechner synchronisieren (auch offline!)&lt;/h3&gt;
&lt;p&gt;Hat man einmal ein Image erstellt und auf den Server hochgeladen, kann das Image an andere Rechner verteilt werden. Dazu startet man wieder den Rechner über das Netzwerk und drückt einfach den gelben oder roten Button. Der Unterschied ist, dass bei einem Klick auf „Neu und Start“ (roter Button), die Partition vorher noch formatiert wird. Bei einem normalen Sync wird rsync im Hintergrund ausgeführt.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2475&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered2.png&#34; alt=&#34;linbo-mainscreen-registered&#34; width=&#34;639&#34; height=&#34;480&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered2.png 639w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered2-300x225.png 300w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered2-359x270.png 359w&#34; sizes=&#34;(max-width: 639px) 100vw, 639px&#34; /&gt; 
&lt;p&gt;Linbo lädt vor dem Synchronisieren das komplette Image auf den Rechner herunter. Unser Ubuntu-Image ist ca. 4,1GB groß, unser Windows 10 Image ca. 12 GB (ein weiterer Grund, warum ich lieber auf Ubuntu setze :)). Dadurch, dass das Image heruntergeladen wird, funktioniert die Synchronisation auch offline. Ist das System z.B. durch einen USB-Stick mit einem Virus infiziert worden oder man hat etwas kaputt konfiguriert, synchronisiert man den Rechner einfach neu und schon hat man wieder den gewünschten Ist-Zustand zurück. Ein tolles Features, was vor allem in Schulen enorm wichtig ist, wo mehrere hundert Schüler einen Computer / Woche benutzen.&lt;/p&gt;
&lt;h3 id=&#34;linbo-werkzeuge&#34;&gt;Linbo Werkzeuge&lt;/h3&gt;
&lt;p&gt;linuxmuster.net bringt einige Kommandozeilen-Werkzeuge mit, die man vom Server aus benutzen kann: &lt;code&gt;linbo-ssh&lt;/code&gt;, &lt;code&gt;linbo-remote&lt;/code&gt; und &lt;code&gt;linbo_wrapper&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;linbo-ssh&#34;&gt;linbo-ssh&lt;/h4&gt;
&lt;p&gt;Mit &lt;code&gt;linbo-ssh&lt;/code&gt; kann man sich auf jedem Rechner einloggen, auf dem Linbo gestartet wurde. Dazu reicht es, wenn man hinter dem Befehl des Hostnamen des Rechners eingibt, z.B.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ linbo-ssh r100-pc01
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;linbo_wrapper&#34;&gt;linbo_wrapper&lt;/h4&gt;
&lt;p&gt;Wenn man sich mit &lt;code&gt;linbo-ssh&lt;/code&gt; an einem Rechner angemeldet hat, kann mit &lt;code&gt;linbo_wrapper&lt;/code&gt; alle Befehle durchführen, die auch in der GUI verfügbar sind. Um z.B. den Rechner zu formatieren und anschließend das erste Betriebssystem zu synchronisieren, hilft folgender Befehl:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;~$ linbo_wrapper partition sync:1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;linbo_wrapper help&lt;/code&gt; gibt noch weitere Möglichkeiten aus.&lt;/p&gt;
&lt;h4 id=&#34;linbo-remote&#34;&gt;linbo-remote&lt;/h4&gt;
&lt;p&gt;Dieser Befehl gehört für mich zu den besten Features, denn damit kann ich alles vom Server aus steuern, was ich auch manuell in der GUI machen kann. Die Einsatzmöglichkeiten sind sehr vielfältig:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;einen ganze Rechnergruppe automatisch mit einem neuem Image versorgen (per Wake-on-Lan) z.B. mit ```
$ linbo-remote -g fs -w 60 -c partition,format,initcache:torrent,sync:1,start:1&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
  * Rechner automatisch herunterfahren, die Linbo gestartet haben
  * alle Rechner jeden Morgen synchronisieren und das Betriebssystem der Wahl starten. So hat man immer ein frisches System, welches sofort einsatzbereit ist

Dadurch, dass `linbo-remote` ein ganz normales Kommandozeilen-Werkzeug ist, kann man es auch in andere Skripte einbauen, was die Anwendungsmöglichkeiten noch mal zusätzlich erweitert.

Wir nutzen dieses Werkzeug sehr gern, da man dadurch sehr viel automatisieren kann und weniger &amp;amp;#8222;[Turnschuhadministration][4]&amp;amp;#8220; notwendig ist.

### Fazit

Wer noch mehr über Linbo wissen möchte, findet in der [Dokumentation][5] noch zusätzliche Infos. Für mich ist es _das_ Feature von linuxmuster.net. Ich habe bisher keine andere Möglichkeit kennengelernt, wie man viele Rechner mit so wenig Aufwand verwalten kann.

&amp;lt;p style=&amp;#34;text-align: center;&amp;#34;&amp;gt;
  &amp;lt;strong&amp;gt;Welche Werkzeuge nutzt du, um mehrere Rechner zu verwalten? CloneZilla? FOG? FAI? Opsi?&amp;lt;/strong&amp;gt;
&amp;lt;/p&amp;gt;

 [1]: https://zefanjas.de/tag/linuxmuster/
 [2]: https://zefanjas.de/4-linux-schulserver-im-vergleich/
 [3]: https://zefanjas.de/wie-man-epoptes-in-linuxmuster-net-integrieren-kann/
 [4]: https://www.gutefrage.net/frage/was-versteht-man-unter-turnschuhadministration
 [5]: http://docs.linuxmuster.net/de/latest/clients/linbo/index.html
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
    <item>
      <title>Wie man Epoptes in linuxmuster.net integrieren kann</title>
      <link>https://zefanjas.de/wie-man-epoptes-in-linuxmuster-net-integrieren-kann/</link>
      <pubDate>Wed, 14 Feb 2018 08:13:52 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-epoptes-in-linuxmuster-net-integrieren-kann/</guid>
      <description>&lt;p&gt;In meinem [letzten Artikel][1] habe ich beschrieben, wie man Epoptes installieren und im Unterricht einsetzen kann. Wir verwenden an unserer Schule [linuxmuster.net][2] als [Schulserver-Lösung][3]. Eines der für mich besten Features in linuxmuster.net ist [&lt;em&gt;postsync&lt;/em&gt;][4]. Mit Hilfe von Linbo (dem Bootmanager von linuxmuster.net) haben wir genau &lt;em&gt;ein&lt;/em&gt; Image für alle unsere Ubuntu-Rechner und können trotzdem individuelle Anpassungen für einzelne Rechner oder ganze Räume vornehmen. Heute möchte ich deshalb beschreiben, wie man Epoptes in linuxmuster.net integriert. Für die Schüler- und Lehrerrechner müssen verschiedene Konfigurationen vorgenommen werden, doch dank postsync brauchen wir weiterhin nur ein „Master-Image“ pflegen.&lt;/p&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;Die Installation führen wir an einem Rechner, welcher mit Linbo verwaltet wird, durch. Dazu starten wir unser Ubuntu-Image (in unserem Fall Ubuntu 16.04) synchronisiert (Klick auf gelbes Symbol):&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2455&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered.png&#34; alt=&#34;linbo-mainscreen-registered&#34; width=&#34;639&#34; height=&#34;480&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered.png 639w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered-300x225.png 300w, https://zefanjas.de/wp-content/uploads/2018/02/linbo-mainscreen-registered-359x270.png 359w&#34; sizes=&#34;(max-width: 639px) 100vw, 639px&#34; /&gt; 
&lt;p&gt;Nach dem Starten melden wir uns als lokaler Administrator an (z.B. linuxadmin). Danach installieren wir die beiden Pakete &lt;em&gt;epoptes&lt;/em&gt; und &lt;em&gt;epoptes-client.&lt;/em&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install epoptes epoptes-client
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mehr ist an dieser Stelle erst einmal nicht zu tun, da wir die Konfiguration später vornehmen.&lt;/p&gt;
&lt;h3 id=&#34;vorbereitungen-für-neues-master-image&#34;&gt;Vorbereitungen für neues Master-Image&lt;/h3&gt;
&lt;p&gt;Bevor wir ein neues Master-Image erstellen, müssen wir folgende Dateien auf einen USB-Stick oder gleich auf den linuxmuster.net Server kopieren und auf unserem Master-Image-PC löschen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/etc/default/epoptes-client
/etc/default/epoptes
/etc/epoptes/server.crt
/etc/epoptes/server.key
/etc/xdg/autostart/epoptes-client.desktop
/etc/init.d/epoptes
/etc/init.d/epoptes-client
/usr/bin/epoptes
/usr/sbin/epoptes-client
/usr/share/applications/epoptes.desktop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Entweder wir verschieben die Dateien auf einen Wechselspeicher (z.B. mit &lt;code&gt;sudo mv /etc/default/epoptes-client /media/linuxadmin/Wechseldatenträger/&lt;/code&gt;) oder per &lt;code&gt;scp&lt;/code&gt; direkt auf den linuxmuster.net Server (siehe nächster Abschnitt).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;: Die Ordner, in denen sich die Dateien befinden, werden nicht gelöscht!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;postsync-einrichten&#34;&gt;Postsync einrichten&lt;/h3&gt;
&lt;p&gt;Wir wollen nun die nötigen Einstellungen vornehmen, damit der Postsync am Ende auch die richtigen Anpassungen vornimmt. Die genaue Funktionsweise des Postsync-Features ist [in der offiziellen Dokumentation][5] erklärt. Deshalb müssen wir alle unserer Anpassungen für unser Ubuntu 16.04 Image (Xenial) unterhalb von &lt;em&gt;&lt;strong&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt; &lt;span class=&#34;o&#34;&gt;vornehmen.&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Dazu erstellen wir folgende Verzeichnis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/etc/default/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/etc/epoptes/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/etc/init.d/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/etc/xdg/autostart/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/usr/bin/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/usr/sbin/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Computerraums&lt;/em&gt;/usr/share/applications/&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für unseren Lehrer-PC brauchen wir noch diese Verzeichnisse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-Lehrer-Rechners&lt;/em&gt;/etc/default/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-&lt;/em&gt;&lt;em&gt;Lehrer-Rechners&lt;/em&gt;/etc/epoptes/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-&lt;/em&gt;&lt;em&gt;Lehrer-Rechners&lt;/em&gt;/etc/init.d/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-&lt;/em&gt;&lt;em&gt;Lehrer-Rechners&lt;/em&gt;/etc/xdg/autostart/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-&lt;/em&gt;&lt;em&gt;Lehrer-Rechners&lt;/em&gt;/usr/bin/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-&lt;/em&gt;&lt;em&gt;Lehrer-Rechners&lt;/em&gt;/usr/sbin/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linbo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linuxmuster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;–&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xenial&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;em&gt;Name-des-&lt;/em&gt;&lt;em&gt;Lehrer-Rechners&lt;/em&gt;/usr/share/applications/&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Ordner können wir auf dem linuxmuster.net Server wie folgt anlegen (Raum und Lehrer-PC anpassen und für alle Ordner aus den Listen oben durchführen):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Raum r100
$ mkdir -p /var/linbo/linuxmuster-client/xenial/r100/etc/default/
...
# Lehrer-PC r100-pc01
$ mkdir -p /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sind alle Ordner angelegt, können wir nun die Epoptes-Dateien von unserem Master-Image-PC oder von unserem USB-Stick in die richtigen Verzeichnisse kopieren. Am einfachsten geht es, wenn man den passwortlosen Zugang zum Master-Image-PC eingerichtet hat.&lt;/p&gt;
&lt;h4 id=&#34;master-rechner-aka-lehrer-pc&#34;&gt;Master-Rechner (aka Lehrer-PC)&lt;/h4&gt;
&lt;p&gt;Für den Lehrer-PC müssen wir folgende Dateien kopieren (vom Master-Image-PC):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/etc/default/epoptes  → Rechte 644&lt;/li&gt;
&lt;li&gt;/etc/epoptes/server.key → Rechte 644&lt;/li&gt;
&lt;li&gt;/etc/init.d/epoptes → Rechte 755&lt;/li&gt;
&lt;li&gt;/usr/bin/epoptes → Rechte 755&lt;/li&gt;
&lt;li&gt;/usr/share/applications/epoptes.desktop → Rechte 644&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mit &lt;code&gt;scp&lt;/code&gt; sieht da so aus (für alle Dateien wiederholen und Zielpfade anpassen):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ scp root@r100-pc01:/etc/default/epoptes /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Rechte könne mit &lt;code&gt;chmod&lt;/code&gt; angepasst werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ chmod 644 /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/epoptes
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Da durch den Postsync erst alle Dateien aus dem Ordner &lt;em&gt;&lt;strong&gt;/var/linbo/linuxmuster-client/xenial/r100/&lt;/strong&gt;&lt;/em&gt; synchronisiert werden, landen auch die Dateien des Epoptes Clients auf dem Lehrer-PC, was zu Problemen führt. Deshalb legen wir noch ein paar Dummy-Dateien an, um die Dateien des Epoptes-Clients wieder zu überschreiben:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /var/linbo/linuxmuster-client/xenial/r100-pc01/
$ touch etc/default/epoptes-client etc/xdg/autostart/epoptes-client.desktop etc/init.d/epoptes-client usr/sbin/epoptes-client
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;client-rechner-aka-schüler-pc&#34;&gt;Client-Rechner (aka Schüler-PC)&lt;/h4&gt;
&lt;p&gt;Ähnlich wir zu unserem Lehrer-PC kopieren wir nun noch die Dateien für unsere Schüler-Rechner. Diese Dateien werden benötigt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/etc/default/epoptes-client → Rechte 644&lt;/li&gt;
&lt;li&gt;/etc/epoptes/server.crt→ Rechte 644&lt;/li&gt;
&lt;li&gt;/etc/hosts → Rechte 644&lt;/li&gt;
&lt;li&gt;/etc/xdg/autostart/epoptes-client.desktop → Rechte 644&lt;/li&gt;
&lt;li&gt;/etc/init.d/epoptes-client → Rechte 755&lt;/li&gt;
&lt;li&gt;/usr/sbin/epoptes-client → Rechte 755&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diese können wir wieder nach dem gleichen Muster wie oben per &lt;code&gt;scp&lt;/code&gt; auf unseren Server vom Master-Image-Computer kopieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ scp root@r100-pc01:/etc/default/epoptes-client /var/linbo/linuxmuster-client/xenial/r100/etc/default/
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Rechte könne mit &lt;code&gt;chmod&lt;/code&gt; angepasst werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ chmod 644 /var/linbo/linuxmuster-client/xenial/r100/etc/default/epoptes-client
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun sind alle Dateien am richtigen Ort und wir können Epoptes konfigurieren.&lt;/p&gt;
&lt;h3 id=&#34;epoptes-konfigurien&#34;&gt;Epoptes konfigurien&lt;/h3&gt;
&lt;h4 id=&#34;master-rechner-aka-lehrer-pc-1&#34;&gt;Master-Rechner (aka Lehrer-PC)&lt;/h4&gt;
&lt;p&gt;Für den Lehrer-PC müssen wir nur in der Datei &lt;em&gt;&lt;strong&gt;/var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/epoptes&lt;/strong&gt;&lt;/em&gt; die &lt;em&gt;SOCKET_GROUP&lt;/em&gt; von &lt;em&gt;epoptes&lt;/em&gt; in&lt;code&gt;SOCKET_GROUP=teachers&lt;/code&gt; ändern.&lt;/p&gt;
&lt;h4 id=&#34;client-rechner-aka-schüler-pc-1&#34;&gt;Client-Rechner (aka Schüler-PC)&lt;/h4&gt;
&lt;p&gt;Für die Schüler-Rechner müssen wir etwas mehr konfigurieren.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;/var/linbo/linuxmuster-client/xenial/r100/etc/default/epoptes-client&lt;/strong&gt;&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SERVER=r100-pc01&lt;/code&gt; – hier müssen wir den Namen des Lehrer-Rechners eintragen&lt;/li&gt;
&lt;li&gt;Wer Wake-On-Lan nutzen möchte, muss das Kommentarzeichen vor &lt;code&gt;WOL=g&lt;/code&gt; entfernen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;/var/linbo/linuxmuster-client/xenial/r100/etc/xdg/autostart/epoptes-client.desktop&lt;/strong&gt;&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;X-GNOME-AutoRestart=true&lt;/code&gt; – Damit der Epoptes-Client auch bei einem Neustart des Displayservers neustartet, müssen wir hier wieder das Kommentarzeichen entfernen, .&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;/var/linbo/linuxmuster-client/xenial/r100/etc/hosts&lt;/strong&gt;&lt;/em&gt;
&lt;ul&gt;
&lt;li&gt;Da es manchmal Probleme mit dem Epoptes-Client trotz korrekter Namensauflösung geben kann, ergänzen wir am Ende der Datei die IP des Lehrer-PCs (IP anpassen!): &lt;pre class=&#34;code&#34;&gt;#Server für epoptes
10.16.5.100 r100-pc01&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
### Image erstellen

Jetzt können wir ein neues Master-Image auf unserem Master-Image-PC erstellen. Wichtig ist, dass man vorher alle unnötigen Dateien entfernt, damit das Image nicht unnötig groß wird (z.B. alte Kerneldateien, homes der Schüler und Lehrer löschen, Chronik von Firefox / Chrome bereinigen, &amp;amp;#8230;). Das Tool &amp;amp;#8222;[LMLCC][6]&amp;amp;#8220; ist an dieser Stelle sehr sehr hilfreich.

&amp;gt; **Wichtig**: Unbedingt die **Dateien** **löschen**, die unter &amp;amp;#8222;Vorbereitungen für neues Master-Image&amp;amp;#8220; aufgelistet sind!

Nach dem Neustart des Rechners können wir in [Linbo ein neues Image erstellen und auf den Server hochladen][7].

### Postsync testen

Jetzt, da wir ein neues Image haben und Epoptes konfiguriert ist, müssen wir noch testen, ob auch alles funktioniert, wie es soll. Zuerst brauchen wir das [Postsync][5]-Skript. Es sollte in der Regel schon vorhanden sein oder man kann es sich [hier herunterladen][8] und nach _**/var/linbo/xenial.cloop.postsync**_ kopieren (Rechte 664).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;$ wget -O /var/linbo/xenial.cloop.postsync &lt;a href=&#34;https://raw.githubusercontent.com/linuxmuster/linuxmuster-client-servertools/master/usr/lib/linuxmuster-client-servertools/generic.postsync&#34;&gt;https://raw.githubusercontent.com/linuxmuster/linuxmuster-client-servertools/master/usr/lib/linuxmuster-client-servertools/generic.postsync&lt;/a&gt;
$ chmod 664 /var/linbo/xenial.cloop.postsync&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
Nun starten wir einen beliebigen Rechner in unserem Computerraum und synchronisieren ihn mit Linbo, indem wir auf das gelbe oder rote Synchronisationssymbol klicken. Danach startet der Rechner und alles sollte fertig eingerichtet sein.

Leider sieht man in Linbo nicht direkt, ob der Postsync geklappt hat oder nicht. Wir können uns aber vom Server aus in Linbo einloggen. Dazu starten wir wieder einen Rechner aus dem Computerraum und warten bis Linbo fertig gebootet hat. Dann können wir wie folgt den Rechner synchronisieren und dabei beobachten, was passiert:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;$ linbo-ssh r100-pc02&lt;/p&gt;
&lt;h1 id=&#34;dann-in-der-linbo-shell&#34;&gt;Dann in der Linbo-Shell&lt;/h1&gt;
&lt;p&gt;$ linbo_wrapper sync:1&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
Die 1 steht für das 1. Betriebssystem, d.h. wenn man ein Dual-Boot System mit Windows hat und Ubuntu das zweite System ist, müssen wir den Befehl anpassen.

Falls Fehler auftreten, werden sie in der Konsole angezeigt. Vor allem sollte man erkennen können, ob der Postsync überhaupt ausgeführt wird!

Wenn alle Rechner im Computerraum synchronisiert sind, kann Epoptes benutzt werden.

### Fazit

Die Integration von Epoptes in linuxmuster.net hat für uns den großen Vorteil, dass wir weiterhin nur ein Ubuntu-Image pflegen müssen, aber trotzdem einzelne Rechner unterschiedlich zu konfigurieren (auch offline!). Für mich persönlich ist dieses eines der Killer-Features von linuxmuster.net (neben der [großartigen Community][9]!) Deshalb kann ich jedem, der sich für eine freie Schulserverlösung interessiert, linuxmuster.net sehr ans Herz legen.

### Problemlösung

#### Epoptesdienst startet nach Kernelupdate nicht mehr

Falls nach einem Kernelupdate der Epoptesdienst nicht mehr startet, hilft es Epoptes **vor** dem Kernelupdate zu deinstallieren mit
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;$ sudo apt remove &amp;ndash;purge eopoptes&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
Danach alle Updates durchführen, die _epoptes_ Pakete erneut installieren, die notwendigen Dateien wieder entfernen (am besten die Dateien in **lmlcc** unter _Bereinigen_ mit hinzufügen) und dann das Image neu schreiben.

 [1]: https://zefanjas.de/klassenraummanagement-mit-epoptes-app-des-monats/
 [2]: http://www.linuxmuster.net
 [3]: https://zefanjas.de/4-linux-schulserver-im-vergleich/
 [4]: http://docs.linuxmuster.net/de/latest/clients/postsync/basics.html
 [5]: http://docs.linuxmuster.net/de/latest/clients/postsync/index.html
 [6]: https://www.linuxmuster.net/wiki/anwenderwiki:linuxclient:lmlcc
 [7]: http://docs.linuxmuster.net/de/latest/clients/linbo/linbo-imagingscreen.html
 [8]: https://raw.githubusercontent.com/linuxmuster/linuxmuster-client-servertools/master/usr/lib/linuxmuster-client-servertools/generic.postsync
 [9]: https://ask.linuxmuster.net
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
    <item>
      <title>Klassenraummanagement mit Epoptes – App des Monats</title>
      <link>https://zefanjas.de/klassenraummanagement-mit-epoptes-app-des-monats/</link>
      <pubDate>Mon, 12 Feb 2018 13:06:41 +0000</pubDate>
      
      <guid>https://zefanjas.de/klassenraummanagement-mit-epoptes-app-des-monats/</guid>
      <description>&lt;p&gt;Jeder, der schon einmal in einem Computerraum unterrichtet hat, kennt die Situation. Die Aufmerksamkeit wiederherzustellen ist in einem Raum mit Computern besonders schwierig. Ständig sind die Schüler mit irgendetwas auf dem Schirm beschäftigt. Oder man möchte etwas erklären oder am Beamer zeigen und einfach nur sicherstellen, dass niemand versucht ist, auf seinen Bildschirm zu schauen, in der Angst, dort etwas zu verpassen. Um solche Dinge besser in den Griff zu bekommen, möchte ich heute – als weitere &lt;a href=&#34;https://zefanjas.de/tag/app-des-monats/&#34;&gt;App des Monats&lt;/a&gt; – Epoptes vorstellen, eine Software, die eine große Hilfe für jede Form von Unterricht in einem Computerraum ist.&lt;/p&gt;
&lt;p&gt;Epoptes ist aktuell nur für &lt;a href=&#34;http://epoptes.org&#34;&gt;Ubuntu, Debian und openSUSE verfügbar&lt;/a&gt;. Wer Windows im Computerraum verwendet, muss sich nach einer anderen Lösung umschauen, z.B. Veyon (ehemals iTALC).&lt;/p&gt;
&lt;h3 id=&#34;features&#34;&gt;Features&lt;/h3&gt;
&lt;p&gt;Epoptes bringt folgende Features und Funktionen mit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bildschirme zentral überwachen (Beobachten / Fernsteuern)&lt;/li&gt;
&lt;li&gt;eigenen Bildschirminhalt auf anderen Computern im Raum anzeigen&lt;/li&gt;
&lt;li&gt;Befehle ausführen&lt;/li&gt;
&lt;li&gt;Nachrichten versenden&lt;/li&gt;
&lt;li&gt;Sound an/aus&lt;/li&gt;
&lt;li&gt;Bildschirmsperre an/aus&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[Update]&lt;/strong&gt; Wer Epoptes zusammen mit linuxmuster.net nutzen möchte, kann dieser Anleitung folgen: &lt;a href=&#34;https://zefanjas.de/wie-man-epoptes-in-linuxmuster-net-integrieren-kann/&#34;&gt;Wie man Epoptes in linuxmuster.net integrieren kann&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Epoptes bringt zwei Programme mit. Einmal den Epoptes-Client, d.h. das Programm, welches auf den zu überwachenden Computern installiert wird. Für den Lehrer-PC wird dagegen das Hauptprogramm installiert, mit dem man die einzelnen Computer überwachen und steuern kann.&lt;/p&gt;
&lt;h4 id=&#34;master-rechner-aka-lehrer-pc&#34;&gt;Master-Rechner (aka Lehrer-PC)&lt;/h4&gt;
&lt;p&gt;Die Pakete für Epoptes sind in den offiziellen Paketquellen von Ubuntu enthalten. Mit den folgenden Befehlen aktualisieren wir die Paketquellen und installieren Epoptes für den Master-Rechner.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt update
$ sudo apt install epoptes
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit man Epoptes benutzen kann, muss man Mitglied in der &lt;em&gt;epoptes&lt;/em&gt; Gruppe sein (oder eine andere festgelegte Gruppe – siehe unten).&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo usermod -aG epoptes $USER
$ newgrp - epoptes
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Konfigurationsdatei für den Master-Rechner finden wir unter &lt;em&gt;&lt;strong&gt;/etc/default/epoptes&lt;/strong&gt;&lt;/em&gt;. Dort können wir z.B. die Gruppe ändern, die nötig ist, um die Klassenraummanagement-Software benutzen zu dürfen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo nano /etc/default/epoptes
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unter &lt;em&gt;SOCKET_GROUP&lt;/em&gt; wird die Gruppe festgelegt (z.B. &lt;em&gt;teacher&lt;/em&gt;). Die Gruppe muss allerdings existieren. Neben der Gruppe können wir auch noch den Port (standardmäßig &lt;em&gt;789&lt;/em&gt;) anpassen.&lt;/p&gt;
&lt;h4 id=&#34;client-rechner-aka-schüler-pc&#34;&gt;Client-Rechner (aka Schüler-PC)&lt;/h4&gt;
&lt;p&gt;Die Installation auf dem Client ist ähnlich. Im Unterschied zum Master-Rechner installieren wir hier das Paket &lt;em&gt;epoptes-client&lt;/em&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt update
$ sudo apt install epoptes-client
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Client muss wissen, wo er den Master-PC finden kann. Das können wir in der Datei _&lt;strong&gt;/etc/default/epoptes-clien&lt;/strong&gt;_t auf dem Client konfigurieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo nano /etc/default/epoptes-client
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unter &lt;em&gt;SERVER&lt;/em&gt; geben wir den DNS-Namen des Master-PCs an, z.B. &lt;em&gt;server&lt;/em&gt;. Falls wir keinen zentralen DNS-Server in unserem Netzwerk haben, können wir den Eintrag auch in der Datei &lt;em&gt;&lt;strong&gt;/etc/hosts&lt;/strong&gt;&lt;/em&gt; auf dem Client vornehmen. Dort fügen wir folgenden Eintrag hinzu:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;192.168.1.10 server
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die IP-Adresse muss natürlich noch angepasst werden. Mit &lt;code&gt;ping server&lt;/code&gt; können wir überprüfen, ob der Eintrag auch aufgelöst wird.&lt;/p&gt;
&lt;p&gt;Als letztes müssen wir noch das Zertifikat für die sichere Kommunikation vom Master-PC auf den Client herunterladen.&lt;/p&gt;
&lt;div class=&#34;bash&#34;&gt;
  &lt;div class=&#34;contents&#34;&gt;
    &lt;pre class=&#34;notranslate&#34;&gt;$ sudo epoptes-client -c
```
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Zum Schluss müssen wir den Client-Rechner einmal neustarten. Der Epoptes-Client startet automatisch beim Booten des Rechners.&lt;/p&gt;
&lt;h3 id=&#34;bedienung-von-epoptes&#34;&gt;Bedienung von Epoptes&lt;/h3&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2446&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_194.png&#34; alt=&#34;Epoptes Hauptfenster&#34; width=&#34;791&#34; height=&#34;511&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_194.png 791w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_194-300x194.png 300w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_194-768x496.png 768w, https://zefanjas.de/wp-content/uploads/2018/02/Auswahl_194-418x270.png 418w&#34; sizes=&#34;(max-width: 791px) 100vw, 791px&#34; /&gt; 
&lt;p&gt;Alle wesentlichen Bedienelemente befinden sich oben in der Werkzeugleiste. Hinter den Symbolen verstecken sich folgende Funktionen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Client per Wake-On-LAN starten (muss separat eingerichtet werden)&lt;/li&gt;
&lt;li&gt;Benutzer abmelden&lt;/li&gt;
&lt;li&gt;Client neustarten&lt;/li&gt;
&lt;li&gt;Client herunterfahren&lt;/li&gt;
&lt;li&gt;Die Steuerung an einem Client übernehmen. Ein einfacher Doppelklick auf einen Client öffnet ein Fenster im „Beobachten-Modus“, d.h. man kann den Rechner beobachten ohne jedoch die Steuerung zu übernehmen.&lt;/li&gt;
&lt;li&gt;Sendet den Bildschirm an die Clients. Praktisch, wenn man z.B. keinen Beamer hat.&lt;/li&gt;
&lt;li&gt;Stoppt die Ausstrahlung des Bildschirms.&lt;/li&gt;
&lt;li&gt;Führt einen Befehl am Client aus.&lt;/li&gt;
&lt;li&gt;Sendet eine Nachricht an alle ausgewählten Clients&lt;/li&gt;
&lt;li&gt;Sperrt alle ausgewählte Clients. Sehr praktisch 🙂&lt;/li&gt;
&lt;li&gt;Entsperrt die Bildschirme wieder.&lt;/li&gt;
&lt;li&gt;Zeigt Informationen über den Client an (MAC-Adresse, CPU, RAM, …)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Matthias, aus der &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;linuxmuster.net&lt;/a&gt; Community, hat vor einiger Zeit auch &lt;a href=&#34;https://www.youtube.com/watch?v=7N5_JO6mSSE&#34;&gt;ein kurzes Einführungsvideo erstellt&lt;/a&gt;:&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Wir benutzen Epoptes bei uns in unserem &lt;a href=&#34;https://zefanjas.de/kann-man-einen-computerraum-fuer-weniger-als-1500e-einrichten-ja/&#34;&gt;Computerraum&lt;/a&gt;. Da wir räumlich nicht die Möglichkeit hatten, alle Bildschirme am Rand aufzustellen, sodass man natürlicherweise immer einen Blick auf alle Bildschirme hat, ist diese Programm eine große Hilfe für uns. V.a. die Funktion alle Bildschirme mit einem Klick zu sperren ist äußerst hilfreich, um schnell die Aufmerksamkeit herstellen zu können. Einige unserer Kollegen nutzen auch gern die Möglichkeit, einen Schülerbildschirm vorn am Beamer zu projizieren, um etwas zu erläutern oder damit Schüler ihre Ergebnisse vorstellen können.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Erfahrungen hast du mit Epoptes im Speziellen oder einer anderen Klassenraummanagement-Software gemacht?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Open Source in der Schule – Was dafür und was dagegen spricht</title>
      <link>https://zefanjas.de/open-source-in-der-schule-was-dafuer-und-was-dagegen-spricht/</link>
      <pubDate>Wed, 31 Jan 2018 06:13:56 +0000</pubDate>
      
      <guid>https://zefanjas.de/open-source-in-der-schule-was-dafuer-und-was-dagegen-spricht/</guid>
      <description>&lt;p&gt;Open Source in der Schule – ein Thema, bei dem sich häufig die Geister scheiden. Ist es wirklich sinnvoll Open Source Software (OSS) in der Schule zu verwenden? Gibt es gerade für Schulen nicht viel geeignetere Alternativen? Welche Argumente gibt es für und gegen den Einsatz von OSS in der Schule, d.h. im Unterricht, im &lt;a href=&#34;https://zefanjas.de/kann-man-einen-computerraum-fuer-weniger-als-1500e-einrichten-ja/&#34;&gt;Computerraum&lt;/a&gt; oder auf auf dem &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserver&lt;/a&gt;? Gibt es Schulen, die erfolgreich auf OSS setzen oder ist das nur ein Wunschtraum?&lt;/p&gt;
&lt;p&gt;Ich möchte versuchen Argumente für und gegen Open Source Software in der Schule aufzulisten. Diese Liste ist sicher nicht vollständig und ich werde sie deshalb von Zeit zu Zeit aktualisieren. Wer noch weitere Ideen und Gründe für oder gegen den Einsatz von Open Source in der Schule hat, ist hiermit ermutigt einen Kommentar zu schreiben 🙂&lt;/p&gt;
&lt;h3 id=&#34;warum-man-open-source-in-der-schule-verwenden-sollte-8211-die-chancen&#34;&gt;Warum man Open Source in der Schule verwenden sollte – die Chancen&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sensibilisierung für informationelle Freiheit vs. Monopole&lt;/strong&gt; – Der Einsatz von Open Source Software leistet einen großen Beitrag in der Medienerziehung. Dazu zählt die Sensibilisierung für die Tatsache, dass heutzutage der Großteil meiner Daten nur einer handvoll Unternehmen gehört. Weiterhin das Aufzeigen von Möglichkeiten und Alternativen, die es neben den großen Anbietern proprietärer Software gibt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Freiheit&lt;/strong&gt; –  Dieser Begriff ist sehr weit und umfasst sowohl die Freiheit von kommerziellen Interessen, als auch im Sinne von Weitergabe von Software. Dazu zählt auch, dass die meiste OSS lizenzkostenfrei ist. Der Einsatz von OSS bricht Abhängigkeiten von Herstellern, von Supportverträgen oder Sicherheitsupdates, die nur gegen Aufpreis verfügbar sind. LibreOffice stellt z.B. sicher, dass ich Dokumente aus vielen kommerziellen Produkten weiterverwenden und importieren (teilweise auch exportieren) kann.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;keine Lizenzkosten&lt;/strong&gt; – In der Regel zahlt man für OSS keine Lizenzkosten. Dadurch kann langfristig sehr viel Geld gespart werden. Weiterhin können Unterrichtsprojekte/-methoden, welche teure Programme oder deren flächendeckende Installation erfordern, mit OSS-Alternativen realisiert werden. Aus finanziellen Gründen wären diese oft nicht möglich. Man muss z.B. Grafikbearbeitung nicht mit Adobe Photoshop lernen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sicherheit&lt;/strong&gt; – Der Quelltext von OSS ist für jeden frei zugänglich. Schwachstellen werden i.d.R. schnell behoben. Hintertüren sind dadurch nur schwer einzuschleusen – wenn überhaupt. Bei (L)Unix – Systemen gibt es eine klare Rechteverteilung. Das erhöht die Sicherheit zusätzlich. Derzeit gibt es recht wenig bekannte Viren und Malware für Linux-Betriebsysteme.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;größeres Verständnis für Funktionsweise von Programmen&lt;/strong&gt; – Dadurch, dass Schüler die Möglichkeit haben, andere Software neben den marktbeherrschenden Programmen kennenzulernen, können sie ein größeres Verständnis für die Funktionsweise bekommen, z.B. einer Textverarbeitung oder Tabellenkalkulation. Es wird weniger „Klick-Wissen“ angeeignet, sondern man stattet die Schüler mit einer größeren Flexibilität im Umgang mit unbekannter Software aus.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Gleichheit&lt;/strong&gt; – OSS leistet einen großen Beitrag zur Gleichheit zwischen den Schülern. Die Software kann jeder frei für die meisten Betriebssysteme herunterladen und auch weitergeben. Es herrscht kein Zwang eine bestimmte Software zu kaufen, um die Inhalte des Unterrichts zu Hause zu vertiefen. Finanzschwächere Familien werden nicht benachteiligt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Werte&lt;/strong&gt; – Die Werte, die hinter der OSS-Bewegung stehen passen gut zu Schule und zu dem, was sie eigentlich vermitteln will. Konkret meine ich (Wissen) teilen, zusammen arbeiten, Offenheit, Transparenz, freier Zugang zu Informationen. Diese Praxis und die Kultur des Weitergebens und Teilens fördern Kompetenzen, die ethisch und gesellschaftlich von hoher Bedeutung sind.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lokalisierung&lt;/strong&gt; – OSS Software ist oft in der Muttersprache vorhanden. Diese Argument zählt vielleicht nicht so sehr in der westlichen Welt, in der jede Software meist noch in anderen Sprachen neben Englisch verfügbar ist. In Asien oder Afrika, in denen es sehr viele verschiedene Sprachen gibt, ist das ein großer Vorteil. Auch wenn Englisch sehr weit verbreitet ist, gibt es viele Teile auf der Welt, in denen diese Sprache nicht gesprochen oder verstanden wird.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verwaltung / Administration&lt;/strong&gt; – Nach mehreren Jahren Erfahrung mit OSS im privaten sowie im schulischem Umfeld kann ich persönlich bestätigen, dass die Verwaltung von vielen Rechnern mit OSS wesentlich einfacher und zeitsparender ist. Die Möglichkeiten zur Automatisierung sind riesig. Wir verwenden auch Windowsrechner bei uns, aber deren Pflege und Wartung ist ca. 80% aufwendiger als unsere Ubuntu-Rechner.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;alte Hardware kann länger verwendet werden&lt;/strong&gt; – Ein Vorteil, den man nicht unterschätzen sollte, gerade für Schulen. Die meisten Dinge, die Schüler in der Schule an einem Computer lernen und wozu sie ihn benutzen, erfordern keine hohe Systemvoraussetzungen. Ein alter Rechner, ausgestattet mit einer kleinen SSD, lässt sich noch viele Jahre einsetzten. Gebrauchte Hardware kann man günstig erwerben oder man erhält sie u.U. auch als Spende. Mit OSS, die oft weniger Ressourcen braucht, kann man Hardware noch lange einsetzten. Wir haben z.B. noch Rechner im Betrieb, die schon fast 8-10 Jahre im Betrieb sind.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;was-spricht-gegen-die-verwendung-von-open-source-in-der-schule&#34;&gt;Was spricht gegen die Verwendung von Open Source in der Schule?&lt;/h3&gt;
&lt;p&gt;Trotz der oben genannten Punkte, gibt es auch Argumente gegen den Einsatz von Open Source in der Schule. Generell muss man unterscheiden, in welchem Umfang man OSS verwenden möchte. Geht es nur darum eine Anwendung auszutauschen oder eine Schule komplett, d.h. vom Betriebssystem an, mit OSS zu betreiben? Oder möchte man OSS nur auf einem Server einsetzen? Je nach Anwendungsfall kommen weitere Argumente dazu oder fallen weg.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;weniger Support durch Unternehmen&lt;/strong&gt; – Es gibt faktisch weniger Unternehmen und Dienstleister, welche OSS unterstützen, v.a. auch abseits der westlichen Welt. Das ist ein großes Problem, wenn man z.B. von Windows zu Ubuntu wechseln möchte. In vielen Fällen gibt es vielleicht eine engagierte Lehrkraft, aber das ist keine langfristige Lösung bzw. eigentlich auch nicht Aufgabe eines Lehrers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;kaum Lernsoftware vorhanden&lt;/strong&gt; – Lernsoftware ist zu 99% für Windows konzipiert. Für Linux oder macOS gibt es von den Schulbuchverlagen kaum Anwendungen. Sicher kann man über den Sinn und Zweck von Lernsoftware streiten, aber es gibt kaum eine Lernsoftware für Linux. Wer Lernsoftware einsetzen will / muss, braucht i.d.R. einen Windowscomputer (physisch oder virtuell).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;kleinere Community, wenige Referenzen&lt;/strong&gt; – Es gibt einige Schulen in Deutschland, aber auch weltweit, die Open Source in der Schule verwenden, aber man findet wenig Informationen darüber. Das ist v.a. ein Nachteil, wenn man den (geplanten) Einsatz von OSS vor der Schulleitung oder dem Vorstand begründen muss.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;weiterer Bildungs- und Berufsweg verwendet andere Software&lt;/strong&gt; – Dies ist ein weit verbreitetes Argument gegen OSS. Später müsse man doch sowieso Mircosoft Office verwenden, warum sollen die Schüler dann den Umgang mit LibreOffice lernen? Eigentlich kein richtiges Argument gegen OSS, denn m.M.n. hat dieses Argument auch mit dem nächsten zu tun:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bequemlichkeit und allgemeine Abwehrhaltung gegen OSS&lt;/strong&gt; – Ich erlebe immer wieder eine gewissen Abneigung gegen OSS. Man befindet sich oft in einer Rechtfertigungshaltung, wenn man OSS einsetzen möchte. Das hat zum Teil mit der Qualität und Stabilität einiger Open Source Projekte zu tun, aber auch mit der mangelnden Flexibilität vieler Lehrkräfte. Das kann ein großes Hindernis für den erfolgreichen Einsatz von OSS sein!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unsichere Weiterentwicklung&lt;/strong&gt; – Für die Weiterentwicklung von OSS gibt es keine Garantie, weil sie vom freiwilligen Engagement der Community sowie der Nachfrage abhängt. Das gilt vor allem für viele kleine Projekte.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anwendungsintegration&lt;/strong&gt; – Im Zusammenspiel mit anderen Applikationen, insbesondere kommerzieller Software, kann es zu erheblichen Problemen kommen. Dieses Argument spielt in Schulen eine kleinere Rolle im Vergleich zu Unternehmen.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;was-nötig-ist-8211-die-herausforderungen&#34;&gt;Was nötig ist – die Herausforderungen&lt;/h3&gt;
&lt;p&gt;Die größten Herausforderungen beim Einsatz von Open Source in der Schule sehe ich im Abbau von Berührungsängsten und den damit verbunden Schulungen sowie der Gewinnung von einem geeigneten Dienstleister oder eigenem Personal. Diese beiden Punkte sind kritisch, wenn man OSS im Unterricht oder in der IT-Infrastruktur einsetzen möchte. Ich erlebe immer wieder, wie Kollegen und Mitarbeiter OSS ablehnen oder kritisch gegenüberstehen, weil es anders ist und nicht so aussieht bzw. funktioniert, wie sie es gewohnt sind. Hier kann man mit internen Fortbildungen und Schulungen entgegenwirken. Deshalb muss eine Migration z.B. von MS Office zu LibreOffice oder Windows zu Ubuntu gut geplant und vorbereitet werden. Trotz allem wird es aber immer Leute geben, die dem kritisch gegenüber stehen, getreu nach dem Motto „Was er Bauer nicht kennt, isst er nicht!“.&lt;/p&gt;
&lt;p&gt;Damit der Einsatz von Open Source Software in der Schule gelingt, braucht es unbedingt auch kompetentes Personal bzw. Dienstleister. Ohne so einen Person oder Partner ist es schwierig(er) die Kollegen für OSS zu gewinnen. Oft muss individuelle Hilfe geleistet oder zusätzliche Dokumentation erstellt werden, v.a. in der Übergangszeit. In Europa und der westlichen Welt sind die Chancen größer einen solchen Partner zu finden, aber in anderen Teilen der Welt kennt man fast nur Windows. Dessen muss man sich bewusst sein.&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Als Schule im Ausland sind wir den &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-1/&#34;&gt;Schritt Richtung Open Source vor ca. 2 Jahren&lt;/a&gt; gegangen und haben es nicht bereut. Im Gegenteil: Wir haben unsere bisherige Infrastruktur stark ausgebaut – ohne größere Mehrkosten. Mit Hilfe von Open Source Software konnten wir so in &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;vielen Bereichen einen Mehrwert&lt;/a&gt; schaffen. Unsere Schüler haben die wenigsten Probleme mit unseren Ubuntu-Rechner und auch viele Kollegen arbeiten gern damit. Als &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;Schulserverlösung&lt;/a&gt; verwenden wir &lt;a href=&#34;https://linuxmuster.net&#34;&gt;linuxmuster.net&lt;/a&gt; – eine freie Musterlösung – hinter der eine super &lt;a href=&#34;https://ask.linuxmuster.net&#34;&gt;Community&lt;/a&gt; steht – nett, hilfsbereit, kompetent.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Setzt du Open Source in der Schule ein? Wo siehst du die größten Chancen und Herausforderungen?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;Quellen (&lt;a href=&#34;https://wiki.opensourceecology.de/Vorteile/Nachteile_von_Open_Source_Software&#34;&gt;1&lt;/a&gt;,&lt;a href=&#34;https://www.digitale-nachhaltigkeit.ch/de/2014/01/educa/&#34;&gt;2&lt;/a&gt;)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man das Koha „auto increment“ Problem lösen kann</title>
      <link>https://zefanjas.de/wie-man-das-koha-auto-increment-problem-loesen-kann/</link>
      <pubDate>Wed, 24 Jan 2018 14:04:49 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-das-koha-auto-increment-problem-loesen-kann/</guid>
      <description>&lt;p&gt;Wir verwenden [Koha für unsere Bibliothek][1], eine sehr mächtige und [tolle Open Source Software][2]. Auf Mailingliste des Projekts hatte ich bereits vom „Koha auto increment“ – Problem gelesen und hoffte, dass es uns nicht betraf. Doch vor einigen Wochen kam einer unserer Mitarbeiter der Schulbibliothek zu mir und gab mir ein Buch, dass sich nicht zurückgeben ließ. Jedes mal, wenn man versuchte, das besagte Buch zurückzugeben, bekam man folgende Fehlermeldung:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2401&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_182.png&#34; alt=&#34;Koha auto increment error&#34; width=&#34;787&#34; height=&#34;396&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_182.png 787w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_182-300x151.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_182-768x386.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_182-537x270.png 537w&#34; sizes=&#34;(max-width: 787px) 100vw, 787px&#34; /&gt; 
&lt;p&gt;Unter &lt;strong&gt;Mehr → Über Koha&lt;/strong&gt; im Reiter „&lt;strong&gt;Systeminformationen&lt;/strong&gt;“ konnte ich dann sehen, dass einige Bücher von diesem Problem betroffen waren.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2402&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_180.png&#34; alt=&#34;Koha Systeminformationen&#34; width=&#34;1003&#34; height=&#34;717&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_180.png 1003w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_180-300x214.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_180-768x549.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_180-378x270.png 378w&#34; sizes=&#34;(max-width: 1003px) 100vw, 1003px&#34; /&gt; 
&lt;p&gt;Doch worin liegt eigentlich das Problem? Wie konnte es dazu kommen?&lt;/p&gt;
&lt;h3 id=&#34;das-problem&#34;&gt;Das Problem&lt;/h3&gt;
&lt;p&gt;Im Koha Wiki gibt es zu diesem Datenbankproblem eine [eigene Wiki-Seite][3]. Koha verschiebt Einträge zwischen Datenbanktabellen, wenn man z.B. einen Benutzer oder ein Buch löscht. Das gleiche passiert mit Ausleihen. Die Einträge in diesen Tabellen haben eine eindeutige ID, welche normalerweise automatisch hochgezählt wird (auto increment). Das Problem ist allerdings, dass MySQL diese Zähler nur im Arbeitsspeicher speichert und nicht auf der Festplatte. Dies tritt nur auf, wenn Einträge gelöscht werden. Ein Beispiel:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ich erstelle einen neuen bibliographischen Eintrag (z.B. ein Buch). Es wird u.a. in der Tabelle &lt;em&gt;biblio&lt;/em&gt; gespeichert. Der Eintrag bekommt die ID 1. Der nächste Wert für die ID müsste also 2 sein.&lt;/li&gt;
&lt;li&gt;Jetzt lösche ich dieses Buch wieder. Der Eintrag wird in die Tabelle &lt;em&gt;deletedbiblio&lt;/em&gt; verschoben. In der Tabelle &lt;em&gt;biblio&lt;/em&gt; gibt es jetzt keinen Eintrag mehr.&lt;/li&gt;
&lt;li&gt;Ich starte den MySQL-Server neu. Dadurch wird der interne Zähler für die IDs zurückgesetzt.&lt;/li&gt;
&lt;li&gt;Nun lege ich ein neues Buch an. Es bekommt nicht die ID 2, sondern 1, weil es ja keinen Eintrag mehr in der Tabelle &lt;em&gt;biblio&lt;/em&gt; gibt.&lt;/li&gt;
&lt;li&gt;Wenn ich jetzt dieses Buch lösche, wird es zwar aus der Tabelle gelöscht, aber nicht in die Tabelle &lt;em&gt;deletedbiblio&lt;/em&gt; verschoben, da es dort schon einen Eintrag mit dieser ID gibt. Die Folge ist, dass in diesem Fall mein Eintrag für immer verloren ist.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das passiert wie gesagt nicht nur mit bibliographischen Einträgen, sondern auch mit Ausleihen, Benutzern etc. Aus diesem Grund warnt Koha in den aktuellen Versionen vor dem Problem. Damit ist es aber noch nicht behoben.&lt;/p&gt;
&lt;h3 id=&#34;das-koha-8222auto-increment8220-problem-reparieren&#34;&gt;Das Koha „auto increment“ Problem reparieren&lt;/h3&gt;
&lt;p&gt;Um zukünftig einen Datenverlust zu vermeiden, bringen wir MySQL bei, die IDs nicht zurückzusetzen, v.a. nicht auf einen Wert, den wir schon einmal verwendet haben. Dazu öffnen wir die Datei &lt;code&gt;/etc/mysql/my.cnf&lt;/code&gt; oder &lt;code&gt;/etc/mysql/mariadb.conf.d/50-server.cnf&lt;/code&gt; (wir verwenden einen Ubuntu 16.04 [LXD Container][4] mit MariaDB) und ergänzen im Abschnitt &lt;code&gt;[mysqld]&lt;/code&gt; folgende Zeile:&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;init-file=/var/lib/mysql/init-file_koha.sql
```

Dann erstellen wir eben diese Datei mit

```
$ sudo nano /var/lib/mysql/init-file_koha.sql
```

und kopieren den folgenden Inhalt in die Datei:

```
USE koha_DB_Name;
 
SET @new_AI_borrowers = ( SELECT GREATEST( IFNULL( ( SELECT MAX(borrowernumber) FROM borrowers ), 0 ), IFNULL( ( SELECT MAX(borrowernumber) FROM deletedborrowers ), 0 ) ) + 1 );
SET @sql = CONCAT( &#39;ALTER TABLE borrowers AUTO_INCREMENT = &#39;, @new_AI_borrowers );
PREPARE st FROM @sql;
EXECUTE st;
 
SET @new_AI_biblio = ( SELECT GREATEST( IFNULL( ( SELECT MAX(biblionumber) FROM biblio ), 0 ), IFNULL( ( SELECT MAX(biblionumber) FROM deletedbiblio ), 0 ) ) + 1 );
SET @sql = CONCAT( &#39;ALTER TABLE biblio AUTO_INCREMENT = &#39;, @new_AI_biblio );
PREPARE st FROM @sql;
EXECUTE st;
 
SET @new_AI_biblioitems = ( SELECT GREATEST( IFNULL( ( SELECT MAX(biblioitemnumber) FROM biblioitems ), 0 ), IFNULL( ( SELECT MAX(biblioitemnumber) FROM deletedbiblioitems ), 0 ) ) + 1 );
SET @sql = CONCAT( &#39;ALTER TABLE biblioitems AUTO_INCREMENT = &#39;, @new_AI_biblioitems );
PREPARE st FROM @sql;
EXECUTE st;
 
SET @new_AI_items = ( SELECT GREATEST( IFNULL( ( SELECT MAX(itemnumber) FROM items ), 0 ), IFNULL( ( SELECT MAX(itemnumber) FROM deleteditems ), 0 ) ) + 1 );
SET @sql = CONCAT( &#39;ALTER TABLE items AUTO_INCREMENT = &#39;, @new_AI_items );
PREPARE st FROM @sql;
EXECUTE st;
 
SET @new_AI_issues = ( SELECT GREATEST( IFNULL( ( SELECT MAX(issue_id) FROM issues ), 0 ), IFNULL( ( SELECT MAX(issue_id) FROM old_issues ), 0 ) ) + 1 );
SET @sql = CONCAT( &#39;ALTER TABLE issues AUTO_INCREMENT = &#39;, @new_AI_issues );
PREPARE st FROM @sql;
EXECUTE st;
 
SET @new_AI_reserves = ( SELECT GREATEST( IFNULL( ( SELECT MAX(reserve_id) FROM reserves ), 0 ), IFNULL( ( SELECT MAX(reserve_id) FROM old_reserves ), 0 ) ) + 1 );
SET @sql = CONCAT( &#39;ALTER TABLE reserves AUTO_INCREMENT = &#39;, @new_AI_reserves );
PREPARE st FROM @sql;
EXECUTE st;
```

&gt; **Wichtig:** In der ersten Zeile müssen wir unbedingt _koha\_DB\_Name_ mit dem Datenbanknamen unserer Koha-Installation ersetzen. In der Regel ist das _koha\_name\_der\_koha\_instanz_, also z.B. _koha_library_.

Zum Schluss starten wir noch MySQL bzw. MariaDB neu:

```
$ sudo service mysql restart
```

### Fehlerhafte Datensätze aufräumen

Nun haben wir zwar verhindert, dass das Problem wieder auftritt, aber es sind immer noch unserer alten Datensätze vorhanden. Ein Weg ist, die entsprechenden Einträge aus den _deleted*_ Tabellen zu löschen. Damit verliert man vielleicht ein paar statistische Informationen, aber auf die können wir in unserer kleinen Schulbibliothek verzichten. Sonst haben wir bisher keine negativen Auswirkungen feststellen können.

Um die &amp;#8222;fehlerhaften&amp;#8220; Datensätze zu löschen, müssen wir uns zuerst an unserem Koha-Server anmelden. Dann loggen wir uns in die MySQL-Konsole ein mit

```
$ sudo mysql -p koha_datenbankname
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 115
Server version: MariaDB Ubuntu 16.04

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.

MariaDB [koha_datenbankname]&amp;gt;
```

Oben im Screenshot sieht man, dass unsere fehlerhaften Datensätzen in den Tabellen _biblio_ und _deletedbiblio_ sind. Die IDs sind doppelt und wir löschen die IDs aus einer der beiden Tabellen, konkret aus _deletedbiblio_. Wir überprüfen zuerst, welche Datensätze betroffen sind:

```
MariaDB [koha_datenbankname]&amp;gt; SELECT * FROM deletedbiblio WHERE biblionumber IN (*hier die IDs aus dem Webinterface kopieren*);
```

Wenn wir die Datensätze wirklich löschen wollen ändern wir den Befehl leicht ab:

```
MariaDB [koha_datenbankname]&amp;gt; DELETE FROM deletedbiblio WHERE biblionumber IN (*hier die IDs aus dem Webinterface kopieren*);
```

Falls es z.B. auch problematische Datensätze mit den Ausleihen gibt, würde der Befehl so lauten:

```
MariaDB [koha_datenbankname]&amp;gt; DELETE FROM old_issues WHERE issue_id IN (*hier die IDs aus dem Webinterface kopieren);

```

Nun zeigt Koha keine fehlerhaften Datensätze mehr an:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2404&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_184.png&#34; alt=&#34;Koha Info&#34; width=&#34;1006&#34; height=&#34;236&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_184.png 1006w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_184-300x70.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_184-768x180.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_184-604x142.png 604w&#34; sizes=&#34;(max-width: 1006px) 100vw, 1006px&#34; /&gt; 

### Fazit

Wenn man dieses Problem in seiner Koha-Installation hat, ist es sehr ratsam dieses Problem zu lösen. Allerdings gibt es verschiedene Ansätze. Der oben beschriebene Weg ist ein schneller Fix, der aber unter Umständen nicht für jede Installation in Frage kommt. Seitens Koha wird noch an einem Skript gearbeitet, dass das Problem später automatisch beheben soll. Trotz diesem Datenbankproblem haben wir den Umstieg auf Koha bisher nicht bereut. Es ist und bleibt eine tolle Software, die sicher ihre Einarbeitungszeit braucht, aber der Gewinn, die Flexibilität und die damit gewonnen Freiheiten sind scheinbar grenzenlos.

&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Setzt du Koha ein? Welche Erfahrungen hast du bisher gemacht?&lt;/strong&gt;
&lt;/p&gt;

 [1]: https://zefanjas.de/umstieg-von-littera-zu-koha-teil-1/
 [2]: https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/
 [3]: https://wiki.koha-community.org/wiki/DBMS_auto_increment_fix
 [4]: https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/</description>
    </item>
    
    <item>
      <title>pfSense Webfilter – squidGuard für HTTP(S)-Verbindungen</title>
      <link>https://zefanjas.de/pfsense-webfilter-squidguard-fuer-https-verbindungen/</link>
      <pubDate>Mon, 22 Jan 2018 12:00:04 +0000</pubDate>
      
      <guid>https://zefanjas.de/pfsense-webfilter-squidguard-fuer-https-verbindungen/</guid>
      <description>&lt;p&gt;Als Systemadministrator einer Schule steht man immer wieder vor der Frage, inwieweit man Inhalte aus dem Internet filtern soll. Überall da, wo Kinder und Jugendliche Zugriff zum Internet haben, egal ob in der Schule, im Verein, Bibliotheken, zu Hause oder einer anderen öffentlichen Einrichtung, muss diese Frage beantwortet werden. Die Meinungen zu diesem Thema sind sehr vielfältig. Einen 100%igen Schutz gibt es nicht. Viel wichtiger ist es, Kinder und Jugendlichen einen verantwortungsvollem Umgang mit dem Internet beizubringen. Das ist eine sehr große Herausforderung und dauert seine Zeit. Eltern und Pädagogen stehen vor dieser Aufgabe und wissen oft nicht, wie man es am besten angeht. Gerade in Schulen, wo man die Bildschirme nicht immer im Blick behalten kann, ist ein Webfilter eine große Hilfe. In manchen Ländern ist ein Webfilter für Schulen sogar gesetzlich vorgeschrieben. Manchmal geht es aber auch nur darum bestimmte Webseiten, wie Facebook, Netflix &amp;amp; Co zu sperren. Deshalb möchte ich in diesem Tutorial zeigen, wie man einen pfSense Webfilter einrichten kann.&lt;/p&gt;
&lt;h3 id=&#34;vorbemerkungen&#34;&gt;Vorbemerkungen&lt;/h3&gt;
&lt;p&gt;[pfSense][1] ist eine weit verbreitete Open Source Firewall, die wir an [unserer Schule einsetzen][2]. Mit Hilfe von Squid (einem Proxy Server) und SquidGuard (dem eigentlichem Webfilter) wollen wir sowohl HTTP als HTTPS – Verbindungen filtern. Für dieses Tutorial brauchen wir zuerst eine aktive pfSense Installation. Die Firewall kann man [hier herunterladen][3] und nach [dieser Anleitung][4] installieren.&lt;/p&gt;
&lt;h3 id=&#34;funktionsweise&#34;&gt;Funktionsweise&lt;/h3&gt;
&lt;p&gt;HTTP-Verbindungen zu filtern ist sehr einfach und auch schnell eingerichtet. Da diese Verbindungen unverschlüsselt sind, kann man sie gut untersuchen und deshalb ganz oder teilweise sperren. Heutzutage verwenden immer mehr Seiten (auch solche, die man gern sperren möchte) HTTPS, d.h. eine verschlüsselte Verbindung zwischen dem Browser des Benutzers und dem Webserver. Dank Let’s Encrypt kann heute jeder ein kostenloses Zertifikat für seine Website einrichten. Das ist an sich eine gute Sache, weil es die Sicherheit erhöht und viele Attacken unmöglich macht bzw. schwieriger. Es erschwert aber auch das Filtern nach unerwünschten Inhalten.&lt;/p&gt;
&lt;p&gt;Diese „Problem“ lässt sich auf zwei Wegen lösen:&lt;/p&gt;
&lt;h4 id=&#34;1-man-in-the-middle-angriff&#34;&gt;1. Man-in-the-Middle Angriff&lt;/h4&gt;
&lt;p&gt;Ein Weg ist ein bewusster Man-in-the-middle Angriff. Der Proxy-Server entschlüsselt dabei die HTTPS-Verbindung und baut sie neu auf. Dadurch kann er sich die Verbindung anschauen und entsprechend filtern. Dieses Konzept wird von den meisten Anbietern von Filterlösungen angewendet. Das Problem hierbei ist, dass durch diesen tiefen Eingriff in die HTTPS-Verbindung, die eigentliche Sicherheit durch HTTPS nicht mehr gegeben ist. Ein Benutzer kann den Unterschied kaum erkennen, wenn dem Zertifikat des Proxy-Servers vertraut wird. Doch diese Sicherheit ist trügerisch. Auch wenn man nur über diesen Weg von einer echten Inhaltsfilterung sprechen kann, so ist diese Lösung gefährlich, sehr risikobehaftet (die Implementation ist nicht trival) und je nach Land, nicht mit den vorherrschenden Gesetzen vereinbar (Stichwort Datenschutz). Deshalb ist dieser Weg aus sicherheitstechnischen und auch moralischen Gründen nicht zu empfehlen.&lt;/p&gt;
&lt;h4 id=&#34;2-url-filter-über-sni&#34;&gt;2. URL-Filter über SNI&lt;/h4&gt;
&lt;p&gt;Eine weitere Möglichkeit ist die Filterung über SNI ([Server Name Indication][5]). Bevor das Zertifikat zwischen Browser und Webserver abgefragt und somit einen verschlüsselte Verbindung aufgebaut wird, sendet der Browser den Domain Namen (FQDN) mit, den er abfragen möchte. Dieser Teil ist nicht noch nicht verschlüsselt und kann deshalb von einem (transparentem) Proxy gelesen und für die Filterung genutzt werden. Folgende Abbildung macht den TLS-Handshake deutlicher.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2361&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/TLS-handshake-02.png&#34; alt=&#34;TLS Handshake&#34; width=&#34;648&#34; height=&#34;528&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/TLS-handshake-02.png 648w, https://zefanjas.de/wp-content/uploads/2018/01/TLS-handshake-02-300x244.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/TLS-handshake-02-331x270.png 331w&#34; sizes=&#34;(max-width: 648px) 100vw, 648px&#34; /&gt; 
&lt;p&gt;Man kann gut erkennen, dass der SNI vor dem Schlüsselaustausch und der eigentlichen sicheren Verbindung gesendet wird. Dieses Prinzip machen wir uns zunutze und können neben dem Webfilter für HTTP-Verbindungen auch einen URL-Filter für HTTPS-Verbindungen einrichten, ohne dabei HTTPS durch einen Man-in-the-Middle Angriff kaputt zu machen.&lt;/p&gt;
&lt;h3 id=&#34;safe-search-für-suchmaschienen&#34;&gt;Safe-Search für Suchmaschienen&lt;/h3&gt;
&lt;h4 id=&#34;firewall-regeln-für-dns-erstellen&#34;&gt;Firewall Regeln für DNS erstellen&lt;/h4&gt;
&lt;p&gt;Da wir nicht in eine HTTPS-Verbindung hinein schauen können, können z.B. in einer Google-Suche unerwünschte Bilder und Videos auftauchen. Google und auch andere Suchmaschinen bieten deshalb einen sicheren Modus (Safe-Search) an, denn wir erzwingen wollen.&lt;/p&gt;
&lt;p&gt;Zuerst müssen wir dazu den DNS-Resolver in pfSense aktivieren (unter &lt;strong&gt;Services → DNS Resolver&lt;/strong&gt;) und danach Speichern (&lt;strong&gt;Save&lt;/strong&gt;) und die Änderungen übernehmen (&lt;strong&gt;Apply&lt;/strong&gt;).&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2364&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_160.png&#34; alt=&#34;DNS Resolver&#34; width=&#34;1065&#34; height=&#34;576&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_160.png 1065w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_160-300x162.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_160-768x415.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_160-1024x554.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_160-499x270.png 499w&#34; sizes=&#34;(max-width: 1065px) 100vw, 1065px&#34; /&gt; 
&lt;p&gt;Damit später die Rechner im Netzwerk auch den DNS-Server der Firewall verwenden, brauchen wir eine Regel, welche alle anderen DNS-Anfragen an die Firewall weiterleitet. Dazu erstellen wir eine neue Regel unter &lt;strong&gt;Firewall → NAT&lt;/strong&gt; im Reiter &lt;strong&gt;Port Forward&lt;/strong&gt; mit einem Klick auf einen der beiden &lt;strong&gt;Add&lt;/strong&gt; Buttons. Dabei geben wir folgendes ein:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Interface: LAN&lt;/li&gt;
&lt;li&gt;Protocol: TCP/UDP&lt;/li&gt;
&lt;li&gt;Destination: Any&lt;/li&gt;
&lt;li&gt;Destination Port Range: DNS (53)&lt;/li&gt;
&lt;li&gt;Redirect Traget IP: 127.0.0.1&lt;/li&gt;
&lt;li&gt;Redirect Target Port: DNS (53)&lt;/li&gt;
&lt;li&gt;Description: Kann frei gewählt werden&lt;/li&gt;
&lt;/ol&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2366&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_161.png&#34; alt=&#34;NAT DNS Redirect&#34; width=&#34;1165&#34; height=&#34;863&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_161.png 1165w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_161-300x222.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_161-768x569.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_161-1024x759.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_161-364x270.png 364w&#34; sizes=&#34;(max-width: 1165px) 100vw, 1165px&#34; /&gt; 
&lt;p&gt;Nun müssen wir sicher stellen, dass unsere eben erstellte Firewall-Regel an der richtigen Stelle ist. Sie muss &lt;strong&gt;über&lt;/strong&gt; der standardmäßigen „&lt;em&gt;Default allow LAN to any rule&lt;/em&gt;“ sein! Dazu öffnen wir die Firewall Regeln unter &lt;strong&gt;Firewall → Rules&lt;/strong&gt; und verschieben die Regeln nach oben. Danach mit &lt;strong&gt;Save&lt;/strong&gt; speichern und mit &lt;strong&gt;Apply&lt;/strong&gt; die Änderungen übernehmen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2367&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_163.png&#34; alt=&#34;LAN Rules&#34; width=&#34;1163&#34; height=&#34;438&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_163.png 1163w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_163-300x113.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_163-768x289.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_163-1024x386.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_163-604x227.png 604w&#34; sizes=&#34;(max-width: 1163px) 100vw, 1163px&#34; /&gt; 
&lt;h4 id=&#34;host-overrides-für-bing-und-youtube&#34;&gt;Host Overrides für Bing und Youtube&lt;/h4&gt;
&lt;p&gt;Als nächstes erstellen wir einige DNS-Einträge, die dafür sorgen, dass sowohl für Google und Bing deren Safe-Search verwendet wird. Dazu öffnen wir erneut den DNS-Resolver unter &lt;strong&gt;Services → DNS-Resolve&lt;/strong&gt;r und fügen unten im Abschnitt „&lt;em&gt;Host Overrides&lt;/em&gt;“ mit &lt;strong&gt;Add&lt;/strong&gt; folgende Einträge hinzu.&lt;/p&gt;
&lt;p&gt;Bing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host: www&lt;/li&gt;
&lt;li&gt;Domain: bing.com&lt;/li&gt;
&lt;li&gt;IP Address: 204.79.197.220&lt;/li&gt;
&lt;li&gt;Description: Bing&lt;/li&gt;
&lt;li&gt;Dann mit &lt;strong&gt;Save&lt;/strong&gt; speichern&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dann noch der Eintrag für Youtube:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host: www&lt;/li&gt;
&lt;li&gt;Domain: youtube.com&lt;/li&gt;
&lt;li&gt;IP Address: 216.239.38.120&lt;/li&gt;
&lt;li&gt;Description: Youtube&lt;/li&gt;
&lt;li&gt;Wieder mit &lt;strong&gt;Save&lt;/strong&gt; speichern&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2370&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_164.png&#34; alt=&#34;Host Override&#34; width=&#34;684&#34; height=&#34;453&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_164.png 684w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_164-300x199.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_164-408x270.png 408w&#34; sizes=&#34;(max-width: 684px) 100vw, 684px&#34; /&gt; 
&lt;p&gt;Nun die Änderungen wieder mit &lt;strong&gt;Apply&lt;/strong&gt; übernehmen.&lt;/p&gt;
&lt;h4 id=&#34;host-overrides-für-google&#34;&gt;Host Overrides für Google&lt;/h4&gt;
&lt;p&gt;Google verwendet sehr viele verschiedene Domains und es würde ziemlich lang dauern, diese von Hand einzugeben. Deshalb wählen wir für Google einen anderen Weg. Zuerst müssen wir uns per SSH in pfSense anmelden (oder einen Bildschirm + Tastatur anschließen, falls der pfSense auf einem Computer mit Grafikkarte installiert ist). Vorher muss SSH noch im Webinterface und &lt;strong&gt;System → Advanced&lt;/strong&gt; im Abschnitt &lt;em&gt;&lt;strong&gt;Secure Shell&lt;/strong&gt;&lt;/em&gt; aktiviert werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2372&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_165.png&#34; alt=&#34;pfSense SSH&#34; width=&#34;923&#34; height=&#34;236&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_165.png 923w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_165-300x77.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_165-768x196.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_165-604x154.png 604w&#34; sizes=&#34;(max-width: 923px) 100vw, 923px&#34; /&gt; 
&lt;p&gt;Nun können wir uns mit folgendem Befehl per SSH anmelden (IP Adresse anpassen!):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ssh admin@192.168.0.1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im folgenden Menü wählen wir „8“ (Shell).&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2373&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_166.png&#34; alt=&#34;pfSense Shell&#34; width=&#34;649&#34; height=&#34;299&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_166.png 649w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_166-300x138.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_166-586x270.png 586w&#34; sizes=&#34;(max-width: 649px) 100vw, 649px&#34; /&gt; 
&lt;p&gt;Nun legen wir eine Datei an, in die wir später unsere DNS Einträge für Google eintragen. Das können wir mit folgendem Befehl machen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ vi /var/unbound/google.conf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Um den Editor wieder zu verlassen, müssen wir &lt;code&gt;:wq&lt;/code&gt; eingeben (der Doppelpunkt ist wichtig!). Mehr brauchen wir nicht auf der Kommandozeile machen.&lt;/p&gt;
&lt;p&gt;Wir können nun die eben angelegte Datei über &lt;strong&gt;Diagnostics → Edit File&lt;/strong&gt; bearbeiten. Dazu geben wir den Pfad &lt;code&gt;/var/unbound/google.conf&lt;/code&gt; ein und drücken dann auf &lt;strong&gt;Load&lt;/strong&gt;.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2374&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_167.png&#34; alt=&#34;Edit File&#34; width=&#34;619&#34; height=&#34;379&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_167.png 619w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_167-300x184.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_167-441x270.png 441w&#34; sizes=&#34;(max-width: 619px) 100vw, 619px&#34; /&gt; 
&lt;p&gt;Nun kopieren wir folgenden Inhalt in die Datei:&lt;/p&gt;
&lt;pre class=&#34;height-set:true height:250 lang:default decode:true&#34;&gt;local-data: &#34;www.google.ad A 216.239.38.120&#34;
local-data: &#34;www.google.ae A 216.239.38.120&#34;
local-data: &#34;www.google.com A 216.239.38.120&#34;
local-data: &#34;www.google.com.af A 216.239.38.120&#34;
local-data: &#34;www.google.com.ag A 216.239.38.120&#34;
local-data: &#34;www.google.com.ai A 216.239.38.120&#34;
local-data: &#34;www.google.al A 216.239.38.120&#34;
local-data: &#34;www.google.am A 216.239.38.120&#34;
local-data: &#34;www.google.co.ao A 216.239.38.120&#34;
local-data: &#34;www.google.com.ar A 216.239.38.120&#34;
local-data: &#34;www.google.as A 216.239.38.120&#34;
local-data: &#34;www.google.at A 216.239.38.120&#34;
local-data: &#34;www.google.com.au A 216.239.38.120&#34;
local-data: &#34;www.google.az A 216.239.38.120&#34;
local-data: &#34;www.google.ba A 216.239.38.120&#34;
local-data: &#34;www.google.com.bd A 216.239.38.120&#34;
local-data: &#34;www.google.be A 216.239.38.120&#34;
local-data: &#34;www.google.bf A 216.239.38.120&#34;
local-data: &#34;www.google.bg A 216.239.38.120&#34;
local-data: &#34;www.google.com.bh A 216.239.38.120&#34;
local-data: &#34;www.google.bi A 216.239.38.120&#34;
local-data: &#34;www.google.bj A 216.239.38.120&#34;
local-data: &#34;www.google.com.bn A 216.239.38.120&#34;
local-data: &#34;www.google.com.bo A 216.239.38.120&#34;
local-data: &#34;www.google.com.br A 216.239.38.120&#34;
local-data: &#34;www.google.bs A 216.239.38.120&#34;
local-data: &#34;www.google.bt A 216.239.38.120&#34;
local-data: &#34;www.google.co.bw A 216.239.38.120&#34;
local-data: &#34;www.google.by A 216.239.38.120&#34;
local-data: &#34;www.google.com.bz A 216.239.38.120&#34;
local-data: &#34;www.google.ca A 216.239.38.120&#34;
local-data: &#34;www.google.cd A 216.239.38.120&#34;
local-data: &#34;www.google.cf A 216.239.38.120&#34;
local-data: &#34;www.google.cg A 216.239.38.120&#34;
local-data: &#34;www.google.ch A 216.239.38.120&#34;
local-data: &#34;www.google.ci A 216.239.38.120&#34;
local-data: &#34;www.google.co.ck A 216.239.38.120&#34;
local-data: &#34;www.google.cl A 216.239.38.120&#34;
local-data: &#34;www.google.cm A 216.239.38.120&#34;
local-data: &#34;www.google.cn A 216.239.38.120&#34;
local-data: &#34;www.google.com.co A 216.239.38.120&#34;
local-data: &#34;www.google.co.cr A 216.239.38.120&#34;
local-data: &#34;www.google.com.cu A 216.239.38.120&#34;
local-data: &#34;www.google.cv A 216.239.38.120&#34;
local-data: &#34;www.google.com.cy A 216.239.38.120&#34;
local-data: &#34;www.google.cz A 216.239.38.120&#34;
local-data: &#34;www.google.de A 216.239.38.120&#34;
local-data: &#34;www.google.dj A 216.239.38.120&#34;
local-data: &#34;www.google.dk A 216.239.38.120&#34;
local-data: &#34;www.google.dm A 216.239.38.120&#34;
local-data: &#34;www.google.com.do A 216.239.38.120&#34;
local-data: &#34;www.google.dz A 216.239.38.120&#34;
local-data: &#34;www.google.com.ec A 216.239.38.120&#34;
local-data: &#34;www.google.ee A 216.239.38.120&#34;
local-data: &#34;www.google.com.eg A 216.239.38.120&#34;
local-data: &#34;www.google.com.et A 216.239.38.120&#34;
local-data: &#34;www.google.fi A 216.239.38.120&#34;
local-data: &#34;www.google.com.fj A 216.239.38.120&#34;
local-data: &#34;www.google.fm A 216.239.38.120&#34;
local-data: &#34;www.google.fr A 216.239.38.120&#34;
local-data: &#34;www.google.ga A 216.239.38.120&#34;
local-data: &#34;www.google.ge A 216.239.38.120&#34;
local-data: &#34;www.google.gg A 216.239.38.120&#34;
local-data: &#34;www.google.com.gh A 216.239.38.120&#34;
local-data: &#34;www.google.com.gi A 216.239.38.120&#34;
local-data: &#34;www.google.gl A 216.239.38.120&#34;
local-data: &#34;www.google.gm A 216.239.38.120&#34;
local-data: &#34;www.google.gp A 216.239.38.120&#34;
local-data: &#34;www.google.gr A 216.239.38.120&#34;
local-data: &#34;www.google.com.gt A 216.239.38.120&#34;
local-data: &#34;www.google.gy A 216.239.38.120&#34;
local-data: &#34;www.google.com.hk A 216.239.38.120&#34;
local-data: &#34;www.google.hn A 216.239.38.120&#34;
local-data: &#34;www.google.hr A 216.239.38.120&#34;
local-data: &#34;www.google.ht A 216.239.38.120&#34;
local-data: &#34;www.google.hu A 216.239.38.120&#34;
local-data: &#34;www.google.co.id A 216.239.38.120&#34;
local-data: &#34;www.google.ie A 216.239.38.120&#34;
local-data: &#34;www.google.co.il A 216.239.38.120&#34;
local-data: &#34;www.google.im A 216.239.38.120&#34;
local-data: &#34;www.google.co.in A 216.239.38.120&#34;
local-data: &#34;www.google.iq A 216.239.38.120&#34;
local-data: &#34;www.google.is A 216.239.38.120&#34;
local-data: &#34;www.google.it A 216.239.38.120&#34;
local-data: &#34;www.google.je A 216.239.38.120&#34;
local-data: &#34;www.google.com.jm A 216.239.38.120&#34;
local-data: &#34;www.google.jo A 216.239.38.120&#34;
local-data: &#34;www.google.co.jp A 216.239.38.120&#34;
local-data: &#34;www.google.co.ke A 216.239.38.120&#34;
local-data: &#34;www.google.com.kh A 216.239.38.120&#34;
local-data: &#34;www.google.ki A 216.239.38.120&#34;
local-data: &#34;www.google.kg A 216.239.38.120&#34;
local-data: &#34;www.google.co.kr A 216.239.38.120&#34;
local-data: &#34;www.google.com.kw A 216.239.38.120&#34;
local-data: &#34;www.google.kz A 216.239.38.120&#34;
local-data: &#34;www.google.la A 216.239.38.120&#34;
local-data: &#34;www.google.com.lb A 216.239.38.120&#34;
local-data: &#34;www.google.li A 216.239.38.120&#34;
local-data: &#34;www.google.lk A 216.239.38.120&#34;
local-data: &#34;www.google.co.ls A 216.239.38.120&#34;
local-data: &#34;www.google.lt A 216.239.38.120&#34;
local-data: &#34;www.google.lu A 216.239.38.120&#34;
local-data: &#34;www.google.lv A 216.239.38.120&#34;
local-data: &#34;www.google.com.ly A 216.239.38.120&#34;
local-data: &#34;www.google.co.ma A 216.239.38.120&#34;
local-data: &#34;www.google.md A 216.239.38.120&#34;
local-data: &#34;www.google.me A 216.239.38.120&#34;
local-data: &#34;www.google.mg A 216.239.38.120&#34;
local-data: &#34;www.google.mk A 216.239.38.120&#34;
local-data: &#34;www.google.ml A 216.239.38.120&#34;
local-data: &#34;www.google.com.mm A 216.239.38.120&#34;
local-data: &#34;www.google.mn A 216.239.38.120&#34;
local-data: &#34;www.google.ms A 216.239.38.120&#34;
local-data: &#34;www.google.com.mt A 216.239.38.120&#34;
local-data: &#34;www.google.mu A 216.239.38.120&#34;
local-data: &#34;www.google.mv A 216.239.38.120&#34;
local-data: &#34;www.google.mw A 216.239.38.120&#34;
local-data: &#34;www.google.com.mx A 216.239.38.120&#34;
local-data: &#34;www.google.com.my A 216.239.38.120&#34;
local-data: &#34;www.google.co.mz A 216.239.38.120&#34;
local-data: &#34;www.google.com.na A 216.239.38.120&#34;
local-data: &#34;www.google.com.nf A 216.239.38.120&#34;
local-data: &#34;www.google.com.ng A 216.239.38.120&#34;
local-data: &#34;www.google.com.ni A 216.239.38.120&#34;
local-data: &#34;www.google.ne A 216.239.38.120&#34;
local-data: &#34;www.google.nl A 216.239.38.120&#34;
local-data: &#34;www.google.no A 216.239.38.120&#34;
local-data: &#34;www.google.com.np A 216.239.38.120&#34;
local-data: &#34;www.google.nr A 216.239.38.120&#34;
local-data: &#34;www.google.nu A 216.239.38.120&#34;
local-data: &#34;www.google.co.nz A 216.239.38.120&#34;
local-data: &#34;www.google.com.om A 216.239.38.120&#34;
local-data: &#34;www.google.com.pa A 216.239.38.120&#34;
local-data: &#34;www.google.com.pe A 216.239.38.120&#34;
local-data: &#34;www.google.com.pg A 216.239.38.120&#34;
local-data: &#34;www.google.com.ph A 216.239.38.120&#34;
local-data: &#34;www.google.com.pk A 216.239.38.120&#34;
local-data: &#34;www.google.pl A 216.239.38.120&#34;
local-data: &#34;www.google.pn A 216.239.38.120&#34;
local-data: &#34;www.google.com.pr A 216.239.38.120&#34;
local-data: &#34;www.google.ps A 216.239.38.120&#34;
local-data: &#34;www.google.pt A 216.239.38.120&#34;
local-data: &#34;www.google.com.py A 216.239.38.120&#34;
local-data: &#34;www.google.com.qa A 216.239.38.120&#34;
local-data: &#34;www.google.ro A 216.239.38.120&#34;
local-data: &#34;www.google.ru A 216.239.38.120&#34;
local-data: &#34;www.google.rw A 216.239.38.120&#34;
local-data: &#34;www.google.com.sa A 216.239.38.120&#34;
local-data: &#34;www.google.com.sb A 216.239.38.120&#34;
local-data: &#34;www.google.sc A 216.239.38.120&#34;
local-data: &#34;www.google.se A 216.239.38.120&#34;
local-data: &#34;www.google.com.sg A 216.239.38.120&#34;
local-data: &#34;www.google.sh A 216.239.38.120&#34;
local-data: &#34;www.google.si A 216.239.38.120&#34;
local-data: &#34;www.google.sk A 216.239.38.120&#34;
local-data: &#34;www.google.com.sl A 216.239.38.120&#34;
local-data: &#34;www.google.sn A 216.239.38.120&#34;
local-data: &#34;www.google.so A 216.239.38.120&#34;
local-data: &#34;www.google.sm A 216.239.38.120&#34;
local-data: &#34;www.google.sr A 216.239.38.120&#34;
local-data: &#34;www.google.st A 216.239.38.120&#34;
local-data: &#34;www.google.com.sv A 216.239.38.120&#34;
local-data: &#34;www.google.td A 216.239.38.120&#34;
local-data: &#34;www.google.tg A 216.239.38.120&#34;
local-data: &#34;www.google.co.th A 216.239.38.120&#34;
local-data: &#34;www.google.com.tj A 216.239.38.120&#34;
local-data: &#34;www.google.tk A 216.239.38.120&#34;
local-data: &#34;www.google.tl A 216.239.38.120&#34;
local-data: &#34;www.google.tm A 216.239.38.120&#34;
local-data: &#34;www.google.tn A 216.239.38.120&#34;
local-data: &#34;www.google.to A 216.239.38.120&#34;
local-data: &#34;www.google.com.tr A 216.239.38.120&#34;
local-data: &#34;www.google.tt A 216.239.38.120&#34;
local-data: &#34;www.google.com.tw A 216.239.38.120&#34;
local-data: &#34;www.google.co.tz A 216.239.38.120&#34;
local-data: &#34;www.google.com.ua A 216.239.38.120&#34;
local-data: &#34;www.google.co.ug A 216.239.38.120&#34;
local-data: &#34;www.google.co.uk A 216.239.38.120&#34;
local-data: &#34;www.google.com.uy A 216.239.38.120&#34;
local-data: &#34;www.google.co.uz A 216.239.38.120&#34;
local-data: &#34;www.google.com.vc A 216.239.38.120&#34;
local-data: &#34;www.google.co.ve A 216.239.38.120&#34;
local-data: &#34;www.google.vg A 216.239.38.120&#34;
local-data: &#34;www.google.co.vi A 216.239.38.120&#34;
local-data: &#34;www.google.com.vn A 216.239.38.120&#34;
local-data: &#34;www.google.vu A 216.239.38.120&#34;
local-data: &#34;www.google.ws A 216.239.38.120&#34;
local-data: &#34;www.google.rs A 216.239.38.120&#34;
local-data: &#34;www.google.co.za A 216.239.38.120&#34;
local-data: &#34;www.google.co.zm A 216.239.38.120&#34;
local-data: &#34;www.google.co.zw A 216.239.38.120&#34;
local-data: &#34;www.google.cat A 216.239.38.120&#34;
```

Mit einem Klick auf **Save** speichern wir die Datei.

Der letzte Schritt ist, dass wir unserem DNS Server noch mitteilen müssen, wo er diese DNS-Einträge finden kann. Dazu öffnen wir wieder die Einstellungen des DNS Servers unter **Services → DNS Resolver** und klicken auf **Display Custom Options**. Dort fügen wir folgende Zeilen ein, speichern mit **Save** und übernehmen die Änderungen mit **Apply**.

```
server:
include: /var/unbound/google.conf
```

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2377&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_168.png&#34; alt=&#34;DNS Custom Options&#34; width=&#34;942&#34; height=&#34;274&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_168.png 942w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_168-300x87.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_168-768x223.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_168-604x176.png 604w&#34; sizes=&#34;(max-width: 942px) 100vw, 942px&#34; /&gt; 

Unsere Suchmaschinen sind konfiguriert. Im nächsten Schritt richten wir den Inhaltsfilter für HTTP und den URL-Filter für HTTPS ein.

### Squid Proxy und SquidGuard

#### Installation

Damit pfSense die URLs filtern kann, brauchen wir einen Proxy-Server, durch den alle Anfragen aus unserem Netzwerk geleitet werden. Dazu verwenden wir Squid. SquidGuard ist, wie der Name schon vermuten lässt, der eigentliche Filter. Unter **System → Package Manager** im Reiter **_Available Packages_** installieren wir Squid und SquidGuard.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2381&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_169.png&#34; alt=&#34;Package Manager&#34; width=&#34;1164&#34; height=&#34;549&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_169.png 1164w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_169-300x141.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_169-768x362.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_169-1024x483.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_169-572x270.png 572w&#34; sizes=&#34;(max-width: 1164px) 100vw, 1164px&#34; /&gt; 

#### Transparenter Proxy für HTTP einrichten

Unter **Services → Squid Proxy Server** richten wir nun den transparenten Proxy für HTTP ein. Ein transparenter Proxy hat den Vorteil, dass wir keine Konfiguration an den einzelnen Rechner in unserem Netzwerk vornehmen müssen. Im Reiter _**General**_ aktivieren wir folgende Punkte:

  1. Enable Squid Proxy ✔
  2. Proxy Interface(s): LAN
  3. Allow users on Interface ✔
  4. Transparent HTTP Proxy ✔
  5. Transparent Proxy Interface(s): LAN

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2382&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_170.png&#34; alt=&#34;Squid Proxy General&#34; width=&#34;1022&#34; height=&#34;910&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_170.png 1022w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_170-300x267.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_170-768x684.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_170-303x270.png 303w&#34; sizes=&#34;(max-width: 1022px) 100vw, 1022px&#34; /&gt; 

Nach dem Speichern mit **Save** legen wir im Reiter **_Local Cache_** fest, wie viel Festplattenplatz für den Cache verwendet werden soll (hier 500MB):

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2383&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_171.png&#34; alt=&#34;Squid Proxy Cache&#34; width=&#34;1154&#34; height=&#34;581&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_171.png 1154w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_171-300x151.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_171-768x387.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_171-1024x516.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_171-536x270.png 536w&#34; sizes=&#34;(max-width: 1154px) 100vw, 1154px&#34; /&gt; 

Auch hier müssen die Einstellungen wieder mit **Save** gespeichert werden. Der Transparente Proxy für HTTP-Verbindungen ist jetzt fertig eingerichtet.

#### SquidGuard konfigurieren

SquidGuard ist die Komponente, die sich um die Filterung der Inhalte kümmert. Jede Anfrage wir von SquidGuard untersucht und dann entschieden, ob die Anfrage bzw. die Website geblockt werden soll oder nicht. Dazu verwenden wir eine Blacklist, die wir später konfigurieren. Davor legen wir ein paar allgemeine Einstellungen unter **Services → SquidGuard Proxy Filter** fest.

  1. Enable ✔ (nicht im Screenshot zu sehen)
  2. Enable Log  ✔
  3. Enable Log Rotation ✔
  4. Enable Blacklist ✔
  5. Blacklist URL: http://www.shallalist.de/Downloads/shallalist.tar.gz

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2385&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_172.png&#34; alt=&#34;Squid Proxy Filter General&#34; width=&#34;1157&#34; height=&#34;619&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_172.png 1157w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_172-300x161.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_172-768x411.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_172-1024x548.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_172-505x270.png 505w&#34; sizes=&#34;(max-width: 1157px) 100vw, 1157px&#34; /&gt; 

Unten speichern wir wieder alles mit **Save**.

&gt; Beim SquidGuard müssen wir beachten, dass Änderungen in der Konfiguration erst dann aktiv werden, wenn wir **Save** und **Apply** (oben im Reiter _General Settings_) geklickt haben!

#### Black- und Whitelisten einrichten

Nachdem wir nun mit den grundlegenden Einstellungen fertig sind, fehlen noch die Black- und Whitelisten. Die URL für die Blackliste haben wir ja bereits angegeben. Nun müssen wir sie noch herunterladen im Reiter &amp;#8222;_Blacklist_&amp;#8222;.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2386&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_173.png&#34; alt=&#34;Blacklist&#34; width=&#34;1163&#34; height=&#34;439&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_173.png 1163w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_173-300x113.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_173-768x290.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_173-1024x387.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_173-604x228.png 604w&#34; sizes=&#34;(max-width: 1163px) 100vw, 1163px&#34; /&gt; 

Damit unser Filter auch funktioniert, legen wir nun einige Zielkategorien fest. Dazu öffnen wir den Reiter _&amp;#8222;Target Kategories&amp;#8220;_ und klicken auf **Add**. Wir erstellen eine Whitelist, in der alle Domainnamen kommen, die wir explizit erlauben. Das wären z.B. alle Google-Domain, da wir ja alle weiteren Suchmaschinen blocken werden, um dem Benutzer keine Möglichkeit zu geben, die weiter oben eingerichtet Safe-Search zu umgehen.

Folgendes geben wir ein:

  1. Name: Whitelist
  2. Domain List: ```
google.ac google.ad google.ae google.al google.am google.as google.at google.az google.ba google.be google.bf google.bg google.bi google.bj google.bs google.bt google.by google.ca google.cat google.cd google.cf google.cg google.ch google.ci google.cl google.cm google.cn google.co.ao google.co.bw google.co.ck google.co.cr google.co.hu google.co.id google.co.il google.co.in google.co.je google.co.jp google.co.ke google.co.kr google.co.ls google.com google.co.ma google.com.af google.com.ag google.com.ai google.com.ar google.com.au google.com.bd google.com.bh google.com.bn google.com.bo google.com.br google.com.bz google.com.co google.com.cu google.com.cy google.com.do google.com.ec google.com.eg google.com.et google.com.fj google.com.gh google.com.gi google.com.gr google.com.gt google.com.hk google.com.jm google.com.kh google.com.kw google.com.lb google.com.ly google.com.mm google.com.mt google.com.mx google.com.my google.com.na google.com.nf google.com.ng google.com.ni google.com.np google.com.om google.com.pa google.com.pe google.com.pg google.com.ph google.com.pk google.com.pr google.com.py google.com.qa google.com.sa google.com.sb google.com.sg google.com.sl google.com.sv google.com.tj google.com.tr google.com.tw google.com.ua google.com.uy google.com.vc google.com.vn google.co.mz google.co.nz google.co.th google.co.tz google.co.ug google.co.uk google.co.uz google.co.ve google.co.vi google.co.za google.co.zm google.co.zw google.cv google.cz google.de google-directory.co.uk google.dj google.dk google.dm google.dz google.ee google.es google.fi google.fm google.fr google.ga google.ge google.gg google.gl google.gm google.gp google.gr google.gy google.hn google.hr google.ht google.hu google.ie google.im google.iq google.is google.it google.je google.jo google.kg google.ki google.kz google.la google.li google.lk google.lt google.lu google.lv google.md google.me google.mg google.mk google.ml google.mn google.ms google.mu google.mv google.mw google.ne google.nl google.no google.nr google.nu google.off.ai googlepirate.com google.pl google.pn google.ps google.pt google.ro google.rs google.ru google.rw google.sc google.se google.sh google.si google.sk google.sm google.sn google.so google.sr google.st google.td google.tg google.tk google.tl google.tm google.tn google.to google.tt google.uz google.vg google.vu google.ws bing.com
```

  3. Description: Whitelist
  4. Mit **Save** speichern.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2387&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_174.png&#34; alt=&#34;Whitelist&#34; width=&#34;1156&#34; height=&#34;607&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_174.png 1156w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_174-300x158.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_174-768x403.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_174-1024x538.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_174-514x270.png 514w&#34; sizes=&#34;(max-width: 1156px) 100vw, 1156px&#34; /&gt; 

Der vorerst letzte Schritt ist die Einrichtung einiger Regeln. Das machen wir im Reiter _Common ACL_. Dann bei &amp;#8222;Target Rules List&amp;#8220; auf das &amp;#8222;+&amp;#8220; &amp;#8211; Zeichen klicken, um eine Liste mit den verschiedenen Regelsätzen zu öffnen. Hier gibt es nun verschiedene Kategorien und auch unsere Whitelist taucht hier auf. Folgende Einstellungen nehmen wir nun vor:

  * Whitelist: access **whitelist**
  * Default access [all]: access **allow**

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2389&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_175.png&#34; alt=&#34;Common ACL&#34; width=&#34;1158&#34; height=&#34;786&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_175.png 1158w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_175-300x204.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_175-768x521.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_175-1024x695.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_175-398x270.png 398w&#34; sizes=&#34;(max-width: 1158px) 100vw, 1158px&#34; /&gt; 

Die anderen Kategorien können je nach Bedarf eingestellt werden. Hier einige Beispiele:

  * Werbung blocken: [blk\_BL\_adv] access deny
  * Pornographie blocken: [blk\_BL\_porn] access deny
  * usw.

Damit ein Benutzer unseren URL-Filter nicht durch die Eingabe der IP-Adresse einer Seite umgehen kann, aktivieren wir noch **Do not allow IP-Addresses in URL**. Falls diese Einstellung Probleme macht, sollte man sie wieder deaktivieren.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2390&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_176.png&#34; alt=&#34;Do not allow IP Addresses&#34; width=&#34;1096&#34; height=&#34;81&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_176.png 1096w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_176-300x22.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_176-768x57.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_176-1024x76.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_176-604x45.png 604w&#34; sizes=&#34;(max-width: 1096px) 100vw, 1096px&#34; /&gt; 

Dann speichern wir mit **Save**, wechseln in den Reiter _General Settings_ und müssen dort noch einmal auf **Apply** drücken, damit unsere Änderungen auch angewendet werden.

#### Bisheriges Setup testen

Für HTTP-Verbindungen ist alles eingerichtet und wir können das Setup testen. Auf einem Rechner im LAN muss nichts weiter eingerichtet werden. Der Filter sollte bereits funktionieren. Falls wir eine Seite aufrufen, die in eine unserer Blacklisten auftaucht erscheint diese Seite:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2391&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_177.png&#34; alt=&#34;Blocked Sites&#34; width=&#34;536&#34; height=&#34;201&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_177.png 536w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_177-300x113.png 300w&#34; sizes=&#34;(max-width: 536px) 100vw, 536px&#34; /&gt; 

#### Transparenter Proxy für HTTPS-Verbindungen

Bisher ist der transparente Proxy nur für HTTP, d.h. unverschlüsselte Anfragen aktiv.  Zu Beginn dieses Artikels habe ich bereits auf die Schwierigkeiten beim Filtern von verschlüsselten, also HTTPS-Verbindungen hingewiesen. In unserem Fall werden wir einen transparenten Proxy für HTTPS aktivieren, der es uns erlaubt einen URL-Filter für alle Anfragen auf Port 443 (HTTPS) zu aktivieren, allerdings mit dem Nachteil, dass wir nicht den Inhalt analysieren können (und auch nicht wollen!) sowie keine schöne Fehlerseite möglich ist. Stattdessen wird uns der Browser eine Zertifikatsfehlermeldung anzeigen. Doch dazu gleich mehr.

Wir aktivieren zuerst den transparenten Proxy auch für HTTPS. Dazu öffnen wir die Proxyeinstellungen unter **Services → Squid Proxy Server** und wählen im Abschnitt _SSL Man in the Middle Filtering_ folgende Einstellungen:

  * HTTPS / SSL Interception ✔
  * SSL/MITM Method: Splice All
  * SSL Intercept Interfaces: LAN
  * CA: Ein Certificat Authority Zertifkat auswählen. Eventuell müssen wir erst noch eines erstellen. (Unter **System → Cert. Manager**).
  * Alles mit **Save** speichern.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2392&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_178.png&#34; alt=&#34;SSL MITM&#34; width=&#34;1150&#34; height=&#34;621&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_178.png 1150w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_178-300x162.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_178-768x415.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_178-1024x553.png 1024w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_178-500x270.png 500w&#34; sizes=&#34;(max-width: 1150px) 100vw, 1150px&#34; /&gt; 

Nun ist wirklich alles eingerichtet und wir können auch HTTPS-Verbindungen testen. Wie bereits geschrieben, bekommen wir diesmal nicht so eine aussagekräftige Fehlermeldung wie für HTTP-Verbindungen, sondern eine Warnung des Browsers zu sehen:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2393&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_179.png&#34; alt=&#34;Cert Error&#34; width=&#34;897&#34; height=&#34;373&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_179.png 897w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_179-300x125.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_179-768x319.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_179-604x251.png 604w&#34; sizes=&#34;(max-width: 897px) 100vw, 897px&#34; /&gt; 

Auch wenn diese Fehlermeldung nicht sehr aussagekräftig ist, haben wir unser eigentliches Ziel erreicht, nämlich das unerwünschte Seiten geblockt werden.

### Fazit

Wir haben nun ein System eingerichtet, welches allen Netzwerkverkehr in unserem LAN (oder WLAN) filtert. Dabei werden Seiten, die über die Blacklisten festgelegt wurden, geblockt.

Über das Für und Wider von solchen Sperren gibt es unterschiedliche Positionen. Es ist auf jeden Fall ein Problem, welches sich technisch nicht zu 100% lösen lässt und auch nicht sollte, da es vielmehr darum geht, (junge) Menschen dahingehend zu erziehen, dass sie verantwortungsvoll mit dem Medium &amp;#8222;Internet&amp;#8220; umgehen können. Dieses Ziel allein durch solche Filtermaßnahmen zu erreichen, ist sicher nicht der richtige Weg. Auch das man Kinder und Jugendliche an Zensur und Filter &amp;#8222;gewöhnt&amp;#8220; wird von einigen kritisch gesehen.

Auf der anderen Seite ist es gerade für Schulen, Bibliotheken oder auch zu Hause eine Hilfe, wenn man die Fülle an nicht altersgemäßen Inhalten etwas einschränken kann. Manche Länder schreiben so einen Filter auch gesetzlich vor!

(Quelle: &lt;https://forum.pfsense.org/index.php?topic=112335.0&gt;)

 [1]: https://pfsense.org
 [2]: https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/
 [3]: https://www.pfsense.org/download/
 [4]: https://doc.pfsense.org/index.php/Installing_pfSense
 [5]: https://de.wikipedia.org/wiki/Server_Name_Indication</description>
    </item>
    
    <item>
      <title>MuseScore – App des Monats</title>
      <link>https://zefanjas.de/musescore-app-des-monats/</link>
      <pubDate>Mon, 15 Jan 2018 13:41:27 +0000</pubDate>
      
      <guid>https://zefanjas.de/musescore-app-des-monats/</guid>
      <description>&lt;p&gt;Weltweit wird Open Source Software immer mehr an Schulen verwendet. Ich meine dabei nicht nur den klassischen Informatikunterricht (wenn es ihn denn gibt…), sondern auch außerhalb davon. Es gibt einige sehr gute Open Source Apps, die sich z.B. im Mathe-, Physik- oder Musikunterricht einsetzen lassen. Trotz allem gibt es meiner Erfahrung nach immer noch große &lt;a href=&#34;https://zefanjas.de/schule-und-open-source/&#34;&gt;Vorbehalte gegenüber Open Source&lt;/a&gt; Programmen im Unterricht. Die Gründe dafür sind sehr vielfältig und oft kann ich sie nachvollziehen. Es gibt mittlerweile ein sehr großes Angebot an (Lern-)Software und nur wenige der Anwendungen sind Open Source. Doch es gibt sie. Deshalb möchte ich in den kommenden Monaten verschiedene Open Source Programme und Apps vorstellen, die sehr gut für den Unterricht geeignet sind. Den Anfang macht MuseScore.&lt;/p&gt;
&lt;h3 id=&#34;was-ist-musescore&#34;&gt;Was ist MuseScore?&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;MuseScore ist ein Notensatzprogramm mit einem WYSIWYG-Editor, das die Wiedergabe der eingegebenen Noten sowie den Import und Export in zahlreiche Dateiformate gestattet. Das Programm läuft unter Linux, Windows und macOS; für Windows gibt es eine portable Version, die ohne Installation etwa von einem USB-Massenspeicher gestartet werden kann. Die Benutzeroberfläche sowie die Eingabemöglichkeiten der Noten ähneln bekannten kostenpflichtigen Notensatzprogrammen wie Finale oder Sibelius. MuseScore ist jedoch Open Source und unter einer GNU General Public License lizenziert. (&lt;a href=&#34;https://de.wikipedia.org/wiki/MuseScore&#34;&gt;Wikipedia&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MuseScore ist ein Programm, dass ich jedem Musiklehrer oder Musiker ans Herz lege. Als wir &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-2/&#34;&gt;vor einigen Jahren in unserer Schule auf Open Source&lt;/a&gt; gewechselt sind, war dieses Programm für unsere Musiklehrkräfte ein echter Gewinn. Mit MuseScore kann man sehr schnell und einfach Noten setzen. Doch MuseScore kann weit mehr.&lt;/p&gt;
&lt;h3 id=&#34;features&#34;&gt;Features&lt;/h3&gt;
&lt;p&gt;Es ist kaum möglich alle Features von MuseScore aufzulisten, weil es wirklich sehr viel kann. Hier eine Auswahl:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;grafische Partitur-Eingabe und -Darstellung (WYSIWYG)&lt;/li&gt;
&lt;li&gt;beliebige Anzahl von Notenzeilen&lt;/li&gt;
&lt;li&gt;einfache und schnelle Noteneingabe mit Maus, Tastatur oder via Hardware-MIDI-Anschluss&lt;/li&gt;
&lt;li&gt;Sequencer und FluidSynth-Softwaresynthesizer integriert&lt;/li&gt;
&lt;li&gt;Abspielmöglichkeit der Partitur beinhaltet individuelle Einstellmöglichkeiten wie Geschwindigkeit und Lautstärke über ein virtuelles Mischpult&lt;/li&gt;
&lt;li&gt;Automatische Transposition, beispielsweise mit oder ohne Tonart-Wechsel&lt;/li&gt;
&lt;li&gt;Einfügen von Bildern in die Partitur&lt;/li&gt;
&lt;li&gt;Mehrzeiliger Liedtext&lt;/li&gt;
&lt;li&gt;verschiedene Möglichkeiten zum Datei-Import und -Export&lt;/li&gt;
&lt;li&gt;und noch vieles vieles mehr!&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;MuseScore kann auf der &lt;a href=&#34;https://musescore.org/de/download&#34;&gt;Website des Projekts heruntergeladen&lt;/a&gt; werden. Es ist für so ziemlich jedes Betriebssystem und Plattform verfügbar. Wenn man &lt;code&gt;snapd&lt;/code&gt; installiert hat (ab Ubuntu 16.04 standardmäßig mit dabei), kann man MuseScore mit folgendem Befehl installieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo snap install musescore
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Alternativ kann man es auch aus den Paketquellen oder einem PPA installieren. Die Installation mit &lt;code&gt;snap&lt;/code&gt; hat den Vorteil, dass man auch in älteren Ubuntu-Versionen immer die aktuelle Version bekommt ohne ein PPA einzurichten.&lt;/p&gt;
&lt;h3 id=&#34;anleitungen-und-links&#34;&gt;Anleitungen und Links&lt;/h3&gt;
&lt;p&gt;Zu MuseScore gibt es auch ein &lt;a href=&#34;https://musescore.org/de/handbuch&#34;&gt;Handbuch in mehreren Sprachen&lt;/a&gt;, u.a. auch in deutsch. Dort werden die wichtigsten Themen, angefangen von der ersten Partitur bis hin zu fortgeschrittenen Themen, wie Griffbrettdiagramme, behandelt. Wenn man sich mal eine kleine Weile mit dem Programm beschäftigt hat, ist man erstaunt, was es alles kann. Allein die Fülle an Instrumenten, die unterstützt werden, sowie die unendlichen Möglichkeiten der Gestaltung der Partitur, sind sehr beeindruckend.&lt;/p&gt;
&lt;p&gt;Ich habe versucht ein gutes Tutorial in deutsch zu finden, welches systematisch den Umgang mit Musescore beschreibt, aber ich bin leider nicht fündig geworden. Auf Youtube tummeln sich ein paar Videos in deutscher Sprache zur aktuellen Version, aber sie unterscheiden sich sehr vom Umfang und der Qualität der Aufnahme. Wer der englischen Sprache mächtig ist, wird sicher Gefallen an den offiziellen „MuseScore in Minutes“ finden. (&lt;strong&gt;Update&lt;/strong&gt;: für diese Videos gibt es auch einen deutschen Untertitel!). &lt;a href=&#34;https://www.youtube.com/watch?v=YZ4kRzkHroU&amp;amp;list=PLTYuWi2LmaPGb4SKXHm9JULQ-0CH8KpUk&#34;&gt;Diese mehrteilige Videoreihe&lt;/a&gt; beschreibt kurz und knapp die wichtigsten Funktionen, sodass man sich danach schon recht gut in MuseScore zurecht findet (bzw. die Schüler).&lt;/p&gt;
&lt;p&gt;Diese Programm wird sicher hauptsächlich im Musikunterricht und von Musiklehrkräften bzw. Musikern allgemein eingesetzt werden. Doch weitere Einsatzbereiche sind nicht ausgeschlossen, z.B.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Chorgruppen&lt;/li&gt;
&lt;li&gt;Band-AGs&lt;/li&gt;
&lt;li&gt;Instrumentenunterricht&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;MuseScore kann sowohl für die Vorbereitung des eigenen Unterrichts, als auch direkt im Unterricht verwendet werden. Es ist auch möglich vorhandene Partituren anzupassen. Auf der Website des Projekts kann man dazu viele Partituren herunterladen und weiter bearbeiten.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Open Source Apps und Programme verwendest du im Unterricht? Welche Open Source Software sollte unbedingt auf einem Schulcomputer installiert sein?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Kann man einen Computerraum für weniger als 1500€ einrichten? Ja!</title>
      <link>https://zefanjas.de/kann-man-einen-computerraum-fuer-weniger-als-1500e-einrichten-ja/</link>
      <pubDate>Thu, 11 Jan 2018 07:49:33 +0000</pubDate>
      
      <guid>https://zefanjas.de/kann-man-einen-computerraum-fuer-weniger-als-1500e-einrichten-ja/</guid>
      <description>&lt;h3 id=&#34;ausgangssituation&#34;&gt;Ausgangssituation&lt;/h3&gt;
&lt;p&gt;Einen &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-1/&#34;&gt;Computerraum einzurichten&lt;/a&gt;, kann schnell sehr teuer werden. Computer, Monitore, Tastaturen, Kabel, Switche, usw. müssen gekauft werden, um später einen zuverlässigen Computerraum zu haben, der gern genutzt wird. Gerade kleine Schulen und Vereine, welche nur über kleine Budgets verfügen, sind in dieser Hinsicht kaum oder nur schlecht ausgestattet. Auch in Entwicklungsländern und weniger wohlhabenden Teilen der Welt (es ist der größere Teil!) teilen sich statistisch gesehen oft mehrere hundert Schüler einen einzigen Computer – wenn überhaupt. Deshalb möchte ich heute eine Idee vorstellen, wie man einen kompletten Computerraum für verhältnismäßig wenig Geld einrichten kann.&lt;/p&gt;
&lt;h3 id=&#34;anforderungen-an-den-computerraum&#34;&gt;Anforderungen an den Computerraum&lt;/h3&gt;
&lt;p&gt;Damit ein Computerraum auch von allen genutzt wird, müssen die technischen Hürden sehr gering sein. Auf der anderen Seite, muss sich das System an sich einfach verwalten lassen, ohne das man dafür mehrere Stunden / Woche aufwenden muss.&lt;/p&gt;
&lt;p&gt;Aus meiner Sicht sollten folgende (minimale) Anforderungen erfüllt sein:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;einfach zu benutzen&lt;/li&gt;
&lt;li&gt;schnell einen Soll-Zustand herstellen können&lt;/li&gt;
&lt;li&gt;kurze Startzeiten&lt;/li&gt;
&lt;li&gt;verlässliche Infrastruktur&lt;/li&gt;
&lt;li&gt;keine Viren etc.&lt;/li&gt;
&lt;li&gt;wartungsarm&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;zutaten&#34;&gt;Zutaten&lt;/h3&gt;
&lt;h4 id=&#34;hardware&#34;&gt;Hardware&lt;/h4&gt;
&lt;p&gt;Damit wir das gesteckte Ziel von maximal 1500€ erreichen, müssen wir v.a. bei der Hardware „sparen“. Für die meisten Dinge, die Schüler heutzutage in einem Computerraum erledigen, brauchen sie i.d.R. nur einen Browser und evtl. ein Officepaket. Dafür braucht man keine aktuelle leistungsstarke Hardware. Ein Raspberry Pi oder gebrauchte Computer sind da völlig ausreichend.&lt;/p&gt;
&lt;p&gt;Wir brauchen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;einen Server: das kann ein 3-7 Jahre alter Rechner sein mit einer größeren Platte (ca. 15-20GB pro Rechner) – z.B. von &lt;a href=&#34;https://www.afbshop.de/&#34;&gt;AfB&lt;/a&gt;, ca. 150€&lt;/li&gt;
&lt;li&gt;Router (falls nicht schon vorhanden): ca. 20-50€&lt;/li&gt;
&lt;li&gt;Switch gebraucht (Gigabit): ca. 50€&lt;/li&gt;
&lt;li&gt;Raspberry Pi 3 (Starterkit): 50€&lt;/li&gt;
&lt;li&gt;Bildschirm (meist schon vorhanden), sonst ca. 30-50€&lt;/li&gt;
&lt;li&gt;Steckdosenleisten, Netzwerkkabel: ca. 100€&lt;/li&gt;
&lt;li&gt;Tastatur+Maus: 15-20€&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wenn wir nicht mehr als 1500€ ausgeben wollen, reicht unser Budget für 12 Raspberry Pis. Falls z.B. Bildschirme schon vorhanden sind / gespendet werden, können wir natürlich entsprechend mehr Rechner kaufen.&lt;/p&gt;
&lt;h4 id=&#34;software&#34;&gt;Software&lt;/h4&gt;
&lt;p&gt;Gerade für den Raspberry Pi gibt es verschiedene Projekte, die uns die Verwaltung der Rechner sehr leicht machen und auch sehr wartungsarm sind. Schon seit einiger Zeit gibt es das &lt;a href=&#34;http://pinet.org.uk/&#34;&gt;PiNet Projekt&lt;/a&gt;, welches speziell für Schulen entwickelt wurde. Es bietet eine zentrale Benutzer- und Speicherverwaltung, d.h. die Kids können sich an jedem Rechner anmelden und können von dort auf ihre Daten zugreifen.&lt;/p&gt;
&lt;p&gt;Letzte Woche hat die Raspberry Pi Foundation ein ganz ähnliches Projekt veröffentlicht: &lt;a href=&#34;https://www.raspberrypi.org/blog/piserver/&#34;&gt;PiServer&lt;/a&gt;. Es hat ebenfalls den Fokus auf Schulen, aber nicht nur. Auch hier lassen sich Benutzer und Speicher zentral verwalten. Die Raspberry Pis starten hier auch über das Netzwerk und benötigen keine SD-Karte.&lt;/p&gt;
&lt;p&gt;Alternativ kann man auch einen Raspberry Pi so einrichten, wie man es möchte und dieses Image dann auf die anderen Rechner verteilen. Ein zentraler Samba-Server dient zum Speichern der Arbeitsergebnisse. &lt;a href=&#34;http://skolnet.de/raspberry-pi-netzwerk-in-der-grundschule/&#34;&gt;Marek hat so eine Lösung&lt;/a&gt; in seiner Schule umgesetzt (sogar für weniger als 1500€!).&lt;/p&gt;
&lt;h3 id=&#34;vor--und-nachteile&#34;&gt;Vor- und Nachteile&lt;/h3&gt;
&lt;p&gt;Wie bei jedem Projekt gibt es auch hier Vor- und Nachteile. Oben hatten wir unsere minimalen Voraussetzungen aufgeschrieben. Dazu kommen sicher noch weitere v.a. wenn es an die Auswahl der Software geht. Lernsoftware setzt meist Windows voraus. Vielleicht soll eine andere (rechenintensive) Software verwendet werden für die die Raspberry Pis zu leistungsschwach sind.&lt;/p&gt;
&lt;p&gt;Vorteile sind auf jeden Fall:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sehr preisgünstig&lt;/li&gt;
&lt;li&gt;stromsparend&lt;/li&gt;
&lt;li&gt;platzsparend und leise&lt;/li&gt;
&lt;li&gt;wartungsarm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nachteile könnten sein:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/schule-und-open-source/&#34;&gt;Windows Lernsoftware läuft nicht&lt;/a&gt; (da PiNet und PiServer auf Linux setzen)&lt;/li&gt;
&lt;li&gt;ungewohntes System für die meisten Kollegen. Der Mensch ist ein Gewohnheitstier – was man nicht kennt, lehnen viele leider erstmal ab. Hier ist sicher Überzeugungsarbeit gefragt und es ist gut, wenn man z.B. eine Einführung oder Fortbildung in das neue System anbietet um Berührungsängste zu nehmen.&lt;/li&gt;
&lt;li&gt;Raspberry Pi sind evtl. nicht leistungsstark genug für rechenintensive Anwendungen&lt;/li&gt;
&lt;li&gt;Netzwerkschnittstelle des Rapsberry Pi ist nicht sehr schnell (das ändert sich hoffentlich in einer zukünftigen Version)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Gerade für Grundschulen, Bibliotheken oder andere (kleine) Vereine, welche Computerarbeitsplätze anbieten wollen, könnte eine Lösung mit Raspberry Pis eine Lösung sein. Für verhältnismäßig wenig Geld kann man ein verlässliches und wartungsarmes System einrichten. Wenn mehr Geld zur Verfügung steht, kann man mit leistungsstärkeren (durchaus gebrauchten) Rechnern auf &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;linuxmuster.net&lt;/a&gt; setzen. Mit dieser Lösung hat man noch mehr Möglichkeiten und kann viele Rechner (Ubuntu / Windows) mit relativ wenig Aufwand verwalten.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Setzt du einen Raspberry Pi in der Schule oder im Verein ein? Welche Erfahrungen hast du damit gemacht?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;(&lt;a href=&#34;https://en.wikipedia.org/wiki/File:Tanzanian_Students_at_Mekomariro_Secondary_School.jpg&#34;&gt;Beitragsbild&lt;/a&gt; &lt;a href=&#34;https://creativecommons.org/licenses/by-sa/4.0/&#34;&gt;&lt;span class=&#34;cc-license-identifier&#34;&gt;CC BY-SA 4.0 &lt;/span&gt;&lt;/a&gt;by DGately)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>5 Gründe warum wir LXD verwenden</title>
      <link>https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/</link>
      <pubDate>Mon, 08 Jan 2018 00:27:45 +0000</pubDate>
      
      <guid>https://zefanjas.de/5-gruende-warum-wir-lxd-verwenden/</guid>
      <description>&lt;p&gt;Linuxcontainer und der Container-Hypervisor LXD sind eine meiner Lieblingstechnologien seit Ubuntu 16.04. Wir verwenden [Linuxcontainer][1] bei uns in der Schule für unsere [Webanwendungen oder auch andere Dienste][2]. Es gibt einige Dinge, die ich an LXD sehr mag. Also: Warum LXD?&lt;/p&gt;
&lt;p&gt;Einige Dinge, wie Installation, einen ersten Container erstellen usw. habe ich in [diesem kleinen Screencast][3] zusammengefasst:&lt;/p&gt;
&lt;h3 id=&#34;1-lxc-client-und-rest-api&#34;&gt;1. LXC Client und REST API&lt;/h3&gt;
&lt;p&gt;Neben LXD gibt es noch das Kommandozeilenprogramm &lt;code&gt;lxc&lt;/code&gt;. Es ist sehr einfach zu bedienen und dabei sehr mächtig. Es macht einfach Spaß damit zu arbeiten. &lt;code&gt;lxc&lt;/code&gt; greift dabei auf die Rest API von LXD zurück. Hier ein paar kleine Beispiele:&lt;/p&gt;
&lt;p&gt;Einen neuen Ubuntu Container erstellen und starten (x steht für Xenial):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc launch ubuntu:x mein_container
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Root im Container werden:&lt;/p&gt;
&lt;pre class=&#34;lang:sh decode:true &#34;&gt;$ lxc exec mein_container bash
```

Alle Container anzeigen:

```
$ lxc list
```

Eine Datei in den Container kopieren:

```
lxc file push /mein/lokaler/Pfad mein_container/mein/Pfad/im/Container
```

Das Tolle ist IMHO auch, dass man die API über das Netzwerk verfügbar machen kann. So kann ich an meinem Rechner mehrere Remotes hinzufügen. Wir haben z.B. mehrere LXD Hosts im Einsatz. Möchte ich nun auf diese Hosts zugreifen, ohne mich jedes Mal per SSH anzumelden, füge ich diese einfach als Remote hinzu:

```
$ lxc remote add host1 IP-des-Hosts
```

Nun kann ich die gleichen Befehle wie oben nutzen. Vor dem Containername muss einfach nur der Name des Remote-Hosts angegeben werden:

```
$ lxc launch ubuntu:x host1:container2
$ lxc list hosts1:
$ lxc exec host1:container2 bash
```

### 2. Geschwindigkeit

Linuxcontainer sind schnell erstellt und man kann sie sehr schnell starten und beenden. Das dauert i.d.R. nur wenige Sekunden. Das ist vielleicht kein Alleinstellungsmerkmal für LXD, denn das Gleiche gilt auch für Docker oder andere Containertechnologien.

### 3. Snapshots &amp; Migration

Ein Feature von LXD sind Snapshots. Ich kann von jedem Container einfach ein Abbild erstellen, auf welches ich später wieder zurück kann.

```
$ lxc snapshot mein_container
```

Mit `lxc info mein_container` kann ich mir meine Snapshots anzeigen lassen und mit folgendem Befehl zum letzten Snapshot zurückkehren:

```
$ lxc restore mein_container snap0
```

Ich kann aber auch aus einem Snapshot einen neuen Container (hier _test_) erstellen, um z.B. ein Update oder eine Änderung zu testen.

```
$ lxc copy mein_container/snap0 test
```

Auch hier gilt, dass ich das nicht nur lokal auf einem Host machen kann, sondern so z.B. einen Container von einem Host auf einen anderen (live) migrieren kann. Es gibt dabei zwei Möglichkeiten. Entweder erstelle ich eine Kopie oder ich verschiebe den Container. Ich mache davon manchmal Gebrauch, wenn ich z.B. eine neue Anwendung lokal auf meinem Rechner teste, kann ich sie später einfach auf den Host in der Schule schieben.

```
$ lxc copy mein_container host1:mein_container
$ lxc move mein_container host1:mein_container
```

### 4. Ressourcenschonend

Linuxcontainer verbrauchen sehr wenig Speicherplatz, da sie sich viele Komponenten mit dem Container-Host teilen. Ein frisches Ubuntu-Image z.B. verbraucht nur wenige MB an Speicherplatz. Alle Container teilen sich zudem Arbeitsspeicher und CPU-Ressourcen. So kann eine viel höhere Dichte im Vergleich zu virtuellen Maschinen erreicht werden, die wesentlich mehr Ressourcen brauchen. Canonical spricht davon, dass auf einem Server [10x mehr Container-VMs][4] möglich sind im Vergleich zu klassischen virtuellen Maschinen (z.B. KVM).

### 5. Flexible Netzwerk und Speicherkonfiguration

Mit LXD sind verschiedenste Anwendungsszenarien möglich. Es werden verschiedene Speicher-Backends unterstützt und verschiedene Netzwerktreiber. Man kann auch mehrere Speicher-Backends auf einem Host haben und bei der Erstellung eines Containers entscheiden, auf welchem Speicher er gestartet werden soll. Eine [Übersicht über alle möglichen Speicher][5] findet man in der Dokumentation.

Auch netzwerktechnisch sind unterschiedliche Optionen vorhanden. Standardmäßig erstellt LXD ein eigenes Subnet für die Container. Man kann aber auch Netzwerkbrücken einrichten oder VLANs nutzen, um den Container die gewünschte IP zu geben bzw. die vorhandene Infrastruktur zu nutzen.

### Fazit

Wer viel mit Linux-VMs arbeitet, sollte sich [LXD][6] auf jeden Fall anschauen. LXD ist für mich die perfekte Mischung aus den Vorteilen, die Container bringen und der gewohnten Umgebung, die man von einer Linux-VM gewohnt ist. Es ist wie eine &amp;#8222;richtige&amp;#8220; virtuelle Maschine, nur schneller.

&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Erfahrungen hast du bereits mit Container allgemein bzw. mit LXD konkret gemacht?&lt;/strong&gt;
&lt;/p&gt;

 [1]: https://zefanjas.de/wie-man-mehrere-webseiten-mit-nginx-und-haproxy-mit-lxd-hosten-kann/
 [2]: https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/
 [3]: https://www.youtube.com/watch?v=14MS_NKTKUE
 [4]: https://www.ubuntu.com/containers/lxd
 [5]: https://lxd.readthedocs.io/en/latest/storage/#storage-backends-and-supported-functions
 [6]: https://zefanjas.de/tag/lxd/</description>
    </item>
    
    <item>
      <title>Kann man eine Schule nur mit Open Source Software betreiben?</title>
      <link>https://zefanjas.de/schule-und-open-source/</link>
      <pubDate>Thu, 04 Jan 2018 06:00:22 +0000</pubDate>
      
      <guid>https://zefanjas.de/schule-und-open-source/</guid>
      <description>&lt;p&gt;Schule und Open Source – geht das? Wie viel Open Source verträgt eine Schule? Diese Frage bewegt mich nun seit mehr als &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-1/&#34;&gt;2 Jahren&lt;/a&gt;. Es gibt so viele &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;tolle Open Source Projekte&lt;/a&gt; –  gerade auch für Schulen – doch können die wenigsten der Schüler und Lehrkräfte damit etwas anfangen. Woran liegt das? Woher kommen die Berührungsängste mit Open Source? Ist es der Ruf oder die &lt;del&gt;Angst&lt;/del&gt; Bequemlichkeit, sich auf etwas Neues einlassen zu müssen? In Deutschland gibt es &lt;a href=&#34;https://zefanjas.de/4-linux-schulserver-im-vergleich/&#34;&gt;verschieden Projekte&lt;/a&gt;, die sich dem Thema Schule und Open Source angenommen haben. Es gibt sie also wirklich, Schulen, die auf Open Source setzen.&lt;/p&gt;
&lt;p&gt;Wir sind diesen Schritt ebenfalls vor 1,5 Jahren gegangen und haben &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-2/&#34;&gt;unsere Schul-IT&lt;/a&gt; zu fast 100% auf Open Source umgestellt. In den letzten Artikeln hier im Blog habe ich davon berichtet. Dabei geht es meist um Software, die wir auf unseren Servern einsetzen. Aber auch in unseren Klassenzimmern setzen wir fast ausschließlich auf Ubuntu.&lt;/p&gt;
&lt;h3 id=&#34;neuer-blog-zum-thema-8222schule-und-open-source8220&#34;&gt;Neuer Blog zum Thema „Schule und Open Source“&lt;/h3&gt;
&lt;p&gt;Heute möchte ich zu diesem Thema ein neuen Blog vorstellen: &lt;a href=&#34;https://openschoolsolutions.org/&#34;&gt;OpenSchoolSolutions.org&lt;/a&gt;. Nachdem ich bereits seit Juli unregelmäßig Artikel in englisch auf &lt;a href=&#34;https://medium.com/@zefanja&#34;&gt;Medium&lt;/a&gt; veröffentliche, möchte ich nun zusätzlich einen eigenen Blog starten. Ziel ist es, unsere Erfahrungen weiterzugeben, zu teilen und auf tolle Open Source Projekte für den Serverraum bzw. das Klassenzimmer hinzuweisen. Geplant sind auch neue Formate abseits von Blogartikeln, d.h. Videos und Screencasts zu Anwendungen sowie Tutorials. Ich bin selbst gespannt, wohin die Reise geht und freue mich auf dieses neue Projekt!&lt;/p&gt;
&lt;p&gt;Wenn du gern auf dem Laufenden bleiben möchtest, gibt es folgende Möglichkeiten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://openschoolsolutions.org/&#34;&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://twitter.com/OpenSchoolZ&#34;&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/channel/UCQmrrq4LaJDCWG-WAQ02tCQ/&#34;&gt;Youtube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://openschoolsolutions.org/feed&#34;&gt;RSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Ich werde auch hier im Blog weiter in deutsch zu Themen rund um Schule, Open Source und Server berichten. Für mich passen diese beiden – Schule und Open Source – einfach wunderbar zusammen. Dabei meine ich nicht unbedingt die Art der Lizenz, sondern der gesamte Gedanke, der hinter dieser Bewegung steckt. Gemeinsam etwas zu schaffen, voneinander zu lernen, zu teilen und sich gegenseitig zu helfen.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>HAProxy, Nginx, LXD und Let’s Encrypt</title>
      <link>https://zefanjas.de/haproxy-nginx-lxd-und-lets-encrypt/</link>
      <pubDate>Mon, 01 Jan 2018 04:55:59 +0000</pubDate>
      
      <guid>https://zefanjas.de/haproxy-nginx-lxd-und-lets-encrypt/</guid>
      <description>&lt;p&gt;In meinem &lt;a href=&#34;https://zefanjas.de/wie-man-mehrere-webseiten-mit-nginx-und-haproxy-mit-lxd-hosten-kann/&#34;&gt;letzten Beitrag habe ich beschrieben&lt;/a&gt;, wie man verschiedene Webserver, die in einem LXD Container laufen, von außen über einen Reverse-Proxy (in unserem Fall HAProxy) erreichbar machen kann. Diese Setup läuft aber nur über HTTP (Port 80) und damit über einen unverschlüsselte Verbindung. Heutzutage ist es unabdingbar, dass man seine Website auch verschlüsselt. Deswegen möchte ich heute das Setup erweitern, sodass die Webserver über eine verschlüsselte Verbindung erreichbar sind. HAProxy wird dabei &lt;a href=&#34;https://en.wikipedia.org/wiki/TLS_termination_proxy&#34;&gt;SSL/TLS Termination Proxy&lt;/a&gt; agieren, d.h. wir müssen nur an einer Stelle alle unsere Zertifikate verwalten und nicht auf jedem einzelnen Webserver selbst. Der Vorteil ist, dass den Webservern Arbeit durch den Proxy abgenommen wird, allerdings muss man wissen, dass die Kommunikation zwischen HAProxy und den Webservern unverschlüsselt erfolgt. Dieses private Netz sollte als sicher angesehen werden. In unserem Fall ist das das Subnet von LXD, in dem sich die Container befinden. Folgende Grafik veranschaulicht den Prozess:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;size-full aligncenter&#34; src=&#34;https://upload.wikimedia.org/wikipedia/commons/thumb/3/34/SSL_termination_proxy.svg/640px-SSL_termination_proxy.svg.png&#34; alt=&#34;TLS / SSL Termination&#34; width=&#34;640&#34; height=&#34;185&#34; /&gt; 
&lt;h3 id=&#34;container-überprüfen&#34;&gt;Container überprüfen&lt;/h3&gt;
&lt;p&gt;Zuerst überprüfen wir, ob alle unsere Container laufen und eine IP haben. Das können wir mit dem bekannten &lt;code&gt;lxc list&lt;/code&gt; Befehl machen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc list
+---------+---------+-----------------------+------+------------+-----------+
|  NAME   |  STATE  |         IPV4          | IPV6 |    TYPE    | SNAPSHOTS |
+---------+---------+-----------------------+------+------------+-----------+
| haproxy | RUNNING | 10.10.10.10 (eth0)    |      | PERSISTENT | 0         |
+---------+---------+-----------------------+------+------------+-----------+
| web1    | RUNNING | 10.10.10.100 (eth0)   |      | PERSISTENT | 0         |
+---------+---------+-----------------------+------+------------+-----------+
| web2    | RUNNING | 10.10.10.200 (eth0)   |      | PERSISTENT | 0         |
+---------+---------+-----------------------+------+------------+-----------+
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Alle unsere Container sind online und haben eine IP-Adresse bekommen. Weiterhin sollten die DNS-Einträge unserer beiden Webserver auf die öffentliche IP des Servers zeigen. Dies können wir z.B. mit dem &lt;code&gt;host&lt;/code&gt;-Befehl überprüfen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ host web2.example.com
web1.example.com has address 1.2.3.4
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;weiterleitung-für-https-einrichten&#34;&gt;Weiterleitung für HTTPS einrichten&lt;/h3&gt;
&lt;p&gt;Bisher wird nur Traffic, der auf Port 80 auf unserem Server ankommt an den HAProxy Container weitergeleitet. Für HTTPS brauchen wir aber noch eine Weiterleitung für Port 443. Diese können wir mit einer ähnlichen iptables Regel einrichten:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo iptables -t nat -I PREROUTING -i eth0 -p TCP -d server_ip/32 --dport 443 -j DNAT --to-destination haproxy_ip:443
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Diese Regel ist nach einem Neustart wieder weg. Um sie dauerhaft einzurichten, kann man z.B. das Paket &lt;em&gt;iptables-persistent&lt;/em&gt; installieren.&lt;/p&gt;
&lt;h3 id=&#34;haproxy-anpassen&#34;&gt;HAProxy anpassen&lt;/h3&gt;
&lt;p&gt;Als nächsten müssen wir den HAProxy Konfiguration anpassen. Dazu loggen wir uns als &lt;code&gt;root&lt;/code&gt; in dem Container ein:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ lxc exec haproxy bash
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun können wir die Konfigurationsdatei (&lt;strong&gt;&lt;em&gt;/etc/haproxy/haproxy.cfg&lt;/em&gt;&lt;/strong&gt;) öffnen (im HAProxy-Container) und anpassen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ nano /etc/haproxy/haproxy.cfg
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit unser SSL Setup möglichst sicher ist, fügen wir folgende Zeilen im &lt;code&gt;global&lt;/code&gt; Abschnitt hinzu. Ich habe Sie mit dem &lt;a href=&#34;https://mozilla.github.io/server-side-tls/ssl-config-generator/&#34;&gt;Mozilla SSL Configuration Generator&lt;/a&gt; erzeugt:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;global
    ...
    # set default parameters to the modern configuration
    ssl-default-bind-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
    ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
    ssl-default-server-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
    ssl-default-server-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im &lt;code&gt;defaults&lt;/code&gt; Block fügen wir folgende Zeilen hinzu:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;defaults
     ...
     option forwardfor
     option http-server-close
     ...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun sind einige Anpassungen im &lt;code&gt;frontend www_frontend&lt;/code&gt; Abschnitt notwendig:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;frontend www_frontend
    # Http
    bind *:80
    # Https mit Ordner für Certifikate
    bind *:443 ssl crt /etc/haproxy/certs/
    # allen Traffic nach https weiterleiten
    redirect scheme https if !{ ssl_fc }
    # TLS Termination. HAProxy informiert hier unseren Webserver darüber. 
    reqadd X-Forwarded-Proto:\ https

    # Unterscheide zwischen sicheren und unsicheren Requests (wird in den nächsten zwei Zeilen verwendet).
    acl secure dst_port eq 443
    
    # Markiere alle Cookies als sicher, wenn sie über SSL gesendet werden.
    rsprep ^Set-Cookie:\ (.*) Set-Cookie:\ \1;\ Secure if secure
    # Füge den HSTS-Header mit einem maximalen Alter von 1 Jahr hinzu.
    rspadd Strict-Transport-Security:\ max-age=31536000 if secure
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In in den Backend Abschnitten müssen wir keine Änderungen vornehmen.&lt;/p&gt;
&lt;h3 id=&#34;let8217s-encrypt-zertifikate-einrichten&#34;&gt;Let’s Encrypt Zertifikate einrichten&lt;/h3&gt;
&lt;p&gt;Nun brauchen wir für die verschlüsselte Kommunikation noch ein Zertifikat für unsere Webserver. Let’s Encrypt bietet kostenfreie Zertifikate schon seit einigen Jahren an und ab diesem Jahr sogar Wildcard-Zertifikate.&lt;/p&gt;
&lt;p&gt;Damit wir die Zertifikate einrichten können, brauchen wir den Let’s Encrypt Client, den wir wie folgt installieren (im HAProxy Container):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install letsencrypt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wir generieren ein Zertifikat, welches für alle unsere Domains gültig ist:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ letsencrypt certonly -d example.com -d web2.example.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Wenn alles geklappt hat, haben wir nun ein gültiges Zertifikat für unsere beiden Webserver. Jetzt müssen wir nur noch HAProxy die richtigen Zertifikate zur Verfügung stellen. Dazu müssen wir die Certificate Chain und den Private Key zusammenfügen, damit HAProxy etwas damit anfangen kann. Wir legen im ersten Schritt das Zielverzeichnis an und fügen dann die Zertifikate und den Key zusammen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ mkdir -p /etc/haproxy/certs/
$ DOMAIN=&amp;#39;example.com&amp;#39; sudo -E bash -c &amp;#39;cat /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/letsencrypt/live/$DOMAIN/privkey.pem &amp;amp;gt; /etc/haproxy/certs/$DOMAIN.pem&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Zum Schluss starten wir den HAProxy neu:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ systemctl restart haproxy
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;testen&#34;&gt;Testen&lt;/h3&gt;
&lt;p&gt;Wir sind fast am Ziel und möchten unsere Domains noch testen, ob auch alles richtig konfiguriert wurde.  Zuerst rufen wir die Seiten in einem Webbrowser auf. Es sollte neben der Adresse ein grünes Schloss erscheinen (im Firefox). Weiterhin sollten wir noch einen &lt;a href=&#34;https://www.ssllabs.com/ssltest/index.html&#34;&gt;SSL Server Test&lt;/a&gt; durchführen. Das Ergebnis lässt sich sehen:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2298&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_149.png&#34; alt=&#34;SSL Test Result&#34; width=&#34;1008&#34; height=&#34;432&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_149.png 1008w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_149-300x129.png 300w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_149-768x329.png 768w, https://zefanjas.de/wp-content/uploads/2018/01/Auswahl_149-604x259.png 604w&#34; sizes=&#34;(max-width: 1008px) 100vw, 1008px&#34; /&gt; 
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Mit wenigen Schritten haben wir ein Setup geschaffen, in dem wir mehrere Webseiten nach außen hin erreichbar machen können. Das Ganze lässt sich leicht erweitern und skalieren. Besonders angenehm finde ich die Verwaltung der Zertifikate an einer Stelle und nicht auf jedem Webserver einzeln. LXD und Let’s Encrypt, sowie HAProxy sind für mich eine der großen persönlichen Entdeckungen der letzten zwei Jahre.&lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Was sind für dich die größten Herausforderung bei der Bereitstellung von Webservern?&lt;/strong&gt;
&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man mehrere Webseiten mit Nginx und HAProxy mit LXD hosten kann</title>
      <link>https://zefanjas.de/wie-man-mehrere-webseiten-mit-nginx-und-haproxy-mit-lxd-hosten-kann/</link>
      <pubDate>Tue, 26 Dec 2017 14:16:50 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-mehrere-webseiten-mit-nginx-und-haproxy-mit-lxd-hosten-kann/</guid>
      <description>&lt;p&gt;LXD und Linuxcontainer sind eine meiner Lieblingstechnologien in Ubuntu. In wenigen Sekunden kann man einen neue virtuelle Maschine in einem Container starten. Wir machen davon in [unserer Schule][1] [stark Gebrauch][2]. Fast alle Webanwendungen laufen in einem solchen Container. So haben wir die einzelnen Anwendungen besser getrennt. Weiterhin kann man sehr schnell einen Snapshot eines Containers machen und vieles mehr. Wenn man nun diese verschiedenen Webseiten öffentlich zugänglich machen möchte, gibt es ein Problem, denn i.d.R. hat man nur eine öffentliche IP zur Verfügung (fest bzw. dynamisch). Eine Lösung wäre, dass die Webanwendungen auf verschiedenen Ports laufen, aber das ist nicht unbedingt benutzerfreundlich. In diesem Beitrag möchte ich zeigen, wie man mehrere Webseiten mit Nginx und HAProxy mit LXD hosten kann.&lt;/p&gt;
&lt;h3 id=&#34;voraussetzungen&#34;&gt;Voraussetzungen&lt;/h3&gt;
&lt;p&gt;Wir brauchen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;einen Server (ab Ubuntu 16.04) mit öffentlicher IP&lt;/li&gt;
&lt;li&gt;Zugang mit Rootrechten (root / sudo)&lt;/li&gt;
&lt;li&gt;eine Domain und Subdomain, die mit je einem DNS A Eintrag auf die öffentliche IP des Servers zeigen&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;schritt-1-8211-benutzer-der-lxd-8211-gruppe-hinzufügen&#34;&gt;Schritt 1 – Benutzer der lxd – Gruppe hinzufügen&lt;/h3&gt;
&lt;p&gt;Damit man mit einem Nicht-Root-Benutzer lxd verwalten kann, müssen wir zuerst den Benutzer der Gruppe hinzufügen:&lt;/p&gt;
&lt;pre class=&#34;code-pre command&#34;&gt;&lt;code&gt;sudo usermod --append --groups lxd username&lt;/code&gt;
```

Damit die Änderungen wirksam werden, müssen wir uns einmal _aus- und wieder einloggen_!

### Schritt 2 &amp;#8211; lxd konfigurieren

lxd ist in Ubuntu 16.04 vorinstalliert. Falls nicht, können wir es mit

```
sudo snap install lxd
```

nachholen. In LXD gibt es verschiedene Möglichkeiten, wie und wo die Container ihren Speicherplatz haben. Man kann verschiedene Dateisysteme auswählen und entscheiden, ob die Container in einer Datei oder extra Partition bzw. Festplatte gespeichert werden. In diesem Tutorial verwenden wir ZFS für Linux mit einen sogenannten &amp;#8222;loop device&amp;#8220;. Das installieren wir mit

&lt;pre class=&#34;code-pre command&#34;&gt;&lt;code&gt;sudo apt-get install zfsutils-linux&lt;/code&gt;
```

Nun können wir mit der Einrichtung von lxd beginnen:

&lt;pre class=&#34;code-pre command&#34;&gt;&lt;code&gt;sudo lxd init&lt;/code&gt;
```

Es werden verschiedene Fragen gestellt, die man wie folgt beantworten kann (Achtung: Die Netzwerkbrücke nur für IPv4 aktivieren! Das Subnet kann frei gewählt werden)

```
Name of the storage backend to use (dir or zfs) [default=zfs]: zfs
Create a new ZFS pool (yes/no) [default=yes]? &amp;lt;span style=&#34;color: yes
Name of the new ZFS pool [default=lxd]: lxd
Would you like to use an existing block device (yes/no) [default=no]? no
Size in GB of the new loop device (1GB minimum) [default=15]: 15
Would you like LXD to be available over the network (yes/no) [default=no]? no
Do you want to configure the LXD bridge (yes/no) [default=yes]? yes
LXD has been successfully configured.
```

Die Netzwerkbrücke ist notwendig, damit jeder Container seine eigene IP bekommt und Zugang zum Internet hat.

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2281&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/lxdinit.png&#34; alt=&#34;lxd init&#34; width=&#34;722&#34; height=&#34;408&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/lxdinit.png 722w, https://zefanjas.de/wp-content/uploads/2017/12/lxdinit-300x170.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/lxdinit-478x270.png 478w&#34; sizes=&#34;(max-width: 722px) 100vw, 722px&#34; /&gt; 

So, jetzt ist alles eingerichtet und wir können unsere ersten Container erstellen!

### Schritt 3 &amp;#8211; Container erstellen

Um unsere Container zu verwalten, brauchen wir den `lxc` Befehl. Diese feine Programm ist sehr einfach zu verwenden und dabei sehr mächtig. Zuerst wollen wir uns mal alle Container anzeigen lassen. Das geht mit `lxc list`:

&lt;pre class=&#34;code-pre&#34;&gt;&lt;code langs=&#34;&#34;&gt;$ lxc list
+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+&lt;/code&gt;
```

Es werden keine Container angezeigt, weil wir ja noch keine erstellt haben.

Für unser Beispiel brauchen wir drei Container: einen für HAProxy und 2 Webserver mit Nginx (oder Apache, wenn das jemand bevorzugt).

Wir werden den Befehl `lxc launch` verwenden, um einen Ubuntu 16.04 (`ubuntu:x`) Container namens `web1` zu erstellen und zu starten. Das `x` in `ubuntu:x` ist eine Abkürzung für den ersten Buchstaben von Xenial, der Codename von Ubuntu 16.04. `ubuntu:` ist der Bezeichner für das vorkonfigurierte Repository von LXD-Images.

Unsere drei Container können wir also mit folgenden Befehlen erstellen:

```
$ lxc launch ubuntu:x web1
$ lxc launch ubuntu:x web2
$ lxc launch ubuntu:x haproxy

```

Wenn man den ersten Container erstellt, wird zuerst das Image heruntergeladen, dass etwas dauern kann. Die anderen beiden Container werden dann sehr schnell erstellt.

Nun können wir mit lxc list schauen, ob unsere Container auch alle da sind:

```
$ lxc list
+---------+---------+-----------------------+------+------------+-----------+
|  NAME   |  STATE  |         IPV4          | IPV6 |    TYPE    | SNAPSHOTS |
+---------+---------+-----------------------+------+------------+-----------+
| haproxy | RUNNING | 10.10.10.10 (eth0)    |      | PERSISTENT | 0         |
+---------+---------+-----------------------+------+------------+-----------+
| web1    | RUNNING | 10.10.10.100 (eth0)   |      | PERSISTENT | 0         |
+---------+---------+-----------------------+------+------------+-----------+
| web2    | RUNNING | 10.10.10.200 (eth0)   |      | PERSISTENT | 0         |
+---------+---------+-----------------------+------+------------+-----------+
```

In dieser Liste sehen wir zuerste den Namen des Containers und seinen Status (RUNNING, STOPPED). Dann die IP Adresse(n) (die hier exemplarisch ist) und der Typ. Zum Schlusso noch die Anzahl der Snapshots / Sicherungspunkte. Die IP-Adressen werden wir gleich brauchen (am besten notieren).

### Schritt 4 &amp;#8211; Nginx-Container einrichten

Um eine Verbindung zum Container herzustellen, verwenden wir den Befehl `lxc exec`, der den Namen des Containers und die auszuführenden Befehle enthält.

```
$ lxc exec web1 -- sudo --login --user ubuntu
```

Die Zeichenkette `--` gibt an, dass die Befehlsparameter für lxc dort zu Ende sind, und der Rest der Zeile wird als der auszuführende Befehl innerhalb des Containers übergeben. Der Befehl ist `sudo --login --user ubuntu`, der eine Login-Shell für das vorkonfigurierte Konto `ubuntu` im Container bereitstellt.

&gt; Hinweis: Wenn man eine Verbindung zu den Containern als _root_ herstellen müssen, kann man stattdessen den Befehl `lxc exec web1 -- /bin/bash` verwenden

Nun sind wir in der Konsole des Containers (_ubuntu@web1_) und können nginx installieren:

```
$ sudo apt update
$ sudo apt install nginx
```

Damit wir später besser erkennen auf welchem Webserver wir uns gerade befinden, ändern wir die Standard-Seite des Webservers:

```
$ sudo nano /var/www/html/index.nginx-debian.html
```

Für die Änderung bieten sich der _title_-Tag und die erste Überschrift (_h1_) an:

```
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Welcome to nginx on LXD container web1!&amp;lt;/title&amp;gt;
&amp;lt;style&amp;gt;
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;h1&amp;gt;Welcome to nginx on LXD container web1!&amp;lt;/h1&amp;gt;
&amp;lt;p&amp;gt;If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.&amp;lt;/p&amp;gt;
```

Nachdem wir die Datei an den beiden Stellen geändert haben, können wir mit **Strg+X** und **Y** die Datei speichern. Mit **Strg+D** oder `logout` verlassen wir wieder den Container.

Zurück auf dem Server testen wir, ob der Webserver auch ordnungsgemäß funktioniert. Mit dem folgenden Befehl sollten wir die Willkommenseite sehen, die wir gerade eben angepasst haben:

```
$ curl http://10.10.10.100/
```

Wenn alles geklappt hat, kann der zweite Container nach dem gleichen Muster eingerichtet werden.

### Schritt 5 &amp;#8211; HAProxy konfigurieren

Jetzt, da alle beiden Webserver-Container eingerichtet sind, fehlt nur noch der Reverse Proxy. Er ist dafür verantwortlich, dass die Anfragen von außen vom richtigen Container verarbeitet werden. [HAProxy][3] ist ein sehr leistungsstarker Proxy, der auch von Gihub oder Twitter verwendet wird. Die Möglichkeiten sind auch hier wieder sehr vielfältig. Wir werden deshalb nur ein sehr einfaches Setup machen.

Zuerst loggen wir uns wieder in den Container ein und installieren HAProxy:

```
$ lxc exec haproxy -- sudo --login --user ubuntu
$ sudo apt-get update
$ sudo apt-get install haproxy
```

Nun konfigurieren wir HAProxy. Dazu öffnen wir die Datei _**/etc/haproxy/haproxy.conf**_ mit einem Texteditor:

&lt;pre class=&#34;code-pre custom_prefix fourth-environment&#34;&gt;&lt;code&gt;$ sudo nano /etc/haproxy/haproxy.cfg&lt;/code&gt;
```

Im Abschnitt `defaults` fügen wir die Optionen _forwardfor_ und _http-server-close_ hinzu.

&lt;pre class=&#34;code-pre haproxy fourth-environment&#34;&gt;&lt;code langs=&#34;&#34;&gt;global
...
defaults
    log global
    mode    http
    option  httplog
    option  dontlognull
    &amp;lt;span class=&#34;highlight&#34;&gt;option   forwardfor&amp;lt;/span&gt;
    &amp;lt;span class=&#34;highlight&#34;&gt;option   http-server-close&amp;lt;/span&gt;
    timeout connect 5000
    timeout client  50000
    timeout server  50000
...&lt;/code&gt;
```

#### Frontends

Als nächstes konfigurieren wir das Frontend so, dass es auf unsere beiden Backend-Container zeigt. Wir fügen einen neuen Frontend-Abschnitt mit dem Namen _wwww_frontend_ hinzu, der so aussieht:

```
frontend www_frontend
    bind *:80 # Port 80 (www) an den Container binden

    # Es gibt eine Übereinstimmung sobald das HTTP Host: field einen der Hostnamen enthält (nach dem &#39;-i&#39;).
    acl host_web1 hdr(host) -i example.com www.example.com
    acl host_web2 hdr(host) -i web2.example.com

    # Leite die Verbindung zum richtigen Servercluster um, je nach Übereinstimmung.
    use_backend web1_cluster if host_web1
    use_backend web2_cluster if host_web2
```

Die _acl-Befehle_ stimmen mit den Hostnamen der Webserver überein und leiten die Anfragen an den entsprechenden Backend-Abschnitt weiter.

#### Backends

Dann definieren wir zwei neue Backend-Abschnitte, eine für jeden Webserver, und nennen sie _web1_cluster_ bzw. _web2_cluster_. Wir fügen den folgenden Code zur Datei hinzu, um die Backends zu definieren:

```
backend web1_cluster
    balance leastconn
    # Wir setzen den X-Client-IP HTTP-Header. Dies ist nützlich, wenn wir wollen, dass der Webserver die tatsächliche Client-IP kennt.
    http-request set-header X-Client-IP %[src]
    # Dieses Backend, hier &#34;web1&#34; genannt, verweist auf den Container &#34;web1.lxd&#34; (Hostname).
    server web1 web1.lxd:80 check

backend web2_cluster
    balance leastconn
    http-request set-header X-Client-IP %[src]
    server web2 web2.lxd:80 check

```

Die _balance_-Option bezeichnet die Load-Balancing-Strategie. In diesem Fall entscheiden wir uns für die geringste Anzahl von Verbindungen. Die Option _http-request_ setzt einen HTTP-Header mit der realen Web-Client-IP. Wenn wir diesen Header nicht setzen würden, würde der Webserver die HAProxy-IP-Adresse als Quell-IP für alle Verbindungen aufzeichnen, was die Analyse der Herkunft des Datenverkehrs erschwert. Die Server-Option spezifiziert einen beliebigen Namen für den Server (web1), gefolgt von Hostname und Port des Servers.

LXD stellt einen DNS-Server für die Container zur Verfügung, so dass web1.lxd sich auf die mit dem web1-Container verknüpfte IP auflöst. Die anderen Container haben eigene Hostnamen, wie z.B. web2.lxd und haproxy.lxd.

Der c_heck_-Parameter weist HAPRoxy an, auf dem Webserver Überprüfungen durchzuführen, um sicherzustellen, dass er verfügbar ist.

Um zu testen, ob die Konfiguration gültig ist, führen Sie den folgenden Befehl aus:

```
$ haproxy -f /etc/haproxy/haproxy.cfg -c
Configuration file is valid
```

Nun müssen wir noch den HAProxy neu laden:

```
$ sudo systemctl reload haproxy

```

Damit sind wir im HAProxy-Container fertig und können uns wieder mit **Strg+D** bzw. **logout** abmelden.

Wir haben HAProxy so konfiguriert, dass es als Reverse-Proxy fungiert, der alle Verbindungen, die es auf Port 80 empfängt, an den entsprechenden Webserver in den beiden anderen Containern weiterleitet. Testen wir, ob es Haproxy tatsächlich gelingt, die Anfragen an den richtigen Web-Container weiterzuleiten. Dazu führen wir den folgenden Befehl aus:

```
$ curl --verbose --header &#39;Host: web2.example.com&#39; http://10.10.10.10
```

Dies stellt eine Anfrage an HAProxy und setzt einen HTTP-Host-Header, den HAProxy verwenden soll, um die Verbindung zum entsprechenden Webserver umzuleiten.

Als Ausgabe sollten wir nun die Standarseite des Nginx-Servers vom web2-Container erhalten!

HAProxy hat die Anfrage richtig verstanden und an den web2-Container weitergeleitet. Dort zeigt der Webserver der Standard-Indexseite an, die wir zuvor bearbeitet haben, und zeigt den Text auf dem LXD-Container web2 an.

### Schritt 6 &amp;#8211; Eingehende Verbindungen an den HAProxy weiterleiten

Zum Schluss müssen wir noch dafür sorgen, dass alle externen Anfragen auf Port 80 an HAProxy weitergeleitet werden, damit die Welt auf unsere Websites zugreifen kann.

HAProxy haben wir in einem Container installiert und ist standardmäßig aus dem Internet nicht erreichbar. Um dies zu lösen, erstellen wir eine iptables-Regel, um Verbindungen weiterzuleiten.

Der Befehl iptables benötigt zwei IP-Adressen: die öffentliche IP-Adresse des Servers (server\_ip) und die private IP-Adresse des Haproxy-Containers (haproxy\_ip), die man mit dem Befehl `lxc list` erhält.

Führen Sie diesen Befehl aus, um die Regel zu erstellen:

```
$ sudo iptables -t nat -I PREROUTING -i eth0 -p TCP -d server_ip/32 --dport 80 -j DNAT --to-destination haproxy_ip:80
```

Um diesen iptables-Befehl zu speichern, damit er nach einem Neustart erneut angewendet wird, installieren wir das Paket _iptables-persistent_:

```
$ sudo apt-get install iptables-persistent
```

Bei der Installation des Pakets werden wir aufgefordert, die aktuellen iptables-Regeln zu speichern. Akzeptieren und speichern wir alle aktuellen iptables-Regeln.

### Schritt 7 &amp;#8211; Zugriff von außen testen

Wenn wir die beiden Domains (DNS A Eintrag) eingerichtet haben, sollten wir in der Lage sein, sich mit Ihrem Webbrowser mit jeder Website zu verbinden. Alternativ und nur zum lokalem Test können wir auch einen Eintrag in der **_/etc/hosts_** Datei machen:

```
server_IP example.com
server_IP web2.example.com
```

Um zu testen, ob die beiden Webserver tatsächlich über das Internet erreichbar sind, greifen wir von einem lokalen Computer aus mit einem Browser auf unsere beiden Domains zu (example.com bzw. web2.example.com). In beiden Fällen sollten wir nun die entsprechende Standardseite des Webservers sehen!

### Fazit

Wir haben zwei Websites eingerichtet, jede in einem eigenen Container, wobei HAProxy den Datenverkehr steuert. Diesen Prozess können wir wiederholen, um viele weitere Websites zu konfigurieren, die jeweils auf einen eigenen Container beschränkt sind.

So könnten wir z.B. auch MySQL in einem neuen Container hinzufügen und dann ein CMS wie WordPress installieren, um eine Website zu starten. Weiterhin könnten wir  diese Vorgehensweise auch verwenden, um ältere Softwareversionen zu unterstützen. Zum Beispiel, wenn eine Installation eines CMS eine ältere Version von Software wie PHP5 erfordert, dann können wir Ubuntu 14.04 in den Container installieren (`lxc launch ubuntu:t`), anstatt zu versuchen, die Paketmanager-Versionen, die auf Ubuntu 16.04 verfügbar sind, herabzusetzen.

Schließlich bietet LXD die Möglichkeit, Snapshots des vollen Zustands von Containern zu machen, was die Erstellung von Backups und das Zurückrollen von Containern zu einem späteren Zeitpunkt vereinfacht. Darüber hinaus, wenn wir LXD auf zwei verschiedenen Servern installieren, dann ist es möglich, diese miteinander zu verbinden und Container zwischen Servern über das Internet zu migrieren. Doch darüber berichte ich vielleicht ein andern mal&amp;#8230;

**Update:** [Als nächsten Schritt sollte man das Setup noch mit SSL sicherer machen.][4]

&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Setzt du LXD ein und welche Erfahrungen hast du bisher gemacht?&lt;/strong&gt;
&lt;/p&gt;

 [1]: https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/
 [2]: https://zefanjas.de/open-source-in-der-schul-it-teil-2/
 [3]: http://www.haproxy.org/
 [4]: https://zefanjas.de/haproxy-nginx-lxd-und-lets-encrypt/</description>
    </item>
    
    <item>
      <title>Public Money, Public Code</title>
      <link>https://zefanjas.de/public-money-public-code/</link>
      <pubDate>Mon, 18 Dec 2017 13:26:58 +0000</pubDate>
      
      <guid>https://zefanjas.de/public-money-public-code/</guid>
      <description>&lt;p&gt;Heute möchte ich nur kurz auf die &lt;a href=&#34;https://publiccode.eu/de/&#34;&gt;Kampagne&lt;/a&gt; „&lt;strong&gt;Public Money, Public Code&lt;/strong&gt;“ hinweisen. Wenn dir dieses Thema am Herzen liegt, dann unterzeichnet doch auch! Auf der Website gibt es ein &lt;strong&gt;kleines Video&lt;/strong&gt;, welches das Anliegen der Kampagne sehr anschaulich erklärt.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Von allen bezahlter Code sollte für alle verfügbar sein!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Es gibt viele Beispiele, wie Geld (sehr viel Geld!) für proprietäre Software in Schulen und öffentlichen Einrichtungen ausgegeben wird. Die Projekte schaffen meist mehr Abhängigkeiten und Sicherheitslücken werden spät oder gar nicht gefixt, da Upgrades selten stattfinden.&lt;/p&gt;
&lt;p&gt;Der folgende Artikel fast gut zusammen, was es bedeutet, wenn sich eine Stadt, ein Land oder sogar ein ganzer Staatenverbund in die Abhängigkeit eines Herstellers begibt.&lt;/p&gt;
&lt;blockquote class=&#34;wp-embedded-content&#34; data-secret=&#34;1NJdDmwORj&#34;&gt;
  &lt;p&gt;
    &lt;a href=&#34;http://www.borncity.com/blog/2017/12/03/open-source-windows10-der-bundesclient-und-europas-fatale-abhngigkeit-von-microsoft/&#34;&gt;Open Source, Windows 10, der Bundesclient und Europas fatale Abh&amp;auml;ngigkeit von Microsoft &amp;hellip;&lt;/a&gt;
  &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Deshalb unterstütze „Public Money, Public Code“, um diese Abhängigkeiten mehr und mehr aufzulösen!&lt;/p&gt;
&lt;p&gt;PS: &lt;a href=&#34;https://zefanjas.de/tag/linuxmuster/&#34;&gt;linuxmuster.net&lt;/a&gt; unterstützt dieses Anliegen auch!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Wie man Farbe ins Terminal bringt – ccat und farbige man pages</title>
      <link>https://zefanjas.de/wie-man-farbe-ins-terminal-bringt-ccat-und-farbige-man-pages/</link>
      <pubDate>Thu, 14 Dec 2017 05:45:00 +0000</pubDate>
      
      <guid>https://zefanjas.de/wie-man-farbe-ins-terminal-bringt-ccat-und-farbige-man-pages/</guid>
      <description>&lt;p&gt;Wer häufiger auf der Kommandozeile unterwegs ist, kennt mit Sicherheit die folgenden Befehle: &lt;code&gt;cat&lt;/code&gt;  und &lt;code&gt;man&lt;/code&gt;. Diese beiden Werkzeuge sind äußerst hilfreich. Mit &lt;code&gt;cat&lt;/code&gt;  kann man schnell (kleine) Dateien anschauen oder in Kombination mit Umleitungen (Pipes) nutzen. Ohne dem kleinen und feinen Programm &lt;code&gt;man&lt;/code&gt; ist man häufig aufgeschmissen. Es ist das Werkzeug um Hilfe zu Programmen und Befehlen zu bekommen, z.B. welche Parameter es gibt oder man das Programm oder den Befehl einsetzen kann. Manchmal findet man auch hilfreiche Tipps. Verwendet man z.B. &lt;code&gt;dmesg&lt;/code&gt; in Verbindung mit dem Parameter &lt;code&gt;-T&lt;/code&gt;, zeigt es einem die genauen Zeitpunkte an! Solche Infos findet man i.d.R. in den man Pages.&lt;/p&gt;
&lt;p&gt;Das Problem: die Ausgaben von &lt;code&gt;cat&lt;/code&gt; und &lt;code&gt;man&lt;/code&gt;  sind schwarz / weiß (oder welches Farbschema man auch immer verwendet) und man kann sich schnell in der Fülle der Informationen verlieren. Ich möchte deshalb zwei Lösungen für dieses Problem vorstellen.&lt;/p&gt;
&lt;h3 id=&#34;ccat-8211-cat-mit-syntaxhervorhebungen&#34;&gt;ccat – cat mit Syntaxhervorhebungen&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;ccat&lt;/code&gt; ist &lt;code&gt;cat&lt;/code&gt;in Farbe. Es arbeitet ähnlich wie &lt;code&gt;cat&lt;/code&gt;, zeigt aber die Ausgabe mit Syntaxhervorhebungen an.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Um &lt;code&gt;ccat&lt;/code&gt; zu installieren, lädt man sich das Archiv von der [Github-Seite des Projekts][1] herunter. Das geht z.B. mit &lt;code&gt;wget&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nachdem man nun das Archiv heruntergeladen hat, entpackt man es, wechselt in das entsprechende Verzeichnis und kopiert das Programm in das Programmverzeichnis (z.B. &lt;code&gt;/usr/local/bin&lt;/code&gt; ). Folgende Befehle sind dafür nötig:&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;tar xfz linux-amd64-1.1.0.tar.gz 
sudo cp linux-amd64-1.1.0/ccat /usr/local/bin/
# optional, falls das Programm nicht ausführbar ist
sudo chmod +x /usr/local/bin/ccat

```

Mit `ccat Dateiname`  kann man seine Dateien in Farbe ausgeben. Hier z.B. die Ausgabe einer [USV / UPS Konfigurationsdatei][2]:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2245&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_146.png&#34; alt=&#34;ccat - farbige Ausage&#34; width=&#34;671&#34; height=&#34;392&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_146.png 671w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_146-300x175.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_146-462x270.png 462w&#34; sizes=&#34;(max-width: 671px) 100vw, 671px&#34; /&gt;  
Möchte man `ccat` immer verwenden, d.h. auch wenn man nur `cat` eingibt, kann man dazu einen Alias anlegen.

&lt;pre class=&#34;decode-attributes:false lang:default decode:true &#34;&gt;echo &#34;alias cat=&#39;/usr/local/bin/ccat&#39;&#34; &amp;gt; ~/.profile
source ~/.profile
```

Nun bekommt man die farbige Ausgabe auch dann, wenn man nur `cat` verwendet.

### Man Pages in Farbe

Man Pages sind eigentlich übersichtlich gestaltet, doch eine farbige Ausgabe verbessert die Orientierung noch mal deutlich. `man` verwendet als Pager entweder `less` oder `more`. Damit auch man Pages in Farbe erscheinen, sind folgende Anpassungen in der `~/.bashrc` notwendig:

```
nano ~/.bashrc
```

und dann den folgenden Inhalt einfügen:

```
export LESS_TERMCAP_mb=$&#39;\e[1;32m&#39;
export LESS_TERMCAP_md=$&#39;\e[1;32m&#39;
export LESS_TERMCAP_me=$&#39;\e[0m&#39;
export LESS_TERMCAP_se=$&#39;\e[0m&#39;
export LESS_TERMCAP_so=$&#39;\e[01;33m&#39;
export LESS_TERMCAP_ue=$&#39;\e[0m&#39;
export LESS_TERMCAP_us=$&#39;\e[1;4;31m&#39;
#damit es auch im gnome-terminal klappt
export GROFF_NO_SGR=1
```

Die Zahlen, die in der obigen Konfiguration verwendet wurden, bedeuten Folgendes:

  * 31 &amp;#8211; rot
  * 32 &amp;#8211; grün
  * 33 &amp;#8211; gelb

Und hier sind die Bedeutungen der Escape-Codes, die in der obigen Konfiguration verwendet werden.

  * 0 &amp;#8211; Reset/Normal
  * 1 &amp;#8211; fett
  * 4 &amp;#8211; unterstrichen

Damit die Änderungen wirksam werden, kann man entweder einen neuen Terminal starten oder die `~/.bashrc` neu einlesen mit:

```
source ~/.bashrc
```

Nun sehen unsere man Pages viel hübscher aus!

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2248&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_147.png&#34; alt=&#34;man page farbig&#34; width=&#34;681&#34; height=&#34;407&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_147.png 681w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_147-300x179.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_147-452x270.png 452w&#34; sizes=&#34;(max-width: 681px) 100vw, 681px&#34; /&gt; 

Alternativ kann man neben `less` oder `more` auch `most` als Pager installieren, der noch einige Features mehr unterstützt:

```
sudo apt install most
```

Damit `most` standardmäßig verwendet wird (z.B. von `man`), muss noch folgende Variable gesetzt werden (ebenfalls in der `~/.bashrc`)

&lt;pre class=&#34;&#34;&gt;export PAGER=&#34;most&#34;
```

([via][3] [tecmint][4])

 [1]: https://github.com/jingweno/ccat/releases
 [2]: https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/
 [3]: https://www.tecmint.com/cat-command-output-with-syntax-highlighting-or-color/
 [4]: https://www.tecmint.com/view-colored-man-pages-in-linux/</description>
    </item>
    
    <item>
      <title>4 Linux Schulserver im Vergleich</title>
      <link>https://zefanjas.de/4-linux-schulserver-im-vergleich/</link>
      <pubDate>Sat, 09 Dec 2017 07:35:11 +0000</pubDate>
      
      <guid>https://zefanjas.de/4-linux-schulserver-im-vergleich/</guid>
      <description>&lt;p&gt;Jede Schule steht irgendwann vor der &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-1/&#34;&gt;Entscheidung&lt;/a&gt; eine Musterlösung für ihren Schulserver zu wählen. Viele Hersteller haben diesen Markt in den letzten Jahren für sich entdeckt. Ich möchte in diesem Vergleich 4 Linux Schulserver vergleichen, die aus dem deutschsprachigem Raum stammen. International gibt es noch ein paar wenige weitere Projekte, doch der Großteil der Open Source Musterlösungen kommen aus Deutschland, Österreich oder der Schweiz.&lt;/p&gt;
&lt;p&gt;In diesem Vergleich gehe ich neben den Eigenschaften und dem Funktionsumfang, auf die Installation sowie die Bedienbarkeit ein. Wie leicht sich der Schulserver erweitern und anpassen lässt und welche Kosten für eine Schule entstehen, ist ein weiterer Schwerpunkt dieses Vergleichs.&lt;/p&gt;
&lt;h3 id=&#34;linuxmusternet&#34;&gt;linuxmuster.net&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://linuxmuster.net&#34;&gt;linuxmuster.net&lt;/a&gt; ist ein Fork der Linux-Version der paedML des LMZ Baden-Württemberg. Nachdem 2012 beschlossen wurde, die Weiterentwicklung an eine Firma abzugeben, entschlossen sich die an der Entwicklung beteiligten Lehrkräfte die Linuxmuster-Lösung unter dem Namen linuxmuster.net als Open Source Projekt weiter zu pflegen. Für die Entwicklung ist der Verein &lt;em&gt;linuxmuster.net e.V.&lt;/em&gt; verantwortlich. Die aktuelle Version 6.2 basiert auf Ubuntu 12.04 LTS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;linuxmusternet-bietet-funktionen&#34;&gt;&lt;strong&gt;linuxmuster.net bietet Funktionen:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;zentraler DNS, DHCP Server&lt;/li&gt;
&lt;li&gt;Identitätsmanagement und Fileserver&lt;/li&gt;
&lt;li&gt;intelligente schulspezifische Benutzerverwaltung&lt;/li&gt;
&lt;li&gt;„Selbstheilende Arbeitsstationen“ mit LINBO (Windows 7/10, Linux)&lt;/li&gt;
&lt;li&gt;Management über Webinterface&lt;/li&gt;
&lt;li&gt;pädagogische Funktionen (Klassenarbeitsmodus, Schüler individuell für WLAN und Intranet freischalten,  Tauschverzeichnisse)&lt;/li&gt;
&lt;li&gt;automatische und individuelle Konfiguration und Einrichtung von Computern im Netzwerk&lt;/li&gt;
&lt;li&gt;viele Erweiterungen (WLAN, Lernmanagementsysteme, …)&lt;/li&gt;
&lt;li&gt;Anbindung externer Dienste über LDAP&lt;/li&gt;
&lt;li&gt;Unterstützung von Subnetting (VLANs)&lt;/li&gt;
&lt;li&gt;integrierter Druckserver&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Installieren kann man das Grundsystems manuell oder über eine bereitgestellte XenServer Appliance. linuxmuster.net setzt auf ein Standard Ubuntu-Server auf, verwendet IPFire als Firewall-Lösung und LINBO (Linux Network Boot) zur Imageverwaltung der Rechner im Netzwerk. Nach der Installation kann man linuxmuster.net über ein Webinterface („Schulkonsole“) verwalten.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2222&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/schulkonsole-account.png&#34; alt=&#34;Schulkonsole Account&#34; width=&#34;924&#34; height=&#34;451&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/schulkonsole-account.png 924w, https://zefanjas.de/wp-content/uploads/2017/12/schulkonsole-account-300x146.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/schulkonsole-account-768x375.png 768w, https://zefanjas.de/wp-content/uploads/2017/12/schulkonsole-account-553x270.png 553w&#34; sizes=&#34;(max-width: 924px) 100vw, 924px&#34; /&gt; 
&lt;p&gt;Das Projekt bietet einen fertig eingerichteten Linuxclient (Ubuntu 16.04), den man automatisch installieren und anschließend im Netzwerk verteilen kann. linuxmuster.net lässt sich über verschiedene Pakete erweitert werden. So gibt es Pakete für WLAN-Management, Opsi, Moodle, Monitoring und viele weitere.&lt;/p&gt;
&lt;p&gt;Die Einrichtung einer kompletten Umgebung mit Linux-Clients ist mit wenigen Schritten gemacht. Auch wenn sich die meisten Aufgaben mit Hilfe des Webinterface bewältigen lassen, muss man an manchen Stellen Befehle auf der Kommandozeile ausführen. Linuxkenntnisse sind deshalb von Vorteil, wenn auch nicht unbedingt notwendig.&lt;/p&gt;
&lt;p&gt;Die &lt;a href=&#34;http://docs.linuxmuster.net&#34;&gt;Dokumentation&lt;/a&gt; von linuxmuster.net ist sehr ausführlich und neben den offiziellen Handbüchern gibt es eine aktive Community, die viele Anwendungsfälle und nützliche Erweiterungen und Anleitungen im Wiki zusammengetragen hat. Telefonischen Support gibt es kostenfrei jede Woche Dienstags, sowie auf der &lt;a href=&#34;https://ask.linuxmuster.net&#34;&gt;Supportplattform&lt;/a&gt; des Projekt. Die Community ist dabei sehr aktiv und Fragen werden oft innerhalb weniger Stunden beantwortet.&lt;/p&gt;
&lt;p&gt;Wenn man die Kommandozeile nicht scheut, hat man mit linuxmuster.net eine offene, sehr flexible und anpassbare Musterlösung, die (fast) keine Wünsche offen lässt.&lt;/p&gt;
&lt;h4 id=&#34;pro&#34;&gt;Pro&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;zentrale Verwaltung von Benutzern mit schulspezifischen Funktionen (z.B. Schuljahreswechsel)&lt;/li&gt;
&lt;li&gt;einfache Verwaltung und Anpassungsmöglichkeiten der Computer durch LINBO&lt;/li&gt;
&lt;li&gt;vorkonfigurierter Linux Client (Ubuntu LTS)&lt;/li&gt;
&lt;li&gt;sehr gute und ausführliche Dokumentation&lt;/li&gt;
&lt;li&gt;sehr aktive und hilfsbereite Community&lt;/li&gt;
&lt;li&gt;keine Lizenzkosten&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;contra&#34;&gt;Contra&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Basisbetriebssystem nicht mehr aktuell (Sicherheitsupdates werden aber durch Repository des Projekts bereit gestellt)&lt;/li&gt;
&lt;li&gt;nicht alle Aufgaben lassen sich über die Schulkonsole bewältigen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Derzeit wird an &lt;a href=&#34;https://zefanjas.de/linuxmuster-net-v7-was-wird-sich-aendern/&#34;&gt;linuxmuster.net Version 7 gearbeitet, die einige Neuerungen&lt;/a&gt; mit sich bringt (Samba 4, aktuelles Ubuntu LTS).&lt;/p&gt;
&lt;h3 id=&#34;ucsschool&#34;&gt;UCS@school&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Univention Corporate Server @ school (&lt;a href=&#34;https://www.univention.de/produkte/ucsschool/&#34;&gt;UCS@school&lt;/a&gt;) ist eine Software, um Identitätsmanagement und IT-Infrastrukturen für mehrere Schulen zu betreiben und zentral zu verwalten. Sie basiert auf der Open-Source-Plattform Univention Corporate Server, einer Enterprise-Linux-Distribution mit integriertem Identitätsmanagement und IT-Managementsystem.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Univention verfolgt ein Open Core Modell, d.h. man kann die Basisvariante des Servers frei heruntergeladen und installieren. Möchte man aber UCS@school nutzen, ist eine &lt;a href=&#34;https://www.univention.de/produkte/preise/&#34;&gt;Supportvertrag&lt;/a&gt; nötig.&lt;/p&gt;
&lt;h4 id=&#34;ucsschool-bietet-folgende-funktionen&#34;&gt;&lt;strong&gt;UCS@school bietet folgende Funktionen:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Automatisierte Importschnittstelle zum Verwalten von Benutzerkonten&lt;/li&gt;
&lt;li&gt;Interaktives, grafisches Importmodul für Benutzerkonten&lt;/li&gt;
&lt;li&gt;Schulübergreifende Benutzerkonten&lt;/li&gt;
&lt;li&gt;Single Sign-On&lt;/li&gt;
&lt;li&gt;App Center mit über 90 integrierbaren Diensten&lt;/li&gt;
&lt;li&gt;Active Directory-kompatible Domänendienste mit Samba 4&lt;/li&gt;
&lt;li&gt;Unterstützung einer Vielzahl von Clientbetriebssystemen wie Microsoft Windows, Linux und macOS&lt;/li&gt;
&lt;li&gt;Integration mobiler Endgeräte in das Schul-WLAN (RADIUS)&lt;/li&gt;
&lt;li&gt;Computerraum-, Internet- und WLAN-Steuerung&lt;/li&gt;
&lt;li&gt;Materialverteilung zum Verteilen und Einsammeln digitaler Arbeitsmaterialien&lt;/li&gt;
&lt;li&gt;Klassenarbeitsmodus zum sicheren Schreiben von digitalen Klassenarbeiten&lt;/li&gt;
&lt;li&gt;Druckermoderation zur einfachen Reduktion der Druckkosten&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Installation ist sehr einfach. Mit wenigen Schritten ist der Univention Corporate Server eingerichtet. Man kann verschiedene Dienste und Rollen auswählen, welche daraufhin installiert und konfiguriert werden (DHCP, Druckserver, …).&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2190&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_139.png&#34; alt=&#34;Univention Installer&#34; width=&#34;797&#34; height=&#34;597&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_139.png 797w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_139-300x225.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_139-768x575.png 768w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_139-360x270.png 360w&#34; sizes=&#34;(max-width: 797px) 100vw, 797px&#34; /&gt; 
&lt;p&gt;Nach der Installation kann man von einem Rechner im Netzwerk auf das Webinterface des Servers zugreifen. Im Webinterface können alle Funktionen verwaltet, Benutzer hinzugefügt oder neue Apps installiert werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2191&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_140.png&#34; alt=&#34;Univention Webinterface&#34; width=&#34;1257&#34; height=&#34;568&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_140.png 1257w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_140-300x136.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_140-768x347.png 768w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_140-1024x463.png 1024w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_140-598x270.png 598w&#34; sizes=&#34;(max-width: 1257px) 100vw, 1257px&#34; /&gt; 
&lt;p&gt;Univention bietet auch einen fertig eingerichteten Standard Linux-Client an, welcher auf Ubuntu basiert ist. Dieser Client kann zentral verwaltet und im Netzwerk per PXE-Boot verteilt werden.&lt;/p&gt;
&lt;p&gt;Die pädagogischen Funktionen konnte ich leider nicht testen, da dazu ein gültiger Supportvertrag notwendig ist.&lt;/p&gt;
&lt;p&gt;Im Gegensatz zu linuxmuster.net, Debian Edu / Skolelinux und Arktur fallen Kosten für Lizenzen und Support an. Für eine Schule mit bis zu 1000 Schülern und 200 Arbeitsstationen (mit Univention Linux-Client) fallen ca. 3100€ Lizenzkosten / Jahr an.&lt;/p&gt;
&lt;h4 id=&#34;pro-1&#34;&gt;Pro&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;sehr einfache übersichtliche Installation&lt;/li&gt;
&lt;li&gt;Verwaltung über ein übersichtliches und einfach zu bedienendes Webinterface&lt;/li&gt;
&lt;li&gt;viele Erweiterungen im Univention App-Store&lt;/li&gt;
&lt;li&gt;zentrales Management von Computern im Netzwerk (individuelle Anpassungen möglich) für Univention Corporate Client (basierend auf Ubuntu)&lt;/li&gt;
&lt;li&gt;sehr gute und ausführliche Dokumentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;contra-1&#34;&gt;Contra&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;je nach Schulgröße hohe Support bzw. Lizenzkosten&lt;/li&gt;
&lt;li&gt;keine Tools für Schuljahreswechseln in der Benutzerverwaltung&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h3 id=&#34;arktur&#34;&gt;Arktur&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Der c’t/ODS-Schulserver Arktur ist ein auf SUSE bzw. Slackware beruhender Schulserver, der ausdrücklich für die Benutzung und Betreuung durch ungeübtes Personal entwickelt wurde.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://arktur.shuttle.de/&#34;&gt;Arktur&lt;/a&gt; gibt es schon sehr lange als Linux Schulserver. Es braucht nur wenig Ressourcen und läuft deshalb auch auf älteren Systemen. Arktur existiert derzeit in zwei Version. Version 5 basiert auf Slackware Linux während Version 4 auf Suse Linux aufbaut.&lt;/p&gt;
&lt;h4 id=&#34;arktur-bietet-folgende-funktionen&#34;&gt;&lt;strong&gt;Arktur bietet folgende Funktionen:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;einfache Installation von bootbarer CD-Rom&lt;/li&gt;
&lt;li&gt;Ein-Server- oder Mehr-Server-Lösung&lt;/li&gt;
&lt;li&gt;vollständig vorkonfiguriertes Netzwerk&lt;/li&gt;
&lt;li&gt;Internet freischalten per Mausklick&lt;/li&gt;
&lt;li&gt;„Raumweises“ Freischalten des Internets mit dem Browser möglich&lt;/li&gt;
&lt;li&gt;vorkonfigurierter Kinder- und Jugendschutz&lt;/li&gt;
&lt;li&gt;Versetzung von Klassen (Schuljahreswechsel)&lt;/li&gt;
&lt;li&gt;Druckerverwaltung&lt;/li&gt;
&lt;li&gt;Für alle Client-Systeme bietet Arktur eine einheitliche Nutzerverwaltung&lt;/li&gt;
&lt;li&gt;Intranetserver&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zur Installation bietet das Projekt eine ISO-Datei an, die man zur Installation des Servers nutzen kann. Ein textbasiertes Installationsprogramm hilft bei der Einrichtung des Servers. Nach der Installation gibt es auf dem Server ein Menü, sowie ein Webinterface. Das Webinterface bildet dabei nur einen Teil der Funktionen ab. Für Administration sollte das textbasierte Menü des Servers verwendet werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2202&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Arktur-wird-ausgeführt-Oracle-VM-VirtualBox_143.png&#34; alt=&#34;Arktur Menu&#34; width=&#34;720&#34; height=&#34;400&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Arktur-wird-ausgeführt-Oracle-VM-VirtualBox_143.png 720w, https://zefanjas.de/wp-content/uploads/2017/12/Arktur-wird-ausgeführt-Oracle-VM-VirtualBox_143-300x167.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/Arktur-wird-ausgeführt-Oracle-VM-VirtualBox_143-486x270.png 486w&#34; sizes=&#34;(max-width: 720px) 100vw, 720px&#34; /&gt; 
&lt;p&gt;Insgesamt wirkt Artkur etwas „old school“. Das Projekt scheint etwas eingeschlafen zu sein, da die Mailingliste wenig aktiv ist, es kaum Änderungen im Wiki gibt und das letzte Release schon mehr als 2 Jahre zurückliegt. Dazu gibt es noch Auffälligkeiten, z.B. dass keine Umlaute in den Menüs oder bei Vor- und Nachnamen unterstützt werden.&lt;/p&gt;
&lt;h4 id=&#34;pro-2&#34;&gt;Pro&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;sehr geringe Systemanforderungen&lt;/li&gt;
&lt;li&gt;gute, wenn auch in die Jahre gekommene, Dokumentation&lt;/li&gt;
&lt;li&gt;keine Lizenzkosten&lt;/li&gt;
&lt;li&gt;einfaches Clientmanagement mittels Festplattenabbildern&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;contra-2&#34;&gt;Contra&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;kaum aktive Community&lt;/li&gt;
&lt;li&gt;letztes Release liegt schon lange zurück&lt;/li&gt;
&lt;li&gt;„old school“ – User Interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3 id=&#34;debian-edu--skolelinux&#34;&gt;Debian Edu / Skolelinux&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;DebianEdu ist eine spezialisierte Anpassung der Linux-Distribution Debian für schulische Bedürfnisse. Das mittlerweile internationale Projekt wurde in Norwegen gegründet (Skole = Schule) und liefert auf einer einzigen Installations-CD-ROM alle notwendigen Konfigurationsprofile, um ein typisches Schulnetzwerk zu betreiben. Auch ungeschulte Anwender können in wenigen Schritten sowohl einen Kommunikationsserver mit LDAP-Nutzerdatenbank, einen Terminalserver, eine Arbeitsstation oder ein Notebook als Einzelplatzrechner installieren.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://skolelinux.de/&#34;&gt;Debian Edu&lt;/a&gt; ist ein weitere Vertreter einer offenen und freien Schulserverlösung für Bildungseinrichtungen. Das Projekt vertritt der Verein Teckids e.V. in Deutschland und wird ähnlich wie linuxmuster.net von ehrenamtlichen Programmierern weltweit weiterentwickelt.&lt;/p&gt;
&lt;h4 id=&#34;debian-edu--skolelinux-bietet-folgende-funktionen&#34;&gt;&lt;strong&gt;Debian Edu / Skolelinux bietet folgende Funktionen:&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;einfache Installation&lt;/li&gt;
&lt;li&gt;vollständig konfiguriertes Netzwerk&lt;/li&gt;
&lt;li&gt;Stabilität und Sicherheit&lt;/li&gt;
&lt;li&gt;sofort einsatzfähiger Hauptserver&lt;/li&gt;
&lt;li&gt;fertig konfigurierter Terminalserver&lt;/li&gt;
&lt;li&gt;fertig eingerichtete Clients/Workstations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Installation erfolgt wahlweise über einen graphischen oder textbasierten Installer. Im graphischen Modus ist mir die Installation nicht gelungen. Doch die Installation im Textmodus klappte dann.  Während der Installation kann man sich entscheiden, welche Komponenten / Rollen man installieren möchte.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;size-full wp-image-2210&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/skolelinux-install.png&#34; alt=&#34;Skolelinux Installation&#34; width=&#34;800&#34; height=&#34;600&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/skolelinux-install.png 800w, https://zefanjas.de/wp-content/uploads/2017/12/skolelinux-install-300x225.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/skolelinux-install-768x576.png 768w, https://zefanjas.de/wp-content/uploads/2017/12/skolelinux-install-360x270.png 360w&#34; sizes=&#34;(max-width: 800px) 100vw, 800px&#34; /&gt; 
&lt;p&gt;Debian Edu ist sehr flexibel im Hinblick auf die angeschlossenen Arbeitsstationen. Es werden neben mobilen Rechnern und Arbeitsplatzrechnern auch Thin-Clients als auch Diskless-Clients unterstützt. Die Einrichtung erfolgt entweder per PXE-Boot oder der Installations-CD.&lt;/p&gt;
&lt;p&gt;Die Benutzer und einzelne Rechner werden über ein Webinterface verwaltet (GOsa²).&lt;/p&gt;
&lt;p&gt;Support gibt es durch die Community oder auch professionell durch Unternehmen.&lt;/p&gt;
&lt;h4 id=&#34;pro-3&#34;&gt;Pro&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;sehr gute Dokumentation in mehreren Sprachen&lt;/li&gt;
&lt;li&gt;einfache Installation&lt;/li&gt;
&lt;li&gt;keine Linzenzkosten&lt;/li&gt;
&lt;li&gt;zentrale Verwaltung der Clients möglich (bei Thin-Client Setup)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;contra-3&#34;&gt;Contra&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;wenn Thin-Clients benutzt werden, sind die Anforderungen für den Server recht hoch&lt;/li&gt;
&lt;li&gt;keine schulspezifischen Funktionen wie Klassenarbeitsmodus oder Aktualisierung der Benutzergruppen zum Schuljahreswechsel&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;weitere-nicht-getestete-linux-schulserver&#34;&gt;Weitere nicht getestete Linux-Schulserver&lt;/h3&gt;
&lt;h4 id=&#34;logodidact&#34;&gt;logoDIDACT&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;logoDIDACT – die Schulserverlösung (logoDIDACT) ist eine Server-Distribution für den Betrieb von informationstechnologischen Infrastrukturen an Schulen, vor allem eines pädagogischen Schulnetzes. Entwickelt wird logoDIDACT von der SBE network solutions GmbH aus Heilbronn.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;logoDIDACT verlangt mindestens 8 GB oder 16GB Arbeitsspeicher. Leider war es mir deshalb nicht möglich eine Testinstallation aufzusetzen.&lt;/p&gt;
&lt;h4 id=&#34;iserv&#34;&gt;iServ&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;IServ ist ein auf Debian basierender, kostenpflichtiger Schulserver, der den Aufbau eines Schulnetzwerks inklusive Webportal ermöglicht. Der Fokus bei der Entwicklung liegt auf einer einfachen Bedienung und Administration.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Leider war es mir nicht möglich eine Testinstallation durchzuführen ohne eine Lizenz zu kaufen. Die Kosten für unsere Beispielschule (1000 Schüler) liegen bei ca. 4000€ / Jahr.&lt;/p&gt;
&lt;h4 id=&#34;open-school-server&#34;&gt;Open School Server&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Der Open School Server (OSS) ist eine auf Basis des SUSE Linux Enterprise Servers 9 (SLES9) entwickelte GNU/Linux-Server-Distribution zum Einsatz in pädagogischen Schulnetzwerken. Er wird mit kostenpflichtigem Support und weiterführenden Serviceleistungen angeboten.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aufgrund der hohen Systemanforderungen konnte ich kein Testsystem einrichten.&lt;br&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2203&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_144.png&#34; alt=&#34;Systemanfoderungen Open School Server&#34; width=&#34;436&#34; height=&#34;443&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_144.png 436w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_144-295x300.png 295w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_144-266x270.png 266w&#34; sizes=&#34;(max-width: 436px) 100vw, 436px&#34; /&gt;&lt;/p&gt;
&lt;h3 id=&#34;zusammenfassung&#34;&gt;Zusammenfassung&lt;/h3&gt;
&lt;table id=&#34;tablepress-1&#34; class=&#34;tablepress tablepress-id-1&#34;&gt;
  &lt;tr class=&#34;row-1 odd&#34;&gt;
    &lt;th class=&#34;column-1&#34;&gt;
      Features
    &lt;/th&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;th class=&amp;quot;column-2&amp;quot;&amp;gt;
  linuxmuster.net
&amp;lt;/th&amp;gt;

&amp;lt;th class=&amp;quot;column-3&amp;quot;&amp;gt;
  UCS@School
&amp;lt;/th&amp;gt;

&amp;lt;th class=&amp;quot;column-4&amp;quot;&amp;gt;
  Arktur
&amp;lt;/th&amp;gt;

&amp;lt;th class=&amp;quot;column-5&amp;quot;&amp;gt;
  Debian Edu / Skolelinux
&amp;lt;/th&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-2 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Dokumentation
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  sehr gut (hauptsächlich deu)
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  sehr gut (deu / eng)
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  ausreichend
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  sehr gut (deu / eng)
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-3 odd&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Installation Server
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  einfach
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  einfach
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  ok
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  einfach
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-4 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Installation Client
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  sehr einfach
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  einfach
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  ok
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  einfach
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-5 odd&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Benutzerverwaltung
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  einfach inkl. speziellen&amp;lt;br /&amp;gt; Funktionen zum&amp;lt;br /&amp;gt; Schuljahreswechsel
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  einfach
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  aufwendig
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  aufwendig
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-6 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Klassenarbeitsmodus / &lt;br /&gt; Internetsperre / &lt;br /&gt; temporärer WLAN-Zugang
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  Ja / Ja / Ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  Ja / Ja / ?
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  Nein / Ja / Nein
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  Nein / optional / Nein
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-7 odd&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Fileserver
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-8 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Mailserver
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  ja
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-9 odd&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      SAMBA / LDAP
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  Samba 3 / Ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  Samba 4 / Ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  Samba 3 / Ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  Samba 4 / Ja
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-10 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Windows / Mac Clients
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  Ja / teilweise
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  Ja / Ja
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  Ja / teilweise
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  Ja / Ja
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-11 odd&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Erweiterungen
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  WLAN, Moodle, Monitoring, u.a.
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  Univention App Store (90+)
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  nein
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  aus Debian Paketquellen
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-12 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Client-Management
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  LINBO (selbstheilende&amp;lt;br /&amp;gt; Arbeitsstationen), opsi
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  Univention Corporate &amp;lt;br /&amp;gt; Client (Ubuntu), opsi
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  Ja, eigene Lösung
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  LTSP
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-13 odd&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
      Lizenzkosten
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
  keine
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
  290€/1190€/1690€ + 29,90€/Client &amp;lt;br /&amp;gt; + 1€ / Schüler&amp;lt;br /&amp;gt; alles pro Jahr &amp;lt;br /&amp;gt; und ohne MwSt.
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
  keine
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
  keine
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
  &lt;tr class=&#34;row-14 even&#34;&gt;
    &lt;td class=&#34;column-1&#34;&gt;
    &lt;/td&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;td class=&amp;quot;column-2&amp;quot;&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-3&amp;quot;&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-4&amp;quot;&amp;gt;
&amp;lt;/td&amp;gt;

&amp;lt;td class=&amp;quot;column-5&amp;quot;&amp;gt;
&amp;lt;/td&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;!-- #tablepress-1 from cache --&gt;
&lt;p&gt;Mittlerweile gibt es einige Optionen, wenn man Linux auf dem Schulserver einsetzen möchte. Die verschiedenen Lösungen unterscheiden sich v.a. in der Bedienung, zusätzlichen Features (v.a. pädagogische Funktionen, Client-Management) und in den Lizenz- und Supportkosten. Technisch verwenden die Lösungen meist die gleichen Komponenten (Samba, CUPS, SquidGuard).&lt;/p&gt;
&lt;p&gt;Wir haben uns vor ca. 1,5 Jahren &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-2/&#34;&gt;für linuxmuster.net entschieden&lt;/a&gt; und zwar aus folgenden Gründen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;das Client-Management mit LINBO ist einfach super und super einfach. Schnelle Verteilung von Images, Zurücksetzen jederzeit und das ganze geht auch offline.&lt;/li&gt;
&lt;li&gt;keine Lizenzkosten. Wir sind eine kleine Schule und hätten uns z.B. UCS@school nicht leisten können&lt;/li&gt;
&lt;li&gt;die linuxmuster.net Community. Ich habe selten eine so hilfreiche Community rund um das Thema Schul-IT erlebt. Wenn es ein Problem gibt, ist es oft innerhalb weniger Stunden gelöst.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style=&#34;text-align: center;&#34;&gt;
  &lt;strong&gt;Welche Schulserver-Lösung verwendest du und wo siehst du die größten Vor- und Nachteile?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>linuxmuster.net v7 – was wird sich ändern?</title>
      <link>https://zefanjas.de/linuxmuster-net-v7-was-wird-sich-aendern/</link>
      <pubDate>Fri, 08 Dec 2017 21:40:21 +0000</pubDate>
      
      <guid>https://zefanjas.de/linuxmuster-net-v7-was-wird-sich-aendern/</guid>
      <description>&lt;p&gt;&lt;strong&gt;[Update]&lt;/strong&gt; &lt;a href=&#34;https://www.linuxmuster.net/de/2017/12/08/linuxmuster-net-v7-wird-konkret/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Der offizielle Blogbeitrag (inkl. Bilder) ist draußen.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Seit ca. 1,5 Jahren laufen nun schon die Entwicklungen an linuxmuster.net v7. Aus meiner Sicht wird dies eines der größten und wichtigsten Releases in der Geschichte des Projekts. Bisher basiert linuxmuster.net auf Ubuntu 12.04 LTS. Auch wenn der offizielle Support abgelaufen ist, stellt linuxmuster.net regelmäßig Sicherheitsupdates bereit, solange bis Version 7 released wird. An unserer Schule &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-2/&#34;&gt;verwenden wir Version 6.2&lt;/a&gt; und sind damit &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;sehr zufrieden&lt;/a&gt; und verfolgen seitdem die Weiterentwicklung des Linux-Schulservers mit großem Interesse.&lt;/p&gt;
&lt;h3 id=&#34;neue-features&#34;&gt;Neue Features&lt;/h3&gt;
&lt;p&gt;Letztes Wochenende trafen sich die Mitglieder des linuxmuster.net e.V. (der Verein hinter der freien Musterlösung), um weiter an der neuen Version zu arbeiten. Folgende Änderungen sind für Version 7 geplant:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Basis: Ubuntu 18.04 LTS&lt;/li&gt;
&lt;li&gt;Samba v4 als Domaincontroller&lt;/li&gt;
&lt;li&gt;Wechsel der Firewall von IPFire zu OPNsense [Update2: &lt;a href=&#34;https://ask.linuxmuster.net/t/gibt-es-neues-zu-linuxmuster-7-0/338/43?u=zefanja&#34;&gt;Gründe&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Verwaltung mehrerer Schulen möglich&lt;/li&gt;
&lt;li&gt;neues Webinterface für die Schulkonsole&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diese Neustrukturierung (besonders durch Samba v4/AD) soll das benutzerbezogene Arbeiten in den Vordergrund stellen, d.h. Berechtigungen und Dienste werden in Abhängigkeit zum Benutzer vergeben. Die aktuelle Version 6.2 ist dagegen geräteorientiert, d.h. der Internetzugang wird z.B. für einen Computer anhand der MAC-Adresse gesperrt statt die Entscheidung abhängig vom angemeldeten Benutzer zu machen.&lt;/p&gt;
&lt;p&gt;Gerade der Wechsel zu SAMBA v4 ist mehr als notwendig und ermöglicht eine ganze Reihe neuer Features. Die linuxmuster.net Musterlösung muss sich damit auf jeden Fall nicht hinter anderen kommerziellen Musterlösungen wie z.B. UCS@School verstecken.&lt;/p&gt;
&lt;p&gt;Bisherige Erweiterungen, &lt;del&gt;wie z.B. der Mailserver,&lt;/del&gt; werden zukünftig nicht alle auf einem Server installiert, sondern modularisiert (der Mailserver kann sehr wohl auf dem Server installiert werden, i.d.R. aber in einem Docker-Container). Dafür wird voraussichtlich Docker zum Einsatz kommen. VLANs bzw. die Unterstützung für Subnetting ist für das erste Release von Version 7 noch nicht vorgesehen.&lt;/p&gt;
&lt;h3 id=&#34;weitere-neuerungen&#34;&gt;Weitere Neuerungen&lt;/h3&gt;
&lt;p&gt;Weiterhin ist die &lt;a href=&#34;https://ask.linuxmuster.net&#34;&gt;Community&lt;/a&gt; aktiv dabei die &lt;a href=&#34;https://github.com/linuxmuster-docs/main/tree/v7&#34;&gt;Dokumentation für Version 7&lt;/a&gt; vorzubereiten und auch das &lt;a href=&#34;https://www.linuxmuster.net/wiki/start&#34;&gt;Anwender-Wiki&lt;/a&gt; neu zu strukturieren, damit man alle relevanten Informationen leicht finden kann.&lt;/p&gt;
&lt;p&gt;Der Quellcode für die neue Version findet sich im Github-Repo des Projekts: &lt;a href=&#34;https://github.com/linuxmuster/&#34;&gt;https://github.com/linuxmuster/&lt;/a&gt;. Wer möchte, kann sich fertige VM-Images herunterladen, um die neue Version bereits zu testen. Eine &lt;a href=&#34;https://github.com/linuxmuster/linuxmuster-base7/wiki/Einrichten-eines-linuxmuster.net-7-Testsystems&#34;&gt;Anleitung&lt;/a&gt; gibt es im Entwickler-Wiki.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Drucker unter macOS in Linuxmuster hinzufügen</title>
      <link>https://zefanjas.de/drucker-unter-macos-in-linuxmuster-hinzufuegen/</link>
      <pubDate>Mon, 04 Dec 2017 11:02:18 +0000</pubDate>
      
      <guid>https://zefanjas.de/drucker-unter-macos-in-linuxmuster-hinzufuegen/</guid>
      <description>&lt;p&gt;Ein Feature von [Linuxmuster.net][1] ist der zentrale Druckserver. Druckaufträge werden zentral von einem Druckserver (CUPS) entgegengenommen und dann an den entsprechenden Drucker verteilt. Auf den [Ubuntu-Clients in unserer Schule][2] werden diese Netzwerkdrucker automatisch erkannt und eingerichtet. In der Schulkonsole kann man, wenn man möchte, noch festlegen, wer von welchem Raum aus auf welchem Drucker drucken darf.&lt;/p&gt;
&lt;h3 id=&#34;windows-und-ubuntu&#34;&gt;Windows und Ubuntu&lt;/h3&gt;
&lt;p&gt;Unter Windows 7/10 können die Netzwerkdrucker einfach über das HTTP Protokoll eingebunden werden. Wenn ich z.B. einen Drucker in CUPS (https://Server-IP:631) mit dem Namen b1-black eingerichtet habe, kann ich ihn unter Ubuntu oder auch Windows mit folgender Adresse hinzufügen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;http://Server-IP:631/printers/b1-black
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Als Treiber reicht in der Regel der „Generic Postscript“ bzw. „MS Publisher Color Printer“ Treiber. Möchte man allerdings druckerspezifische Eigenschaften nutzen, sollte man den Treiber des Herstellers für den Drucker installieren.&lt;/p&gt;
&lt;h3 id=&#34;macos&#34;&gt;macOS&lt;/h3&gt;
&lt;p&gt;Unter macOS hat das Hinzufügen über diese URL nicht immer zuverlässig funktioniert, obwohl macOS ebenfalls CUPS für die Verwaltung von Druckern verwendet. Standardmäßig kann man nur IPP und nicht HTTP als Druckprotokoll im „Drucker hinzufügen“-Dialog unter macOS auswählen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2175&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_136.png&#34; alt=&#34;Drucker macOS&#34; width=&#34;551&#34; height=&#34;471&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_136.png 551w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_136-300x256.png 300w, https://zefanjas.de/wp-content/uploads/2017/12/Auswahl_136-316x270.png 316w&#34; sizes=&#34;(max-width: 551px) 100vw, 551px&#34; /&gt; 
&lt;p&gt;Folgende Angaben sind nötig:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Address: Server-IP:631&lt;/li&gt;
&lt;li&gt;Protocol: IPP&lt;/li&gt;
&lt;li&gt;Queue: /printers/b1-black&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unten kann dann noch ein Name für den Drucker vergeben werden. MacOS ermittelt automatisch einen passenden Treiber. Bei einem unserer Netzwerkdrucker hat nur der Generic PCL Treiber funktioniert (statt des Postskript-Treibers).&lt;/p&gt;
&lt;p&gt;Falls die Fehlermeldung „&lt;em&gt;Der Drucker in Ihrem Netzwerk konnte nicht überprüft werden.&lt;/em&gt;“ kommt, sollte man schauen, ob die Adresse des Servers stimmt bzw. der DNS-Name richtig aufgelöst wird.&lt;/p&gt;
&lt;h3 id=&#34;cups-webinterface&#34;&gt;CUPS Webinterface&lt;/h3&gt;
&lt;p&gt;in macOS ist das CUPS Webinterface standardmäßig deaktiviert, d.h. wenn man versucht auf CUPS mit &lt;a href=&#34;http://localhost:631&#34;&gt;http://localhost:631&lt;/a&gt; zuzugreifen, man den Hinweis bekommt, folgendes in das Terminal einzugeben:&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;sudo cupsctl WebInterface=yes
```

Nun sollte der Zugriff klappen. Im CUPS Webinterface können Netzwerkdrucker auch über andere Protokolle wie z.B. HTTP oder HTTPS hinzugefügt werden.

### Drucken aus dem WLAN

Damit das Drucken auch aus dem WLAN oder aus einem anderen IP-Subnet klappt, muss man den **_Port 631 (TCP), Zieladresse Server-IP_** im jeweiligen Subnet freigeben.

 [1]: https://zefanjas.de/open-source-in-der-schul-it-teil-2/
 [2]: https://zefanjas.de/zugang-in-ubuntu-fuer-schueler-einschraenken-2-moeglichkeiten/</description>
    </item>
    
    <item>
      <title>Zammad LDAP Integration mit Linuxmuster.net</title>
      <link>https://zefanjas.de/zammad-ldap-integration-mit-linuxmuster-net/</link>
      <pubDate>Thu, 30 Nov 2017 13:28:53 +0000</pubDate>
      
      <guid>https://zefanjas.de/zammad-ldap-integration-mit-linuxmuster-net/</guid>
      <description>&lt;p&gt;An unserer kleinen Schule nutzen wir &lt;a href=&#34;https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/&#34;&gt;Zammad als Support-Plattform&lt;/a&gt; (derzeit nur im Bereich IT). Damit unsere Mitarbeiter und Lehrkräfte sich nicht für jede Software, die wir intern einsetzen, einen neuen Benutzernamen und Passwort merken müssen, versuchen möglichst alles gegen den LDAP-Server von Linuxmuster zu authentifizieren. Zammad bietet – neben vielen anderen Integrationen – LDAP zur Authentifizierung an. Heute möchte ich kurz zeigen, welche Schritte nötig sind, um den LDAP von Linuxmuster in Zammad zu integrieren.&lt;/p&gt;
&lt;h3 id=&#34;linuxmuster-ldap-integration-in-zammad&#34;&gt;Linuxmuster LDAP Integration in Zammad&lt;/h3&gt;
&lt;p&gt;In den Einstellungen findet man unter System → Integrationen den Punkt LDAP. Zammad fragt zuerst nach dem LDAP Server. Dort tragen wir den DNS-Namen des Linuxmuster-Servers ein, z.B. &lt;span class=&#34;lang:default decode:true crayon-inline&#34;&gt;ldaps://server.linuxmuster.lokal&lt;/span&gt; und wählt bei SSL-Verifaction „Ja“.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2170&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_135.png&#34; alt=&#34;Zammad LDAP Server&#34; width=&#34;672&#34; height=&#34;351&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_135.png 672w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_135-300x157.png 300w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_135-517x270.png 517w&#34; sizes=&#34;(max-width: 672px) 100vw, 672px&#34; /&gt; 
&lt;p&gt;Zammad versucht nun die Verbindung zum LDAP-Server herzustellen. Wenn der LDAP Server in einem anderen IP-Subnet steht als der Zammad Server, sollten man die Firewall so konfigurieren, dass die Ports für LDAP freigeben sind, sowie die DNS-Namensauflösung funktioniert. Die Ports für LDAP sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LDAP: 389 UDP/TCP&lt;/li&gt;
&lt;li&gt;LDAPS:  636 UDP/TCP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;War die Verbindung erfolgreich, so sieht man im nächsten Schritt bereits die richtige Base-DN: &lt;em&gt;dc=linuxmuster,dc=lokal&lt;/em&gt;. Ein Bind-User muss in unserem Fall nicht angegeben werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2168&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_133.png&#34; alt=&#34;Zammad LDAP Base-DN&#34; width=&#34;671&#34; height=&#34;387&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_133.png 671w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_133-300x173.png 300w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_133-468x270.png 468w&#34; sizes=&#34;(max-width: 671px) 100vw, 671px&#34; /&gt; 
&lt;p&gt; &lt;/p&gt;
&lt;h3 id=&#34;zuordnungen-und-gruppenfilter&#34;&gt;Zuordnungen und Gruppenfilter&lt;/h3&gt;
&lt;p&gt;Nun analysiert Zammad die weitere LDAP Struktur, sodass wir nun Zuordnungen und Filter festlegen können. Wenn man die Benutzer einschränken möchte (z.B. Zugriff nur für Lehrkräfte), sollte man bei User-Filter folgendes eingeben: &lt;span class=&#34;lang:default decode:true crayon-inline &#34;&gt;(&amp;amp;(objectclass=posixAccount)(gidnumber=10000))&lt;/span&gt; . Die gidnumber bekommt man folgendem Befehl heraus (&lt;em&gt;auf dem Linuxmuser-Server ausführen&lt;/em&gt;):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo smbldap-groupshow teacher
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Die Zuordnungen der LDAP-Attribute kann man i.d.R. so belassen, wie sie vorgeschlagen werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2169&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_134.png&#34; alt=&#34;Zammad LDAP Zuordnungen und Filter&#34; width=&#34;675&#34; height=&#34;932&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_134.png 675w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_134-217x300.png 217w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_134-196x270.png 196w&#34; sizes=&#34;(max-width: 675px) 100vw, 675px&#34; /&gt; 
&lt;p&gt;Nachdem man auf „Weiter“ geklickt hat, analysiert Zammad den LDAP und zeigt die Anzahl der gefunden Benutzer an. Wenn alles passt, kann man nun die Konfiguration speichern. Zammad synchronisiert regelmäßig (jede Stunde), sodass Änderungen im LDAP zeitnah in Zammad verfügbar sind.&lt;/p&gt;
&lt;h3 id=&#34;fazit&#34;&gt;Fazit&lt;/h3&gt;
&lt;p&gt;Zammad ist ein weiteres Puzzle-Stück in unsere IT-Infrastruktur an der Schule. Durch die Integration mit dem LDAP von Linuxmuster können alle ihre Tickets bequem im Auge behalten. Um ein Ticket zu eröffnen, reicht es, wenn die Kollegen sich in Zammad mit ihrem internen Schullogin anmelden oder einfach eine eMail an unsere Support-Mail schreiben. Es wir dann automatisch ein Ticket erstellt und mit dem richtigen Account (anhand der eMail aus dem LDAP) verknüpft.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Server bei Stromausfall herunterfahren – UPS, NUT &amp; Co</title>
      <link>https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/</link>
      <pubDate>Mon, 27 Nov 2017 22:29:51 +0000</pubDate>
      
      <guid>https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/</guid>
      <description>&lt;p&gt;An unserer Schule gibt es immer wieder Stromausfälle. Manchmal dauern sie nur wenige Sekunden, manchmal aber auch mehrere Stunden. Damit unsere IT-Infrakstruktur nicht darunter leidet, haben wir für unsere Server und Netzwerkgeräte eine [UPS/USV][1] installiert. Diese helfen kürzere Stromausfälle (bis zu 1 Stunde) oder Stromschwankungen zu überbrücken. Für alle längeren Ausfälle fahren wir unsere Server automatisch herunter, wenn die UPS ein kritisches Batterielevel erreicht. Dafür nutzen wir NUT ([Network UPS Tools][2]).&lt;/p&gt;
&lt;p&gt;Unser Setup besteht aus folgenden Komponenten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry Pi als UPS-Server bzw. Master&lt;/li&gt;
&lt;li&gt;Liebert GXT4 UPS&lt;/li&gt;
&lt;li&gt;Server als Clients bzw. Slaves&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;ups--usv-in-nut-auf-dem-raspberry-pi-einrichten&#34;&gt;UPS / USV in NUT auf dem Raspberry Pi einrichten&lt;/h3&gt;
&lt;p&gt;Für den Raspberry Pi verwenden wir das Standard [Raspian Stretch Lite Image][3]. Zu beachten ist, dass &lt;strong&gt;SSH&lt;/strong&gt; seit 2016 standardmäßig &lt;strong&gt;nicht mehr aktiviert&lt;/strong&gt; ist. Die verschiedenen Möglichkeiten, wie man &lt;strong&gt;SSH wieder aktiveren&lt;/strong&gt; kann, sind [hier dokumentiert][4]. Nachdem SSH nun wieder aktiviert ist, kann man sich nun auf dem Raspberry Pi einloggen (die IP des Raspberry Pi kann man z.B. mit &lt;span class=&#34;lang:default decode:true crayon-inline &#34;&gt;avahi-browse -ar&lt;/span&gt;  von einem Rechner im gleichen Netzwerk herausfinden oder man schließt einen Monitor und Tastatur an). Die IP brauchen wir später noch, deshalb ist es sinnvoll dem Raspberry Pi [eine statische IP][5] zu geben.&lt;/p&gt;
&lt;p&gt;Als nächstes installieren wir den NUT-Server mit&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;sudo apt-get install nut-client nut-server usbutils
```

Falls die UPS / USV per USB angeschlossen ist (wie in unserem Fall), kann man mit &lt;span class=&#34;lang:sh decode:true crayon-inline &#34;&gt;lsusb&lt;/span&gt; überprüfen, ob sie auch erkannt wurde. So sieht die Ausgabe auf dem Raspberry Pi aus:

&lt;pre class=&#34;lang:sh decode:true&#34;&gt;$ lsusb
Bus 001 Device 004: ID 10af:0000 Liebert Corp. UPS
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```

In der ersten Zeile sieht man, dass unsere Liebert UPS erkannt wurde.

Nun müssen wir unsere UPS / USV in der Datei _**/etc/nut/ups.conf**_ konfigurieren. Für unsere UPS sieht der Eintrag folgendermaßen aus:

&lt;pre class=&#34;&#34;&gt;[gxt4]
     driver = usbhid-ups
     port = auto
     productid = 0000
     desc = &#34;Emerson Liebert GXT 4&#34;
```

Auf der [Website der Network UPS Tools][6] findet man eine Liste mit allen unterstützen UPS /USV und mit welcher Treiber am besten funktioniert.

Als nächstes wollen wir testen, ob die Einstellungen korrekt sind der UPS Daemon mit der UPS kommunizieren kann. Dazu starten wir **upsd** mit &lt;span class=&#34;lang:default decode:true crayon-inline &#34;&gt;sudo upsdrvctl start&lt;/span&gt; . Eine erfolgreiche Ausgabe sollte ungefähr so aussehen:

&lt;pre class=&#34;lang:sh decode:true &#34;&gt;Network UPS Tools - UPS driver controller 2.7.2
Network UPS Tools - Generic HID driver 0.38 (2.7.2)
USB communication driver 0.32
Using subdriver: Belkin HID 0.16
```

NUT enthält einen kleines Programm, mit dem man die Kommunikation mit der UPS /USV testen kann. Es heißt **upsc** und gibt alle lesbaren Parameter der UPS / USV aus.

&lt;pre class=&#34;lang:sh decode:true &#34;&gt;$ upsc gxt4
Init SSL without certificate database
&lt;strong&gt;battery.charge: 100&lt;/strong&gt;
battery.charge.low: 20
battery.charge.warning: 0
battery.type: PbAc
battery.voltage: 0.0
battery.voltage.nominal: 0.0
device.mfr: Emerson Network Power
device.model: Liebert GXT4
device.serial: 1607000060AFC23
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0000
driver.version: 2.7.2
driver.version.data: Belkin HID 0.16
driver.version.internal: 0.38
ups.mfr: Emerson Network Power
ups.model: Liebert GXT4
ups.productid: 0000
ups.serial: 1607000060AFC23
&lt;strong&gt;ups.status: OL CHRG&lt;/strong&gt;
ups.vendorid: 10af
```

Nun ist unsere UPS /USV erfolgreich eingerichtet. Als nächsten richten wir den NUT Server, den UPS Monitor **upsmon** und noch zwei Benutzer für den Master und die Slaves ein.

### NUT Server konfigurieren

In der _**/etc/nut/nut.conf**_ legen wir fest, dass der Raspberry Pi unser Master ist:

&lt;pre class=&#34;&#34;&gt;MODE=netserver
```

Auf dem NUT-Server läuft der UPS Daemon (**upsd**). Er ist für die (physikalische) Verbindung zur UPS verantwortlich. Die einzelnen Clients/Slaves greifen mit Hilfe des **upsmon** auf den Status der UPS zu. So können mehrere Clients immer über den Zustand der UPS informiert sein und gegebenenfalls das Herunterfahren auslösen, wenn die UPS den Status &amp;#8222;On Low Battery&amp;#8220; liefert.

Damit unser NUT Server aus dem Netz erreichbar ist, müssen noch folgende Zeilen in der _**/etc/nut/upsd.conf**_ hinzugefügt werden (IP bitte anpassen):

&lt;pre class=&#34;&#34;&gt;LISTEN 127.0.0.1
LISTEN 192.168.1.2 #IP des Raspberry Pis
```

Als nächstes legen wir die Benutzer fest mit der sich ein Client beim Master anmelden kann (in der Datei _**/etc/nut/upsd.user**_):

```
[upsmaster]
    password = geheim
    upsmon master

[upsremote]
        password  = geheim
        upsmon slave
```

Damit **upsmon** die UPS auch überwacht, müssen wir nun noch eine letzten Eintrag in der Datei **/etc/nut/upsmon.conf** hinzufügen:

```
MONITOR gxt4@localhost 1 upsmaster geheim master
```

Damit man weiß, ob alle Dienste richtig laufen, kann man den Status des Servers als auch den lokalen Clients auf dem Raspberry Pi (denn der soll ja auch heruntergefahren werden, wenn kein Strom mehr da ist) mit folgendem Befehlen überprüfen:

```
$ sudo systemctl status nut-server
$ sudo systemctl status nut-client
```

Nun ist unser Master fertig eingerichtet und die Clients bzw. Slaves können jetzt konfiguriert werden.

### Clients / Slaves einrichten (z.B. Server, andere Computer)

Zuerst müssen auf einem Client die notwendigen Pakete installiert werden:

```
sudo apt-get install nut-client
```

Diesmal müssen wir nur zwei Dateien editieren. In der _**/etc/nut/nut.conf**_ legen wir den Modus fest:

```
MODE=netclient
```

Danach müssen wir wieder **upsmon** sagen, welche UPS er überwachen soll (in _**/etc/nut/upsmon.conf**_):

```
MONITOR gxt4@192.168.1.2 upsremote geheim slave
```

Die IP und das Passwort müssen natürlich noch angepasst werden. Bitte auch das **slave** am Ende beachten! Zuletzt noch den entsprechenden Service neu starten und überprüfen, ob alles läuft:

&lt;pre class=&#34;&#34;&gt;$ sudo systemctl restart nut-client
$ sudo systemctl status nut-client
```

Glückwunsch! Nun sollte alles eingerichtet sein, aber wie kann man testen, dass es wirklich funktioniert?

### Herunterfahren testen

Der folgende Befehl löst das Signal zum Herunterfahren aus (wie es auch im Falle eines Stromausfalls sein würde):

```
$ sudo upsmon -c fsd
```

### UPS mit Check_MK überwachen [Update]

#### Check_MK Agent einrichten

Nachdem die UPS jetzt fertig eingerichtet ist, wäre es natürlich toll, wenn wir sie auch im Monitoring überwachen können. Wir nutzen dafür Check\_MK. Clients können in Check\_MK mit dem Check_MK Agenten oder per SNMP überwacht werden. Der Agent ist in den Standard-Paketquellen von Debian und Ubuntu enthalten, weshalb wir ihn einfach mit diesem Befehl auf dem Raspberry Pi installieren können:

```
$ sudo apt-get install check-mk-agent xinetd
```

Standardmäßig ist der Check_MK Agent nicht aktiviert, sodass wir ihn noch in der Datei _**/etc/xinetd.d/check_mk**_ noch aktivieren müssen. Am Ende der Datei muss &lt;span class=&#34;lang:default decode:true crayon-inline &#34;&gt;disable = yes&lt;/span&gt;  in &lt;span class=&#34;lang:default decode:true crayon-inline &#34;&gt;disable = no&lt;/span&gt;  geändert werden. Wenn man möchte, kann man auch noch den Zugriff einschränken, indem man mit &lt;span class=&#34;lang:default decode:true crayon-inline &#34;&gt;only_from = IP-des-Check-MK-Severs&lt;/span&gt;  die Server-IPs einträgt, die die Erlaubnis haben die Daten des Check_MK Agenten abzufragen.

Als nächstes muss xinetd neu gestartet werden. Mit dem zweiten Befehl überprüfen wir, ob der Check_MK Agent richtig konfiguriert ist und läuft (IP anpassen!).

```
$ sudo service xinetd restart
$ telnet 192.168.1.2 6556
```

#### NUT Plugins

Bisher weiß der Check_MK Agent noch nichts von unserer UPS und liest die entsprechenden Daten auch nicht aus. Mit folgendem kleinen Skript können wir die Ausgabe von upsc dem Agenten mitteilen:

```
#!/bin/sh

if which upsc &amp;gt; /dev/null 2&amp;gt;&amp;1 ; then
    echo &#39;&amp;lt;&amp;lt;&amp;lt;nut&amp;gt;&amp;gt;&amp;gt;&#39;
    for ups in $(upsc -l)
    do
        upsc $ups| sed &#34;s,^,$ups ,&#34;
    done
fi
```

Diese kleine Plugin speichern wir unter _**/usr/lib/check\_mk\_agent/plugins/nut**_. Auf dem Raspberry Pi sind wird nun fertig. Es fehlen jetzt noch die Anpassungen auf dem Check_MK Server.

Auf dem Server brauchen wir ein weiteres Skript, welches die Daten des Check_MK Agenten ausliest. Dieses Skript ist umfangreicher, deshalb [verlinke ich es hier][7]. Es muss unter _**/opt/omd/versions/default/share/check_mk/checks/nut**_ gespeichert werden. Das Original-Plugin kann man hier finden: &lt;https://github.com/minodudd/check_mk-plugins&gt;. Ich habe es minimal angepasst für unsere UPS angepasst.

Wenn man nun den Raspberry Pi als neuen Host in Check_MK hizufügt, werden die Services für die UPS / USV mit angezeigt.&lt;figure id=&#34;attachment_2160&#34; aria-describedby=&#34;caption-attachment-2160&#34; style=&#34;width: 827px&#34; class=&#34;wp-caption aligncenter&#34;&gt;

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;size-full wp-image-2160&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_123.png&#34; alt=&#34;NUT Services&#34; width=&#34;827&#34; height=&#34;123&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_123.png 827w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_123-300x45.png 300w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_123-768x114.png 768w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_123-604x90.png 604w&#34; sizes=&#34;(max-width: 827px) 100vw, 827px&#34; /&gt; &lt;figcaption id=&#34;caption-attachment-2160&#34; class=&#34;wp-caption-text&#34;&gt;NUT Services&lt;/figcaption&gt;&lt;/figure&gt; 

### Fazit

NUT ist ein [weiteres tolles Open Source Projekt][8], mit dem sehr flexible Anpassungen möglich sind. In [dieser PDF][9] sind noch viele weitere (komplexe) Anwendungsszenarien enthalten. Während ich diesen Artikel schreibe, haben wir wieder einen Stromausfall und alle unsere Server sind zuverlässig heruntergefahren worden!

&amp;nbsp;

 [1]: https://de.wikipedia.org/wiki/Unterbrechungsfreie_Stromversorgung
 [2]: http://networkupstools.org/
 [3]: https://www.raspberrypi.org/downloads/raspbian/
 [4]: https://www.raspberrypi.org/documentation/remote-access/ssh/
 [5]: http://www.imakeyouintelligent.com/raspberry-raspbian-stretch-static-ip/
 [6]: http://networkupstools.org/stable-hcl.html
 [7]: https://gist.github.com/zefanja/585a96988656f24c507e573042564d8e#file-nut-plugin-server
 [8]: https://zefanjas.de/2017/11/18/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/
 [9]: http://rogerprice.org/NUT/ConfigExamples.A5.pdf</description>
    </item>
    
    <item>
      <title>5 großartige Open Source Programme, die wir in unserer Schule einsetzen</title>
      <link>https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/</link>
      <pubDate>Sat, 18 Nov 2017 05:11:00 +0000</pubDate>
      
      <guid>https://zefanjas.de/5-grossartige-open-source-programme-die-wir-in-unserer-schule-einsetzen/</guid>
      <description>&lt;p&gt;Heute möchte ich 5 Open Source Programme vorstellen, die wir verwenden und uns das Leben im IT-Alltag der Schule sehr erleichtern. Seit 1,5 Jahren wird in unserer Schule &lt;a href=&#34;https://zefanjas.de/2016/12/07/open-source-in-der-schul-it-teil-2/&#34;&gt;fast ausschließlich Open Source Software&lt;/a&gt; verwendet. Dieser Schritt hat uns in dieser kurzen Zeit bereits mehr als 5000€ an Lizenzkosten gespart. Doch das ist nicht unser Hauptgrund, warum wir Open Source Software einsetzen. Es sind folgende:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;die Freiheit und Unabhängigkeit von einem Hersteller&lt;/li&gt;
&lt;li&gt;der geringe Administrationsaufwand (Ubuntu-Client vs. Windows 10 Client)&lt;/li&gt;
&lt;li&gt;Flexibilität und Integrationsfähigkeit von Open Source Programmen, um sie in und an bestehende Strukturen anzupassen&lt;/li&gt;
&lt;li&gt;und noch einige mehr (Hardware kann länger eingesetzt werden, usw.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;linuxmusternet&#34;&gt;Linuxmuster.net&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://linuxmuster.net&#34;&gt;Linuxmuster.net&lt;/a&gt; ist in meinen Augen die beste freie Musterlösung, die es derzeit für Schulen gibt. Sie bildet das Herz unser Infrastruktur (DNS, DHCP für das LAN, LDAP, Samba, RADIUS). Es ist nicht nur die Software, die toll ist, sondern vor allem die Community um dieses Projekt herum. Ich habe selten eine so freundliche und hilfsbereite Community erlebt, die man wirklich &lt;em&gt;alles&lt;/em&gt; rund um Schule und IT fragen kann.&lt;/p&gt;
&lt;p&gt;Ein Teil von Linuxmuster.net ist LINBO, ein Mini-OS, mit dem man alle Rechner im Netzwerk bequem verwalten kann. Mit Hilfe von Images kann man alle Rechner zu jeder Zeit (auch offline) wieder in einen definierten Zustand bringen. LINBO unterstützt nicht nur Linux, sondern auch Windows. Mit Hilfe von &lt;a href=&#34;http://docs.linuxmuster.net/de/latest/howtos/use-postsync/index.html&#34;&gt;postsync-Skripten&lt;/a&gt;, kann man neben den Images die Rechner einzeln oder raumweise individuell anpassen, ohne 5 verschiedene Images pflegen zu müssen. So bekommen bei uns z.B. Lehrerrechner oder Schülerrechner in den Klassenzimmern eine andere Konfiguration als die Rechner im Computerraum.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2079&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_119.png&#34; alt=&#34;&#34; width=&#34;1169&#34; height=&#34;745&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_119.png 1169w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_119-300x191.png 300w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_119-768x489.png 768w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_119-1024x653.png 1024w, https://zefanjas.de/wp-content/uploads/2017/11/Auswahl_119-424x270.png 424w&#34; sizes=&#34;(max-width: 1169px) 100vw, 1169px&#34; /&gt; 
&lt;p&gt;Website: &lt;a href=&#34;https://linuxmuster.net&#34;&gt;https://linuxmuster.net&lt;/a&gt;&lt;br&gt;
Dokumentation: &lt;a href=&#34;http://docs.linuxmuster.net&#34;&gt;http://docs.linuxmuster.net&lt;/a&gt;&lt;br&gt;
Community: &lt;a href=&#34;https://ask.linuxmuster.net&#34;&gt;https://ask.linuxmuster.net&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;pfsense&#34;&gt;pfSense&lt;/h2&gt;
&lt;p&gt;Für unsere Firewall setzen wir &lt;a href=&#34;http://pfsense.org/&#34;&gt;pfSense&lt;/a&gt; ein. Es ist eine sehr verlässliche, stabile, leicht zu konfigurierende und übersichtliche Firewall, die viele (Enterprise)-Features von Haus aus mitbringt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Captive Portal mit RADIUS-Authentifizierung und Vouchers&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zefanjas.de/2017/11/20/pfsense-monitoring-mit-check_mk/&#34;&gt;SNMP / check_mk Integration für unser Monitoring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;High Availability und Hardware Redundancy&lt;/li&gt;
&lt;li&gt;HAProxy (Reverse Proxy), um unsere Subdomains an die richtigen Server zu verteilen&lt;/li&gt;
&lt;li&gt;Squid (Webfilter, Proxy)&lt;/li&gt;
&lt;/ul&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2078 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/pfsense.png&#34; alt=&#34;&#34; width=&#34;1580&#34; height=&#34;979&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/pfsense.png 1580w, https://zefanjas.de/wp-content/uploads/2017/11/pfsense-300x186.png 300w, https://zefanjas.de/wp-content/uploads/2017/11/pfsense-768x476.png 768w, https://zefanjas.de/wp-content/uploads/2017/11/pfsense-1024x634.png 1024w, https://zefanjas.de/wp-content/uploads/2017/11/pfsense-436x270.png 436w&#34; sizes=&#34;(max-width: 1580px) 100vw, 1580px&#34; /&gt; 
&lt;p&gt;Website: &lt;a href=&#34;http://pfsense.org/&#34;&gt;http://pfsense.org/&lt;/a&gt;&lt;br&gt;
Dokumentation: &lt;a href=&#34;https://doc.pfsense.org/index.php/Main_Page&#34;&gt;https://doc.pfsense.org/index.php/Main_Page&lt;/a&gt;&lt;br&gt;
Community: &lt;a href=&#34;https://www.pfsense.org/get-involved/&#34;&gt;https://www.pfsense.org/get-involved/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;omdcheck_mk&#34;&gt;OMD/Check_mk&lt;/h2&gt;
&lt;p&gt;Seit einem Jahr nutzen wir die &lt;a href=&#34;http://omdistro.org/&#34;&gt;Open Monitor Distribution und Check_mk&lt;/a&gt; für unser Monitoring. Es dauert ein wenig, bis man sich in der Oberfläche zurechtfindet, aber Check_mk ist sehr mächtig und man kann damit so ziemlich alles überwachen. Wir überwachen damit unsere gesamte Netzwerkinfrastruktur (Switche, Firewall, UPS, Accesspoints, Wireless Controller, Füllstände bei Druckern) als auch Server sowie einige Clients (Anzeigesystem für Infos). Weiterhin nutzen wir zusätzlich ein &lt;a href=&#34;https://github.com/rmblake/check_mk-slack&#34;&gt;Plugin&lt;/a&gt;, dass im Falle eines Problems sofort eine Benachrichtigung in unseren Monitoring-Channel schickt (derzeit nutzen wir noch Slack, sind aber aktuell dabei auf &lt;a href=&#34;http://rocket.chat/&#34;&gt;Rocket.chat&lt;/a&gt; bzw. &lt;a href=&#34;http://mattermost.org/&#34;&gt;Mattermost&lt;/a&gt; umzusteigen).&lt;/p&gt;
&lt;img decoding=&#34;async&#34; src=&#34;https://upload.wikimedia.org/wikipedia/commons/9/98/Cmk-dashboard.png&#34; alt=&#34;https://upload.wikimedia.org/wikipedia/commons/9/98/Cmk-dashboard.png&#34; /&gt; 
&lt;p&gt;Website: &lt;a href=&#34;http://omdistro.org/&#34;&gt;http://omdistro.org/&lt;/a&gt;&lt;br&gt;
Dokumentation: &lt;a href=&#34;https://mathias-kettner.de/cms.html&#34;&gt;https://mathias-kettner.de/cms.html&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;zammad&#34;&gt;Zammad&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;http://zammad.org/&#34;&gt;Zammad&lt;/a&gt; haben wir erst vor kurzem entdeckt. Es ist die Support-Plattform, die wir uns schon länger gewünscht haben. Zu Beginn haben wir OSTicket genutzt, welches auch gut funktioniert, aber keine moderne „responsive“ Oberfläche hat. Zammad bietet uns alles, was wir gern möchten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LDAP Support&lt;/li&gt;
&lt;li&gt;moderne Oberfläche&lt;/li&gt;
&lt;li&gt;viele Integrationen / Channels (eMail, Telegram, Web, …)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zur Zeit nutzen wir Zammad nur für IT-Anfragen von Mitarbeitern oder Lehrkräften. In unserer Schule haben wir noch andere Formulare für Reparaturanfragen, Klassenausflüge etc. Zukünftig sollen diese auch zu Zammad migriert werden.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter size-full wp-image-2081&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/11/dashboard.png&#34; alt=&#34;&#34; width=&#34;2000&#34; height=&#34;1239&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/11/dashboard.png 2000w, https://zefanjas.de/wp-content/uploads/2017/11/dashboard-300x186.png 300w, https://zefanjas.de/wp-content/uploads/2017/11/dashboard-768x476.png 768w, https://zefanjas.de/wp-content/uploads/2017/11/dashboard-1024x634.png 1024w, https://zefanjas.de/wp-content/uploads/2017/11/dashboard-436x270.png 436w&#34; sizes=&#34;(max-width: 2000px) 100vw, 2000px&#34; /&gt; 
&lt;p&gt;Website: &lt;a href=&#34;http://zammad.org/&#34;&gt;http://zammad.org/&lt;/a&gt;&lt;br&gt;
Dokumentation: &lt;a href=&#34;https://docs.zammad.org/&#34;&gt;Admin-Doku&lt;/a&gt; und &lt;a href=&#34;http://zammad-user-documentation.readthedocs.io/&#34;&gt;Benutzer-Doku&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;koha&#34;&gt;Koha&lt;/h2&gt;
&lt;p&gt;Seit diesem Schuljahr verwalten wir unsere Schul- und Lehrmittelbibliothek mit &lt;a href=&#34;http://koha-community.org/&#34;&gt;Koha&lt;/a&gt;. Über die Migration hatte ich &lt;a href=&#34;https://zefanjas.de/2017/07/24/umstieg-von-littera-zu-koha-teil-1/&#34;&gt;in den letzten Monaten berichtet&lt;/a&gt;. Koha ist ein sehr mächtiges Werkzeug für die Verwaltung von Bibliotheken.  Der Einstieg ist nicht so leicht, da man sich mit Themen wir Marc21 und vielen anderen bibliographischen Dingen auseinandersetzen muss, um Koha richtig zu konfigurieren. Trotzdem ist es kein Problem, nur einen Teil der vielen Features zu nutzen.&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;shrinkToFit&#34; src=&#34;https://d2.alternativeto.net/dist/s/koha_737036_full.png?format=jpg&amp;width=1600&amp;height=1600&amp;mode=min&amp;upscale=false&#34; alt=&#34;https://d2.alternativeto.net/dist/s/koha_737036_full.png?format=jpg&amp;width=1600&amp;height=1600&amp;mode=min&amp;upscale=false&#34; width=&#34;1855&#34; height=&#34;889&#34; /&gt; 
&lt;p&gt;Website: &lt;a href=&#34;http://koha-community.org/&#34;&gt;http://koha-community.org/&lt;/a&gt;&lt;br&gt;
Dokumentation: &lt;a href=&#34;https://koha-community.org/documentation/&#34;&gt;https://koha-community.org/documentation/&lt;/a&gt;&lt;br&gt;
Community: &lt;a href=&#34;https://koha-community.org/support/community-support/&#34;&gt;https://koha-community.org/support/community-support/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;fazit&#34;&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Es sehr viele tolle Open Source Projekte und ich könnte noch einige weitere aufzählen. Eine Schule, welche zu fast 100% Open Source Software mit betrieben wird, ist heutzutage kein Problem mehr. Weltweit gibt es dafür viele Beispiele. Die größten Hindernisse sehe ich persönlich in der Überzeugungsarbeit bei Mitarbeitern und Entscheidungsträgern, sowie fähigen IT-Mitarbeitern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Welche Open Source Programme setzt ihr in eurer Schule bzw. Unternehmen ein?&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Umstieg von LITTERA zu Koha – Teil 3</title>
      <link>https://zefanjas.de/umstieg-von-littera-zu-koha-teil-3/</link>
      <pubDate>Sat, 16 Sep 2017 07:18:47 +0000</pubDate>
      
      <guid>https://zefanjas.de/umstieg-von-littera-zu-koha-teil-3/</guid>
      <description>&lt;p&gt;Im [ersten][1] und im [zweiten Teil][2] dieser kleinen Serie habe ich bereits berichtet, wie wir an unserer Schule von LITTERA zu Koha umgestiegen sind. Heute möchte ich kurz zeigen, wie wir Antolin in Koha integriert haben, sodass man bei der Suche im OPAC oder Intranet sofort erkennt, wenn ein Buch bei Antolin verfügbar ist.&lt;/p&gt;
&lt;p&gt;So soll es am Ende aussehen:&lt;/p&gt;
&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2040 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081.png&#34; alt=&#34;&#34; width=&#34;789&#34; height=&#34;409&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081.png 789w, https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081-300x156.png 300w, https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081-768x398.png 768w, https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081-624x323.png 624w&#34; sizes=&#34;(max-width: 789px) 100vw, 789px&#34; /&gt; 
&lt;h2 id=&#34;antolin-daten-hinzufügen&#34;&gt;Antolin-Daten hinzufügen&lt;/h2&gt;
&lt;p&gt;Zuerst muss Koha wissen, welches Buch bei Antolin verfügbar ist und welches nicht. Dazu habe ich mir die [Antolin-Datenbank][3] bei Antolin heruntergeladen und dann, nachdem ich alle Bücher aus Koha als MARC-Datei exportiert habe, mit einem Skript mit den entsprechenden Daten angereichert. Hierzu habe ich wieder pymarc verwendet. So sieht das ganze dann aus:&lt;/p&gt;
&lt;pre class=&#34;lang:python decode:true &#34;&gt;record.add_field(
  Field(
    tag = &#39;856&#39;,
    indicators = [&#39;4&#39;,&#39;2&#39;],
    subfields = [
      &#39;n&#39;, &#39;Antolin&#39;,
      &#39;u&#39;, antolin[titles[recordID][&#34;ISBN&#34;]][&#34;url&#34;],
      &#39;w&#39;, antolin[titles[recordID][&#34;ISBN&#34;]][&#34;bookId&#34;],
      &#39;y&#39;, antolin[titles[recordID][&#34;ISBN&#34;]][&#34;title&#34;],
      &#39;z&#39;, antolin[titles[recordID][&#34;ISBN&#34;]][&#34;grade&#34;]
]))

```

Die Daten habe ich also in Feld 856 hinzugefügt. Die Antolindaten habe ich vorher aus der CSV ausgelesen und in ein Array bzw. Dict gespeichert.

## Templates anpassen

Der nächste Schritt ist, dass Koha (Opac und Intranet) wissen muss, wie es diese Daten anzeigen soll. Koha verwendet für den Opac und das Intranet XSLT-Templates. Diese kann man bearbeiten und an seine Bedürfnisse anpassen. Ich habe eine Abfrage eingefügt, welche prüft, ob das Feld 856 vorhanden ist, und dann entsprechend den Antolin-Raben zeigt sowie einen Link zum Quiz.

&lt;pre class=&#34;lang:xhtml decode:true &#34;&gt;&amp;lt;xsl:if test=&#34;$DisplayOPACiconsXSLT!=&#39;0&#39;&#34;&amp;gt;
 &amp;lt;span class=&#34;results_summary type&#34;&amp;gt;
 &amp;lt;xsl:if test=&#34;$typeOf008!=&#39;&#39;&#34;&amp;gt;
   &amp;lt;span class=&#34;results_material_type&#34;&amp;gt;
     &amp;lt;span class=&#34;label&#34;&amp;gt;Materialtyp: &amp;lt;/span&amp;gt;
     &amp;lt;xsl:choose&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader19=&#39;a&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/book_link.png&#34; alt=&#34;book&#34; title=&#34;book&#34; class=&#34;materialtype&#34;/&amp;gt; Gesamtaufnahme&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;a&#39;&#34;&amp;gt;
         &amp;lt;xsl:choose&amp;gt;
           &amp;lt;xsl:when test=&#34;$leader7=&#39;c&#39; or $leader7=&#39;d&#39; or $leader7=&#39;m&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/book.png&#34; alt=&#34;book&#34; title=&#34;book&#34; class=&#34;materialtype&#34;/&amp;gt;
           
           &amp;lt;!-- Add Antonlin image --&amp;gt;
           &amp;lt;xsl:if test=&#34;marc:datafield[@tag=856]&#34;&amp;gt;
             &amp;lt;xsl:element name=&#34;img&#34;&amp;gt;&amp;lt;xsl:attribute name=&#34;src&#34;&amp;gt;/images/Antolin16.png&amp;lt;/xsl:attribute&amp;gt;&amp;lt;xsl:attribute name=&#34;alt&#34;&amp;gt;Antolin&amp;lt;/xsl:attribute&amp;gt;&amp;lt;xsl:attribute name=&#34;class&#34;&amp;gt;Materialtyp&amp;lt;/xsl:attribute&amp;gt;&amp;lt;/xsl:element&amp;gt;
           &amp;lt;/xsl:if&amp;gt;
            Buch&amp;lt;/xsl:when&amp;gt;
           &amp;lt;xsl:when test=&#34;$leader7=&#39;i&#39; or $leader7=&#39;s&#39;&#34;&amp;gt;&amp;lt;img alt=&#34;Zeitschrift&#34; title=&#34;Zeitschrift&#34; class=&#34;materialtype&#34; src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/newspaper.png&#34; /&amp;gt; Periodikum&amp;lt;/xsl:when&amp;gt;
           &amp;lt;xsl:when test=&#34;$leader7=&#39;a&#39; or $leader7=&#39;b&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/book_open.png&#34; alt=&#34;article&#34; title=&#34;article&#34; class=&#34;materialtype&#34;/&amp;gt; Aufsatz&amp;lt;/xsl:when&amp;gt;
         &amp;lt;/xsl:choose&amp;gt;
       &amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;t&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/book.png&#34; alt=&#34;book&#34; title=&#34;book&#34; class=&#34;materialtype&#34;/&amp;gt; Buch&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;o&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/report_disk.png&#34; alt=&#34;Medienkombination&#34; title=&#34;Medienkombination&#34; class=&#34;materialtype&#34; /&amp;gt; Kit&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;p&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/report_disk.png&#34; alt=&#34;Medienkombination&#34; class=&#34;materialtype&#34; title=&#34;Medienkombination&#34; /&amp;gt;Medienkombination&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;m&#39;&#34;&amp;gt;&amp;lt;img title=&#34;Computerdatei&#34; class=&#34;materialtype&#34; alt=&#34;Computerdatei&#34; src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/computer_link.png&#34; /&amp;gt; Computerdatei&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;e&#39; or $leader6=&#39;f&#39;&#34;&amp;gt;&amp;lt;img alt=&#34;Karte&#34; title=&#34;Karte&#34; class=&#34;materialtype&#34; src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/map.png&#34; /&amp;gt; Karte&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;g&#39; or $leader6=&#39;k&#39; or $leader6=&#39;r&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/film.png&#34; alt=&#34;Visuelles Material&#34; title=&#34;Visuelles Material&#34; class=&#34;materialtype&#34; /&amp;gt; Visuelles Material&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;c&#39; or $leader6=&#39;d&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/music.png&#34; alt=&#34;Partitur&#34; class=&#34;materialtype&#34; title=&#34;Partitur&#34; /&amp;gt; Noten&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;i&#39;&#34;&amp;gt;&amp;lt;img class=&#34;materialtype&#34; title=&#34;Ton&#34; alt=&#34;Ton&#34; src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/sound.png&#34; /&amp;gt; Ton&amp;lt;/xsl:when&amp;gt;
       &amp;lt;xsl:when test=&#34;$leader6=&#39;j&#39;&#34;&amp;gt;&amp;lt;img src=&#34;https://zefanjas.de/opac-tmpl/lib/famfamfam/silk/sound.png&#34; class=&#34;materialtype&#34; title=&#34;Musik&#34; alt=&#34;Musik&#34; /&amp;gt; Musik&amp;lt;/xsl:when&amp;gt;
     &amp;lt;/xsl:choose&amp;gt;
   &amp;lt;/span&amp;gt;
 &amp;lt;/xsl:if&amp;gt;

```

Das gleiche muss man dann noch einmal für die Detailansicht machen. Die XSLT Dateien befinden sich unter **_/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/{langcode}/xslt/MARC21slim2intranetResults.xsl_**. {langcode} ist z.B. &amp;#8222;en&amp;#8220; oder &amp;#8222;de-DE&amp;#8220;.

Es empfiehlt sich eine Kopie des Standard-Templates zu machen und dieses dann anzupassen. Dazu muss der Pfad in den Systemparametern unter **XSLTResultsDisplay** noch geändert werden.

## Fazit

Bisher lief der Umzug ohne große Probleme ab. Der Schulbetrieb läuft seit einigen Wochen wieder und bisher gab es keine Beschwerden 🙂 Eine Sache haben wir noch nicht eingerichtet, welche aber noch dringend gemacht werden muss: Benachrichtigungen und Mahn- bzw. Erinnerungsnachrichten. Wenn wir das fertig eingerichtet haben, werde ich davon in einem 4. Teil berichten.

 [1]: https://zefanjas.de/2017/07/24/umstieg-von-littera-zu-koha-teil-1/
 [2]: https://zefanjas.de/2017/07/26/umstieg-von-littera-zu-koha-teil-2/
 [3]: https://www.antolin.de/all/info/titel-listen.jsp</description>
    </item>
    
    <item>
      <title>Umstieg von LITTERA zu Koha – Teil 2</title>
      <link>https://zefanjas.de/umstieg-von-littera-zu-koha-teil-2/</link>
      <pubDate>Wed, 26 Jul 2017 04:35:50 +0000</pubDate>
      
      <guid>https://zefanjas.de/umstieg-von-littera-zu-koha-teil-2/</guid>
      <description>&lt;p&gt;Wie bereits in [Teil 1][1] dieser kleinen Serie angekündigt, möchte ich heute beschreiben, wie wir neben unserer Lehrmittelbibliothek auch mit unserer Schulbibliothek von LITTERA zu Koha umgestiegen sind.&lt;/p&gt;
&lt;h3 id=&#34;backup-der-daten-aus-littera&#34;&gt;Backup der Daten aus LITTERA&lt;/h3&gt;
&lt;p&gt;LITTERA macht es einem nicht gerade leicht die aufgenommen Titel und Exemplare zu exportieren, sodass man neben den allgemeinen Angaben zum Titel auch die entsprechenden Schlagworte, Systematik oder die Barcodes in irgendeiner lesbaren Form hat. Die Backupfunktion von LITTERA legt alle Daten in einer Microsoft Access Datenbank ab, in der wiederum alle Daten in Tabellen liegen. Unter Windows ist diese mit einem Passwort geschützt, doch mit Hilfe der &lt;em&gt;mdb-tools&lt;/em&gt; (aus den Paketquellen von z.B. Ubuntu) kann man sich ohne Probleme den Inhalt dieser Datenbank anschauen.&lt;/p&gt;
&lt;p&gt;Mit &lt;em&gt;mdb-tables littera.mdb&lt;/em&gt; kann man sich die einzelnen Tabellen innerhalb der Datenbank anschauen und mit &lt;em&gt;mdb-export littera.mdb tabellenname&lt;/em&gt; den Inhalt einer Tabelle. Wenn man das ganze noch mit &lt;em&gt;sed&lt;/em&gt; verknüpft kann man mit folgendem Befehl alle Tabellen in eine CSV-Datei exportieren:&lt;/p&gt;
&lt;pre class=&#34;&#34;&gt;$ mdb-tables littera.mdb | sed &#34;s/ /\n/g&#34; | while read in; do  mdb-export littera.mdb &#34;$in&#34; &amp;gt; &#34;$in&#34;.csv; done

```

Nun hat man alle Daten in einer Form, dass man sie weiterverarbeiten kann. Folgende Tabellen sind interessant. Die Spalte &amp;#8222;Buchungsnummer&amp;#8220; dient dabei als ID in anderen Tabellen.

  * Verlag → Liste mit allen Verlagen und Ortsangabe
  * Schlagworte → Liste aller Schlagworte
  * Schlag_zuord → Zuordnung der Schlagworte zu einem Titel
  * Medienart → alle Medientypen
  * Interessenkreise → Liste der Interessenskreise
  * IntzuMed → Zuordnung Interessenkreise zu Titel
  * Systematik\_OG / Systematik\_UG → Ober- und Untergruppen der Systematik
  * Systematik_Zuordnung → Zuordnung der Systematik zu Titel
  * Sprache → Liste der verwendeten Sprachen
  * Reihe → Informationen über Reihen
  * Exemplar → Liste aller Exemplare
  * Titel → Liste aller Titel

### Vorbereiten der Daten

Mit Hilfe eines Python-Skripts habe ich diese Tabellen ausgelesen und in einem großen Dictionary zusammengefasst, sodass ich zu jedem Titel alle nötigen Daten hatte (inkl. Exemplardaten).

```
#read publisher data
with open(&#39;Verlag.csv&#39;) as exemplarfile:
    reader = csv.DictReader(exemplarfile)
    tmpItem = {}

    for row in reader:
        tmpItem = {}
        tmpItem[&#34;name&#34;] = row[&#34;Verlag&#34;]
        tmpItem[&#34;city&#34;] = row[&#34;Ort&#34;]
        publishers[row[&#34;Buchungsnummer&#34;]] = tmpItem

```

Eine weitere Schwierigkeit war der Barcode. Erst nach einiger [Recherche][2] habe ich einen Hinweis auf die Zusammenstellung des Barcodes gefunden. Ein Beispiel:

Barcode eines Exemplars: **1456000089443**

Das Muster ist folgendes: Exemplarnummer + Nullen + Bibliotheksnummer + Länge der Exemplarnummer + Prüfziffer (EAN13).

Im obigen Bespiel wäre als **1456** die Nummer unsere Exemplars, gefolgt von **Nullen**. **894** ist die Nummer der Bibliothek gefolgt von der **4**, da unsere Exemplarnummer 4stellig ist. **3** ist die Prüfnummer des Barcodes (die sich Über Division mit Rest berechnen lässt &amp;#8211; einfach mal das weite Netz danach durchsuchen).

### MAB zu MARC21

LITTERA verwendet MAB als Format für alle Titel und Exemplare und Koha dagegen MARC21. Die Daten, die nun mit Hilfe des Python-Skripts vorbereitet sind, müssen nun noch in MARC21 &amp;#8222;umgewandelt&amp;#8220; werden. Wie ich schon in Teil 1 erwähnte, ist MARC21 nicht gerade einsteigerfreundlich und relativ komplex. Es dauert etwas bis man die Struktur verstanden hat. Mir hat an dieser Stelle in Website &amp;#8222;[Understanding MARC][3]&amp;#8220; geholfen.

In MARC21 gibt es verschiedene Felder mit Unterfeldern, die dazu noch bis zu 2 Indikatoren haben. In Koha wird z.B. das Fled 952 für alle Exemplardaten verwendet. im Unterfeld &amp;#8222;p&amp;#8220;, also 952$p befindet sich z.B. der Barcode. Im Feld 245$a und 245$b werden der Titel und der Untertitel festgehalten usw. Eine genaue Auflistung in deutsch gibt es bei der [Deutschen Nationalbibliothek][4].

Mehr oder weniger zufällig bin ich auf [pymarc][5] gestoßen, eine Python-Bibliothek zum Bearbeiten von MARC21 Daten. Diese Bibliothek nimmt einem viel Arbeit ab. Ich habe also aus den vorbereiteten Daten die einzelen Einträge der MARC21-Felder erstellt und am Ende als MARC21XML exportiert. Hier ein Auszug aus dem Skript:

```
if &#34;ISBN&#34; in titles[recordID] and titles[recordID][&#34;ISBN&#34;] != &#34;&#34;:
    record.add_field(
        Field(
            tag = &#39;020&#39;,
            indicators = [&#39;&#39;,&#39;&#39;],
            subfields = [
                &#39;a&#39;, titles[recordID][&#34;ISBN&#34;]
            ]
        )
    )

```

Die Felder 000 bis 008 sind besondere Felder in MARC21, deren Bedeutung ich noch nicht 100%ig verstanden habe. Auf jeden Fall ist der &amp;#8222;Leader&amp;#8220; ein sehr wichtiges Feld, weil in ihm wichtige Daten über z.B. die Medienart festgehalten sind. Deshalb hier noch ein Auszug, wie ich den Leader konstrukiert habe (anhand des Medientyps):

```
l = list(record.leader)
```

l\[5] = &amp;#8217;n&amp;#8216; l[6] = &amp;#8218;a&amp;#8216; l[7] = &amp;#8218;m&amp;#8216; l[9] = &amp;#8218;a&amp;#8216; l[17] = &amp;#8218;7&amp;#8216; l[18] = &amp;#8218;a&amp;#8216; if titles[recordID\]\[&amp;#8222;type&amp;#8220;\]\[&amp;#8222;short&amp;#8220;] in (&amp;#8222;BU&amp;#8220;, &amp;#8222;ZS&amp;#8220;): l[6] = &amp;#8218;a&amp;#8216; l[7] = &amp;#8218;m&amp;#8216; if titles[recordID\]\[&amp;#8222;type&amp;#8220;\]\[&amp;#8222;short&amp;#8220;] in (&amp;#8222;CD&amp;#8220;, &amp;#8222;TC&amp;#8220;, &amp;#8222;HB&amp;#8220;): l[6] = &amp;#8218;j&amp;#8216; if titles[recordID\]\[&amp;#8222;type&amp;#8220;\]\[&amp;#8222;short&amp;#8220;] in (&amp;#8222;KA&amp;#8220;): l[6] = &amp;#8218;e&amp;#8216; if titles[recordID\]\[&amp;#8222;type&amp;#8220;\]\[&amp;#8222;short&amp;#8220;] in (&amp;#8222;VI&amp;#8220;, &amp;#8222;DV&amp;#8220;, &amp;#8222;DI&amp;#8220;, &amp;#8222;FI&amp;#8220;, &amp;#8222;OV&amp;#8220;): l[6] = &amp;#8218;g&amp;#8216; if titles[recordID\]\[&amp;#8222;type&amp;#8220;\]\[&amp;#8222;short&amp;#8220;] in (&amp;#8222;CR&amp;#8220;, &amp;#8222;FD&amp;#8220;): l[6] = &amp;#8218;m&amp;#8216; if titles[recordID\]\[&amp;#8222;type&amp;#8220;\][&amp;#8222;short&amp;#8220;] in (&amp;#8222;SP&amp;#8220;, &amp;#8222;SO&amp;#8220;): l[6] = &amp;#8218;o&amp;#8216; record.leader = &amp;#8222;&amp;#8220;.join(l)


Ein korrekter Leader ist wichtig, da ansonsten in Koha kein Medientyp bei der Suche oder in den Details angezeigt werden.

Nun müssen die Daten noch von MARC21XML nach MARC21 umgewandelt werden. Koha kann zwar auch MARC21XML importieren, aber da hatte ich immer Probleme mit der Kodierung, was sich in Problemen mit Umlauten und Sonderzeichen gezeigt hat. Also habe ich mit Hilfe von [MarcEdit][6] die Daten vom einem Format in das nächste gebracht.&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2038 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/07/MARC-Tools_080.png&#34; alt=&#34;&#34; width=&#34;716&#34; height=&#34;569&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/07/MARC-Tools_080.png 716w, https://zefanjas.de/wp-content/uploads/2017/07/MARC-Tools_080-300x238.png 300w, https://zefanjas.de/wp-content/uploads/2017/07/MARC-Tools_080-624x496.png 624w&#34; sizes=&#34;(max-width: 716px) 100vw, 716px&#34; /&gt;

Soweit so gut. Jetzt können die Daten in Koha importiert werden. Allerdings möchte ich gern, dass man bei einer Suche oder in der Detailansicht sieht, ob ein Buch bei Antolin verfügbar ist oder nicht. Antolin ist eine Leseplatform für Kinder, wo man zu einem gelesenen Buch ein Quiz machen kann und dafür Punkte bekommt. Ungefähr so soll es am Ende aussehen:

&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;aligncenter wp-image-2040 size-full&#34; src=&#34;https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081.png&#34; alt=&#34;&#34; width=&#34;789&#34; height=&#34;409&#34; srcset=&#34;https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081.png 789w, https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081-300x156.png 300w, https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081-768x398.png 768w, https://zefanjas.de/wp-content/uploads/2017/07/Auswahl_081-624x323.png 624w&#34; sizes=&#34;(max-width: 789px) 100vw, 789px&#34; /&gt; 

Wie Antolin integriert werden kann und wie man die Ansicht der Ergebnisse anpassen kann, darüber werde ich im [dritten Teil][7] berichten.

 [1]: https://zefanjas.de/2017/07/24/umstieg-von-littera-zu-koha-teil-1/
 [2]: http://www.ktp.at/mikrobib/doc/bc/BarEtiB.pdf
 [3]: http://www.loc.gov/marc/umb/
 [4]: http://d-nb.info/996983511/34
 [5]: https://github.com/edsu/pymarc
 [6]: http://marcedit.reeset.net/
 [7]: https://zefanjas.de/2017/09/16/umstieg-von-littera-zu-koha-teil-3/</description>
    </item>
    
    <item>
      <title>Umstieg von LITTERA zu Koha – Teil 1</title>
      <link>https://zefanjas.de/umstieg-von-littera-zu-koha-teil-1/</link>
      <pubDate>Mon, 24 Jul 2017 14:33:56 +0000</pubDate>
      
      <guid>https://zefanjas.de/umstieg-von-littera-zu-koha-teil-1/</guid>
      <description>&lt;p&gt;Seit ca. einem Jahr setzen wir an unserer Schule vermehrt auf Open Source Software (ich hatte &lt;a href=&#34;https://zefanjas.de/2016/12/05/open-source-in-der-schul-it-teil-1/&#34;&gt;hier&lt;/a&gt; und &lt;a href=&#34;https://zefanjas.de/2016/12/07/open-source-in-der-schul-it-teil-2/&#34;&gt;hier&lt;/a&gt; dazu berichtet). Ein großer Vorteil dieser Entscheidung ist die gewonnene Freiheit und Anpassungsfähigkeit. Manche würden das vielleicht auch als Nachteil sehen 🙂 Als Schule hat man bestimmte Anforderungen und Gegebenheiten und so kommt es bei der Auswahl einer Software nicht nur auf die „Features“ an, sondern v.a. auch, wie gut man diese Software konfigurieren, anpassen und in die vorhandene Infrastruktur einbinden kann. Da sehe ich bei Open Source Software einen riesen Vorteil gegenüber kommerzieller Software.&lt;/p&gt;
&lt;h2 id=&#34;ausgangslage&#34;&gt;Ausgangslage&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;http://koha-community.org/&#34;&gt;Koha&lt;/a&gt; ist so ein Beispiel. Vor einem Jahr haben wir eine neue Software für unsere Lehrmittelbibliothek gesucht. Unsere damalige Lösung (Littera LM) war veraltet und lief nicht sehr zuverlässig. Jedes Jahr gab es bei der Schulbuchausgabe und -rückgabe Probleme, sodass Bücher nicht mehr eindeutig zugeordnet werden konnten usw. Von Koha hatte ich schon mal gehört und wusste, dass auch andere Schulen in der großen weiten Welt diese Lösung verwendeten. Eine neue VM mit Koha war schnell eingerichtet – nicht zuletzt dank des sehr ausführlichen Handbuchs (inkl. Checklist)!&lt;/p&gt;
&lt;p&gt;Neben dem Einrichten von Koha mussten wir uns v.a. auch mit Marc21 auseinandersetzten – dem bibliografischem Framework, welches Koha standardmäßig verwendet. Marc21 ist ein sehr komplexes Format, was am Anfang nicht gerade übersichtlich erscheint. Man kann sehr viele Details darin abbilden – leider, so erscheint es mir, ist dies aber auf verschiedenen Wegen möglich 🙂 Ich habe einiges gelernt über Marc21, aber bin längst kein Experte darin. Für unsere Schulbücher brauchten wir zum Glück nur die wesentlichsten Daten, welche auch gut abgebildet werden konnten. Unsere damalige Bibliothekarin erarbeitete noch eine Systematik und entsprechende Schlagwörter.&lt;/p&gt;
&lt;p&gt;Dann konnte es auch schon mit der Katalogisierung der einzelnen Schulbücher und Lehrmaterialien losgehen. Über die Sommerferien wurden alle Schulbücher neu aufgenommen, mit Barcodes versehen und für die Schulbuchausgabe vorbereitet. Die Schulbuchausgabe nach den Ferien lief erfreulicherweise ohne große Probleme und (fast) zum ersten Mal war klar, wem welches Buch ausgeliehen wurde 🙂&lt;/p&gt;
&lt;p&gt;Ein großer Vorteil von Koha gegenüber von LITTERA ist, dass es webbasiert ist und somit von jedem Rechner im Netzwerk aus bedient werden kann. Das hat uns die Arbeit und Einrichtung sehr erleichtert.&lt;/p&gt;
&lt;p&gt;Nach einem Jahr mit Koha sind wir sehr zufrieden und auch die Schulbuchrückgabe lief ohne Probleme ab. Koha ist insgesamt sehr mächtig und kann viel viel mehr, als man für eine kleine Lehrmittelbibliothek braucht. Es dauert etwas bis man sich in Koha und v.a. Marc21 eingearbeitet hat, aber das Handbuch ist da eine große Hilfe. Die Möglichkeiten der Konfiguration sind sehr vielfältig und man kann eigentlich alles an die eigenen Bedürfnisse anpassen.&lt;/p&gt;
&lt;h2 id=&#34;umstieg-wagen&#34;&gt;Umstieg wagen!&lt;/h2&gt;
&lt;p&gt;Nach der erfolgreichen Schulbuchrückgabe haben wir uns kurz zusammengesetzt und überlegt, ob wir nicht auch unsere eigentliche Schulbibliothek auf Koha umstellen sollten. Der Aufwand für so eine Umstellung ist natürlich um einiges größer, da eine Schulbibliothek ganz andere Anforderungen hat, als eine Lehrmittelbibliothek. Wir wollten auch den Bestand nicht neu etikettieren müssen, sondern – falls möglich – die vorhandene Struktur und Barcodes übernehmen können. Dazu kommen dann noch Ausleihkonditionen, Mahngebühren, E-Mail-Benachrichtigungen, Antolin-Integration usw. In den letzten zwei Wochen habe ich mich mal an dieses Projekt gewagt. Davon möchte ich euch bald in einem weiteren Artikel berichten (Update: &lt;a href=&#34;https://zefanjas.de/2017/07/26/umstieg-von-littera-zu-koha-teil-2/&#34;&gt;Teil 2&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS: Wer nutzt noch Koha in seiner Bibliothek?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The Open Organization</title>
      <link>https://zefanjas.de/the-open-organization/</link>
      <pubDate>Sat, 17 Dec 2016 12:44:31 +0000</pubDate>
      
      <guid>https://zefanjas.de/the-open-organization/</guid>
      <description>&lt;p&gt;Die Open Source Bewegung ist in den letzten Jahrzehnten stark gewachsen und das Internet wäre ohne Open Source nicht denkbar. Oft nimmt man Open Source nur im Zusammenhang &lt;a href=&#34;https://zefanjas.de/tag/open-source/&#34;&gt;mit Software&lt;/a&gt; war, dabei geht es Open Source um wesentlich mehr. Es ist die Beschreibung von einer neuen Art der Zusammenarbeit, des Umgangs miteinander und dem offenen Fluss bzw. die Verfügbarkeit von Informationen. So haben sich die Prinzipien, die für Open Source Projekte ganz normal sind, immer weiter auch in andere Teile der Gesellschaft ausgebreitet. Ein Beispiel dafür ist „The Open Organization“.&lt;/p&gt;
&lt;h1 id=&#34;was-ist-8222the-open-organization8220&#34;&gt;Was ist „The Open Organization“&lt;/h1&gt;
&lt;p&gt;In seinem Buch „&lt;em&gt;&lt;a href=&#34;https://www.redhat.com/en/explore/the-open-organization-book&#34;&gt;The Open Organization: Igniting Passion and Performance&lt;/a&gt;„&lt;/em&gt; schreibt &lt;a href=&#34;https://en.wikipedia.org/wiki/Jim_Whitehurst&#34;&gt;Jim Whitehurst&lt;/a&gt; (CEO von Redhat), wie die Anwendung von Open Source Prinzipien wie Offenheit, Authentizität, Transparenz die Art und Weise des Zusammenarbeitens aber auch des Managements ändert. Das Buch richtet sich dabei in erster Linie an Leiter in einer Organisation, die Verantwortung für Menschen tragen. Jim Whitehurst definiert eine &lt;a href=&#34;https://opensource.com/resources/what-open-organization&#34;&gt;offene Organisation&lt;/a&gt; folgendermaßen:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;„an organization that engages participative communities both inside and out—responds to opportunities more quickly, has access to resources and talent outside the organization, and inspires, motivates, and empowers people at all levels to act with accountability.“&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Im Prinzip geht es darum Mitarbeitern in einer Organisation den richtigen Kontext zu schaffen, sodass sie ihr volles Potenzial entfalten können. Dazu zählt die offene und transparente Zugang zu Informationen, das inklusive Treffen von Entscheidung (also kein top → down) sowie die Ausrichtung der Leidenschaft der Mitarbeiter an den Zielen und dem Zweck der Organisation. Es geht nicht um Einfluss, der mit einem Titel auf einer Visitenkarte zu tun hat, sondern jede Idee, egal vom wem sie in der Organisation auch gekommen sein mag, kann die beste sein. Offenheit, ehrliches Feedback, Zuhören, Ernstnehmen und zusammen an einer Vision arbeiten – darum geht u.a. es bei „The Open Organisation“. Eigentlich sehr grundlegende Eigenschaften des ehrlichen und offenen Zusammenarbeitens 🙂&lt;/p&gt;
&lt;h1 id=&#34;open-decision-framework&#34;&gt;Open Decision Framework&lt;/h1&gt;
&lt;p&gt;Im September bin ich zum ersten mal auf das &lt;a href=&#34;https://opensource.com/open-organization/open-decision-framework&#34;&gt;Open Decision Framework&lt;/a&gt; aufmerksam geworden. Es ist Teil der offenen Organisation und beschreibt den Weg, wie man transparente und inklusive Entscheidungen trifft. Den „Quelltext“ für dieses Framework findet man auf &lt;a href=&#34;https://github.com/red-hat-people-team/open-decision-framework&#34;&gt;Github&lt;/a&gt;. Dort kann man sich das Framework als PDFs, odp oder Markdown-Datei herunterladen.&lt;/p&gt;
&lt;p&gt;Das Buch kann ich nur empfehlen und es hat so einige Denkanstöße bei mir ausgelöst, die ich gern in meiner Rolle als Leiter umsetzen bzw. ausprobieren möchte.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Open Source in der Schul-IT – Teil 2</title>
      <link>https://zefanjas.de/open-source-in-der-schul-it-teil-2/</link>
      <pubDate>Wed, 07 Dec 2016 14:14:19 +0000</pubDate>
      
      <guid>https://zefanjas.de/open-source-in-der-schul-it-teil-2/</guid>
      <description>&lt;p&gt;Wie bereits in &lt;a href=&#34;http://zefanjas.de/2016/12/05/open-source-in-der-schul-it-teil-1/&#34;&gt;Teil 1&lt;/a&gt; angekündigt, möchte ich heute kurz beschreiben, welche Open Source Software wir sowohl im Serverraum als auch auf den Clients einsetzen.&lt;/p&gt;
&lt;h1 id=&#34;serverraum&#34;&gt;Serverraum&lt;/h1&gt;
&lt;p&gt;Letzten Sommer haben wir einen neuen Server gekauft (Dell R430, 32GB), auf dem der Großteil der neuen Infrastruktur läuft. Dabei setzen wir den &lt;a href=&#34;http://xenserver.org/&#34;&gt;XenServer&lt;/a&gt; als Hypervisor ein. Zur Zeit laufen da 3 VMs drauf, zu denen ich gleich noch was schreibe.&lt;/p&gt;
&lt;p&gt;Kern unserer Infrastruktur (DNS, DHCP, File shares, Print Server, …) bildet die freie &lt;a href=&#34;http://linuxmuster.net&#34;&gt;Linuxmuster.net&lt;/a&gt; (kurz: LMN) Musterlösungen für Schulen. Ich hatte diese Lösung bereits in einem &lt;a href=&#34;http://zefanjas.de/2016/04/06/von-fxos-bis-freeipa/&#34;&gt;früheren Artikel&lt;/a&gt; erwähnt. Die LMN ist ein Projekt, welches ursprünglich als Musterlösung vom Land Baden-Württemberg entwickelt wurde und seit ca. 2012 in einem eigenständigen Verein weitergeführt wird. Die LMN bietet viele Funktionen und ist sehr individuell anpassbar. Kernstück der LMN ist ein SAMBA 3 Server und eine OpenLDAP Datenbank, in welcher alle Benutzer (Schüler, Lehrkräfte) gespeichert werden.&lt;/p&gt;
&lt;p&gt;Ein weiterer wesentlicher Bestandteil ist LINBO (Linux Network Boot), eine Art Bootmanager für die Clients. Mit LINBO lassen sich einfach Images von einer Installation erstellen und dann sehr einfach auf andere Rechner übertragen (kann auch automatisiert werden). Dabei werden sowohl Linux als auch Windows-Clients unterstützt. Wir setzen z.B. Windows 10 und Ubuntu 16.04 in unserem Computerraum ein. Über die Schulkonsole kann man alle wichtigen Funktionen bequem über ein Webinterface verwalten.&lt;/p&gt;
&lt;p&gt;Die LMN nimmt einem Administrator sehr viel Arbeit ab, da sie für Schulen optimiert ist. Leider ist die LMN hauptsächlich in Deutschland bekannt. Es ist ein tolles Projekt und hat eine unglaublich &lt;a href=&#34;http://www.linuxmuster.net/about/hilfsbereit/&#34;&gt;aktive und hilfsbereite Community&lt;/a&gt;! Wem es interessiert, kann auch mal einen Blick in die &lt;a href=&#34;http://docs.linuxmuster.net/&#34;&gt;Dokumentation&lt;/a&gt; werfen. Ich denke, dass ich noch mal in einem extra Blogpost über die LMN berichten werde, da es hier sonst den Rahmen sprengt.&lt;/p&gt;
&lt;p&gt;Als Firewall setzen wir eine SG4860-1U mit &lt;a href=&#34;http://pfsense.org/&#34;&gt;pfSense&lt;/a&gt; ein. Darüber läuft auch unser Captive Portal (für Lehrkräfte, Mitarbeiter und Schüler). Schön ist, dass man bei pfSense z.B. auch Vouchers für das Captive Portal direkt mit dabei hat.&lt;/p&gt;
&lt;p&gt;Neben der VM für die LMN, haben wir eine weitere für einen Ubuntu 16.04 Server. Diesen nutzen wir als LXD-Host, da (fast) alle anderen Webanwendungen, die wir verwenden in einem LXD-Container laufen. LXD/LXC ist ebenfalls ein super Projekt und es ist einfach klasse aus vielen verschiedenen Gründen (sehr leicht zu bedienen, flexibel, schnell, man kann Container lokal erstellen und dann auf irgendeinen Host schieben, Snapshots, zfs, …).&lt;/p&gt;
&lt;p&gt;Folgende Anwendungen laufen bei uns in Containern:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://snipeitapp.com/&#34;&gt;SnipeIT&lt;/a&gt; → Asset Management / Inventar&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://osticket.com/&#34;&gt;OSTicket&lt;/a&gt; mit eMail- und Slack-Integration → Helpdesk&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://mathias-kettner.com/check_mk.html&#34;&gt;OMD/Check_MK&lt;/a&gt; → Monitoring&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://dokuwiki.org/&#34;&gt;Dokuwiki&lt;/a&gt; → Wiki&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Weiterhin haben wir noch eine VM in der ein Debian läuft und &lt;a href=&#34;http://koha.org/&#34;&gt;Koha&lt;/a&gt; – eine Bibliothekssystem (derzeit nutzen wir es für die Lehrmittel, die Schulbibliothek nutzt noch ein anderes System).&lt;/p&gt;
&lt;h1 id=&#34;clients&#34;&gt;Clients&lt;/h1&gt;
&lt;p&gt;Im (neuen) Computerraum läuft bei Windows 10 und Ubuntu 16.04. Beim Start können die Schüler auswählen (in LINBO), welches System sie starten wollen. Sowohl Windows als auch Ubuntu sind mit folgender Software ausgestattet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LibreOffice&lt;/li&gt;
&lt;li&gt;Firefox&lt;/li&gt;
&lt;li&gt;Geogebra&lt;/li&gt;
&lt;li&gt;GIMP&lt;/li&gt;
&lt;li&gt;Scribus&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://musescore.org/&#34;&gt;MuseScore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://lmms.io/&#34;&gt;LMMS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;und noch einiges mehr.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hier gibt es noch eine schöne &lt;a href=&#34;http://technology.pennmanor.net/linux-software-for-schools/&#34;&gt;Liste mit Open Source Anwendungen in der Schule&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Auf unseren älteren Systemen kommt nur Ubuntu zum Einsatz.&lt;/p&gt;
&lt;h1 id=&#34;fazit&#34;&gt;Fazit&lt;/h1&gt;
&lt;p&gt;Von den gesetzten Zielen wurden einige durch die oben genannten Lösungen bereits erreicht. Durch den Einsatz dieser Open Source Lösungen konnten die Kosten im Bereich IT im Vergleich zu einer Windows basierten Lösungen stark gesenkt werden (auch wenn der Vergleich der Lizenzkosten sicher nicht vollständig und umfassend ist).&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Open Source in der Schul-IT – Teil 1</title>
      <link>https://zefanjas.de/open-source-in-der-schul-it-teil-1/</link>
      <pubDate>Mon, 05 Dec 2016 11:16:23 +0000</pubDate>
      
      <guid>https://zefanjas.de/open-source-in-der-schul-it-teil-1/</guid>
      <description>&lt;figure id=&#34;attachment_1995&#34; aria-describedby=&#34;caption-attachment-1995&#34; style=&#34;width: 214px&#34; class=&#34;wp-caption alignleft&#34;&gt;&lt;img loading=&#34;lazy&#34; decoding=&#34;async&#34; class=&#34;size-medium wp-image-1995&#34; src=&#34;http://zefanjas.de/wp-content/uploads/2016/12/IMG_20160804_153103-e1480936407853-214x300.jpg&#34; alt=&#34;Fund aus der Vergangenheit&#34; width=&#34;214&#34; height=&#34;300&#34; /&gt;&lt;figcaption id=&#34;caption-attachment-1995&#34; class=&#34;wp-caption-text&#34;&gt;Fund aus der Vergangenheit&lt;/figcaption&gt;&lt;/figure&gt; 
&lt;p&gt;Seit über einen Jahr beschäftige ich mit mit dem Thema „Open Source in der Schul-IT“. Einige Gedanken habe ich bereits &lt;a href=&#34;http://zefanjas.de/2016/04/06/von-fxos-bis-freeipa/&#34;&gt;hier&lt;/a&gt; oder &lt;a href=&#34;http://zefanjas.de/2016/04/09/virtualisierung-virtuelle-maschine-oder-container/&#34;&gt;hier&lt;/a&gt; festgehalten. Alles begann damit, dass unser Vertrag, den wir mit einem externen Dienstleister hatten, ausgelaufen ist und wir nun vor der Frage standen, ob wir die vorhandene Infrastruktur weiterlaufen lassen oder (teilweise) „von Null“ beginnen. In diesem ersten Teil möchte ich kurz die Ausgangslage beschreiben und welche Ziele wir uns für eine verbesserte IT-Infrastruktur gesetzt haben.&lt;/p&gt;
&lt;h1 id=&#34;ausgangssituation&#34;&gt;Ausgangssituation&lt;/h1&gt;
&lt;p&gt;Bis letztes Schuljahr war unsere IT recht einfach gestrickt. Es gab einen alten Windows 2003 Server, der als Benutzerverzeichnis für das Captive Portal diente (&lt;a href=&#34;https://www.untangle.com&#34;&gt;Untangle&lt;/a&gt; – UTM). Die Lizenz für diese Firewall kostete uns bei unserem Dienstleister ca. 80€ im Monat und wir wollten deshalb die Lizenz nach Ablauf des Service-Vertrags nicht verlängern (wir sind eine recht kleine Schule mit ca. 150 Schülern).&lt;/p&gt;
&lt;p&gt;Der Rest der Infrastruktur ist schnell beschrieben: Ein paar Linksys WRT54GL spannten ein WLAN-Netz auf. In einem Neubau hatten wir zusätzlich einen Cisco Wireless-Controller mit 4 LightWeight-Accesspoints. Bis zum letzten Sommer gab es noch einen Computerraum mit 12 Rechnern (AMD X2, 2GB, 500GB, Windows XP im Kioskmodus), welche schon einige Jahre auf dem Buckel hatten. Im Serverraum gab es noch ein paar Cisco-Switche, den genannten alten Dell Server, auf dem der Windows 2003 Server lief, ein Dell Rechner für die UTM und zwei UPS. Insgesamt eigentlich eine gute Basis, die allerdings etwas in die Jahre gekommen war.&lt;/p&gt;
&lt;p&gt;Ein großer Nachteil war weiterhin, dass alle Arbeitsplätze (Schüler, Lehrkräfte, Mitarbeiter) einzeln administriert wurden. Wenn eine Lehrkraft z.B. eine neue Software wünschte, musste man von Rechner zu Rechner gehen und die Software einzeln installieren. Backups wurden in mehr oder wenigen Abständen manuell erstellt. Weiterhin gab es keine getrennten Netze, d.h. LAN und WLAN nutzten den gleichen IP-Bereich. In Deutschland sicher undenkbar, hier bei uns durchaus Realität 🙂&lt;/p&gt;
&lt;p&gt;Auf allen Client lief Windows XP oder Windows 7 als Betriebssystem. Zusätzlich kam/kommt MS Office in der Verwaltung zum Einsatz. Im Computerraum wurden aber bereits einige Open Source Anwendungen eingesetzt: GIMP, LibreOffice, Scribus, Firefox. Weiterhin setzen wir uns unserer Schule stark &lt;a href=&#34;https://www.google.com/edu/&#34;&gt;GSuite for Education&lt;/a&gt; ein.&lt;/p&gt;
&lt;h1 id=&#34;ziele-für-eine-neue-schul-it&#34;&gt;Ziele für eine neue Schul-IT&lt;/h1&gt;
&lt;p&gt;Folgende allgemeine Ziele haben wir uns für eine verbesserte IT-Infrastruktur gesetzt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Schaffung einer zuverlässigen und sicheren IT-Infrastruktur&lt;/li&gt;
&lt;li&gt;Segmentierung des Netzwerks in verschiedene Bereiche (z.B. öffentlich, päd. Netzwerk, Verwaltungsnetzwerk)&lt;/li&gt;
&lt;li&gt;Ausbau und Erweiterung des bisherigen WLAN-Netzes&lt;/li&gt;
&lt;li&gt;möglichst weitgehende Automatisierung aller Komponenten / Clients&lt;/li&gt;
&lt;li&gt;Zentrale Benutzerverwaltung und Authentifizierung / Autorisierung&lt;/li&gt;
&lt;li&gt;automatisierte Backups&lt;/li&gt;
&lt;li&gt;Reduzierung der Lizenzkosten durch Einsatz von Open Source-Software&lt;/li&gt;
&lt;li&gt;Ausbau Computerraum&lt;/li&gt;
&lt;li&gt;Erstellen eines Disaster Recovery Plans&lt;/li&gt;
&lt;li&gt;“Selbstheilende Arbeitsstationen” → schnelle Einrichtung und Reparatur von Arbeitsstationen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Im &lt;a href=&#34;http://zefanjas.de/2016/12/07/open-source-in-der-schul-it-teil-2/&#34;&gt;nächsten Teil&lt;/a&gt; möchte ich beschreiben, wie wir in den letzten Monaten diese Ziele angegangen sind (bisher haben wir noch nicht alle Ziele umgesetzt) und welche Open Source Software dabei im Serverraum, aber auch auf den Clients zum Einsatz kommt.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The Open Schoolhouse</title>
      <link>https://zefanjas.de/the-open-schoolhouse/</link>
      <pubDate>Tue, 04 Oct 2016 06:28:30 +0000</pubDate>
      
      <guid>https://zefanjas.de/the-open-schoolhouse/</guid>
      <description>&lt;p&gt;Vor wenigen Tagen ist das Buch von Charlie Reisinger „&lt;a href=&#34;http://theopenschoolhouse.com/&#34;&gt;The Open Schoolhouse&lt;/a&gt;“ erschienen. Man es es im Kindle oder Nook-Store kaufen bzw. als PDF frei herunterladen. Das Buch liest sich sehr gut und beschreibt die Reise eines Schulbezirks in den USA hin zu Open Source Software in der Schule. Dabei geht es nicht nur um &lt;a href=&#34;https://zefanjas.de/open-source-in-der-schul-it-teil-2/&#34;&gt;Software im Server-Raum&lt;/a&gt; oder im Klassenzimmer, sondern viel mehr um Anwendung der Open-Source-Prinzipien im Unterrichtsalltag.&lt;/p&gt;
&lt;p&gt;Dabei geht es z.B. um die Fragen, ob sich Prozesse, wie sie für Open Source Entwickler ganz normal sind, auch im Klassenraum anwenden lassen oder ob es als Schule möglich ist, erfolgreich Open Source einzusetzen. Im zweiten Teil des Buches geht es um die Planung und Einführung eines 1:1 – Programms, d.h. 1 Laptop für jeden Schüler.&lt;/p&gt;
&lt;p&gt;Ich kann das Buch nur empfehlen. RedHat Films hatte bereits vor einigen Monaten eine Kurzdoku über genau diese Schule gedreht: The Power of Open in Education&lt;/p&gt;
&lt;p&gt;In dem Zusammenhang möchte ich noch kurz auf das &lt;a href=&#34;https://github.com/opensourceway/open-decision-framework/&#34;&gt;Open Decision Framework&lt;/a&gt; hinweisen, welches zeigt, wie man Open Source Prinzipien auf Entscheidungsprozesse anwenden kann.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
