Donnerstag, 31. Dezember 2009
Diverse Maildienste auf der Kommandozeile testen
Vertrauen ist gut, Kontrolle ist besser. Hier folgt eine Sammlung von Kommandozeilentests für diverse Maildienste (smtp, pop, imap...)
Wir gehen davon aus, dass der Mailserver erfolgreich installiert ist, in diesem Fall sei das Postfix mit Postgrey und Amavis, das Zertifikat wurde erstellt, die erforderlichen Dienste laufen und die gewünschten Ports sind in der Firewall geöffnet. Die Dienste imap, imaps, pop3 und pop3s werden von Dovecot zur Verfügung gestellt.
Als Beispieldomain verwende ich dein.mailserver.net, als Beispiel-IP 1.2.3.4, der Beispieluser (brauchen wir zum Testen der Dienste mit Login) heißt userlein und er hat das Passwort "geheim".
Um es übersichtlicher zu machen, sind die einzugebenden Befehle grün, die Antworten des Servers, auf die es besonders ankommt sind blau.
Nun aber zu den Praxisbeipielen:
Wir gehen davon aus, dass der Mailserver erfolgreich installiert ist, in diesem Fall sei das Postfix mit Postgrey und Amavis, das Zertifikat wurde erstellt, die erforderlichen Dienste laufen und die gewünschten Ports sind in der Firewall geöffnet. Die Dienste imap, imaps, pop3 und pop3s werden von Dovecot zur Verfügung gestellt.
Als Beispieldomain verwende ich dein.mailserver.net, als Beispiel-IP 1.2.3.4, der Beispieluser (brauchen wir zum Testen der Dienste mit Login) heißt userlein und er hat das Passwort "geheim".
Um es übersichtlicher zu machen, sind die einzugebenden Befehle grün, die Antworten des Servers, auf die es besonders ankommt sind blau.
Nun aber zu den Praxisbeipielen:
"Diverse Maildienste auf der Kommandozeile testen" vollständig lesen
Amavis, sa-learn und awl
Gelegentlich flutscht auch mal ein Spammail durch den Amavis-Filter und landet damit ungewollt in der Autowhitelist, bzw. wird von Bayes fälschlicherweise als sauber erkannt.
Mit zwei Kommandos kann das richtig gestellt werden.
Amavis läuft als unprivilegierter User (in diesem Fall als vscan), damit sa-learn und spamassassin für den richtigen Filter funktionieren, rufen wir die Kommandos mit sudo auf (als root):
Das kann natürlich auch gleich getestet werden:
Mit zwei Kommandos kann das richtig gestellt werden.
Amavis läuft als unprivilegierter User (in diesem Fall als vscan), damit sa-learn und spamassassin für den richtigen Filter funktionieren, rufen wir die Kommandos mit sudo auf (als root):
sudo -u vscan spamassassin --remove-addr-from-whitelist spammer@doofe-domain.net
...entfernt die Email Adresse aus der Whitelist.
sudo -u vscan sa-learn --spam spammail.eml
...trainiert Bayes auf das vormals durchgeflutschte Mail (hier spammail.eml).Das kann natürlich auch gleich getestet werden:
sudo -u vscan spamassassin -L -D < spammail.eml
Siehe da, Bayes vergibt jetzt 3.5 Punkte, AWL ist völlig verschwunden.Sonntag, 20. Dezember 2009
Floats vergleichen in der Bash
Die Bash (test) kann an sich nur Ganzzahlen vergleichen, übergibt man eine Fließkommazahl, führt das zu einem Fehler.
So richtig Sinn macht das klarerweise erst mit Variablen:
if [ 12.3 -gt 12 ]; then echo '>'; fi
bash: [: 12.3: integer expression expected
Möchte man doch schnell mal zwei floats vergleichen, geht das ganz einfach mit bc. Zuerst interaktiv:
bash: [: 12.3: integer expression expected
xela@linux:~> bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. if (10.123 > 10.1119) 1 else 0 1 quitUm diese Art Test in einem Skript verwenden zu können, nehmen wir "echo" zum Übergeben an bc:
if [ $(echo "if (19 >= 19.00000) 1 else 0" | bc) -eq 1 ] ; then echo größergleich; else echo kleiner; fi
Wichtig dabei ist das "else 0", damit auf alle Fälle ein Integer (Ganzzahl) zurückgegeben wird, den test (also [ ) dann vergleichen kann.So richtig Sinn macht das klarerweise erst mit Variablen:
a='3.333'; b='3.2176'; if [ $(echo "if (${a} > ${b}) 1 else 0" | bc) -eq 1 ] ; then echo größer; else echo kleiner; fi
(Seite 1 von 1, insgesamt 3 Einträge)