Sendmail konfigurieren

kancu

New Member
Guten Tag,

seit gestern kommen keine Mails mehr von meinem Server an (webtropia). Es handelt sich um einen vServer mit Debian 7. Auf diesem war sendmail vorinstalliert, welcher bisher auch mehr (oder weniger) seinen Job erledigt hat.

Der Server versendet nur Mails von Logwatch und über phpmailer. Es werden nur Mails vom localhost versendet. Ich habe an der Konfiguration bisher nichts verändert, müsste also noch die von webtropia vorgegebene sein (der default mta von debian 7 ist ja, soweit ich weiß, exim).

Gmx nimmt meine Mails vom Server seit gestern nicht mehr an und wie ich herausgefunden habe wurde auch früher schon mal von freenet.de eine Mail abgewiesen aus dem selben Grund.

/var/log/mail.info
Code:
Jun 15 03:30:06 xxx sm-mta[23149]: s5F1U6rr023147: to=<xxx@gmx.de>, ctladdr=<root@xxx.vs.webtropia.com> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=124777, relay=mx01.emig.gmx.net. [213.165.67.97], dsn=5.0.0, stat=Service unavailable
Jun 15 03:30:06 xxx sm-mta[23149]: s5F1U6rr023147: s5F1U6rr023149: DSN: Service unavailable

/var/spool/...
Code:
... while talking to mx00.emig.gmx.net.:
<<< 554-gmx.net (mxgmx012) Nemesis ESMTP Service not available
<<< 554-No SMTP service
<<< 554 invalid DNS PTR resource record

/var/spool/...
Code:
... while talking to mx.freenet.de.:
>>> DATA
<<< 550-inconsistent or no DNS PTR record for xxx (see RFC 1912
<<< 550 2.1)
DNS PTR resource record fehlt also. Diesen kann ich auch für meine Domain selber anlegen.

Jetzt kommt der Punkt wo ich bisschen verwirrt bin. Der Mailserver versendet die Mails ja mit der Domain xxx.vs.webtropia.com in der Mail-Adresse. Meine Domain (domain1.de), wo ich den "DNS PTR resource record" eintragen kann ist aber eine andere. Außerdem zeigt noch eine zweite Domain (domain2.de) auf den Server.

Ich habe mal bei mxtoolbox.com geguckt und heraus kam folgendes:
xxx.vs.webtropia.com
"No Records Exist" (mx)

IP-Adresse
"No ptr Records exist"

domain1.de
mail.domain1.de (mx)

Für die xxx.vs.webtropia.com gibt es weder den ptr record noch ein mx-record.

Für domain1.de gibt es den mx-record, aber der ptr fehlt.

Muss ich jetzt sendmail so konfigurieren, dass er domain1.de nutzt und den ptr record für die domain1.de anlegen oder wie löse ich das Problem?

Für die Berichte von Logwatch war es mir bisher immer ziemlich egal ob die Mail-Adresse root@xxx.vs.webtropia.com war (die natürlich auch im Mail-Header zu finden ist). Für domain2.de (phpmailer) war diese Mail-Adresse auch im Mail-Header zu finden, soweit ich weiß. Ich habe leider keine Mail davon um mir den Header anzusehen.

Ich würde das jetzt gerne auch so abändern, dass im Mail-Header der Mails, die vom phpmailer versendet werden, die Mail-Adresse auch irgendwas mit ...@domain2.de ist, falls möglich.

Ich habe mir auch schon bisschen die Konfigurationsdateien von sendmail angeguckt, aber die sendmail.cf ist auch ein richtiger Brocken. :confused:

Mit freundlichen Grüßen
kancu
 
Bei phpmail kannst du doch Absender etc. einstellen, schau bitte mal bei http://phpmailer.worxware.com/index.php?pg=examples

Das mit sendmail verstehe ich nicht. Du hast sendmail auch noch neben exim installiert? exim bringt doch einen sendmail-ähnlichen MTA mit.

Was das Abweisen der Mails von anderen Servern anbelangt: du musst für deine absendende Domain gültige öffentlich zugängliche DNS-Einträge haben!
Manche Mailserver weisen Mails von Servern ab, die sich mit ihrem vom Hoster zugewiesenen Hostname melden.
Und hast du SPF- oder Domainkey-Records in deinen Domains?
 
Last edited by a moderator:
Ich habe das Ilch-CMS installiert und das nutzt laut den Logfiles den phpmailer. Ich weiß jetzt nicht wie das CMS den phpmailer genau nutzt. Man kann den Absender im CMS einstellen. Allerdings habe ich keine Mail um zu gucken ob jetzt wirklich im Mail-Header nicht doch der webtropia-Hostname zu finden ist.

Hier ist gar kein exim mehr installiert. Anscheinend hat Webtropia das komplett durch sendmail ersetzt.

Wenn mit öffentlich DNS-Eintrage die NS-Records der Domain gemeint sind, dann sind diese eingerichtet.

Dann müsste ich das von dem Hostnamen vom Provider auf meine domain1.de ändern.

Unter SPF- und DomainKey-Record habe ich jetzt was gefunden über TXT Record und dieses kann ich für meine Domain auch einstellen. Ist bisher noch nicht.
https://adminconsole.wiki.zoho.com/domains/SPF-Record.html
http://de.wikipedia.org/wiki/Sender_Policy_Framework
http://de.wikipedia.org/wiki/TXT_Resource_Record

http://blog.servergrove.com/2012/04/02/best-practices-to-send-out-emails-with-your-server/

Also muss ich folgendes machen?
  • domain1.de nutzen (Wie und wo (bei sendmail) einstellen?)
  • PTR (wird ja auch explizit laut den Logfiles bemängelt)
  • TXT Record

Danke.

Grüße
kancu
 
Last edited by a moderator:
Moin,

als erstes machst du einen MX Eintrag in deinem Domain Anbieter (Domain sollte vorhanden sein).
Danach schreibst du dem Support deines Roots, dass du einen PTR Eintrag brauchst mit folgenden Daten:

- IP des Roots
- Domain (MX/Mail Domain)

Damit hast du schonmal die Vorwärts und Rückwärts auflösung der Domain in IP geschafft.

Dann erst kannst du anfangen, dein Sendmail oder was auch immer zu konfigurieren.

Hoffe ich konnt helfen...

Musste das erst vor paar Tagen machen... daher hab ich das noch so im Kopf ;)
 
Danke :)

Den PTR-Eintrag kann ich sogar selber bei Webtropia für meine Domain anlegen und ein MX-Record ist bereits vorhanden für mail.domain1.de.

Gehe ich richtig in der Annahme, dass ein PTR-Eintrag und irgendeine Einstellung betreffend RDNS im Ergebnis das Gleiche ist? Habe hier die Möglichkeit für meine Domain den PTR-Eintrag anzulegen oder in einem Menü RDNS die IP-Adresse auf eine Domain auflösen zu lassen.
https://forums.digitalpoint.com/threads/ptr-vs-rdns.1860375/

Muss ich, wenn ich das erledigt habe, den Hostnamen anpassen?
Damit meine ich folgende Konfigurationsdateien anpassen:
  • etc/hosts
  • etc/hostname

Dort steht bisher:
etc/hosts
Code:
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

# Auto-generated hostname. Please do not remove this comment.
IP-Adresse xxx.vs.webtropia.com xxx

etc/hostname
Code:
xxx.vs.webtropia.com

Bitte korrigieren, falls ich falsch liege.
xxx.vs.webtropia.com ist ja ein FQDN. Diesen müsste ich dann durch den FQDN mail.domain1.de ersetzen, sowie das einzelne xxx durch mail. Muss dieser gleich dem MX-Record sein? Also wenn der MX-Record mail.domain1.de lautet, muss ich dies dann auch in die beiden Konfigurationsdateien eintragen?

Falls ja, irritiert mich das ein bisschen, weil die ganze Kiste dann irgendwas mit mail heißt, obwohl sie ja nicht nur dafür da ist. Und wenn ich das abändere auf irgendwas.domain1.de und den MX-Eintrag entsprechend anpassen müsste, hätte der wiederum einen komischen Namen. :confused: :D

Hostname, MX-Eintrag und PTR müssen also den gleichen FQDN enthalten?

War es in deinem Fall auch sendmail oder Postfix, Exim, ... ?

Grüße
kancu
 
Nach einem Backup habe ich mal ein paar Änderungen vorgenommen.

etc/hosts
Code:
IP-Adresse server.domain1.de server

etc/hostname
Code:
server.domain1.de

RDNS (PTR):
IP-Adresse server.domain1.de

mxtoolbox.com meldet jetzt auch das die IP-Adresse auf server.domain1.de zeigt.

Gerade zum Test eine Mail verschickt und die ist auch angekommen. Im Mail-Header ist auch nicht mehr die Rede von xxx.vs.webtropia.com.

Jetzt gibt es noch zwei Probleme.

1.
Wenn ich den Server neustarte, wird etc/hosts und etc/hostname zurückgesetzt und alles ist wie vorher.
Wenn ich /etc/init.d/hostname.sh start ausführe ist der Hostname auch wieder auf xxx.vs.webtropia.com geändert. Soweit ich weiß hat das was mit dem DHCP-Server zu tun (Server bekommt den Hostnamen zugewiesen). Irgendwo habe ich dazu schonmal was gelesen. Finde ich nur nicht wieder. Ich scheue mich bisschen hostname.sh zu modifizieren.

Ich weiß, dass ich in etc/rc.local dafür sorgen könnte, dass der Hostname direkt wieder gesetzt wird, aber was ist mit der etc/hosts?

2.
Im Mail-Header finde ich 3x "Received: from ..." (Zusammenarbeit von MTA und MDA?). War von Anfang an so. Passt das?
Code:
Return-path: root@server.domain1.de

Received: from server.domain1.de ([IP-Adresse]) by mx-ha.gmx.net
 (mxgmx108) with ESMTPS (Nemesis) id 0MMXy6-1WoEzD2FSg-008GbF for
 <empfaenger@gmx.de>; Mon, 16 Jun 2014 13:30:13 +0200

Received: from server.domain1.de (localhost [127.0.0.1])
 by server.domain1.de (8.14.4/8.14.4/Debian-4) with ESMTP id s5GBUD3D004688
 for <empfaenger@gmx.de>; Mon, 16 Jun 2014 13:30:13 +0200

Received: (from root@localhost) by server.domain1.de (8.14.4/8.14.4/Submit)
 id s5GBUCdX004687 for empfaenger@gmx.de; Mon, 16 Jun 2014 13:30:12 +0200

Date: Mon, 16 Jun 2014 13:30:12 +0200
From: root <root@server.domain1.de>
Message-ID: <201406161130.s5GBUCdX004687@server.domain1.de>
To: empfaenger@gmx.de

...

Grüße
kancu
 
Last edited by a moderator:
Du kannst versuchen /etc/hostname durch spezielle Linux ACL einen Schutz vor Änderung zu setzen.

setfacl -m m::r-- /etc/hostname

Aber ich erinnere mich, dass manche vServer (mit VZ) das nicht mögen und nicht neustarten.
 
Last edited by a moderator:
Ich denke ich würde das dann per Script, wie hier erledigen:

Leider werden die Mails, die per phpmailer versendet werden als Spam erkannt.
Macht auch keinen Unterschied ob bei "From" jetzt admin@domain2.de oder admin@domain1.de steht.

X-GMX-Antispam: 5 (nemesis mail header analyzer)
:(

Code:
Return-path: www-data@server.domain1.de

Received: from server.domain1.de ([IP-Adresse]) by mx-ha.gmx.net
(mxgmx006) with ESMTPS (Nemesis) id 0MMXl8-1WoHg83CCU-008Gaq for
<empfaenger@gmx.de>; Mon, 16 Jun 2014 15:15:02 +0200

Received: from server.domain1.de (localhost [127.0.0.1]) by
server.domain1.de (8.14.4/8.14.4/Debian-4) with ESMTP id s5GDF1ur004880 for
<empfaenger@gmx.de>; Mon, 16 Jun 2014 15:15:01 +0200

Received: (from www-data@localhost) by server.domain1.de
(8.14.4/8.14.4/Submit) id s5GDF1Do004879; Mon, 16 Jun 2014 15:15:01 +0200

To: empfaenger@gmx.de
Subject: Anmeldung
X-PHP-Originating-Script: 1002:class.phpmailer.php
Date: Mon, 16 Jun 2014 15:15:01 +0200
From: "automatische eMail" <admin@domain2.de>
Message-ID: <f2dc8421b23265a466dd8b92aec45268@www.domain2.de>
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.sourceforge.net) [version 2.0.4]
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by server.domain1.de id s5GDF1ur004880
Envelope-To: <empfaenger@gmx.de>
X-GMX-Antispam: 5 (nemesis mail header analyzer); Detail=V3;
 
SPF und DKIM klappt bei deiner Absenderdomain? Hast du DNS mal von einem externen DNS wie 8.8.8.8 geprüft?

Vielleicht solltest du den X-Mailer rauswerfen, kann sein, dass GMX da
Spamsoftware erkennt.

Und so unfehlbar ist deren Spamscanner auch nicht. Vielleicht beißt der sich am Unterschiedlichen Domains/Adressen bei From und Return-path
 
Last edited by a moderator:
SPF und DKIM hatte ich noch nicht. Ich habe jetzt mal einen TXT Record (explizit SPF kann ich hier nicht eintragen) für die Domain in dieser Form eingetragen und jetzt ist eine Mail vom phpmailer angekommen (ist noch mit X-Mailer). Vielleicht war es auch nur Glück?

Code:
v=spf1 a mx include:domain2.de ?all

Den habe ich mit http://www.spf-record.de/spf-generator.php angelegt. mxtoolbox.com meldet allerdings noch, dass der SPF record ungültig ist.

Für DKIM müsste ich mich erst einmal hier durchwühlen und auch sonst bisschen anlesen.
http://www.royhochstenbach.com/deploying-dkim-on-debian-and-ubuntu/
 
Last edited by a moderator:
Das Problem scheint hier erst einmal behoben zu sein. gmx.de bemängelt die E-Mails von meinem Server nicht mehr. Andere Anbieter nicht getestet.

Ich halte hier nun die Lösung fest, wobei ich nicht garantieren kann, dass das alles richtig ist.

Ausgangssituation
  • vServer von Webtropia (Debian 7)
  • Server versendet Logwatch-Mails usw. (root@xxx.vs.webtropia.de)
  • Ein CMS versendet mittels phpmailer E-Mails (admin@domain2.de)
  • zwei unterschiedliche de-Domains, die auf den selben Server auflösen (zwei verschiedene Internetseiten)
gmx.de verweigerte von einen auf den anderen Tag sämtliche E-Mails vom Server.

Lösung
PTR-Record (bzw. RDNS) angelegt für server.domain1.de (von der IP-Adresse des Server kann nun auf server.domain1.de geschlossen werden)
http://de.wikipedia.org/wiki/PTR_Resource_Record

SPF-Record (eventuell über TXT Record, falls SPF nicht explizit einstellbar) für domain1.de.
Code:
v=spf1 a mx -all
http://www.spf-record.de
http://www.kitterman.com/spf/validate.html?
http://de.wikipedia.org/wiki/TXT_Resource_Record

etc/hosts
Code:
IP-Adresse server.domain1.de server

etc/hostname
Code:
server.domain1.de

Da bei meinem vServer nach einem reboot die hosts-Datei und der Hostname wieder zurückgesetzt waren, habe ich folgendes Skript angelegt. Nebenbei erwähnt hat das Ausführen von "/etc/init.d/hostname.sh start" meine Änderungen auch wieder rückgängig gemacht (DHCP?).

Code:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          Sets the hostname to server.domain1.de and restores the modified hosts-file.
# Required-Start:
# Required-Stop:
# Default-Start:     2
# Default-Stop:
# Short-Description: Set hostname and restore modified hosts-file.
# Description:       Virtuozzu overwrites the /etc/hostname and /etc/hosts file. Restore the modified ones.
### END INIT INFO
# Author: Name <meine@mail.de>
start() {
        /bin/rm -f /etc/hostname
        echo "server.domain1.de" > /etc/hostname
        /bin/hostname server.domain1.de

        /bin/cp /etc/hosts.korrekt /etc/hosts
}
case "$1" in
  start)
        start
        ;;
  *)
esac

exit 0
Die hosts.korrekt-Datei ist halt eine Kopie der hosts-Datei mit der obigen Änderung.

Dieses Skript habe ich in etc/init.d/ mit dem Dateinamen eigenes-modifyhostname.sh abgelegt.

Anschließend folgende Befehle ausführen.
Code:
chmod 755 /etc/init.d/eigenes-modifyhostname.sh
update-rc.d eigenes-modifyhostname.sh start 09 2 .
(Der Punkt am Ende des zweiten Befehls gehört dazu.)

Der zweite Befehl sollte folgendes ausgeben:
Code:
Adding system startup for /etc/init.d/eigenes-modifyhostname.sh ...
/etc/rc2.d/S09eigenes-modifyhostname.sh -> ../init.d/eigenes-modifyhostname.sh

Dies hat jetzt bewirkt, dass das Skript "eigenes-modifyhostname.sh" im Runlevel2 (rc2.d) ausgeführt wird. Es wurde ein Link in /etc/rc2.d auf die eigenes-modifyhostname.sh erstellt. Der Link heißt S09eigenes-modifyhostname.sh, wobei die 09 dafür sorgt, dass dieses Skript recht früh im Runlevel2 ausgeführt wird. Einfach mal in etc/rc2.d gucken um das nachzuvollziehen.
http://wiki.ubuntuusers.de/Dienste

Bei sendmail musste ich nichts ändern, da er konfiguriert ist die Domain selber zu erkennen und dann zu verwenden.
etc/mail/sendmail.cf
Code:
# my official domain name
# ... define this only if sendmail cannot automatically determine your domain
#Dj$w.Foo.COM

DKIM habe ich nicht umgesetzt, aber sollte man wohl im Hinterkopf behalten.
http://de.wikipedia.org/wiki/DomainKeys
http://www.royhochstenbach.com/deploying-dkim-on-debian-and-ubuntu/

Danke GwenDragon und Lacrimosa99.

Grüße
kancu
 
Last edited by a moderator:
Back
Top