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:
1) Funktioniert der Mailserver überhaupt (Test am Server selbst):
telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 dein.mailserver.net ESMTP Postfix quit 221 2.0.0 Bye Connection closed by foreign host.Er funktioniert, also lauscht auf Port 25.
2) Funktioniert Greylisting (Test von anderswo, eine frische IP, die der Mailserver, genau genommen Postgrey, noch nicht "kennt"):
telnet dein.mailserver.net 25 Trying 1.2.3.4... Connected to dein.mailserver.net. Escape character is '^]'. 220 dein.mailserver.net ESMTP Postfix helo localhost 250 dein.mailserver.net MAIL FROM:<test@example.com> 250 2.1.0 Ok RCPT TO:<userlein@dein.mailserver.net> 450 4.7.1 <userlein@dein.mailserver.net>: Recipient address rejected: Greylisted, see http://yadda/yadda/yadda.. quit 221 2.0.0 Bye Connection closed by foreign host.Greylisting funktioniert. Nach der in postgrey konfigurierten Zeit (z.B. 5 Min.) darf man natürlich nicht nochmal im Greylisting hängen bleiben.
3) Wird relaying fremder Domains verweigert (muss es! Test von irgendwo):
telnet dein.mailserver.net 25 Trying 1.2.3.4... Connected to dein.mailserver.net. Escape character is '^]'. 220 dein.mailserver.net ESMTP Postfix helo example.com 250 dein.mailserver.net MAIL FROM:<test@example.com> 250 2.1.0 Ok RCPT TO:<test2@example.com> 554 5.7.1 <test2@example.com>: Relay access denied quit 221 2.0.0 Bye Connection closed by foreign host.Brav: "Relay access denied"
4) Funktioniert pop3 (vom Mailserver selbst, plaintext):
telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. USER userlein +OK PASS geheim +OK Logged in. LIST +OK 3 messages: 1 4136 2 1705 3 1709 . QUIT +OK Logging out. Connection closed by foreign host.Verwendete Kommandos: USER, PASS, LIST, QUIT
Derselbe Test kann natürlich auch von remote ausgeführt werden.
Für diesen und die anderen Tests gilt: die Kommandos müssen nicht groß geschrieben werden.
5) Funktioniert imap (vom Mailserver selbst, plaintext):
telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK Dovecot ready. 01 LOGIN userlein geheim 01 OK Logged in. 02 LIST "" * * LIST (\NoInferiors \UnMarked) "/" "Queue" * LIST (\NoInferiors \UnMarked) "/" "Sent" * LIST (\NoInferiors \Marked) "/" "Trash" * LIST (\NoInferiors \UnMarked) "/" "Drafts" * LIST (\HasNoChildren \UnMarked) "/" "INBOX" 02 OK List completed. 03 LOGOUT * BYE Logging out 03 OK Logout completed. Connection closed by foreign host.
Verwendete Kommandos: LOGIN, LIST "" *, LOGOUT, immer mit Nummer davor. Wir lassen uns einfach unsere Ordner auflisten.
6) Funktioniert STARTTLS für smtp (getestet von remote):
telnet dein.mailserver.net 25 Trying 1.2.3.4... Connected to dein.mailserver.net. Escape character is '^]'. 220 dein.mailserver.net ESMTP Postfix ehlo localhost 250-dein.mailserver.net 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host.
Es wird auf alle Fälle vom MTA (Postfix) angeboten.
Die doppelte Angabe von "AUTH" ist übrigens kein Fehler, das gehört so - einmal mit, einmal ohne "=" (für manche Clients).
Funktioniert es aber auch wirklich?
openssl s_client -connect dein.mailserver.net:25 -crlf -starttls smtp ...sehr viel Info über den public key des Servers... --- SSL handshake has read 1556 bytes and written 369 bytes --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: D14E6blablabla Session-ID-ctx: Master-Key: 654C5blablabla Key-Arg : None Start Time: 1262264795 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) --- 250 DSN quit 221 2.0.0 Bye read:errno=0
Aha, es ist ein selbst unterzeichnetes Zertifikat, das auch wirklich funktioniert.
7) Funktionieren imaps und pop3s:
IMAPS wird mit folgendem Befehl getestet:openssl s_client -connect dein.mailserver.net:993
POP3S mit folgendem:
openssl s_client -connect dein.mailserver.net:995
Im Dialog mit Dovecot (bietet in unserem Beispiel imap(s) und pop3(s)) funktionieren jeweils die selben Befehle wie bei Verbindungen ohne Verschlüsselung (siehe weiter oben).
8) Funktioniert der Virenfilter:
Das testet man am einfachsten mit dem Eicar Testvirus: www.eicar.org/anti_virus_test_file.htmEinfach an einen lokalen User als Anhang schicken. Es darf nicht durchkommen.
9) Funktioniert der Spamfilter:
Auch das ist einfach: in der Datei /etc/mail/spamassassin/local.cf folgende Zeilen einfügen:header LOCAL_DEMO_SUBJECT Subject =~ /halloweltdasistnurspam/ score LOCAL_DEMO_SUBJECT 15.0Amavisd durchladen und dann mit genau dem Betreff "halloweltdasistnurspam" ein Mail am besten von anderswo an einen lokalen User senden. Eventuell noch den Score anpassen.
echo 'ein testmail' | mail -s 'halloweltdasistnurspam' userlein@dein.mailserver.net
Trackbacks
Trackback-URL für diesen Eintrag
Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Noch keine Kommentare
Kommentare deaktiviert