2008-09-04 9 views
6

Ich richte einen Server ein, der sich hinter einer Firewall in einem Netzwerk befindet, und möchte, dass Programme auf diesem Computer sendmail verwenden können, um E-Mails an eine beliebige E-Mail-Adresse zu senden. Wir haben einen SMTP-Server, der in diesem Netzwerk läuft (nennen wir es mailrelay.example.com), so wie wir ausgehende E-Mails über die Firewall erhalten sollen.Konfigurieren von sendmail hinter einer Firewall

Also, wie konfiguriere ich sendmail, um alle Mail über mailrelay.example.com zu senden? Googling hat mir die Antwort noch nicht gegeben und hat nur gezeigt, dass die sendmail-Konfiguration extrem komplex und nervig ist.

Antwort

11

@eli: sendmail.cf direkt zu modifizieren wird normalerweise nicht empfohlen, da es vom Makrocompiler generiert wird.

bearbeiten /etc/mail/sendmail.mc umfasst die Zeile:

define(`SMART_HOST',`mailrelay.example.com')dnl 

Nach der sendmail.mc Makro-Konfigurationsdatei ändern, müssen sie neu kompiliert werden, um die Sendmail-Konfigurationsdatei zu erzeugen.

# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 

und starten Sie den Sendmail-Dienst (Linux):

# /etc/init.d/sendmail restart 

Neben der Smarthost einstellen, können Sie wollen auch die Namensauflösung Konfiguration deaktivieren und möglicherweise Ihre Sendmail auf Nicht-Standard-Port zu verschieben, oder deaktivieren Sie den Daemon-Modus.

Disable Name Resolution

Server, die in Feuer walled Netzwerke sind oder mit Network Address Translation (NAT) kann nicht DNS oder NIS-Dienste zur Verfügung stehen.Dies schafft ein Problem für Sendmail, da es DNS standardmäßig verwenden, und wenn es nicht verfügbar ist, werden Sie Meldungen wie diese in mailq sehen:

host map: lookup (mydomain.com): deferred) 

Es sei denn, Sie sind auf Setup vorbereitet eine entsprechende DNS oder NIS Service, dass sendmail verwenden können, in dieser Situation werden Sie in der Regel Name Auflösung mit der Datei/etc/hosts vorgenommen werden. Dies geschieht durch ermöglicht eine ‚service.switch‘ Datei und die Angabe Auflösung von Datei wie folgt:

1: Aktivieren service.switch für Sendmail bearbeiten /etc/mail/sendmail.mc die Linien umfassen:

define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl 

2: Konfigurieren service.switch für Dateien erstellen oder ändern /etc/mail/service.switch nur in/etc/hosts für Name Auflösung zu verweisen:

# cat /etc/mail/service.switch 
    hosts files 

3: Recompil e sendmail.mc und starten Sie sendmail neu, damit diese Einstellung wirksam wird.

Verschiebung Sendmail zu Nicht-Standard-Port, oder deaktivieren Daemon-Modus

wird standardmäßig Sendmail auf 25 Port hören Sie möchten können Sie diesen Port Modus oder deaktivieren Sie den Sendmail-Daemon aus verschiedenen Gründen ganz ändern: - wenn es eine Sicherheitsrichtlinie gibt, die die Verwendung von bekannten Ports verhindert - wenn ein anderes SMTP-Produkt/-Prozess auf dem gleichen Host auf dem Standardport ausgeführt werden soll - wenn Sie keine E-Mails über SMTP empfangen möchten Senden Sie es einfach mit sendmail

1: Um Sendmail zu verwenden, um Nicht-Standard-Port zu verwenden. bearbeiten /etc/mail/sendmail.mc und ändern Sie den "Port" in der Zeile setzen:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 

Zum Beispiel Sendmail zu bekommen Port verwenden 125:

DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA') 

Dies wird Sendmail benötigen .mc wird neu kompiliert und sendmail wird neu gestartet.

2:

DAEMON=no 

Neustart Diese Änderung erfordert Sendmail werden: Alternativ Sendmail-Daemon-Modus zusammen (Linux) Datei/etc/sysconfig/sendmail und ändern Sie die "daemon" zu Einstellung deaktivieren.

+0

Danke! Dieser Tipp über 'service.switch' löste mein Problem. –

5

http://www.elandsys.com/resources/sendmail/smarthost.html

Sendmail Smarthost

A Smarthost ist ein Host durch welche abgehende Mail weitergeleitet wird. Einige ISPs blockieren ausgehenden SMTP-Verkehr (Port 25) und erfordern von ihren Benutzern, senden Sie alle E-Mails über den Mail-Server des Servers. Sendmail kann als konfiguriert werden. Verwenden Sie den Mail-Server des ISP als Smart Host.

Lesen Sie den verknüpften Artikel, um Anweisungen zum Einrichten zu erhalten.

3

@Espo: Danke für den tollen Rat, wo Sie anfangen sollen. Ihr Link wäre besser gewesen, wenn ich sendmail zum ersten Mal konfiguriert hätte, anstatt eine bestehende Konfiguration zu nehmen und diese kleine Änderung vorzunehmen. Aber sobald ich wusste, auf "SmartHost" nach Dingen zu suchen, fand ich einen einfacheren Weg.

Alles, was ich tun musste, war meine /etc/sendmail.cf

DS 

zu

DSmailrelay.example.com 

starten Sie sendmail und es funktionierte ändern zu bearbeiten.