Category Archives: Linux

SMTP-Auth und TLS bei Sendmail nachrüsten Teil 2

So, wie versprochen heute der 2.Teil über SMTP-AUTH und TLS in Sendmail nachrüstenund zwar der für SuSE 8.1. Teil 1 gibt es hier

Zuerst sollte man kontrollieren ob openssl und cyrus-sasl auf dem System vorhanden ist, wenn nicht über Yast nachinstallieren. Nun müssen wir uns ein paar Schlüssel generieren und die dazugehörige Certificate Authority. (Was das alles genau ist verkneife ich mir, das kann man hier nachlesen). Normalerweise ist dafür das Script CA.pl zuständig, allerdings müssen wir es patchen. Wer weiss wie sowas funktioniert kann diesen Patch nutzen:

--- /usr/share/ssl/misc/CA.pl   2002-09-09 22:21:44.000000000 +0200
+++ ./CA.pl     2003-06-22 14:06:14.000000000 +0200
@@ -58,12 +58,12 @@
            exit 0;
        } elsif (/^-newcert$/) {
            # create a certificate
-           system ("$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS")
+           system ("$REQ -new -x509 -nodes -keyout newreq.pem -out newreq.pem
            $RET=$?;
            print "Certificate (and private key) is in newreq.pem\n"
        } elsif (/^-newreq$/) {
            # create a certificate request
-           system ("$REQ -new -keyout newreq.pem -out newreq.pem $DAYS");
+           system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS"
            $RET=$?;
            print "Request (and private key) is in newreq.pem\n";
        } elsif (/^-newca$/) {

Ansonsten hier herunterladen, in CA.pl umbenennen (mv CA.txt CA.pl) und mit chmod 750 ./CA.pl wieder ausführbar ist. Ich gehe im folgenden davon aus, das sich das Script in /root/ca befindet und wir mit cd /root/ca auch dorthingehen.

Und los geht es mit:

./CA.pl -newca

Hiermit wird die sog. Root-CA initialisiert. Zu beachten gibt es hier das die erste Frage nur mit einem Return beantwortet werden sollte und das geforderte Passwort NICHT dem Root-Passwort entsprechen sollte. Wenn alles soweit beantwortet ist mit

cp demoCA/cacert.pem /etc/mail/certs/CA.cert.pem

die entsprechende Datei an die richtige Stelle kopieren. Nun erzeugen wir den Key für den Server und kopieren ihn wie gehabt an seinen Bestimmungsort.


./CA.pl -newreq

cp newreq.pem /etc/mail/certs/MYServer.key.pem

Es folgt das Zertifikat


./CA.pl -sign

cp newcert.pem /etc/mail/certs/MYServer.cert.pem

Nun löschen wir die eben erzeugten Dateien mit rm new*, weil wir nun noch ein Zertifikat erzeugen für die Funktion als Client. Das ist der Fall wenn Sendmail seine Emails über einen sog. Smarthost abliefert.


./CA.pl -newreq


cp newreq.pem /etc/mail/certs/MYClient.key.pem


./CA.pl -sign


cp newcert.pem /etc/mail/certs/MYClient.cert.pem

Abschließend wird sichergestellt das später nur root Zugriff auf die Daten hat

chmod 600 /etc/mail/certs/*

Damit hätten wir den schwierigsten Teil hinter uns. Nun noch zwei Dateien für die Sendmail-Konfiguration über SuSEConfig anpassen. Zuerst wäre da die /etc/sysconfig/mail. Der Parameter SMTPD_LISTEN_REMOTE hat mir mal eine Stunde meines Lebens gekostet, weil ich mich gewundert habe warum Sendmail nur auf localhost lauscht. Also auf no stellen, dann lauscht er wieder auf allen Interfacen.

#
# From:-Line in email and News postings
# (otherwise the FQDN is used)
#
FROM_HEADER=""
#
# If you don't want to let SuSEconfig generate your
# configuration file, set this to no
#
MAIL_CREATE_CONFIG="yes"

#
# Set this to "yes" if mail from remote should be accepted
# this is necessary for any mail server.
# If set to "no" or empty then only mail from localhost
# will be accepted.
#
SMTPD_LISTEN_REMOTE="no"

Nun noch in /etc/sysconfig/sendmail folgende Parameter anpassen.



SMTP_AUTH_MECHANISMS=”CRAM-MD5 PLAIN LOGIN”


SMTP_AUTH_SERVER=”CRAM-MD5 PLAIN LOGIN”


STARTTLS=”both”

Auf der console nochmal SuSEconfig ausführen – Fertig! Und nun sage nochmal einer SuSE wäre einfach :) Ansonsten gibt es noch anzumerken, das dies inspiriert wurde durch einen älteren Beitrag im Linuxjournal, allerdings angepasst an die Gegebenheiten einer SuSE 8.1. Für weiterführende Info ist natürlich die Sendmail-Homepage zu empfehlen, besonders die Seiten von Claus Assmann zu dem Thema.

SMTP-Auth und TLS bei Sendmail nachrüsten

Update: Teil 2 über SuSE 8.1 ist hier zu finden.

Viele haben mittlerweile einen eigenen Linux-Server, sei es zuhause, als Root-Server irgendwo im Internet oder in der Firma und benutzen ihn nicht nur als Web-Server, sonder auch als Mail-Server. Solange man nur aus dem LAN Mails verschicken will ist das auch alles kein Problem, da hat man eine feste IP-Adresse und die darf Relayen. Aber was macht man nun wenn unsereins Unterwegs ist und irgendeine IP-Adresse hat? Früher wurde sog. SMTP-after-POP gemacht, dabei musste zuerst Mails abgeholt werden und durfte dann für einen bestimmten Zeitraum Mails verschicken. Diese Lösungen sind aber teilweise recht knifflig in der Installation und wenn man den Zeitraum, in dem Mails versandt werden dürfen zu gross wählt, hat man evtl. Spammer auf dem Server.

Postkasten umziehen

Da hat man nun seine Mail im Postkasten liegen und will sie an eine neue Adresse umziehen. Klar kann man sich alle Mails neu zuschicken, das ist aber etwas mühsam und aufwendig. Einfacher geht es mit formail:

formail -s /usr/sbin/sendmail foo@bar.baz  < /var/spool/foobar

Damit leitet man alles an foo@bar.baz weiter. Das funktioniert nicht nur bei der normalen Inbox, sondern auch mit bereits einsortierten Mails.

formail -s /usr/sbin/sendmail foo@bar.baz  < ~/Mail/inbox/Kram/8
Seite 57 von 57« Erste...102030...5354555657