SpamAssassin: Benutzerdefinierte Regeln


Es ist sehr leicht möglich, eigene benutzerdefinierte Regel für SpamAssassin festzulegen. Dazu muss nur die local.cf um wenige Zeilen erweitert werden. SpamAssassin ist ein Programm, welches eingehende eMails scannt und diese nach einem Punkteschema beurteilt, ob diese Spam sind oder nicht. Das Programm ist serverseitig, nicht für eMail-Clients, etc geeignet.

Beispiele für benutzerdefinierte Regeln
Nach Betreff scannen

header RULE1 Subject=~ /depp/i
score RULE1 5.0
describe RULE1 Schimpfwort in eMail vorhanden

Sobald das Wort “depp” im Betreff vorkommt, wird die Spam-Beurteilung der eMail um 5 Punkte erhöht. In der Tabelle wird dann die oben genannte Beschreibung angegeben.

From-Adresse scannen

header RULE2 From =~ /blubb@domain.tld/i
score RULE1 5.0
describe RULE1 Abesnder ist blubb@domain.tld

Nun wird überprüft, ob der Sender mit der eMail Adresse “blubb@domain.tld” entspricht. In diesem Fall wird jedoch auch testblubb@domain.tld erkannt.

Body: eMail-Inhalt scannen

body RULE3 /hack/i
score RULE3 7.0
describe RULE3 Wort "hack" enthalten

Mit dieser Regel wird nach dem Wort “hack” in der eMail gesucht.

Änderungen übernehmen
Um die Änderungen zu übernehmen, muss SpamAssassin neugestartet werden.
Dies kann man mit folgenden Befehl machen:

spamassassin -D --lint

Um sicherzugehen, dass alle Änderungen korrekt übernommen wurden, sollte man auch den SpamAssassin-Daemon neustarten. Das ist auf jedem System etwas anders, je nachdem wie SpamAssassin eingerichtet wurde. Standardmäßig sollte folgender Befehl funktionieren:

/etc/init.d/spamassassin restart

Hilfreiches
Wer genauere Regeln erstellen möchte, kann sich auf der folgenden Seite einen Überblick von vielen verschiedensten Möglichkeiten ansehen: http://johnbokma.com/spam/spamassassin-cookbook.html

MySQL & PHP: Vergleichen eines eingegebenen Passwortes mit ENCRYPT von MySQL


Ich stand gerade vor dem Problem, ein eingegebenes Passwort von einem HTML-Formular mit einer MySQL Datenbank zu vergleichen. Der Haken war jedoch, dass die Passwörter mit der ENCRYPT()-Funktion von MySQL verschlüsselt wurden.

Lässt man also ein Passwort in die MySQL Datenbank mit ENCRYPT(“passwort”) speichern, wird das Passwort zufällig verschlüsselt und wird bei so einen Beispiel-Vergleich mit PHP nie richtig sein:

mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort')")

Verzweifelt habe ich dennoch versucht, die Passwörter zu vergleichen.
Die Lösung war eigentlich einfach – wenn man es weiß…:

mysql_query("SELECT password FROM users WHERE password=ENCRYPT('eingegebenes_passwort', password)")

Das heißt, MySQL vergleicht – irgendwie – das eingebene mit dem vorhandenen Passwort und gibt danach das Passwort zurück, wenn das eingegebene Passwort richtig gewesen ist.

Ich hoffe es sparrt Euch viel Ärger und Nerven 🙂

Linux: archey – Systeminformationen anzeigen


Ich habe kürzlich ein nettes Tool namens “archey” entdeckt, welches die wichtiges Systeminformationen mit einem Befehl ausgibt – sogar etwas optisch aufbereitet. Wie das aussieht? So:

Schlicht und simpel – genauso wie die Installation.

Starten
Sobald das Programm installiert ist, kann es mit folgenden Befehl ausgeführt werden:

archey

Installation
Zuerst die benötigen Pakete installieren:

apt-get install lsb-release scrot

Dann das Programm herunterladen & installieren:

wget http://github.com/downloads/djmelik/archey/archey-0.2.8.deb
dpkg -i archey-0.2.8.deb

Zum aufräumen das Setup danach löschen:

rm archey-0.2.8.deb

Und fertig. Nun kann man das Programm einfach mit “archey” aufrufen.

Autostart nach Login
Optional kann man sich die Übersicht direkt beim Login anzeigen – auch das ist sehr leicht zu realisieren.

echo "archey" >> ~/.bashrc

Danach wird die Übersicht beim Start angezeigt, jedoch nur bei dem Konto wo der Befehl ausgeführt wurde.

Linux: Split Screen in screen oder tmux


Split Screen. Genau das habe ich vor wenigen Tagen mal gebraucht, wo ich gleichzeitig die Serverauslastung und Logs überwachen wollte. Natürlich habe ich auch dafür eine Lösung gefunden. Split Screen kann man mit dem Programm screen oder auch mit tmux machen – hier werde ich die Befehle für beide Programme erläutern.

Zuerst mal zwei Beispiel-Screenshots, wie das aussehen kann:

screen
tmux

Oder wenn man etwas mehr Fenster benötigt, kann es mal so aussehen:

screen

Welches Programm du verwenden möchtest, ist dir überlassen – Ich persönlich verwende und empfehle screen.

Nun die Auflistung aller relevanten und hilfreichen Tastenkürzel für screen und tmux. Bitte beachte bei screen: Sobald du ein Terminal teilst, musst du in das neue Terminal wechseln und dort eines neues Terminal erstellen, da du ansonsten dort nichts eingeben kannst (siehe Tastenkürzel in Tabelle)!

Befehlsauflistung
Die Auflistung der Befehle für screen:

Neues Terminal erstellen STRG + A C
Terminals minimieren STRG + A D
Nächstes Terminal STRG + A Leertaste
Vorheriges Terminal STRG + A Backspace
Zu Terminal x wechseln (0-9) STRG + A x
Terminals auflisten STRG + A
Terminal vertikal teilen STRG + A |
Terminal horizontal teilen STRG + A SHIFT + S
Terminal nicht mehr teilen STRG + A SHIFT + Q
Zwischen geteilten Terminal wechseln STRG + A TAB

Die Auflistung der Befehle für tmux:

Neues Terminal erstellen STRG + B C
Nächstes Terminal STRG + B N
Vorheriges Terminal STRG + B P
Terminal vertikal teilen STRG + B SHIFT + 5
Terminal horizontal teilen STRG + B SHIFT + 2
Zwischen geteilten Terminal wechseln STRG + B O
Derzeitiges Panel schließen STRG + B X

Bei Fragen, Wünschen oder Anregungen bitte die Kommentare benutzen 🙂

Linux & MySQL: Backup per Konsole erstellen und einspielen


Mit zwei kurzen kurzen Linux Befehlen kann man seine MySQL Datenbank in eine SQL Datei speichern und auch wieder importieren lassen.

Backup erstellen:
mysqldump -u root -p --all-databases --result-file=dbdata.sql

Zum importieren:
mysql -u root -p < dbdata.sql

Sobald man den Befehl ausführt, muss man auch noch das Passwort des Benutzers angeben.
Achtung: Auch die Benutzer werden dabei dann exportiert und auch beim Import überschrieben!