Skip to content

Heartbleed ...

Manchmal lohnt es sich, ein konservativer Administrator zu sein. Heartbleed ist die Sicherheitslücke in OpenSSL 1.0.1, die dazu führt, dass Angreifer zufällige Daten aus dem Speicher des Servers lesen können.

Ich habe natürlich brav im Rudelreflex ein neues Zertifikat erstellt und wollte auch den Hostnamen ändern bis ich mal - ausnahmsweise - so schlau war, mir die Versionsnummern genauer anzuschauen.

Der Server läuft mit Debian 6.0.9 oder Squeeze (Oldstable). Und in Squeeze ist die Version 0.9.8 von OpenSSL enthalten, die nicht vom der Sicherheitslücke betroffen ist.

Wer lesen kann ...

Ubuntu langsam in VirtualBox ...

ubuntu

Für einen Workshop muss ich Screenshots unter Ubuntu erstellen.

Wenn es Euch wie mir geht und die Grafik sich in einer virtuellen Ubuntu-Installation unter VirtualBox unfassbar langsam verhält, dann helfen Euch vielleicht die folgenden Schritte:

/usr/lib/nux/unity_support_test -p

Zeigt vermutlich (unter anderem) die folgenden beiden Zeilen:

Not software rendered:    no
...
Unity 3D supported:       no

Grund dafür ist, dass Unity die 3D-Grafik durch den Hauptprozessor berechnen lässt und nicht durch die Grafikkarte. Die Lösung dafür ist, die VirtualBox-Extensions zu installieren und dann auch zu aktivieren.

sudo apt-get install build-essential linux-headers-$(uname -r)

Dann über das Menü die VirtualBox-Extensions-CD "einlegen". Bei mir "Devices / Insert Guest Additions CD image ..." (wenn mir jemand den deutschen Text schicken kann, dann binde ich den hier auch ein) oder "Gerät / Medium mit Gasterweiterungen einlegen (Host+D)". Wenn das nicht so funktioniert, hilft dieser Artikel vielleicht weiter.

Danach die Erweiterungen installieren (alles in einer Zeile, statt "DIRK" müsst Ihr Euren Usernamen eintragen):

sudo bash /media/DIRK/VBOXADDITIONS_4.3.10-93012/VBoxLinuxAdditions.run

Jetzt muss Ubuntu noch mitgeteilt werden, dass das Modul für die Videounterstützung standardmässig geladen wird.

echo vboxvideo | sudo tee -a /etc/modules

Jetzt Ubuntu sauber herunterfahren und dann in den Einstellungen der virtuellen Maschine bei Display auf "Enable 3D acceleration" oder "Anzeige / 3D-Beschleunigung aktivieren" klicken. (Bin wieder für die deutschen Namen dankbar).

Nach dem erneuten Hochfahren sollte Ubuntu sich deutlich schneller verhalten und das Kommando

/usr/lib/nux/unity_support_test -p

gibt hoffentlich folgendes aus:

Not software rendered:    yes
...
Unity 3D supported:       yes

Hier der Link auf das Kapitel Hardware-accelerated graphics in der Dokumentation.

Grosser Umzug bei Taskwarrior ...

taskwarrior

Wir sind gerade dabei, einen grossen Umzug zu machen. Weg von Redmine und Gitosis, hin zu Software von Atlassian, nämlich Jira als Bugtracker unter bug.tasktools.org und Stash unter git.tasktools.org.

Damit haben wir jetzt ein neues Dach für alle Projekte der Göteborg Bitfactory auf tasktools.org.

Atlassian bietet eine - wie ich finde - sehr interessante Lizenz. Wenn man die Software kauft, bekommt man den Quelltext. Open-Source-Projekte bekommen eine Gratis-Lizenz und auch den Quelltext. Damit ist die Software von Atlassian keine Open-Source-Software, aber dennoch sehr nahe dran.

Näheres über die Motive von Atlassian und das Drumherum kann man in der Episode 27 von Gitminutes hören.

Ach ja, die Taskwarrior-Webseite ist jetzt auch neu. Mir gefällt sie sehr gut.

Zuletzt werden noch die Nodes unseres eigenen Continous Integration Tools Flod auf Server umgezogen, die uns von Rackspace gratis zur Verfügung gestellt werden.

Spannende Zeiten.

Zurück zu Debian ...

debian

Vor einem knappen halben Jahr habe ich openSUSE als Betriebssystem für meinen Rechner gewählt.

openSUSE ist ein sehr gutes System, aber viele der Programme, die ich gewohnt bin, habe ich nicht gefunden. Zum Teil habe ich sie selber übersetzt und zum Teil aus "obskuren" Repositories installiert. Das geht auch, hat mich aber nicht zufrieden gestellt.

Interessanterweise hat mich aber KDE ziemlich überzeugt und dabei werde ich (erst einmal) bleiben.

Dazu kann man sich das normale Debian-System installieren und wenn es so weit ist, wählt man nicht Desktop-System aus, sondern installiert sich das Kommandozeilensystem. Nach dem ersten Start geht es dann mit aptitude install task-kde-desktop weiter (bzw. task-german-kde-desktop). Neu starten. Fertig.

Wenn man nicht möchte, dass GTK-Anwendungen mies aussehen, sollten noch die Pakete kde-config-gtk-style, gtk2-engines-oxygen und gtk3-engines-oxygen installiert und unter System Settings / Application Appearance konfiguriert werden. (Den Tipp habe ich auf der KDE-Seite im Debian-Wiki gefunden).

Solaris x86 ...

Neulich habe ich festgestellt, dass sich Solaris 10 und Solaris 11 mit einem freien Oracle Account herunterladen lassen. Da mich die beiden Betriebssysteme, insbesondere die x86-Vairante, interessieren (kann man unter Linux virtualisiert laufen lassen), habe ich mal jemanden gefragt, der sich auskennt, welche Literatur empfehlenswert ist.

Wolfgang hat daraufhin die folgende umfangreiche Liste zusammen gestellt.

Danke!

Bemerkung am Rande: Wie auch bei Red Hat oder SUSE üblich, muss man das Produkt kaufen und registrieren, um die Update-Channel eintragen zu können. Zum Ausprobieren reicht es aber.

Taskwarrior 2.3.0 und Taskserver 1.0.0 ...

taskwarrior

Jetzt ist es endlich so weit. Taskwarrior und Taskserver sind aus dem beta-Status entlassen.

Nach knapp neun Monaten Entwicklung freuen wir uns darauf, ein wirklich grossartiges Feature anzukündigen: Die Synchronisation von Taskwarrior mit einem eigenen Taskserver.

Was sich sonst noch getan hat, seht Ihr in eigenen Artikeln für Taskwarrior und Taskserver.

Wir haben ebenfalls die Changelogs für Taskwarrior und Taskserver online.

Viel Spass!

Spamattacke ...

linux

Gestern gab es eine hässliche Spamattacke auf meinen Hauptserver.

Das schöne ist, das nichts abgestürzt ist, das dumme ist, dass die wichtigen Mails nur mit erheblicher Verzögerung zugestellt wurden.

Es hätte schlimmer kommen können ...

Innerhalb kürzester Zeit sind fast 30'000 Mails auf dem Server aufgeschlagen. Wie man an der Abarbeitungsrate sehen kann, bietet die Antiviren- und Spamerkennung noch Optimierungspotential.

Per-Hour Traffic Summary
------------------------
    time          received  delivered   deferred    bounced     rejected
    --------------------------------------------------------------------
...
    0800-0900          18         20       1528          1          3
    0900-1000        4924       4699       4677        644          6
    1000-1100       19486       3275       3394       3257         29
    1100-1200        4569       3257       3010       3244          7
    1200-1300         965       3292       5970        949          3
...

Speedtest via Commandline ...

Sehr schön im Blog von Bastian habe ich den Artikel speedtest-cli ohne Flash gefunden. Dort verweist er auf das speedtest-cli Repository bei Github. Mit dem Python-Skript kann man den Netzgeschwindigkeitstest von speedtest.net auch ohne Flash machen. Damit läuft er zum Einen auf Servern und lässt die übermässige CPU-Nutzung durch Flash das Ergebnis nicht verfälschen.

So ergibt sich für meinen root-Server folgendes Bild:

05:36:44 1d [dirk@rico:~/workspace] $ git clone https://github.com/sivel/speedtest-cli.git speedtest-cli.git
Cloning into 'speedtest-cli.git'...
remote: Reusing existing pack: 249, done.
remote: Total 249 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (249/249), 55.75 KiB, done.
Resolving deltas: 100% (124/124), done.
05:36:49 1d [dirk@rico:~/workspace] 2s $ cd speedtest-cli.git/
05:36:53 1d [dirk@rico:~/workspace/speedtest-cli.git] master ± ./speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from manitu GmbH (217.11.53.135)...
Selecting best server based on ping...
Hosted by Vodafone DE (Frankfurt) [100.73 km]: 12.0 ms
Testing download speed........................................
Download: 90.11 Mbit/s
Testing upload speed..................................................
Upload: 87.21 Mbit/s

Taskwarrior und Taskserver ...

taskwarrior

Ich werde hier in zwei oder drei Teilen einmal zusammenfassen, wie man die aktuelle Taskwarrior-Version und die aktuelle Taskserver-Version zur Zusammenarbeit bewegen kann. Wie das Ganze gedacht ist, zeigt die Übersicht.

Am Anfang steht das selber Kompilieren der aktuellen Versionen.

Dazu werden neben einem C++ Compiler, cmake und make auch libuuid, gnutls, readline und die entsprechenden Development-Pakete. Die aktuellen Development-Releases von Taskwarrior und Taskserver können von der Homepage heruntergeladen oder via Git geklont werden.

$ git clone git://tasktools.org/task.git task.git
$ cd task.git
$ git checkout 2.3.0

$ cd ..

$ git clone git://tasktools.org/taskd.git taskd.git
$ cd taskd.git
$ git checkout 1.0.0

$ cd ..

Dann übersetzen wir zuerst Taskwarrior:

$ cd task.git
$ cmake .
$ make
$ sudo make install

Wenn alles gut gegangen ist, liefert task diagnostics sehr viel hilfeiches, für uns wichtig ist, dass TLS (Transport Layer Security) eingebaut ist.

$ task diagnostics | grep tls
       Caps: -pthreads +tls
  libgnutls: 3.0.28

Für den Taskserver gehen wir ähnlich vor, aber wir lassen erst Tests laufen, bevor wir installieren:

$ cd taskd.git
$ cmake .
$ make

Jetzt gibt es einen Unterschied, Tests übersetzen und ausführen:

$ cd test
$ make
$ ./run_all

Erst wenn die erfolgreich waren, ist es sinnvoll, den Taskerver zu installieren:

$ cd ..
$ sudo make install

Auch hier liefert taskd diagnostics viel hilfreiches.

Sollte etwas schief gegangen sein, werft einen Blick in die mitgelierferte INSTALL-Datei und im Fall von Taskserver zusätzlich noch in die Datei doc/operation.txt.

Ansonsten gilt wie immer: Fragen? Fragen!

Präsentationsformen ...

Von Zeit zu Zeit bekomme ich das Vergnügen, einen Vortrag zu halten und jedes Mal aufs Neue stellt sich die Frage nach der richtigen Präsentationsform.

Ich halte nichts von den Präsentationsprogrammen der Office-Programme, egal, ob es Powerpoint, Impress oder irgendetwas anderes "integriertes" ist. Ich mag nicht gebremst werden und ich mag es, ohne Mausbenutzung, nur mit der Tastatur zu schreiben.

Wenn das ganze dann noch Open Source ist und möglichst, in einer einzigen Datei daher kommt, bin ich froh. Zwischenzeitlich habe ich einfache Textdateien benutzt. Das Verfahren ist hier im Blog schon beschrieben worden (meine beiden Workshops zu praktischer Administration habe ich so gehalten: Teil 1 und Teil 2 inklusive Videos).

So konnte es nicht weitergehen, daher habe ich mir die folgenden Tools und Möglichkeiten angeschaut:

Alle Verfahren haben spezifische Vor- und Nachteile.

Derzeit arbeite ich PDF-Dateien, die LaTeX Beamer erzeugt, sie enthalten auch Links und sind in meinem Speakerdeck-Account zu finden.

Taskserver (big picture) ...

taskwarrior

So, nach der zweiten Beta von Taskwarrior 2.3.0 und Taskserver 1.0.0 ist es einmal an der Zeit, die Ideen hinter der Software zu erklären. Ich werde eine kleine Artikelreihe starten, in der ich auch das Aufsetzen eines eigenen Servers näher beleuchten werde.

Achtung: Wir befinden uns noch im beta-Status und haben keine Erfahrung mit grösseren Setups oder grösseren Umgebungen. Wir empfehlen noch nicht, den Server für produktive Daten einzusetzen.

Ein lokaler Taskwarrior Nutzer (Version 2.3.0 beta2 und folgende) kann sich nur mit einem einzigen Taskserver verbinden. Für weitere Server sind separate Settings (Datenverzeichnisse, Zertifikate, User, ...) nötig. Jeder User kann einer einzigen Organisation angehören, innerhalb dieser Organisation Mitglied mehrerer Gruppen sein (ist noch nicht fertig), Vom Server gibt es ein Zertifikat und den passenden Schlüssel, mit dem der Nutzer sich verbinden kann.

Je nachdem, was User brauchen, werden noch weitere Features nachgerüstet.

Ein Taskserver (Version 1.0.0 beta2 und folgende) kann mehrere Organisationen, Gruppen (in Vorbereitung) und Nutzer hosten.

Um einen User zu einem laufenden Server hinzuzufügen, muss er angelegt und zu einer Organisation hinzugefügt werden. Um sich verbinden zu können, sind die folgenden Informationen und Dateien nötig:

  • Username in einer für Menschen lesbaren Form, zum Beispiel "Dirk Deimeke".
  • Das Passswort ist eine UUID (Unique User ID), so dass auch mehrere User gleichen Namens angelegt werden können.
  • Datei: client.cert.pem zur Identifiation als valider Client.
  • Datei: client.key.pem für die Verschlüsselung des Datentransfers.
  • Um die Verbindung aufzubauen sind noch server:port nötig.

Momentan gibt es nur ein einziges Client-Zertifikat für alle User, um die Verschlüsselung zu ermöglichen. More to come ...

Derzeit gibt es noch ein Problem, das Zertifikat auf Mobiltelefone zu bekommen. Wir arbeiten da an einem Webfrontend, mit dem sich das Telefon verbinden kann und das das generelle Usermanagement übernimmt. Derzeit ist das noch Arbeit auf der Kommandozeile.

Zur Information: Der Server wird später auch 301/302 status Codes erzeugen, so wird es möglich sein, einen User transparent auf einen anderen Server umzuziehen.

Um das mal in "Datenbank-Relationen" aufzulösen:

  • 1:n host:server (auf einem Host können mehrere Serverinstanzen laufen).
  • 1:n server:clients (gegen einen Server können sich viele Klienten verbinden).
  • 1:n server:organisations (ein Server kann mehrere Organisationen verwalten, hier wäre n:m aus Hochverfügbarkeitsgründen prima)
  • 1:n clients:users (das ist noch etwas schwierig, es gibt derzeit nur ein Client-Zertifikat, eventuell wird das mal 1:1 der n:1)
  • 1:n organisations:users (eine Organisation kann mehrere User beherbergen, später kann vielleicht ein User auch in mehreren Organisationen sein (n:m), das geht momentan nur mit verschiedenen Konfigurationsoptionen)
  • Später: 1:n users:groups (e
  • Später: 1:n orgs:groups

Was wir noch nicht wissen, ist, wie viele User ein Server verkraften kann. Wir werten zwar unseren eigenen Server aus, können aber noch keine weiteren Vermutungen anstellen.

Weitere Style Guides ...

Via Twitter habe ich das Mutterprojekt der Google Styleguides ("Style guides for Google-originated open-source projects") gefunden.

Da gibt es also nicht nur den Shell Style Guide, den ich hier erwähnt habe. Es hätte mich auch überrascht, wenn es anders wäre.

sudo bei openSUSE ...

opensuse

Standard-Einstellungen muss ich manchmal nicht verstehen.

Um openSUSE kompatibel zu anderen sudo-Installationen zu machen, so dass das User-Passwort für sudo verwendet wird, müssen folgende zwei Einstellungen getroffen werden.

Mit /usr/sbin/usermod -G wheel username oder vigr den User zur Gruppe wheel (den historischen Grund für den Namen wüsste ich gerne, drehen die Leute am Rad?) hinzufügen.

Anschliessend mittels visudo die folgenden beiden Zeilen auskommentieren.

# Defaults targetpw   # ask for the password of the target user i.e. root
# ALL   ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!

und die die Kommentarzeichen zu Beginn der Zeile

%wheel ALL=(ALL) ALL

löschen.

Nach einer erneuten Anmeldung des User fragt sudo nach dem Userpasswort und nicht mehr nach dem root-Passwort.

Shell Style Guide ...

Bei Google gibt es einen Shell Style Guide, den ich wirklich jedem nur ans Herz legen kann.

Die Regeln sind sinnvoll und helfen, dass Skripte auch eine Woche nachdem sie geschrieben wurden noch verstanden werden können. :-)

Einiges ist sicherlich diskussionswürdig und Geschmackssache, ich würde Perl statt Python für längere Skripte nehmen, aber in Summe ist das Dokument prima.

tweetbackcheck