Blogs

  • warning: TCPDF::include(/srv/customerspace/freach/tuxj0b.de/public/modules/pdfview/tcpdf/fonts/vera.php) [tcpdf.include]: failed to open stream: No such file or directory in /home/www/tuxj0b.de/html/modules/pdfview/tcpdf/tcpdf.php on line 1668.
  • warning: TCPDF::include() [function.include]: Failed opening '/srv/customerspace/freach/tuxj0b.de/public/modules/pdfview/tcpdf/fonts/vera.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/www/tuxj0b.de/html/modules/pdfview/tcpdf/tcpdf.php on line 1668.
  • warning: TCPDF::include(/srv/customerspace/freach/tuxj0b.de/public/modules/pdfview/tcpdf/fonts/vera.php) [tcpdf.include]: failed to open stream: No such file or directory in /home/www/tuxj0b.de/html/modules/pdfview/tcpdf/tcpdf.php on line 1668.
  • warning: TCPDF::include() [function.include]: Failed opening '/srv/customerspace/freach/tuxj0b.de/public/modules/pdfview/tcpdf/fonts/vera.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/www/tuxj0b.de/html/modules/pdfview/tcpdf/tcpdf.php on line 1668.

drupal clean urls mit lighttpd

Da LightTPD leider nicht die Apache .htaccess und mod_rewrite Methode für clean urls in drupal unterstützt muss man das ganze etwas anders angehen. Schlüssel dafür ist mod_magnet und ein kleines lua script von datrix.
Als erstes einmal muss mod_magnet in den server.modules aktiviert werden. Bei Debian ist mod_magnet nicht bei den Standartmodulen dabei und muss nachinstalliert werden aptitude install lighttpd-mod-magnet. Danach muss eure url, für die clean urls aktiviert werden soll, bearbeitet werden, hier mal das Beispiel für tuxj0b.de.

$HTTP["host"] == "www.tuxj0b.de" {
   server.document-root = "/s/XXXXXXX/public/"
   server.name          = "www.tuxj0b.de"
   <strong>magnet.attract-physical-path-to = ( "/s/XXXXXXXXXX/private/drupal.lua" )</strong>
}

Die benötigte drupal.lua bekommt ihr hier.
In dieser Datei müsst ihr die Option local prefix = '/drupal' mit eurem drupal Unterverzeichnis ausgehend von der Webroot "/" ersetzten. Falls ihr drupal direkt in eurem Webroot liegen habt hilft local prefix = '' weiter. Denkt auch daran, dass die Datei die nötigen Zugriffsrechte hat, damit LightTPD die Datei lesen kann! Danach einmal /etc/init.d/lighttpd reload und clean urls werden unterstützt.

apt-get vs. aptitude

apt-get und aptitude sind beides Kommandozeilentools für die Packetverwaltung APT von Debian basierten Distributionen. Beide Tools erfüllen ihren Zweck unterscheiden sich aber in wichtigen Punkten. Hier mal eine kleine Auswertung von mir was nun besser genutzt werden sollte:

- Auflösen der Abhängigkeiten
aptitude löst die Abhängigkeiten nicht nur besser auf, sondern es merkt sich auch welche Pakete über welche Abnhängigkeiten installiert wurden und schlägt nicht mehr benötigte Pakete zum entfernen vor.

- Anwendungsgebiet
aptitude kann nicht nur als Kommandozeilentool genutzt werden, sondern verfügt auch über eine gute Text-GUI.

- Ausgabenformatierung
aptitude hat eine wesentlich schönere Ausgabenformatierung.

- Löschen von Paketen
Beim löschen von Paketen per apt-get wird nur das zu löschende Paket gelöscht, beim löschen per aptitude werden Dank dem "Abhängigkeitslog" von aptitude auch nicht benötigte Abhängigkeiten mit gelöscht.

- Super Cow Powers
Laut apt-get --help hat apt-get Super Cow Powers und aptitude leider nicht.
Großes Manko für aptitude!

Auch ohne Super Cow Powers ist aptitude die bessere Wahl.
Wer apt-get bisher genutzt hat kann es auch weiterhin nutzen, oder komplett auf aptitude umsteigen, damit aptitude seinen Vorteil "Abhängigkeitslog" auch auspielen kann und die Paketmarkierungen nicht inkonsistent wird.

Noch was am Rande:
aptitude search oder apt-cache search ?
Definitiv besser apt-cache search, da der Suchstring auch in der Paketbeschreibung gesucht wird. aptitude search sucht nur in den Paketnamen.

Edit:
Hab da noch eine etwas detailiertere Auflistung gefunden, warum aptitude genutzt werden soll, bei Interesse: Nine reasons why you should be using aptitude instead of apt-get or dselect.

Schäuble hat Mindestdiskussionsgrenze erreicht

Manchmal scheint es mir, dass bei einem Gesetzesvorschlag einfach nur eine gewisse Tages-/Stundenanzahl an Diskussion erreicht werden muss damit dieser beschlossen werden kann, egal wie die Diskussion nun ausging. So auch unser Vater der Nation Wolfi Schäubli. Der meinte nämlich wir hätten jetzt genug Diskutiert und Onlinedurchsuchungen müssten JETZT beschlossen werden.
Mehr davon bei heise.

Ich freu mich übrigends schon darauf, wenn selbst der gemeine Falschparker der "eng begrenzte Ausnahmefall" für eine Onlinedurchsuchung ist.

Bastille zum härten des Linux Systems

Da viele Bastille noch nicht kennen, möchte ich an dieser Stelle mal darauf hinweisen. Bastille ist ein Programm zum Härten eines Linux Systems. Härten bedeutet, es werden potentielle Schwachstellen von Software beseitigt. Bastille durchläuft dabei mehrere Kategorien und prüft die Installation auf Sicherheitslücken. Dabei kann der Administrator selber entscheiden, wie detailiert wer sein System absichern möchte. Bastille unterstützt die gängigen Distributionen sowie MacOSX (bisher nur als Beta).
Im Anhang befindet sich ein Dokument zum Thema "The Role of Bastille Linux in Information Security" von Michael Russell Grimaila aus dem Jahre 2002, dass die Einsatz- und Einstellungsmöglichkeiten von Bastille beschreibt.

Die ersten 2 Howtos

Wie versprochen gibt es auch Howtos und die ersten beiden davon habe ich soeben unter Howtos freigeschaltet.
Das erste Howto wurde von Kevin Fenzi und Dave Wreski verfasst und beschäftigt sich recht detailiert mit dem Thema Linux Security angefangen von physikalischer Sicherheit bis Kernel und Netzwerk Sicherheit. Für den, der mit dem Thema Sicherheit noch nicht so firm ist, lohnt es sich auf jedenfall.
Das Zweite Howto von dmiessler.com beschäftigt sich grob mit dem was der Netzwerkscanner NMAP so für einen leisten kann. Aber vergesst nicht, dank der neusten Schandtaten (§202c StGB) unserer Bundesregierung ist die Nutzung eines Scanners wie NMAP illegal.

LightTPD, Syslog-ng, Webalizer und das liebe Logformat

Ich dachte mir, installierste mal schnell Webalizer mal gucken wie die Statistik deines Webservers so aussieht. Webalizer kompiliert, kein Problem, Webalizer ausgeführt, kein einzigen korrekten Eintrag gefunden. Ok noch nicht so tragisch, war klar, dass Webalizer mein Syslog-ng Logformat nicht lesen kann. Also Syslog-ng konfiguriert, sämtliche Formatierungen gelöscht und nochmal versucht. Tja und wieder nix.
Problem am Logformat war, dass irgendwas nicht nur die Lognachricht schreibt, sondern auch noch den Prozessnamen und die PID vorn anhängt. Nun nach vielem Suchen und Testen stellt sich herraus, dass Syslog-ng Schuld ist, weil er für die Lognachricht an sich 2 verschiedene Macros bietet. Einmal $MESSAGE mit Prozess und PID vor der Nachricht und $MSGONLY als Nachricht ohne irgendwas dabei.
Da frage ich mich warum? Konnte man $MESSAGE nicht einfach die eigenlichte Nachricht sein lassen und den Benutzer entscheiden lassen ob man da PID und Prozessname mitloggen möchte, wofür gibts denn die "template" Funktion?

Edit:
Ich wollte nur mal eben Webalizer installieren und nun endete es in einer strace Debugging-Session mit LightTPD Entwicklern. Problem nun war, dass sämtliche Sonderzeichen ( z.B. und vorallem " ) im Log escaped wurden. Das konnte Webalizer natürlich wieder nicht lesen. Gute Nachricht LightTPD war es nicht Schuld und die Leute von LightTPD haben wiedermal bewiesen, dass jedes Problem ernst genommen wird (da kenn ich ganz andere!!).
Problem war das die Option template_escape() in der syslog-ng.conf standartmäßig auf yes steht und bewirkt das Sonderzeichen mit \ escaped werden. Stell man das ganze auf no sieht die Logfile auch endlich so aus wie man sie gern hätte.

import exchange mailadressen nach postfix local recipient maps

Postfix wird bei mir oft als Mailgateway vor einem bereits bestehenden Mailsystem eingesetzt.
Oftmals hat man es mit einem MS Exchange Server zutun. Dafür habe ich ein kleines Script verfasst, um die im ActiveDirectory des Exchange Servers konfigurierten Mailadressen in die local_recipient_maps von Postfix zu importieren. Das ganze läuft über ldapsearch, ein bisschen grep und sed.
Die genutzten Tools müssen entsprechend auf eurem System installiert sein und ein paar Optionen wie ActiveDirectory Domain oder Administrator Account im Script angepasst werden.
Das Script befindet sich im Anhang.

Unzustellbar dank Cyrus

Heute hab ich mich an ein schon länger bekanntes Problem auf einem Postfix-Cyrus Mailserver begeben.
Problem war, dass der Empfang von Multi Recipient Mails mit einer Unzustellbarkeitsfehlermeldung von Postfix endete, die Mails aber trotzdem beim Empfänger ankamen. Der Sender bekommt eine Fehlermeldung ala:

This is the Postfix program at host mail.example.com.
I'm sorry to have to inform you that your message could not be
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
 
            The Postfix program
 
<recipient1@example.com> (expanded from <recipient2@example.com>): data format error. Command output: : Mailbox does not exist
<recipient2@example.com> (expanded from <recipient2@example.com>): data format error. Command output: : Mailbox does not exist

Die Mailboxen bestehen aber und der Empfänger bekommt auch die Mail. Alles in allem ein Problem von Cyrus, da dieser nur einen Empfänger verarbeiten kann. Dafür muss man Postfix mitteilen, dass er immer nur einen Empfänger gleichzeitig an Cyrus weitergeben soll und damit hat sich das Problem dann erledigt.

/etc/postfix/main.cf
cyrus_destination_recipient_limit = 1

Das "cyrus" muss entsprechend mit dem korrekten Transportnamen ersetzt werden, falls er anders als cyrus heißt.

PMTU spart Zeit.

Was mir noch garnicht bekannt war, dass es einen Mechanismus gibt, der auf dem Weg vom Client zum Server die kleinste zu passierende MTU feststellt. Diese kleinste MTU nennt man PMTU (Path MTU).
Das ganze hat den Zweck, dass der Client dem Server über ICMP Typ 3 mitteilen kann welche Packetgröße er ohne Fragmentierung empfangen kann.
Leider bin ich scheinbar nicht der einzige, dem die ganze PMTU Thematik noch nicht bewusst war. Viele Firewalls blocken nämlich ICMP Typ 3 und dadurch kann auch die PMTU nicht mitgeteilt werden. Hat zur Folge, dass viele Server mit falscher Paketgröße senden und unterwegs zum Client ein paar alte Routermören das ganze Fragmentieren müssen. Was für ein Unterschied das ist wenn die PMTU nicht mitgeteilt werden kann, musste ich merken, als ich mehrere 100 MB IMAP Mailbox synchronisieren wollte und die Prozedur mich 8 Stunden gekostet hat. Nach freischalten von ICMP Typ 3 in der Firewall vor dem IMAP-Server konnte die Synchronisierung in 2 Stunden abgeschlossen werden!!!!!!!

tuxj0b.de - Ich versuchs nochmal ...

Lange Zeit war tuxj0b.de offline aufgrund von Faulheit und allgemeiner Sinnlosigkeit.
Doch jetzt hat mich die Lust wieder gepackt und ich versuche meine täglichen Erfahrung aus dem harten Leben zu dokumentieren.
In erster Linie nicht für dritte sondern für mich, da ich das erkannte Wissen sofort wieder vergesse, wenn ich es nicht täglich benötige. Aus Gründen der Höflichkeit werde ich trotzdem "die Leser" ansprechen, da sich eventuell doch mal einer auf meine Seite verirrt.

Ich bin kein Programmiergenius und auch kein Künstler, daher Drupal mit vorgefertigtem Theme.
Eventuell werde ich hier und da meinen Hang zur Individualität ausleben und eigene Grafiken einbringen, Preise möchte ich mit diesen aber keine Gewinnen.

So, ich denke nun hab ich mich genug vorab dafür entschuldigt, dass ich es wage hier Dinge zu veröffentlichen. Inhalte folgen. Den alten Kram werde ich eventuell auch wieder online bringen.

Syndicate content