Michael Klemm - Website von Michael Klemm aus Dachau

Michael Klemm

Website von Michael Klemm aus Dachau

Firefox Browser- und OS-Informationen löschen

Thursday 8. January 2009 von Michael Klemm

Es ist zwar nicht wirklich ein Beitrag zur Annonymisierung, aber dennoch sollte ein jeder Surfer darauf achten, dass nicht jeder beliebige Webserver alle Informationen über einen Client erhält. Vor allem birgt dies teilweise große Sicherheitsrisiken wenn ein Hacker eine IP mit den Inforamtionen des Browsers, Betriebssystems und unter Umständes des installierten Service Packs erfährt. Um dies in erster Linie - über gewisse Umwege ist eine Informationsbeschaffung für Könner immer möglich - zu unterbinden wird dem Firefox-Browser einfach eine kleine Einstellung hinzugefügt.

  1. Zuerst ruft man mit dem Browser “about:config” auf
  2. Hier erscheint ein Sicherheitshinweis den sie getrost überspringen können, da wir ja schließlich vorsichtig sind ;)
  3. Nun erscheint eine Liste von Einstellungen (VORSICHT: NICHTS ÄNDERN!)
  4. Mit der rechten Maustaste ins Fenster klicken und unter “Neu” “String” auswählen.
  5. Es wird jetzt ein Fenster geöffnet in dem sie nach dem Eigenschaftennamen gefragt werden
  6. Geben sie hier “general.useragent.override” ein und drücken sie auf “Ok”
  7. Das kommende Fenster können sie beliebige Browserinformation eintragen und dann mit “Ok” schließen

Nun haben sie es geschafft! Ihr Browser übergibt dem Webserver nun einen Benutzerdefinierten “User-Agent”.

Überprüft kann das Ganze einfach mittels folgender Website werden: http://www.whatsmyip.org/more/

!!!WICHTIG!!!

Lassen sie den User-Agent niemals leer! Einige Dienste wie Google-Maps und andere mit Java-Script funktionierende Applikationen akzeptieren oft keinen leeren User-Agent. Ich habe einfach eine alte Firefox-Version eingetragen und alles funktioniert Problemlos.

Kategorie: Wissenwertes | 1 Kommentar »

Galery2 und Joomla mit gleichen Nutzerdatenbank

Thursday 20. November 2008 von Michael Klemm

Wo ist das Problem?

Bisher war die Kombination von Joomla und Galery2 für mich eine super Verbindung. Sie lief perfekt integriert und teilte sich auch eine gemeinsame Nutzerdatenbank (die händisch aktualiesiert werden musste). Diese Lösung hatte allerdings auf einen Schlag mit einem Versionsupdate von Joomla ein Ende. Nun (ab Version 1.0.13) werden die Passwörter mit einem längeren SALT und außerdem anders gespeichert. Um dieses Problem zu verstehen und zu beheben habe ich folgenden Artikel geschrieben.

Falls Sie nur an der Lösung und nicht an der Problematik interessiert sind, können Sie weiter unten fortfahren und sich einfach die abgänderte Galery2 herunterladen und mit Ihrer ersetzen.

Was ist denn ein SALT?

Salt sind sozusagen gesalzene Passwörter. Man hielt bislang MD5 für sicher, was sich allerdings mit umfangreichen Passwortdatenbanken, welche durch Eingabe der MD5 das gespeicherte Passwort ausgeben, änderte. Gesalzene Passwörter erhalten nun als Salz ein Zufallspasswort welches dem MD5-Generator mit übergeben wird. Damit der entstandene MD5-Code noch verwertbar ist, ist es notwendig das Salz mitzuspeichern um es bei der Passwortabfrage zum Vergleich wieder mit anzuhängen.

Wie werden die Passwörter gespeichert?

In Galery2:

19aZz1234567890abcdef123456789abcdef
|---|------------------------------|
Salt                  MD5
{0-9|a-z|A-Z}^5    {0-9|a-f}^32

Wie man sieht ist bei Galery2 das Salt am Anfang gespeichert, ist 5 Zeichen lang und hat kein Trennzeichen zum MD5-Code

In Joomla:

1234567890abcdef1234567890abcdef:123BC987ZYXabcde
|------------------------------|:|--------------|
           MD5                       Salt
        {0-9|a-f}^32            {0-9|a-z|A-Z}^16

Bei Joomla hingegen wird das Salz am Ende angehängt und mit einem “:” getrennt. Außerdem ist hier das Salz länger und beinhaltet 16 Zeichen.

Die Lösung steckt im Code

Um das Problem zu lösen muss nun auf den Code, der für die Authentifizierung zuständig ist zugegriffen werden. Die Datei in der sich dieser Mechanismus befindet ist die folgende:

<<G2-Dir>>/modules/core/classes/GalleryUser.class

Damit die Galery2 dennoch ihre alte Funktionalität behält und mit ihren kürzeren Passwörtern zurecht kommt, muss zunächst abgefragt werden ob es sich bei dem gespeicherten Passwort um ein Galery-Passwort oder ein Joomla-Passwort handelt. Dies geschieht ganz einfach über eine If-Abfrage mit einem strlen() (Länge des Strings):

if (strlen($valid) == 49)

Um nun das Salz und den MD5-Code zu erhalten werden folgende Stringoperationen ausgeführt, die das oben aufgeführte Modell (MD5: {0-9|a-f}^32 / Salt: {0-9|a-z|A-Z}^16) in ihre Bestandteile zerlegen.

$salt = substr($valid, 33, 49);

Nun haben wir folgende Passwortabfrage erhalten, welche Sie auch einfach hier herunterladen können und durch Ihre Datei ersetzen können. Hier nun die Funktion isCorrectPassword() welche wie folgt korrigiert werden muss:

/**
* Is the password provided correct?
*
* @param string $password a plaintext password
* @return boolean true if the password is correct
*/
function isCorrectPassword($password) {
$valid = $this->getHashedPassword();
/**
* New Code by Michael Klemm for Joomla-Support
*/
if (strlen($valid) == 49) {
$salt = substr($valid, 33, 49);
$guess = (md5($password . $salt) . ":" . $salt);
} elseif (strlen($valid) == 36) {
$salt = substr($valid, 0, 4);
$guess = ($salt . md5($salt . $password));
} else {
$guess = md5($password);
}
/**
* Old Code which is no longer in use
*    $salt = substr($valid, 0, 4);
*      /* Support both old (G1 thru 1.4.0; G2 thru alpha-4) and new password schemes:
*      $guess = (strlen($valid) == 32) ? md5($password) : ($salt . md5($salt . $password));
*/
if (!strcmp($guess, $valid)) {
return true;
}
/* Passwords with <&"> created by G2 prior to 2.1 were hashed with entities */
GalleryUtilities::sanitizeInputValues($password, false);
$guess = (strlen($valid) == 32) ? md5($password) : ($salt . md5($salt . $password));
return !strcmp($guess, $valid);
}

DOWNLOAD

Kategorie: Allgemein | 4 Kommentare »

Shell-Befehl periodisch ausführen

Thursday 20. November 2008 von Michael Klemm

Auch um einen bestimmten Befehl oder ein Programm intervallartig auszuführen ist die Linux-Shell bestens gewappnet. Dies ist besonders nützlich um ein Verzeichnis (z.B. ls -al /etc) oder eine Datei (cat) zu überwachen. Dies geht einfach über folgenden Befehl:

watch -n <D> “<C>”

für <D> muss nun der aktualisierungs-Intervall in Sekunden eingesetzt werden. <C> ist ein Beliebiger Shell-Command der allerdings wie oben gezeigt in ‘”‘ stehen muss.

Für weitere Funktionalität schaut euch am besten

man watch

an.

Kategorie: Wissenwertes | Keine Kommentare »

Nautilus wieder korrekt anzeigen

Monday 13. October 2008 von Michael Klemm

Für alle die sich mal wundern sollten, wenn ihr Nautilus für “Ubuntu-Verhältnisse” komisch aussieht, können einfach folgenden Befehl ausführen um die “normale” (von Ubuntu angepasste) Einstellung herzustellen:

gconftool-2 –type bool –set /apps/nautilus/preferences/always_use_browser “true”

Viel Spaß ;)

Kategorie: Wissenwertes | Keine Kommentare »

Rechtevergabe per Skript

Thursday 2. October 2008 von Michael Klemm

Welcher Linuxadmin hatte noch nicht das Problem, dass er auf einmal falsche Rechte auf Dateien und Ordner hatte? Mir fällt da niemand ein! Und zwar ist es ja klar wie ein solches Problem zu Stande kommt. Ein Zugriff funktioniert nicht richtig und man macht aus jugendlichem Leichtsein ein “chmod 777 -r *” damit man auch ausreichen Rechte hat. Doch wie macht man es wieder rückgängig? Und zwar so, dass die Berechtigungen nicht zu “großzügig” sind. Das Problem klingt eigentlich recht banal, doch wenn man sich einen großen Verzeichnisbaum vorstellt und sich dann in die Lage versetzt hier jeder Datei die Rechte 644 und jedem Ordner die Rechte 755 zu geben, ist Angstschweiss garantiert.

Um dies zu automatisieren kann man mit dem Befehl “find” rekursiv nach bestimmten Typen (-type) wie z.B. Ordner (d - für Directories) oder Dateien (f - für Files) suchen und mit “exec” einen Befehl auf das Suchergebnis anwenden.

Das ganze sieht dann für die Rechte aller Dateien (644) so aus:

find . -type f -exec chmod 644 {} \

Nun kann man sich komfortablerweise ein Shell-Skript erstellen das wie folgt aussieht:

rightRights-Skript

rightRights-Skript

Man kann sich dieses Skript hier herunterladen: rightRights-Skript

Kategorie: Wissenwertes | Keine Kommentare »

Core2Duo Taktfrequenz unter Ubuntu nicht einstellbar

Thursday 2. October 2008 von Michael Klemm

Vor kurzem hatte ich das Problem, dass ich unter Ubuntu trotz des Tutorials von ubuntuusers.de nicht ändern konnte. Habe alles versucht und die Schritte des öfteren wiederholt. Ohne Erfolg! Auch im BIOS konnte ich leider nicht die richtige Einstellung finden. Doch dies lag vielmehr an meiner Unfähigkeit als an einer technischen Einschränkung. Im BIOS gibt es allerdings die Option “Intel EIST (Enhanced Intel SpeedStep technology)” die sich allerdings außerhalb des Sichtfeldes des Benutzers befindet. Einfach nur weit genug nach unten scrollen und schon sieht man die Flag “Disable”. Einmal auf “Enable” gestellt sind schon alle Probleme behoben und ich bin glücklich. Hoffentlich konnte ich damit dem ein oder andren helfen!

Kategorie: Wissenwertes | Keine Kommentare »

Serielle Schnittstelle unter Linux

Tuesday 30. September 2008 von Michael Klemm

Zu meiner Programmieranfängerzeit habe ich noch unter Windows gearbeitet, was in mancher Hinsicht das Leben und Programmieren wesentlich vereinfacht. Besonders bei der Programmierung mit seriellen Schnittstellen steht man bei Linux und Unix vor einer bisschen größeren Herausvorderung.

Der größte Entwicklungsschritt den ich zur Zeit vor mir habe ist die Umstellung von Windows auf Linux. Diese Umstellung ist zwar schon vor ca. 2 Jahren beinahe vollständig umgesetzt worden, doch es gibt noch einige Überreste. Und zwar sind es die Computer die mit der seriellen Schnittstelle mit z. B. einer Relaiskarte kommunizieren. Hierbei ist es erst einmal nötig die Software neu zu programmieren und Linuxkonform zu machen.

Über diese Umstellung werde ich euch in dieser Kategorie berichten und alle einzelnen Projektabschnitte detailiert beschreiben.

Es gibt sogar bereits eine Website, von einem Dozenten meiner Uni, die sich mit der seriellen Ansteuerung dieser Relaiskarten beschäftigt. Dieses Programm ist allerdings nur eine sehr rohe Komandozeilenwerkzeug, welches für die praxis noch stark erweitert werden muss. Zwar will ich selbst mein Programm in C bzw. C++ geschrieben haben, aber der Aufbau sollte objektoriientiert sein, so dass man das Programm auch weiter verwenden kann.

Hier der Link zu der Website von Prof. Jürger Plate: http://www.netzmafia.de/skripten/hardware/relais/relais.html

Und hier noch ein Link zu einem engl. HowTo: http://tldp.org/HOWTO/Serial-Programming-HOWTO/

Meinen derzeitigen Stand der Software werde ich im nächsten Artikel schreiben und den Code online stellen.

Kategorie: Serielle Schnittstelle | Keine Kommentare »

Webservereinstellungen mit Confixx dauerhaft übernehmen

Tuesday 30. September 2008 von Michael Klemm

[lang_de]Wie sicherlich ein jeder Confixxnutzer weis, werden die PHP- und Apache-Konfigurationsdateien regelmäßig überschrieben. Zumindest dann, wenn man eine Änderung im Confixx-Webinterface vornimmt. Um nun Einstellungen wie “mod_rewrite” (Apache) oder wie “default_charset” (PHP) dauerhaft einzuschalten bzw. zu konfigurieren müssen sie diese Änderungen direkt in Confixx vornehmen. Dies geht einfacher als man denkt. In folgendem How-To wird dies mit einigen wenigen Schritten erläutert:

  1. Melden sie sich als Admin in Confixx an.
  2. Öffnen sie das Menü “Einstellungen”
  3. In diesem Menü wählen sie den Eintrag “httpd Special” aus
  4. Nun können Sie auswählen für wen die neuen Einstellungen gültig sein sollen. I. d. R. wählt man hier “alle Anbieter” aus, wodurch die Einstellungen global angewendet werden.
  5. Im folgenden Fenster erhalten sie eine Übersicht möglicher Einstellungen. Diese sind, meiner Ansicht nach, relativ kurz gehalten. Falls sie die gewünschten Einstellungen hier finden, können sie diese getrost hier vollziehen. Falls dies nicht der Fall sein sollte fahren sie mit Schritt 6 fort.
  6. Um nun nicht aufgelistete Einstellungen vornehmen zu können klicken sie auf “Erweiterter Modus”
  7. In der jetzigen Ansicht sehen sie eine Textbox in der sie alle Einstellungen über Befehle manuell vornehmen können. Die Befehle werden durch Zeilenumbruch getrennt und sind in 3 Teilen, die jeweils durch ein Leerzeichen getrennt sind, aufgebautZur Veranschaulichung: ##Bereich##_##Einstellung##_##Wert##
  8. Der Bereichteil besteht aus “php_admin_value” bzw. “php_admin_flag” für PHP-Einstellungen, je nachdem ein Flag oder ein Wert gesetzt werden soll

Bei mir sieht diese benutzerdefinierte Änderung wie folgt aus:

php_admin_value post_max_size 128M
php_admin_value upload_max_filesize 64M
php_admin_value default_charset utf-8

Des weiteren ist es möglich hier direkt Apacheeinstellungen mit Variablen einzutragen. Im folgenden Beispiel habe ich die ##user##-Variable dazu benutzt für alle Domains AllowOverrite zu aktivieren (soweit man in httpd-Spezial auch alle Domains auswählt).

<Directory /var/www/##user##/html>
Options +FollowSymLinks +Includes -Indexes
AllowOverride All
</Directory>
[/lang_de]

Kategorie: Wissenwertes | Keine Kommentare »

UPEK TouchStrip unter Linux

Monday 29. September 2008 von Michael Klemm

Der TouchStrip-Sensor von UPEK ist in vielen Geräten verbaut. Zumeist sind dies Kostengründe, da der TouchStrip ein reiner Sensor und nicht ein kompletter Microcontroller oder ähnliches ist. Dies stellt ein großes Problem dar, da hierbei der Treiber viel mehr arbeiten und eine höhere “Intelligenz” aufweisen muss. Unter Linux gab es somit einige Zeit keine Möglichkeit diesen Sensor zu verwenden. Nun habe ich einen guten Treiber mit einem tollen HowTo gefunden welches unter folgender Adresse abrufbar ist:

http://www.reactivated.net/weblog/archives/2008/07/upek-touchstrip-sensor-only-147e2016-on-linux/

Derzeit habe ich leider noch einige Probleme mit dem erkennen. Würde die ganze sache auch gerne aus dem Paketmanager installieren. Es gab einige Zeit lang die FPrint “Ausstattung” per Quellen, welche jetzt allerdings nicht mehr verfügbar sind. Somit geht die Suche weiter.

Fortsetzung folgt…

http://www.pdfserver.net/fingerprint

Kategorie: Wissenwertes | 1 Kommentar »

Artikel in Joomla automatisch publizieren

Friday 19. September 2008 von Michael Klemm

Welcher Joomla-Entwickler stand nicht schon einmal vor dem Problem, dass die Nutzer eines CMS zwar Artikel geschrieben haben, diese aber nicht veröffentlicht bzw. auf die Frontpage gestellt haben. Dieser kleine Workarrount zeigt euch wie Ihr euren Nutzern oder auch euch selbst diese paar Klicks sparen könnt und sich die Beiträge nach dem Einstellen automatisch Publizieren oder auch auf der Frontpage angezeigt werden.

Den ganzen Beitrag lesen »

Kategorie: Wissenwertes | 2 Kommentare »