Archiv der Kategorie: Schule

phpList

Im Moment geht es hier nur noch um Schule … Anyway. Mit dem Umzug unseres Mailservers weg von 1und1 auf unsere eigene Kiste (und damit dem Umstieg von dienstlichen Mailweiterleitungen auf Mailkonten – siehe die Artikel zu Horde 1 2) muss auch die Mailingliste umziehen. Mailman wollte ich meinen Kollegen (und vor allem mir, was den Support angeht) nicht zumuten, weshalb ich auf phpList kam. Das Ding kann zwar nur Newsletter und ist gegenüber Mailinglisten blind – aber anders verwenden wir die bestehenden Listen so oder so nicht.

Die Installation lief glatt – was ich als sperrig und wenig intuitiv empfand, war die Konfiguration. Für die Verarbeitung von Mailbounces wollte das Ding zuerst nicht mit meinem Dovecot über STARTTLS sprechen, so dass am Ende nur ein

$bounce_mailbox_port = „110/pop3/novalidate-cert“;

trotz offiziell signiertem Zertifikat half.

Ein Listenarchiv bringt phpList leider nicht mit. Man kann sich ein solches aber mit Hilfe des Downloads und der Beschreibung auf der folgenden Seite auch für eine aktuelle Programmversion nachziehen:

http://www.alangeorge-photography.com/listCode_027.php

Irgendwo in den Beschreibungsseiten von phpList fand ich dann noch einen Codeschnipsel für den Link zum Newsletter-Archiv: In der index.php finden:

printf(‚<p><a href=“./?p=unsubscribe“>%s</a></p>‘,$strUnsubscribeTitle);

und direkt darunter ergänzen um:

// custom code – start
if (isset($strArchiveTitle))
$TitleArchive = $strArchiveTitle;
else
$TitleArchive = „Newsletterarchiv ansehen“;
printf(„\r\n“ . ‚<br><h2>Archiv</h2> <p><a href=“archive.php“>%s</a></p>‘, $TitleArchive);
// custom code – end

ZwangsGnuPG

Hier überlegte ich noch, ob wir nicht an der Schule ein Horde mit Verschlüsselungsfunktion für die Kollegen einrichten sollten und wollte dies zuerst ausführlich mit ein paar Unerschrockenen testen. Soweit ist es noch nicht – aber die nächsten Schritte stehen an … und da fiel der Blick auch wieder zurück auf mögliche Alternativen und Erweiterungen.

Daniel und ich diskutierten die Möglichkeit einer Autoverschlüsselung von E-Mails, wenn diese an Kollegen gerichtet sind. Technisch ginge das z.B. mit:

  • GNU Anubis (ein message submission daemon). Der wird aber seit ein paar Jahren wohl nicht mehr weiter entwickelt;
  • DJIGZO (ein Gateway), das im Prinzip recht interessant aussieht, aber leider nur S/MIME und encrypted PDF kann;
  • gpg-mailgate (ein Postscript Filter) und dessen Forks, der das leisten würde, was wir diskutierten, aber noch ziemlich frisch ist;

Für uns schien zuerst gpg-mailgate der vielversprechendste Kandidat zu sein – aber noch kann gpg-mailgate kein Multipart. Die Anhänge würden demnach unverschlüsselt durchrutschen und genau da stecken bei uns die relevanten Informationen drin.

Dazu kommen noch weitere Kritikpunkte an der Idee an sich:

  1. jede Nachricht zu verschlüsseln ist eigentlich overkill, weil wir bei Mails von Kollege1 an Kollege2 lediglich lokal einen copy machen;
  2. Es nervt, jedes mal ein extra Passwort für den Key einzugeben, nur um eine harmlose Mail zu lesen. Das führt zur Ablehnung des Gesamtsystems und zu verdammt kurzen Passwörtern. Diesen Weg könnten wir nur beschreiten, wenn wir auch automatisch entschlüsseln (also der Kontologin den Private Key gleich mit auspackt);
  3. Es entlastet zwar – aber damit verhindert es auch, dass man sich mit dem Thema Datenschutz überhaupt auseinander setzt. Es ist demnach anti-aufklärerisch … und wenn dann alle Kollegen gar nicht mehr denken, weil ja alles automatisch passiert, dann denken sie auch nicht mehr an das Thema, wenn sie eine Mail an Eltern verfassen. Datenschutz ist eben auch und vor allem eine Kopffrage.

Im Moment will ich lieber keinen ganz so radikalen Schritt. Wir sollten auf den Kopf unserer akademisch gebildeten Kollegen setzen, das Thema damit warm halten und lieber riskieren, dass mal die eine oder andere Mail unverschlüsselt durchläuft – also auf unserem Mailserver von /home/mailuser/1 nach /home/mailuser/2 kopiert wird.

Ein fester Slot „Datenschutz“ in jeder (zweiten?) GLK, evtl. noch nett verpackt als Rätselaufgabe zu einem aktuellen Fall, halte ich im Moment für zielführender und wirksamer.

Wenn wir dann eines Tages doch noch auf die Default-Verschlüsselung umsteigen wollen, dann könnte Horde selbst schon genug können, sofern den Kollegen klar ist, warum sie dies tun sollen.

hordeeinstellunggpg

In den Einstellungen von Webmail kann bei Horde im Bereich „Erstellen“ hinterlegt werden, dass jede neue Nachricht standardmäßig unterschrieben und verschlüsselt werden soll. Das kann ein Nutzer dann zwar wieder abknipsen … aber dann haftet er auch. Oder man nagelt diese Einstellung in der Datenbank über die Konfiguration von Horde selbst fest, statt sich mit mail-gateway und Freunden gleich die nächste zu betreuende Technik an Bord zu holen.

Horde5 mit GnuPG für die Schule?

Auf der Suche nach einer einfach zu handhabenden Lösung für den Austausch von verschlüsselten Mails innerhalb des Kollegiums fiel der Blick auf Horde. Dieses bietet nicht nur volle Groupwarefunktionalität, ist auch auf mobilen Endgeräten bedienbar und kann sich in andere Systeme (Kalender, Adressbuch etc. auf dem Smartphone oder einem lokalen Mailclient) integrieren – es kann GnuPG im Webmailer nutzbar machen. Den durchaus vorhandenen DAUs im Kollegium bliebe so die Installation von Thunderbird, Gnu4Win, Enigmail und die lokale Schlüsselerzeugung ohne Anleitung erspart. Das klang erst einmal nicht schlecht.

Was mir nicht so gefiel, war die Idee, dass dann die Private Keys der User auf einem Server rumliegen. Konkret: Horde speichert diese in der MySQL-DB ab. Schutz für den Key ist demnach nur durch den Schutz der MySQL-Installation selbst und durch das Passwort auf dem Key gegeben.

Klingt heikel. Ist auch heikel.

Andererseits muss man im Auge haben, dass im Kollegium Trojaner auf schlecht gewarteten Client-Systemen, Adressbücher bei MS, Apple, Google & Co sowie unverschlüsselte Mails mit Noten und pädagogischen Bemerkungen zu einzelnen (selbstverständlich mit vollem Namen genannten) Schülern insgesamt betrachtet die größere Gefahr für den Datenschutz darstellen, als ein zentraler Server im Intranet, der gut gewartet und gepflegt wird.

Das ist gleichzeitig aber wieder die Krux an der Sache: Die zentrale Bereitstellung eines solchen Verschlüsselung-Dienstes ist im Grunde anti-aufklärerisch. Die Kollegen werden an der Übernahme von Verantwortung gehindert, oder diese wird zumindest beschränkt auf Passwortsicherheit. Die Aufgabe, sich „seines eigenen Verstandes zu bedienen“ wird delegiert auf die Netzwerker.

An denen bleibt hierbei nicht wenig hängen: Wenn ich diesen Weg zu Ende gehe, darf ich ein dickes Päckchen administrativer Arbeit schultern: Benutzerverwaltung, Backups, Updates, Logfile-Analyse, Speicherplatzverwaltung … und vor allem Sicherheitsassessments. Gerade bei einem Mailserver darf man dies nicht unterschätzen, würde ein solcher doch weitaus mehr als schulische Moodles, WordPresse oder DokuWikis etc. zum Kernbereich der Netzinfrastruktur zählen. Ein “schon wieder tut alles gar nicht” ginge voll auf die Kappe der Netzer. Keine schöne Vorstellung, sich dies für Umme und ein paar warme Worte bei der Einführung des Systems an’s Bein zu binden.

Ausprobieren wollte ich es trotzdem – und so kam Horde auf eine meiner Maschinen. Ich orientierte mich bei der Installation weitgehend an dieser Anleitung:

http://www.linuxmuster.net/anwenderwiki:webapps:horde:installhorde5ubuntu

Einige Anmerkungen zu derselben:

1. Eine Anbindung an den LDAP des Schulservers wollte ich nicht haben. Zu schnell gibt ein Kollege für alle Schüler sichtbar sein Passwort am Beamer ein … und vergisst dann, dieses zügig zu ändern. Ich habe Horde deswegen für Benutzer eingerichtet, die im System selbst zu Hause sind, also ein lokales Benutzerkonto haben, das sie über SSH (abgesichert durch Keys) erreichen können. Passwortänderungen sind demnach ausdrücklich nicht über Horde selbst möglich. IMP erledigt damit innerhalb von Horde die Authentifizierung und kein LDAP.

Das bringt den Vorteil mit, dass ich die Passwortsicherheit besser kontrollieren kann – und den Nachteil, dass die wenigsten Kollegen ihre Passwörter selbst ändern können. Die Vorteile überwiegen bei meinem Kollegium hier ganz klar die Nachteile. Vor allem: Wer ändert schon seine Passwörter 🙁 Bei dieser Lösung mach ich das dann – und zwar zwangsweise für die Kollegen gleich mit. Der Rhythmus ist mir noch nicht klar, aber einmal im Jahr wäre cool.

2. Die Anbindung von Gollem, dem Filemanager von Horde, an Samba unterblieb bei meiner Installation auf einen dezidierten Server. Das ist einerseits klar, ist doch der Schulserver-Samba nicht über’s Netz zu erreichen – andererseits aber auch wieder problematisch, weil nun für die Kollegen drei Wege für die Dateiablage offen stehen: a) den Dateimanager im Mailserver-Horde benutzen b) den Dateimanager im Schulserver-Horde für den Zugriff auf’s Home benutzen c) die ownCloud Installation der Schule benutzen.

Vielfalt und Freiheit führt in meinem Kollegium immer zu Problemen. Andererseits: Da kaum jemand überhaupt jemals die genannten Dienste verwendet hat, kann ich mit dem Nachteil leben. Und: Wenn ich hiermit Probleme im Alltag der nicht völlig hoffnungslosen Fälle erlebe, dann klemm ich Gollem im Mailserver-Horde schlicht ab.

3. Die oben verlinkte Installationsanleitung trägt schon arg dick auf und sollte sich auf ungefähr die folgenden Schritte – nach dem Anlegen einer Datenbank – verschlanken lassen. Ich muss das in einer zweiten Installation noch einmal verifizieren – aber für den Moment kann man sich ja, sollte etwas Entscheidendes fehlen, wieder an der Anleitung bei linuxmuster.net orientieren:

apt-get install php5-tidy php5-memcache memcached php5-auth-pam php5-intl php5-sasl

pear channel-discover pear.horde.org

pear install horde/horde_role

pear run-scripts horde/Horde_Role

mkdir /var/www/horde

pear install -a -B horde/webmail

webmail-install

chown root:www-data /var/www/horde/static

chmod 775 /var/www/horde/static

Die Apachekonfiguration ist noch anzupassen und der Apache im Anschluss neu zu starten:

Alias /horde /var/www/horde

<Directory /var/www/horde>

Options Indexes FollowSymLinks MultiViews

AllowOverride All

AcceptPathInfo On

Order allow,deny

allow from all

</Directory>

Nag fiel bei mir gleich auf die Nase und warf beim Anlegen von neuen Tasks Fehlermeldungen zu einer nicht gefundenen rampage.php aus. Die Rewrite Anweisungen in der .htaccess im Horde Stammverzeichnis wollten nicht recht wirken – also legte ich mir den folgenden Eintrag direkt in die Apache Konfiguration

<Location /horde>RewriteEngine on

RewriteBase /horde

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ rampage.php [QSA,L]

</Location>

Da löste sich der Knoten gründlich.

Das Ticketsystem Whups habe ich gleich wieder runter geworfen – es lief eh nicht rund und zog zu viele Betapakete aus PECL Repositories mit sich.

4. Der Mailserver ist eine VM. Das ist ja erst einmal ein Vorteil, weil sich so Backups leichter durchführen lassen und Updates mir nicht alles zerreißen können – aber virtuelle Maschinen bringen keine Entropy auf die Pfanne, um zügig 2048er-GnuPG-Keys zu erzeugen. Das dauerte halbe Ewigkeiten – aber man kann sich von haveged [1] helfen lassen.

5. Es ist nicht nur die Erzeugung der Keys, die mit den Kollegium durchexerziert werden muss, und deren Nutzung im Alltag. Kaum einer hat sich je mit Verschlüsselung beschäftigt, so dass schon grundlegende Konzepte nicht verstanden werden. Alice and Bob werden in der Schule geläufige Namen werden müssen.

Dazu kommt die Einrichtung von Horde selbst, auf dass später alles rund läuft (z.B. Pubkey als Anhang verschicken, keine HTML Mails etc. pp.).

Der Schulungsaufwand für die zentrale Mailserver-Lösung ist alles in allem nicht zu unterschätzen. Ich behaupte mal: Selbst für eine Gruppe eher erfahrener Kollegen, die nicht alle 5 Minuten aus Versehen den Browser zumachen und dann „ich war’s nicht“ heulen, dauert die Ersteinrichtung mindestens einen Nachmittag (3-4 Schulstunden).

Jetzt beginne ich die Arbeit mit zwei geeigneten Kandidaten, werte dann die Erfahrungen aus und erweitere die Gruppe langsam und Schritt für Schritt. Ich selbst kann dann meine Einführungen optimieren und gewinne – wenn dann ein Verfahren fest steht – Multiplikatoren im Lehrerzimmer. Bei den ersten Schritten finde ich so auch heraus, ob Horde überhaupt der richtige Weg für meine Kollegen ist. Wenn ich nämlich für die Einführung in Horde mit allem drum und dran ähnlich viel Zeit verbrate wie für eine Einführung in Thunderbird + Enigmail, dann kann ich mir den administrativen Overkill sparen und habe am Ende eindeutig sicherere Systeme, die jederzeit noch in Richtung S/MIME erweitert werden können.

LM 6.1

Auf linuxmuster.net liegt seit ein paar Tagen die Beta der nächsten Version als VM für alle möglichen VM Hostsysteme. Ich hab das hier mal unter VirtualBox auf meinem Laptop für eine Konfiguration ausprobiert, die nur green und red als Interfaces nutzt.

Die heruntergeladenen Archive lokal mit tar xvfJ archiv.tar.xz entpacken und dann in VBox über das Menü /Datei /Appliance importieren in VBox … naja, eben: importieren. Dann erfolgen einige Anpassungen.

Da ich auf meinem, doch etwas älteren, Laptop als VMHost nur 4GB RAM habe, gab ich der Firewall die voreingestellten 256MB, dem Server 1GB und dem Client unter Lubuntu 512MB. Da musste mein Laptop zwar schwer schnaufen – und auch der virtualisierte Server – aber es läuft, wenn man Lubuntu 12.04 von der Alternate CD installiert .

Firewall

lm6-1_ipfire - Ändern_001

Die MAC Adresse der Netzwerkkarte, die später die rote Schnittstelle werden soll, habe ich hinten mit einer 0 versehen und lasse diese NATen.

lm6-1_ipfire - Ändern_002

Die Schnittstelle, die später mal grün sein soll, versah ich am Ende der MAC mit einer 1 und stellte diese auf „Internes Netzwerk“.

lm6-1_ipfire - Ändern_003

Blau will ich hier auf dem Laptop zum Testen nicht nutzen, also hab ich das „Kabel“ schlicht entfernt und die Schnittstelle nicht angeschlossen.

lm6-1_ipfire [wird ausgeführt] - Oracle VM VirtualBox_004

Beim Hochfahren des IPCop wählte ich nicht den voreingestellten PAE Kernel. Die Firewall kommt mit 256 MB RAM. Da erschien mir das nicht sinnvoll zu sein.

lm6-1_ipfire [wird ausgeführt] - Oracle VM VirtualBox_005

IPFire motzt dann beim Hochfahren, dass es seine Schnittstellen nicht finden kann, was an dieser Stelle nicht weiter stört.

lm6-1_ipfire [wird ausgeführt] - Oracle VM VirtualBox_006

Hat man sich als root und dem Passwort muster einmal eingeloggt, kann man sich durch den Setup-Prozess von IPFire hangeln, den ein setup auslöst.

Die bestehende Zuordnung der Netzwerkkarten muss man zuerst entfernen und dann neu vornehmen. Die vorher vergebenen MAC Adressen helfen bei der Orientierung.

Ein Ping ins Netz zeigt nach Beendigung des Setups, ob alles geklappt hat.

Server

Das Netzwerkinterface des Servers konfiguriert man sich in VBox wie die grüne Schnittstelle des IPFire als „Internes Netzwerk“.

Im Detail ist der Setup-Prozess im Handbuch für Version 6.0 beschrieben.

Nach dem Hochfahren des Servers einloggen (linuxadmin, muster), etwas Zeit verstreichen lassen, bis der Server Kontakt über die VBox interne Schnittstelle zum IPFire erhalten hat und dann mit ping testen, ob die Namensauflösung klappt. Dann mit sudo apt-get update ; sudo apt-get dist-upgrade evtl. vorhandene Updates einspielen und nun – nach einem Wechsel in eine Root-Shell mit sudo su – – das eigentliche Setup beginnen durch Eingabe von

linuxmuster-setup –first

Das kann dauern. LM6.1 zieht nun alle möglichen Pakete aus dem Netz, bis der eigentliche Installationsdialog beginnt (zu diesem siehe den Link zum Handbuch weiter oben).

Subnetting hab ich nicht aktiviert. Ich will vor allem mit Linbo spielen, weil wir schulintern gerade einige Höllenprobleme mit einer zickigen Hardwareklasse (Lenovo T410) haben. Alle anderen Einstellungen habe ich deswegen so übernommen, wie vom Installer als default vorgesehen.

Clients

Die Netzwerkkarten von virtuellen Clients werden wie die grüne Schnittstelle am IPFire bzw. wie die Serverschnittstelle als Internes Netzwerk konfiguriert.

Will man echte Clients testen, dann muss man sich mehr Arbeit machen. In diesem Fall legt man sich auf dem Host-System eine Netzwerkbrücke auf einer unkonfigurierten physischen Schnittstelle ethX an und verpasst dieser eine passende interne IP (siehe Netzwerksetup Homeserver NXT). Statt mit dem Internen Netzwerk von VBox verbindet man dann IPFire und Server mit dieser Bridge.

Ich weiß nicht, ob ich das extra schreiben muss, aber das klappt nur mit Netzwerkschnittstellen am Host in die man ein Kabel stecken kann. WLAN Interfaces sind außen vor. Wer WLAN virtualisiert und keine AccessPoints hierzu nutzen will, kann sich mit USB WLAN Sticks helfen, die man als USB Gerät an die VM durchreicht.

An diese physikalische Schnittstelle des Hosts hängt man einen Switch und an den Switch wiederum den physikalischen Client. Voila.

Sofern die MAC Adressen gleich bleiben, kann man dann zwischen dem physikalischen, ge-bridge-ten Netz und dem VBox internen Netz an den ausgeschalteten VMs hin- und her-schalten wie man will.

Thunderbird Kalender Rettung

Ralfs Thunderbird Kalender hatte von einem Tag auf den anderen alle Termine vergessen und egal was wir hier versuchten – ich konnte diese nicht mehr herstellen. Dazu kam, dass Thunderbird obendrein auch alle Spracheinstellungen ignorierte. Also kopierten wir zuerst das Profil weg

mv .thunderbird .thunderbird_bak

und starteten Thunderbird neu. Plötzlich sprach er wieder Deutsch und auch der Kalender funktionierte. Der Fehler schien demnach irgendwo im Profilverzeichnis versteckt zu sein …. leider war aber nicht heraus zu finden, wo genau.

Mir erschien es an diesem Punkt einfacher zu sein, Thunderbird neu einzurichten statt viel Zeit in Reparaturversuche zu stecken. Wir beendeten also TB und aktivierten das alte Profil wieder

rm -r .thunderbird

mv .thunderbird_bak .thunderbird

und installierten einen lokalen Mailserver

sudo apt-get install dovecot-postfix

Der lokale Mailserver wurde in TB als neues E-Mail Konto eingerichtet (benutzername@localhost) und In diesen lokalen Mailserver schoben wir dann auch alle Mails aus TB. Die Mails waren damit vor unseren weiteren Spielchen mit TB sicher.

Die gesammelten Adressen hätten wir an dieser Stelle ebenfalls exportieren sollen … was aber leider vergessen wurde. Ralf hat das – denke ich – inzwischen auch schon gemerkt 🙁

TB wurde beendet und sein Profilverzeichnis wieder nach .thunderbird_bak geschoben.

Im nächsten Schritt wurde TB dann erneut neu gestartet. Im Kalender wurde ein einzelner Termin eingetragen, um diesen zu initialisieren. Dann wurde TB wieder beendet.

Aus dem alten Profilverzeichnis

~/.thunderbird_bak/xyz-und-so.default/calendar-data/

wurde dann die local.sqlite in den neuen Profilordner unter

~/.thunderbird/xyz-und-so.default/calendar-data/

kopiert. Die durch die Termineintragung (s.o.) im neuen Profilordner vorzufindende local.sqlite muss hierbei überschrieben werden.

Leider waren wir jetzt nicht am Ende angelangt – denn: Die local.sqlite enthält zwar die eigentlichen Kalenderdaten, aber leider nur in Bezug auf eine bestimmte Kalender-ID. In unserem Fall auf die Kalender-ID aus dem alten Profilordner, so dass diese ID im nächsten Schritt noch geändert werden musste. Das geht mit dem Programm sqlitebrowser recht einfach, den man sich wie folgt an Bord holt:

sudo apt-get install sqlitebrowser

Die für den nächsten Schritt benötigte ID des neuen Kalenders besorgt man sich aus der Datei prefs.js im aktuellen .thunderbird Profilpfad. Diese sieht ungefähr so aus:

calid

Mit dem sqlitebrowser wurde die ~/.thunderbird/xyz-und-so.default/calendar-data/local.sqlite geöffnet und die folgenden SQL Befehle im Tab „Execute SQL“ ersetzten dann die ID des Kalenders in der local.sqlite

update cal_attendees set cal_id=’ID des Kalenders‘;

update cal_events set cal_id=’ID des Kalenders‘;

update cal_properties set cal_id=’ID des Kalenders‘;

update cal_recurrence set cal_id=’ID des Kalenders‘;

Thunderbird wurde dann wieder gestartet … und siehe da: Zwar waren die Zuordnungen zu bestimmten lokalen Kalendern verschwunden, aber wenigstens die Termine selbst waren alle wieder da.

VirtualBox, rdesktop und ssh Tunnel

sshtunnel_rdesktop

Folgendes Setup: In der Schule steht ein VMHost auf dem einige VMs mit Hilfe von VirtualBox virtualisiert wurden. Der VMHost ist von Außen nur über SSH und dort nur über Port 2233 zu erreichen.

Säße man direkt am VMHost würde man die rdesktop-Sitzung mit dem folgenden Befehl aufrufen:

rdesktop localhost:3389

Diese Sitzung will man nun auf dem Laptop zu Hause haben. Also braucht man einen SSH Tunnel in die Schule, über den man sich die rdesktop Sitzung nach Hause holt.

Ein derartiger Aufbau des SSH Tunnels erfolgt wie hier angegeben, wenn man auch lokal die rdesktop Session auf Port 3389 sehen will:

ssh -p 2233 benutzer@vmhost.schule.tld -L 3389:localhost:3389

Lokal macht man dann (in einem zweiten Terminal) die rdesktop Session auf, wie wenn man direkt am VMHost sitzen würde: rdesktop localhost:3389

Roaming

In der Schule hatten wir auf unseren Ubuntu-Laptops das Problem, dass diese sich nur mit einem AP verbanden … danach wollten sie mit allen APs mit gleich lautender SSID keinen Kontakt aufnehmen. Ursache war, dass sich der Network Manager die MAC des APs merkt. Das kann man aber ändern. In

/etc/NetworkManager/system-connections/ap_name

legt dieser nicht nur das AP-Passwort von Systemverbindungen unverschlüsselt ab, sondern schreibt die MAC des APs mit rein. Löscht man die Zeile mit der MAC raus, ist in der Schule jeder AP mit dem gleichen Namen ein Partner für den Laptop. Voila.

Ethercalc

ec

Auf BeeHive [1, 2] habe ich schon hierzu geschrieben: Meine Schule hat nun neben einem Etherpad-Lite-Server auch einen Ethercalc-Server zur gemeinsamen Arbeit an Tabellen im Netz.

Die Installation verlief tatsächlich so einfach wie auf den Seiten der Programmierer angegeben.

Was mich zuerst zögern ließ, war die Frage, wo ich den auf unserem Testserver hinlegen sollte und wie sich das Programm im Dauerbetrieb dann verhält. Ich entschied mich nun für die Installation von Ethercalc in den Benutzeraccount des schon vorhandenen Etherpad-Lite-Servers. Also nochmal zum Nachturnen hier mein Vorgehen.

Zuerst in den Benutzeraccount von etherpad wechseln:

sudo su – etherpad -s /bin/bash

Dann in

/opt/etherpad/local

ein Unterverzeichnis einrichten

mkdir ethercalc

cd ethercalc

Das Programm installieren

npm install ethercalc

und nachsehen, ob es läuft:

./node_modules/ethercalc/bin/ethercalc

Im Browser unter der eigenen Domain auf Port 8000 sollte dann der Ethercalc-Server wie hier  auftauchen: https://ethercalc.org/

Mit STRG C schießt man diesen Prozess wieder ab und meldet sich mit

exit

aus dem Benutzeraccount von Etherpad ab.

Dann – wieder als root auf dem System unterwegs – legt man sich ein Startskript für Ethercalc an. Das kann so einfach wie das hier sein:

cd /etc/initd

vi ethercalc.conf

und in diese Datei sowas wie das hier pasten:

description „ethercalc“

start on started networking

stop on runlevel [!2345]

env ECHOME=/opt/etherpad/local/ethercalc

env ECLOGS=/var/log/ethercalc

env ECUSER=etherpad

# Programpath /opt/etherpad/local/ethercalc/node_modules/ethercalc/bin/ethercalc

pre-start script

chown -R $ECUSER $ECLOGS ||true

chmod -R 755 $ECLOGS ||true

end script

script

cd $ECHOME/

exec su -s /bin/sh -c ‚exec „$0“ „$@“‚ $ECUSER — node_modules/ethercalc/bin/ethercalc \

>> $ECLOGS/access.log \

2>> $ECLOGS/error.log

end script

Die Verzeichnisse für die Logs anlegen und dem Benutzer etherpad übergeben:

mkdir /var/log/ethercalc

chmod -R 755 /var/log/ethercalc

chown -R etherpad /var/log/ethercalc

Die Logs müssen auch weg-rotated werden. Also

vi /etc/logrotate.conf

und hier am Ende hinzufügen:

# Ethercalc – weekly rotation and compression

/var/log/ethercalc/*.log {

weekly

missingok

rotate 8

compress

notifempty

}

Ein

service ethercalc start

sollte den Dienst nun hochbringen.

Mal sehen, wie sich das Ding verhalten wird. Die Konfiguration hier ist noch arg mit der Axt in den Server geklopft, aber es läuft erst einmal … Redis kommt dann als nächstes mit auf die Maschine, damit Ethercalc einen echten Datenbankserver zum Speichern der Tabellen hat.

antiX

Mein Asus L8400 K mit Pentium III 850 Mhz CPU sowie 256 MB RAM fristete ein Schattendasein unter dem demnächst ablaufenden Ubuntu 8.04 LTS. Bedienbar war die Kiste mit diesem Betriebssystem nicht wirklich, aber sie diente das eine oder andere mal als Printserver in der Schule während den Projekttagen für die Anbindung von Geräten, die nur eine LPT mitbrachten.

Mit dem EOL von Ubuntu 8.04 wollte ich zuerst eine aktuelle Lubuntu Version auprobieren … was auf Grund der nicht mehr zu Pentium 3 CPUs passenden Kernel jedoch nicht gelang. Also musste etwas noch Schlankeres her: Optisch relativ ansprechend, gut anpassbar Dank icewm und vor allem nun auch wieder (mit Abtrichen – ist ja klar) zu bedienen wurde das Gerät mit antiX. Selbst Firefox und LibreOffice kann man nutzen, wenn man etwas Geduld hat. Der Desktop selbst ist ohne Wartezeit zu bedienen … ein echter Fortschritt gegenüber Ubuntu 8.04.

Abiword, Chromium und viel weitere Software lässt sich aus den Debian Repos nachinstallieren und Dank rolling-release Konzept muss ich mich nicht gleich wieder nach einer anderen Distri umsehen, nur um das Gerät aktuell zu halten. Was zu meinem Erstaunen sofort funktionierte, war die Einbindung meines WLAN USB Sticks TP-Link TL-WN727N – und nicht nur über WEP, sondern sogar mit WPA als Verschlüsselung.