Sie befinden sich hier: Hilfe / Howtos / Mail / Nachrichten mittels SSMTP an Smarthost senden
Deutsch
2014-12-20

Content

Nachrichten mittels SSMTP an einen Smarthost senden

Konfiguration des Mailpaketes um Nachrichten mittels SSMTP an einen Smarthost zu senden


Benötigte Pakete:

  • mail (ab v1.10.2),
  • stunnel (ab v1.0.0)


Um generell alle Nachrichten über eine TLS-gesicherte Verbindung an einen externen Smarthost
zu senden, wird üblicherweise eine unverschlüsselte Verbindung über Port 25/tcp aufgebaut und
dann der SMTP-Befehl 'STARTTLS' abgesetzt welcher den SMTP-Server anweist eine sichere Verbindung
aufzubauen.

Will man jedoch Nachrichten über das seit langem überholte SSMTP-Protokolls (SMTP over SSL) an
einen externen Smarthost senden, so muss man zusätzlich das stunnel-Paket installieren, da das
Mailpaket dieses altmodische Protokoll für ausgehende Verbindungen nicht mehr unterstützt.

Beispiel: Sendender Server: send-server.domain.com

          Empfangender Server: receive-server.domain.com, Port 465/tcp

1. Als erstes stellt man sicher, dass auf dem empfangenden Server (receive-server.domain.com)
   eingehende SSMTP-Verbindungen akzeptiert werden. Falls es sich bei dem Server um einen
   eisfair-Server handelt auf welchem das Mailpaket installiert ist, so sind zusätzlich folgende
   Parameter in der mail-Konfiguration zu setzen:

   SMTP_SERVER_SSMTP='yes'  
   SMTP_SERVER_SSMTP_LISTEN_PORT='ssmtp'

2. Anschließend installiert man auf dem sendenden Server (send-server.domain.de) das stunnel-Paket
   und konfiguriert eine Verbindung zum empfangenden Server. Hierbei wird festgelegt, dass eine
   eingehende Verbindung auf dem lokalen Port 4465/tcp (localhost) an den entfernten Rechner
   'receive-server.domain.com', auf Port 465/tcp weitergeleitet werden soll:

   START_STUNNEL='yes'
   STUNNEL_DEFAULT_PROTOCOL='ssl3'
   STUNNEL_N='1'
   STUNNEL_1_ACTIVE='yes'
   STUNNEL_1_NAME='SSMTP-Listener'
   STUNNEL_1_CLIENT_MODE='yes'
   STUNNEL_1_CLIENT_DELAYED_DNS='no'
   STUNNEL_1_CLIENT_LISTEN_HOST='4465'
   STUNNEL_1_CLIENT_REMOTE_HOST='receive-server.domain.de:465'
   STUNNEL_1_SERVER_MODE='no'
   STUNNEL_1_CERT_CHECK='0'

3. Um die Konfiguration zu testen kann man auf dem sendenden Server mittels des telnet-Befehl
   einen Test durchführen:

   # telnet localhost 4465
   Trying 127.0.0.1...
   Connected to localhost.
   Escape character is '^]'.
   220 receive-server.domain.de ESMTP Exim 4.72 Tue, 07 Dec 2010 21:02:56 +0100

   Gibt man bei aufgebauter Verbindung z.B. den Befehl 'EHLO send-server.domain.de'
   ein so werden die verfügbaren SMTP-Befehle angezeigt:

   250-receive-server.domain.de Hello localhost [127.0.0.1]
   250-SIZE 52428800
   250-PIPELINING
   250-AUTH PLAIN LOGIN CRAM-MD5
   250-STARTTLS
   250 HELP

   Um die Verbindung zu beenden gibt man abschließend den folgenden Befehl ein:
   'QUIT'

   221 receive-server.domain.de closing connection
   Connection closed by foreign host.

4. Abschließend passt man noch die Smarthost-Konfiguration des mail-Paketes dahingehend
   an, dass eine unverschlüsselte, ausgehende Verbindung auf den lokalen Port 4465/tcp
   verweist:

   SMTP_SMARTHOST_N='1'
   SMTP_SMARTHOST_1_HOST='localhost'
   SMTP_SMARTHOST_1_AUTH_TYPE='plain'
   SMTP_SMARTHOST_1_ADDR='*'
   SMTP_SMARTHOST_1_DOMAIN='*'
   SMTP_SMARTHOST_1_USER='user'
   SMTP_SMARTHOST_1_PASS='pass'
   SMTP_SMARTHOST_1_FORCE_AUTH='yes'
   SMTP_SMARTHOST_1_FORCE_TLS='no'
   SMTP_SMARTHOST_1_PORT='4465'

   17.04.2011/Jürgen Edner (juergen(at)eisfair(dot)org)