Einleitung
Dieses Dokument beschreibt die Fehlerbehebung bei zeitweiligen Problemen und abgebrochenen Verbindungen beim Empfang und bei der Zustellung von E-Mails.
Voraussetzungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
- Cisco Private Internet eXchange (PIX) oder Adaptive Security Appliance (ASA) Version 7.x und höher
- Cisco E-Mail Security Appliance (ESA)
Hintergrundinformationen
Die E-Mail-Gateways der Cisco ESA sind grundsätzlich E-Mail-Firewalls. Dadurch ist keine Upstream-Firewall wie Cisco PIX oder ASA erforderlich, um den E-Mail-Verkehr von und zu einer ESA zu überprüfen. Es wird empfohlen, die ESMTP-Anwendungsinspektion (Extended Simple Mail Transfer Protocol) auf der Firewall für alle Host-Adressen der Sicherheitsappliance zu deaktivieren. Die ESMTP-Protokollüberprüfung ist standardmäßig für alle Verbindungen aktiviert, die die Cisco Firewalls passieren. Dies bedeutet, dass alle Befehle, die zwischen Mail-Gateways über den TCP-Port 25 ausgegeben werden, sowie einzelne Nachrichten-Header analysiert werden, um die RFC-Spezifikationen (Request for Comments) strikt einzuhalten, die RFCs 821, 1123 und 1870 umfassen. Es gibt definierte Standardwerte für die maximale Anzahl von Empfängern und die Nachrichtengröße, die zu Problemen bei der Zustellung von und an Ihre ESA führen können. Diese spezifischen Konfigurationsvoreinstellungen sind hier aufgeführt (entnommen aus dem Cisco Command Lookup Tool).
Der Befehl inspect esmtp umfasst die Funktionen, die zuvor vom Befehl fixup smtp bereitgestellt wurden, und bietet zusätzliche Unterstützung für einige ESMTP-Befehle. Die ESMTP-Anwendungsinspektion bietet zusätzliche Unterstützung für acht ESMTP-Befehle, darunter AUTH, EHLO, ETRN, HELP, SAML, SEND, SOML und VRFY. Neben der Unterstützung von sieben RFC 821-Befehlen (DATA, HELO, MAIL, NOOP, QUIT, RCPT, RSET) unterstützt die Security Appliance insgesamt 15 SMTP-Befehle. Andere ESMTP-Befehle wie ATRN, STARTLS, ONEX, VERB, CHUNKING und private Durchwahlen werden nicht unterstützt. Nicht unterstützte Befehle werden in Xs übersetzt, die vom internen Server abgelehnt werden. Daraus ergibt sich eine Meldung wie 500 Command unknown: XXX. Unvollständige Befehle werden verworfen.
Der Befehl inspect esmtp ändert die Zeichen im SMTP-Banner des Servers in Sternchen, mit Ausnahme der Zeichen "2", "0" und "0". Wagenrücklauf (CR) und Zeilenvorschub (LF) werden ignoriert. Bei aktivierter SMTP-Überprüfung wartet eine für interaktives SMTP verwendete Sitzung auf einen gültigen Befehl, und der Firewall-ESMTP-Statuscomputer behält den richtigen Status für die Sitzung bei, wenn diese Regeln nicht beachtet werden:
- SMTP-Befehle müssen mindestens vier Zeichen lang sein.
- SMTP-Befehle müssen mit Wagenrücklauf und Zeilenvorschub beendet werden.
- SMTP-Befehle müssen auf eine Antwort warten, bevor sie die nächste Antwort ausgeben.
Ein SMTP-Server antwortet auf Client-Anfragen mit numerischen Antwortcodes und optionalen menschenlesbaren Zeichenfolgen. Die SMTP-Anwendungsinspektion steuert und reduziert die Befehle, die der Benutzer verwenden kann, sowie die Meldungen, die der Server zurückgibt. Die SMTP-Inspektion führt drei Hauptaufgaben aus:
- Beschränkt SMTP-Anfragen auf sieben grundlegende SMTP-Befehle und acht erweiterte Befehle.
- Überwacht die SMTP-Befehlsantwortsequenz.
- Generiert einen Prüfpfad. Der Prüfdatensatz 108002 wird generiert, wenn ein ungültiges Zeichen, das in die E-Mail-Adresse eingebettet ist, ersetzt wird. Weitere Informationen finden Sie unter RFC 821.
Eine SMTP-Inspektion überwacht die Befehls- und Antwortsequenz für die folgenden ungewöhnlichen Signaturen:
- Abgeschnittene Befehle.
- Fehlerhafte Befehlsbeendigung (nicht beendet mit <CR><LR>).
- Wenn die PHY-Schnittstelle für die PIPE-Signatur (PCI Express) als Parameter für einen MAIL-from-Befehl oder RCPT-to-Befehl gefunden wird, wird die Sitzung geschlossen. Es kann nicht vom Benutzer konfiguriert werden.
- Unerwarteter Übergang durch den SMTP-Server.
- Bei unbekannten Befehlen ändert die Sicherheits-Appliance alle Zeichen im Paket in X. In diesem Fall generiert der Server einen Fehlercode für den Client. Aufgrund der Paketänderung muss die TCP-Prüfsumme neu berechnet oder angepasst werden.
- Bearbeitung des TCP-Streams
Die Ausgabe von show service-policy inspect ESMTP enthält die Standardprüfungswerte und die zugehörigen Aktionen.
Global policy:
Service-policy: global_policy
Class-map: inspection_default
Inspect: esmtp _default_esmtp_map, packet 104468, drop 0, reset-drop 0
mask-banner, count 639 obfuscate the SMTP banner greeting
match cmd line length gt 512 deny all SMTP commands (and close connection)
drop-connection log, packet 0
match cmd RCPT count gt 100 drop all messages (and connection) with more
than 100 recipients
drop-connection log, packet 0
match body line length gt 998 log all messages with lines > 998 chars
log, packet 0
match header line length gt 998 drop all messages (and connection)
with headers > 998 chars
drop-connection log, packet 41
match sender-address length gt 320 drop all messages (and connection) with
envelope sender > 320 bytes
drop-connection log, packet 0
match MIME filename length gt 255 drop all messages (and connection) with
MIME attachment filenames > 255 bytes
drop-connection log, packet 0
match ehlo-reply-parameter others obfuscate extended commands not explicitly
noted in the RFCs (such as STARTTLS)
mask, packet 2555
Problem
Gelegentlich werden Nachrichten nicht richtig von der Cisco ESA zugestellt oder empfangen. Eine oder mehrere dieser Meldungen werden im mail_logs-Fenster des Cisco ESA-Geräts angezeigt:
- Nachricht abgebrochen MID XXX
- Empfang abgebrochen ICID 21916 verloren
- ICID 21916 Schließen
- Verbindungsfehler: DCID: XXX domain:example.com IP: 10.1.2.3 port: 25 details: [Fehler 60]
Zeitüberschreitung bei Betrieb der Schnittstelle: 10.10.10.1 Grund: Netzwerkfehler
Lösung
Einige dieser Standardeinstellungen können sich auf Dinge wie die Übermittlung von TLS-verschlüsselten Nachrichten (Transport Layer Security), Mailinglisten-Kampagnen und die Fehlerbehebung auswirken. Eine bessere Richtlinie könnte darin bestehen, dass Sie die Firewall verwenden, um den gesamten verbleibenden E-Mail-Verkehr zu überprüfen, der nicht zuerst die Sicherheits-Appliance passiert, wobei der gesamte vorhandene Verkehr ausgenommen wird. In diesem Beispiel wird veranschaulicht, wie die (zuvor erwähnte) Standardkonfiguration angepasst wird, um die ESMTP-Anwendungsinspektion für eine einzelne Sicherheits-Host-Adresse auszunehmen.
In einer MPF-Klassenzuordnung (Modular Policy Framework) können Sie den gesamten Datenverkehr von und zu der internen Adresse der Cisco ESAs als Referenz definieren:
access-list ironport_esa_internal extended permit ip any 192.168.1.1
access-list ironport_esa_internal extended permit ip 192.168.1.1 any
Dadurch wird eine neue Klassenzuordnung erstellt, die speziell auf den zu behandelnden Datenverkehr abgestimmt ist:
class-map ironport_esa
match address ironport_esa_internal
In diesem Abschnitt werden die neuen Cisco Klassenzuordnungen verknüpft und die ESMTP-Protokollprüfungsfunktionen deaktiviert:
policy-map global_policy
class ironport_esa
no inspect esmtp
Beachten Sie auch die Adressübersetzungsaussage, die dazu beitragen kann, die Anzahl der eingehenden und halb offenen (embryonalen) Verbindungen zur Adresse zu steuern. Dies ist nützlich für die Bekämpfung von Denial-of-Service-Angriffen (DoS), kann jedoch die Übertragungsraten beeinträchtigen.
Format, um Parameter von NAT und STATIC-Befehlen zu verfolgen ... [tcp (max_conns)] [max_embryonic].
In diesem Beispiel werden Grenzwerte von insgesamt 50 TCP-Verbindungen und 100 halb offenen oder embryonalen Verbindungsversuchen angegeben:
static (inside,outside) 1.1.1.1 192.168.1.1 netmask 255.255.255.255 tcp 50 100