Sendmail und Google Apps unter CentOS 5

Meine E-Mails werden von Google (Apps, nicht das normale Mail) versendet und empfangen, da möchte ich auch meinen neuen vServer so einrichten, dass er E-Mails mit dem SMTP-Server von Google versenden kann.

Nach ein paar Anfangsschwierigkeiten und vielen verschiedenen Anleitungen hat dieser französischer Eintrag letztlich geholfen, sendmail korrekt einzurichten.

Ein minimales CentOS 5.5 mit korrekt gesetzten Hostname (FQDN mit einer per DNS auflösbaren Domain) war die Voraussetzung für die folgenden Schritte:

Zunächst müssen mittels yum ein paar Pakete installiert werden (nicht alle sind für die Einrichtung des Relay notwendig, aber da es sich bei meinem Server um ein Minimalsystem handelt, benötige ich sie sowieso für alle möglichen Gelegenheiten):

-bash-3.2# yum -y install vim-enhanced wget mlocate sudo sendmail sendmail-cf man telnet cyrus-sasl-plain passwd mlocate sudo openssh openssl make gcc cyrus-sasl cyrus-sasl-plain

Der nächste Schritt ist, die notwendigen Zertifikate nach /usr/share/ssl/certs zu kopieren bzw. dort zu erstellen. Die Zertifikate sind zehn Jahre lang gültig, bei Bedarf kann man natürlich auch kleinere Werte als 3650 Tage wählen.

-bash-3.2# mkdir -p /usr/share/ssl/certs
-bash-3.2# cd /usr/share/ssl/certs
-bash-3.2# cp /etc/pki/tls/certs/ca-bundle.crt /usr/share/ssl/certs/
-bash-3.2# openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650
-bash-3.2# openssl req -nodes -new -x509 -keyout sendmail.pem -out sendmail.pem -days 3650

Anschließend werden die Zugangsdaten in der Datei /etc/mail/authinfo angelegt:

-bash-3.2# vi /etc/mail/authinfo

Der Inhalt der Datei sieht dann in etwa so aus (die Platzhalter in müssen durch die tatsächliche E-Mail-Adresse bzw. das Klartext-Passwort ausgetauscht werden:

AuthInfo:smtp.gmail.com "U:root" "I:<appsexample.com>” “P:“ “M:PLAIN”@
AuthInfo:smtp.gmail.com:587 "U:root" "I:<appsexample.com>” “P:“ “M:PLAIN”@

Die Authinfo-Datei wird nunmehr gehasht und die Dateiberechtigung angepasst:

-bash-3.2# makemap hash /etc/mail/authinfo < /etc/mail/authinfo
-bash-3.2# chmod 600 /etc/mail/authinfo

Die Datei /etc/mail/sendmail.mc muss ebenfalls noch angepasst werden. Vor der ersten Zeile, die mit MAILER beginnt, müssen diese Zeilen eingefügt werden:

FEATURE(authinfo’,hash /etc/mail/authinfo.db')
define(SMARTHOST’,smtp.gmail.com')dnl
define(RELAY
MAILERARGS’, TCP $h 587')
define(ESMTP
MAILERARGS’, TCP $h 587')
define(confCACERT
PATH’,/usr/share/ssl/certs')
define(confCACERT’,/usr/share/ssl/certs/ca-bundle.crt')
define(confSERVERCERT’,/usr/share/ssl/certs/sendmail.pem')
define(confSERVER
KEY’,/usr/share/ssl/certs/sendmail.pem')
define(confAUTH_MECHANISMS’, EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
TRUST_AUTH_MECH(EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)<br></br>define(confAUTH_OPTIONS',A’)dnl`

Nun noch die Änderungen wirksam werden lassen und sendmail neu starten (bzw. bei jedem Neustart automatisch starten lassen):

-bash-3.2# cd /etc/mail
-bash-3.2# m4 sendmail.mc > sendmail.cf
-bash-3.2# /sbin/service sendmail restart
-bash-3.2# /sbin/chkconfig sendmail on

Das Verschicken einer Testmail dürfte nun funktionieren (als Beispiel wird der Inhalt der Datei /etc/hostname per E-Mail an eine funktionierende Adresse versendet):

-bash-3.2# sendmail -v mailexample.com < /etc/[email protected]

Author image
Blogging since 2003 about life, tech, yoga. Passionate about the details and eager to know more. Systems theory meets empathy.
Bochum. Germany.
top