Viele von Euch oder zumindest diejenigen die ein funktionierendes Mailsystem ihr eigen nennen, werden um die Nutzung einer AntiSpam Software nicht herumkommen. Die wahrscheinlich bekannteste ist SpamAssassin. Da ich jedoch in diesem Artikel weder auf die Installation noch Beschreibung von SpamAssassin eingehen möchte, kann ich für interessierte Leser den Wiki-Artikel empfehlen.
Worauf ich zu sprechen kommen möchte, ist ein Script Namens sa-stats.pl. Dieses Perl Script, implementiert von David Ramsden, wertet SpamAssassin-Einträge aus Maillogfiles aus und gibt diese, aufgesplittet nach Spam und Ham, in tabellarischer Form aus. Dies ist z.B. sinnvoll um zu sehen welcher der User oder welche Domain prozentuall den meisten Spam erhält.
Da es unsere Mail-Admin’s aber auch interessiert, welche Filter dazu führen dass eine Mail als Spam deklariert wird, wurde ich beauftragt eine kleine Erweiterung des Scripts zu schreiben, welche die Quantität und den prozentualen Anteil der Filter augibt. Kurz gesagt eine Auswertung der von SpamAssassin vernwendeten Filter.
Interessierte finden das Script hier. Über Kritik, Lob, Anregungen oder sonstige Kommentare würde ich mich freuen.
SSH (Secure Shell) ist sowohl ein Protokoll als auch eine Reihe Von Anwendungen um dieses zu nutzen. Es wird genutzt um eine Verschlüsselte Verbindung zu entfernten Rechnern aufzubauen. Diese Verbindung kann dann quasi beliebige Daten transportieren, wird aber zumeist dafür benutzt eine Remotekonsole zu steuern oder Dateien zu übertragen (Secure Copy, SCP genannt). Das Protokoll ist auf OSI Schicht 7 angesiedelt und kommuniziert Standardmäßig (nach den Vorgaben der IANA) über Port 22.
Obwohl SSH an sich schon sehr Sicher ist, kommt es doch gelegentlich zu erfolgreichen Angriffen die es dem Angreifer dann natürlich unter Umständen ermöglichen Root-Rechte zu erlangen. Häufigste Ursache für den erfolgreichen Angriff sind in der Praxis meist schwache Passwörter und falsch konfigurierte SSH Daemons. Aus diesem Grund möchte ich hier darauf eingehen wie man den SSH Zugriff gegen diese beiden Faktoren härten kann.
Weiterlesen: “SSH, denn sicher ist sicher”
Um euch das stundenlange suchen, Apache doku lesen und rumprobieren zu ersparen, werde ich euch hier verraten wie man vor der HTTP-Authentifizierung zu HTTPS wechselt.
Das eigentliche Problem der Basic-Authentication ist, dass diese Passwörter und Nutzernamen im Klartext übertragen werden. Leider ist das ja nicht immer gewollt und unter umständen sehr unsicher.
So hier nun zur Konfiguration. Am einfachsten klappt es in dem Ihr, im zu schützenden Verzeichnis, eine .htaccess Datei anlegt und folgenden Inhalt hinzufügt:
AuthUserFile /var/www/domain.tld/secret/.htpasswd
AuthType Basic
AuthName "Secret Site"
require valid-user
SSLrequireSSL
ErrorDocument 403 /redirect.php
Die ersten 4 Einträge sollten klar sein. Mit SSLrequireSSL erzwingt man denn Zugriff via HTTPS. Wird die Domain nur mit HTTP aufgerufen, antwortet der Apache mit einem 403 Fehler. Dies fangen wir mit dem Eintrag ErrorDocument 403 /redirect.php ab. In diesem steht nur:
<?php
header('Location: https://www.domain.tld/secret/');
?>
So leiten wir alle normalen HTTP anfragen direkt auf HTTPS um. Danach erfolgt die Basic Authentication. Und schon wird die Authentifizierung nur noch über HTTPS abgewickelt.
Tolle Sache
1
XSLT (Extensible Stylesheet Language Transformation) ist eine noch recht junge Sprache die aus DSSSL 120hervorgegangen ist. Sie übersetzt einfache XML-Inhalte nach den in der XSLT-Datei festgelegten Regeln in eine Andere Sprache - zumeist HTML. Dazu wird ein sogenannter XSLT Prozessor genutzt der das XML entweder Serverseitig Transformiert und so schon HTML an den Client ausliefert oder der Browser übernimmt diesen Part und übersetzt lokal. Nähere Information bietet hier wie immer die Wikipedia121. Ich zeige hier in erster Linie den Weg über den Browser auf da die Kompatibilität inzwischen in meinen Augen ausreichend ist (IE ab Version 6, Mozilla ab Version 1.0.2).
PHP-SimpleXML ist eine Reihe von Funktionen die PHP anbietet um im XML Dateien aus Objekten zu erzeugen oder Objekte aus XML-Dateien zu erstellen. Dazu bedient sie sich einer DOM Struktur. SimpleXML ist ein Bestandteil von PHP der Version 5 und wird Standardmäßig mitinstalliert. Die meisten Provider bieten diese Funtionen auch an. Weitere Infos bietet hier PHP.net122 selbst.
Was wir hier nun probieren wollen ist mit PHP-SimpleXML XML Dateien zu erzeugen die dann mit XSLT Dargestellt werden. Erfahrungen mit PHP, HTML, CSS und XML an sich sind dabei vorausgesetzt. Ziel ist es eine Nutzerliste wie sie zum Beispiel in einem Forum zu sehen wäre anzuzeigen. Die Möglichkeiten sind natürlich unendlich ;o) .
Weiterlesen: “Design und Content perfekt getrennt mit XSLT und PHP-SimpleXML”
Wer kennt das nicht, man hat einen riesigen sql dump und möchte nur eine Tabelle daraus haben um diese erneut anzulegen. Aber der sql dump ist 2 GB gross und zum suchen in less oder vim hat man keine lust.
Hier kommt die Lösung, auf dieses Problem:
sed -n '/^CREATE TABLE foobar/,/^)\;/p' dump.sql
Wie einfach doch die Welt sein kann. Dieser Einzeiler eignet sich natürlich hervorragend um auch andere Daten aus Texten heraus zu schneiden.
[UPDATE]
Natürlich geht das auch wunderschön mit Perl:
cat test.txt | perl -ni -e 'print if m/^ANFANG/..m/^ENDE/;'