How-to: sendmail von Hand einrichten
Posted: 2003-01-09 01:10
Der Autor übernimmt keine Haftung für Schäden oder Datenverluste, die direkt oder indirekt nach, vor oder während der Installation bzw. Konfiguration, wie sie hier beschrieben ist, auftreten.
Hi..
Folgendes Tutorial beschreibt, wie man sendmail richtig von Hand konfiguriert.
Vorraussetzung dafür ist, dass Confixx sich nicht mehr in die sendmail-Geschichten einmischt, man sollte also wenigstens die beiden vorinstallierten CronJobs entfernen, bzw. Confixx gleich deinstallieren.
Zu allererst befassen wir uns etwas mit dem Thema Sicherheit.
1&1 selbst erfordert beim eMail-Versand der Shared-Webhosting-Kunden SMTP-AUTH. Das selbe wollen wir hier nun auch machen:
Man sollte sich also zuallererst dieses Paket installieren, was auch kein Hexenwerk ist:
1. Sendmail beenden:
2. Entfernen der sendmail-Paketes ohne SMTP AUTH Unterstützung:
3. Downloaden der sendmail RPMs mit SMTP AUTH und die dazu benötigte Library:
4. Jetzt können beide RPMs installiert werden:
5. Jetzt legt man die Datei /usr/lib/sasl/Sendmail.conf mit folgendem Inhalt an:
6. Die Datei /etc/sendmail.cf wird nun noch einer kleinen Schönheits-OP unterzogen. Im Bereich local info fügt man einfach folgendes hinzu:
7. Damit nun beim Start von SuSEconfig die Datei /etc/sendmail.cf nicht überschrieben wird, sollten man in der Datei /etc/rc.config.d/sendmail.rc.config den folgenden Eintrag ändern:
ändern in:
8. Und zu guter letzt kann der sendmail Daemon neu gestartet werden:
Damit hat man sich sendmail mit SMTP-AUTH installiert.
Die weiteren Schritte sind eigentlich ganz einfach. Man muss lediglich 3 Dateien editieren:
/etc/mail/virtusertable
Hier kommen die eMail-Adressen an sich hinein.
/etc/mail/access
Hier steht drin, wie sendmail die eMails von bestimmten Domains behandeln soll.
/etc/mail/sendmail.cw
Hier stehen die Domains drin, die von sendmail akzeptiert werden sollen.
Konfiguration /etc/mail/virtusertable:
Man trägt einfach die eMail-Adresse und den damit verknüpften Systemuser ein:
Die user1 und user2 werden am besten mit yast (Administration des Systemes -> Benutzerverwaltung) angelegt. Normalerweise hat ein eMail-User keine Shell, daher bekommt er als Standardshell /bin/false.
Als HomeDirectory sollte /XXXnirvanaXXX angegeben werden, also ein Nonsens Directory.
Als Gruppe gibt man hier poponly an.
Wenn ein ShellUser eine eMail-Adresse haben soll ist das auch nicht weiter tragisch, man belässt einfach alle Einstellungen des Users.
Konfiguration /etc/mail/access:
Hier werden nur die Domainnamen eingetragen, von denen sendmail eMails akzeptieren, weiterleiten, verbieten oder löschen soll.
Standardmäßig ist hier
eingetragen.
sendmail verteilt also über den localhost alle eingehenden und ausgehenden eMails.
Nun trägt man einfach noch die Domains ein, die ebenfalls akzeptiert werden sollen:
Es gibt außer RELAY und OK noch 2 weitere Typen:
Man kann auch eine Fehlermeldung für eine bestimmte Domain angeben:
Konfiguration /etc/mail/sendmail.cw:
Alle Domains, von denen aus eine eMail verschickt werden darf, werden in diese Datei eingetragen:
Damit wars das eigentlich auch schon.
Wenn man eine neue eMail-Adresse anlegt oder eine neue Domain auf den Server legt, so müssen diese natürlich in den entsprechenden Dateien eingetragen werden.
Danach muss die jew. Steuerungsdatei (*.db) neu geschrieben werden.
Ich habe dafür zusätzlich noch 2 CronJobs eingefügt:
Der CronJob (muss als root ausgeführt werden) wird somit alle 5 Minuten gestartet. Bei mir ist das notwendig, da ich ein Produktivsystem aufgesetzt habe.
Wer noch Fragen hat, hier seid Ihr richtig :)
Hi..
Folgendes Tutorial beschreibt, wie man sendmail richtig von Hand konfiguriert.
Vorraussetzung dafür ist, dass Confixx sich nicht mehr in die sendmail-Geschichten einmischt, man sollte also wenigstens die beiden vorinstallierten CronJobs entfernen, bzw. Confixx gleich deinstallieren.
Zu allererst befassen wir uns etwas mit dem Thema Sicherheit.
1&1 selbst erfordert beim eMail-Versand der Shared-Webhosting-Kunden SMTP-AUTH. Das selbe wollen wir hier nun auch machen:
Man sollte sich also zuallererst dieses Paket installieren, was auch kein Hexenwerk ist:
1. Sendmail beenden:
Code: Select all
rcsendmail stopCode: Select all
rpm -e --nodeps sendmailCode: Select all
wget http://update.pureserver.de/suse/7.2/suse/sec1/cyrus-sasl.rpm
wget http://update.pureserver.de/suse/7.2/suse/sec2/sendmail-tls.rpmCode: Select all
rpm -U cyrus-sasl.rpm
rpm -U sendmail-tls.rpmCode: Select all
pwcheck_method: pamCode: Select all
...
C{TrustAuthMech}LOGIN PLAIN
O AuthMechanisms=LOGIN PLAIN
...7. Damit nun beim Start von SuSEconfig die Datei /etc/sendmail.cf nicht überschrieben wird, sollten man in der Datei /etc/rc.config.d/sendmail.rc.config den folgenden Eintrag ändern:
Code: Select all
SENDMAIL_TYPE="yes"Code: Select all
SENDMAIL_TYPE="no"Code: Select all
rcsendmail startDamit hat man sich sendmail mit SMTP-AUTH installiert.
Die weiteren Schritte sind eigentlich ganz einfach. Man muss lediglich 3 Dateien editieren:
/etc/mail/virtusertable
Hier kommen die eMail-Adressen an sich hinein.
/etc/mail/access
Hier steht drin, wie sendmail die eMails von bestimmten Domains behandeln soll.
/etc/mail/sendmail.cw
Hier stehen die Domains drin, die von sendmail akzeptiert werden sollen.
Konfiguration /etc/mail/virtusertable:
Man trägt einfach die eMail-Adresse und den damit verknüpften Systemuser ein:
Code: Select all
emailadresse1@domain1.tld user1
emailadresse2@domain2.tld user2
...Als HomeDirectory sollte /XXXnirvanaXXX angegeben werden, also ein Nonsens Directory.
Als Gruppe gibt man hier poponly an.
Wenn ein ShellUser eine eMail-Adresse haben soll ist das auch nicht weiter tragisch, man belässt einfach alle Einstellungen des Users.
Konfiguration /etc/mail/access:
Hier werden nur die Domainnamen eingetragen, von denen sendmail eMails akzeptieren, weiterleiten, verbieten oder löschen soll.
Standardmäßig ist hier
Code: Select all
127 RELAYsendmail verteilt also über den localhost alle eingehenden und ausgehenden eMails.
Nun trägt man einfach noch die Domains ein, die ebenfalls akzeptiert werden sollen:
Code: Select all
domain1.tld OK
domain2.tld OKCode: Select all
REJECT -> Weist ankommende eMails von dieser Domain ab
DISCARD -> Die eMails von dieser Domain werden gelöschtCode: Select all
aol.com 550 Dieser Server erlaubt keine eMails von AOL.
Fehlernummer - Text, der zurückgegeben wird.Alle Domains, von denen aus eine eMail verschickt werden darf, werden in diese Datei eingetragen:
Code: Select all
domain1.tld
domain2.tldDamit wars das eigentlich auch schon.
Wenn man eine neue eMail-Adresse anlegt oder eine neue Domain auf den Server legt, so müssen diese natürlich in den entsprechenden Dateien eingetragen werden.
Danach muss die jew. Steuerungsdatei (*.db) neu geschrieben werden.
Code: Select all
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
makemap hash /etc/mail/access < /etc/mail/accessIch habe dafür zusätzlich noch 2 CronJobs eingefügt:
Code: Select all
*/5 * * * * /usr/sbin/makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
*/5 * * * * /usr/sbin/makemap hash /etc/mail/access < /etc/mail/accessWer noch Fragen hat, hier seid Ihr richtig :)