Dez

28

Posted by : Florian Löffler | On : 28.12.2009

brain_backupDa durch akutes Festplattensterben in meiner Umgebung die Aufmerksamkeit mal wieder auf ein ordentliches Backup gelenkt wurde, habe ich mich heute mal etwas mit der Thematik auseinandergesetzt. Und wenn ich schon dabei bin, will ich es natürlich richtig machen.

Ein einfaches rsync-Backup mit Rotationen, wie es z.B. rsnapshot bietet, ist mir nicht genug, da ich nur eine begrenzte Anzahl an alten Versionen aufheben kann.

Interessant ist auch der Ansatz eines versionierten Dateisystems namens ext3cow, dass wohl schon recht nahe an Apples Time-Machine herankommt. Leider ist das Ganze wohl noch nicht ganz ausgereift und wird wohl noch einge Zeit brauchen bis es seinen Weg in den Linux Kernel findet.

Die optimale Lösung setzt wohl auf Subversion in Verbindung mit einigen Scripten, die sich um ein regelmäßiges, automatisches einchecken kümmern. Wie man so etwas hinbekommt beschreibt Christopher Ingram in seinem Blog in drei ausführlichen Einträgen (Teil 1, Teil2, Teil3).

Wie’s aussieht werde ich letztere Lösung in naher Zukunft an zwei Standorten einrichten und werde berichten wie’s gelaufen ist.

Nov

17

Posted by : Florian Löffler | On : 17.11.2009

simplesamlphp-sLetztens musste ich SimpleSAMLphp als SP/IdP für mein lokales SSO Entwicklungssystem aufsetzen. Allerdings wollte der SSO Vorgang nicht recht funktionieren.
Nach einigem Stochern in den Logs bin ich auf folgendes gestoßen:

flo@acer ~ $ tail -f /var/log/apache2/error.log
...
[Sun Nov 15 15:41:52 2009] [error] [client 127.0.0.1] ALERT - configured GET variable value length limit exceeded - dropped variable 'SAMLRequest' (attacker '127.0.0.1', file '/var/www/simplesaml/saml2/idp/SSOService.php'), referer: http://sp-ssphp.localhost/simplesaml/saml2/sp/idpdisco.php?entityID=http%3A%2F%2Fsp-ssphp.localhost%2Fsimplesaml%2Fsaml2%2Fsp%2Fmetadata.php&return=http%3A%2F%2Fsp-ssphp.localhost%2Fsimplesaml%2Fsaml2%2Fsp%2FinitSSO.php%3FRelayState%3Dhttp%253A%252F%252Fsp-ssphp.localhost%252Fsimplesaml%252Fexample-simple%252Fsaml2-example.php&returnIDParam=idpentityid

Die Logmeldung weißt auf einen Verstoß gegen die Suhosin Richtlinen für die maximale Parameterelänge hin. Da die SAML2 Nachricht “vorneherum” via GET Variable übertragen wird ergibt sich ein recht ansehnliche Parameterlänge, welche von Suhosin als Angriff gewertet und geblockt wird.

Um das Problem zu beheben muss einfach die maximale Parameterlänge in der /etc/php5/conf.d/suhosin.ini erhöht werden. Eine Erhöhung von 512 auf 1024 hat in meinem Fall ausgereicht:

flo@acer ~ $ cat /etc/php5/conf.d/suhosin.ini
...
;suhosin.get.max_value_length = 512
suhosin.get.max_value_length = 1024
...

Viel Spass!

Nachtrag
Folgendes muss auch noch angepasst werden:

flo@acer ~ $ cat /etc/php5/conf.d/suhosin.ini
...
;suhosin.cookie.max_name_length = 64
suhosin.cookie.max_name_length = 128
...

Nov

16

Posted by : Florian Löffler | On : 16.11.2009

logoStandardmäßig benutzt Ubuntu den Nano Editor. Dieser ist für eingefleischte Vim User aber natürlich keine geeignete Alternative.


Zum Glück lässt sich der System Editor leicht wechseln:

flo@acer ~ $ sudo update-alternatives --config editor
Es gibt 4 Auswahlmöglichkeiten für die Alternative editor (welche /usr/bin/editor bereitstellen).

  Auswahl      Pfad                Priorität Status
------------------------------------------------------------
* 0            /bin/nano            40        Auto-Modus
  1            /bin/ed             -100       manueller Modus
  2            /bin/nano            40        manueller Modus
  3            /usr/bin/vim.basic   30        manueller Modus
  4            /usr/bin/vim.tiny    10        manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 3
update-alternatives: Verwende /usr/bin/vim.basic, um /usr/bin/editor (editor) in manueller Modus bereitzustellen.

Anmerkung dazu:
Der “echte” Vim verbirgt sich unter der Option 3 /usr/bin/vim.basic und muss ggf. erst durch ein

flo@acer ~ $ sudo apt-get install vim

installiert werden, da Ubuntu nur den abgespeckten vim-tiny mibringt.

Nov

15

Posted by : Florian Löffler | On : 15.11.2009

Shibboleth-logoAls ich mich unter Karmic daran gemacht habe den Shibboleth2 Service Provider einzurichten war ich zunächst mal positiv überrascht.
Es gibt nämlich tatsächlich ein Ubuntu Package für den aktuellen Shibboleth 2.1, das sich fix und einfach installieren lässt.
Unter Gentoo/Suse musste ich jedesmal von Source kompilieren um an die aktuelle Version zu kommen. Von daher schonmal ein thumbs-up für Ubuntu karmic.
Also gleich ans Werk…

flo@acer ~ $ sudo apt-get install libapache2-mod-shib2

Problem
Nach dem Installieren und Konfigurieren klappte es allerdings nicht so recht mit dem Starten.
Ein Startversuch mittels

flo@acer ~ $ sudo service shibd start

wurde mit folgenden Logeinträgen quittiert

flo@acer ~ $ tail -f /var/log/shibboleth/shibd.log
...
2009-11-15 14:09:58 INFO Shibboleth.Listener : listener service starting
2009-11-15 14:09:58 ERROR Shibboleth.Listener : socket call resulted in error (2): no message
2009-11-15 14:09:58 CRIT Shibboleth.Listener : failed to bind to socket.

Lösung
Eine kurze Google Recherche förderte zutage, dass Shibboleth versucht seinen socket unter /var/run/shibboeth zu erstellen. Allerdings existiert das Verzeichnis nicht, was zu dem genannten Fehler führt. Da /var/run von Zeit zu Zeit automatisch wieder gelöscht wird genügt es nicht das Verzeichnis einfach zu erstellen. Stattdessen kann man das Initscript des Shibboleth Daemons unter /etc/init.d/shibd anpassen, so dass das fehlende Verzeichnis bei jedem Start angelegt wird, sofern es noch nicht existiert.
Und das geht ganz einfach so:

flo@acer ~ $ sudo sed -i '50 i \nif [ ! -e /var/run/shibboleth ]; then\n\tmkdir /var/run/shibboleth\nfi\n' /etc/init.d/shibd

Der obige Code fügt an Zeile 50 des Initscriptes eine entsprechende Abfrage ein und erstellt das fehlende Verzeichnis bei Bedarf.

Quellen

As always: Hope that helps!

Nov

07

Posted by : Florian Löffler | On : 07.11.2009

mauszeiger

Nov

05

Posted by : Florian Löffler | On : 05.11.2009

google-logo Verweigert Thunderbird den Zugriff auf dein Googlemail Konto mit der Meldung “Web Login Required” so bedeutet das, dass jemand zu oft versucht hat sich mit einem falschen Kennwort in dein Konto einzuloggen.
Um das Knacken des Kennwortes durch BruteForce durchprobieren zu verhindern, sperrt Google nach einigen Fehlversuchen den Zugang.
Um das Konto wieder zu aktivieren muss man sich dann z.B. unter https://www.google.com/accounts/UnlockCaptcha mit den korrekten Daten anmelden.
Im Unterschied zum normalen Login besitzt diese Seite ein grafisches Captcha, um den automatisierten Zugriff zu erschweren.
Nach dem Entsperren sollte die normale Anmeldung zu dem Konto – auch via Thunderbird – wieder funktionieren.

Nov

03

Posted by : Florian Löffler | On : 03.11.2009

php-gtk Seid ich in letzter Zeit wieder vermehrt mit PHP arbeite und daraus auch ein Projekt mit grafischer Oberfläche entstanden ist (siehe RRZE Icon Inspector) bin ich relativ begeistert von PHP-GTK.

Was ist PHP-GTK?
PHP-GTK erweitert PHP um GTK+ Bindings und bietet so ein objektorientiertes Interface zu GTK+. Dadurch wird die Entwicklung plattformübergreifender PHP Applikationen mit grafischer Oberfläche ermöglicht.
Woher bekommt man PHP-GTK?
Momentan wird PHP-GTK von den meisten Distributionen noch etwas stiefmütterlich behandelt (keine Ahnung wieso). So gibt es meist keine vorgefertigten Pakete, obwohl PHP-GTK bereits Version 2.01 erreicht hat.
Als Paketquellen konnte ich verschiedene Seiten fleißiger Personen ausfindig machen, die jeweils vorkompilierte Pakete zur verfügung stellen. Diese möchte ich euch natürlich nicht vorenthalten.
Paketquellen

Update (05.05.2010)
Für das neue Ubuntu 10.04 – Lucid Lynx empfehle ich wärmstens die Selbstbauanleitung aus den Ubuntu Foren.
Hat bei mir einwandfrei funktioniert.

Nov

01

Posted by : Florian Löffler | On : 01.11.2009

eclipse-iconBeim Installieren des aktuellen Eclipse unter Ubuntu 9.10 (karmic) bin ich auf einen sehr nervigen Bug gestoßen.


Das Problem
Mit karmic das neue Gnome 2.28.1 und damit GTK+ 2.18 eingführt wurde, welches seit neuestem ein verändertes Windowmanagement – sogenannte “Client-Side Windows” – benutzt. Da Eclipse dies offenbar nicht ordentlich unterstützt sind einige Schaltflächen nicht klickbar bzw. bleiben bei einem Klick “versenkt” ohne jedoch auszulösen. Außerdem Ist die Liste installierbarer Plugins (New Software) unsichtbar.

Die Lösung
Die Lösung ist die Umgebungsvariable GDK_NATIVE_WINDOWS mit der man GTK+ dazu bewegen kann wieder das alte Fenstermodell zu benutzen.
Startet man Eclipse wie folgt funktioniert es wieder einwandfrei.

flo@acer ~ $ GDK_NATIVE_WINDOWS=1 /opt/eclipse/eclipse

Das Ganze lässt sich dann auf Wunsch noch in ein kleines Shellscript verpacken.

Quellen

Okt

31

Posted by : Florian Löffler | On : 31.10.2009

gentoo-logo ubuntu-logo

Da mein Gentoo leider mit der Zeit immer mehr rumgezickt hat musste ich schweren Herzens auf Ubuntu 9.10 – karmic koala – umsteigen. Der Todesstoß ergab sich durch Umstieg auf die neueste Xorg Version. Diese erfordert aufgrund einer Änderung der ABI ebenfalls den neuesten fglrx Treiber, welcher allerdings keinen Support mehr für Karten <R600 mehr mitbringt. Meine – noch nicht so alte – X1300 kann ich somit vergessen.

<sarcasm>Danke ATI!</sarcasm>

Die Zeit mit Gentoo hat mich viel gelehrt und einiges an Erfahrung reicher werden lassen. Meiner Meinung nach ist es trotz oder gerade wegen der zahlreichen Hürden die beste Wahl für Einsteiger, die wirklich etwas über ihr System erfahren und sich damit beschäftigen wollen.

Danke dafür an die Gentoo Leute (diesmal ohne Sarkasmus)!

Nun freue ich mich auf ein neues Kapitel mit Ubuntu, in das ich hohe Erwartungen setze. Na dann, auf ein Neues…

Okt

30

Posted by : Florian Löffler | On : 30.10.2009

gwclient-iconDa ich kürzlich auf Ubuntu 9.10 aka karmic koala in der amd64 Variante umgestiegen bin ergaben sich leider wieder mal einige Probleme mit Novells Groupwise.

Hier eine kurze Zusammenfassung wie ich’s zum laufen bewegt hab:

1. Vorbereitungen
Herunterladen und entpacken sind identisch zu meiner GW unter Gentoo Anleitung

2. JRE ersetzen
Das mitgelieferte JRE ist nicht brauchbar, deshalb müssen wir es ersetzen. Dazu installieren wir uns zunächst ein 32Bit JRE, wie zum Beispiel ia32-sun-java6-bin und führen die eigentliche Ersetzung mittels Symlink durch.

flo@acer ~ $ sudo apt-get install ia32-sun-java6-bin
flo@acer ~ $ cd /opt/novell/groupwise/client/
flo@acer /opt/novell/groupwise/client $ sudo mv jre old_jre
flo@acer /opt/novell/groupwise/client $ sudo ln -s /usr/lib/jvm/ia32-java-6-sun-1.6.0.15/jre

3. libstdc++5 installieren
Karmic bietet leider kein Packet für die libstdc++5 Library, welche Groupwise allerdings benötigt. Ein Symlink auf die aktuellere libstdc++6 quittiert Groupwise wie folgt:

flo@acer ~ $ groupwise
/opt/novell/groupwise/client/bin/groupwise-bin: /usr/lib32/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /opt/novell/groupwise/client/bin/groupwise-bin)
/opt/novell/groupwise/client/bin/groupwise-bin: /usr/lib32/libstdc++.so.5: version `CXXABI_1.2' not found (required by /opt/novell/groupwise/client/bin/groupwise-bin)

Also muss das Orginal installiert werden. Wer es genau nimmt kann beide Varianten – 64Bit und 32Bit – installieren. Benötigt wird von Groupwise lediglich die 32Bit Version.
Download Debian libstdc++5 Package
oder

flo@acer ~/Downloads $ mkdir libstdc++5 && cd libstdc++5
flo@acer ~/Downloads/libstdc++5 $ wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_amd64.deb
flo@acer ~/Downloads/libstdc++5 $ wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_i386.deb

Die 64Bit Version kann man einfach installieren, bei der 32Bit Version habe ich die Installation lieber manuell durchgeführt.

flo@acer ~/Downloads/libstdc++5 $ sudo gdebi libstdc++5_3.3.6-18_amd64.deb
flo@acer ~/Downloads/libstdc++5 $ file-roller --extract-to=./libstdc++5_3.3.6-18_i386 libstdc++5_3.3.6-18_i386.deb
flo@acer ~/Downloads/libstdc++5 $ cd libstdc++5_3.3.6-18_i386
flo@acer ~/Downloads/libstdc++5/libstdc++5_3.3.6-18_i386 $ tar -xvzf data.tar.gz
flo@acer ~/Downloads/libstdc++5/libstdc++5_3.3.6-18_i386 $ sudo cp usr/lib/* /usr/lib32/

4 . Quellen und Schluss

So das sollte es gewesen sein. Have Fun!