averlon
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hallo,
ich habe einen Postfix als reinen Relay im interne Netz laufen. Im gleichen Netz befindet sich ein Gerät der Firma Grünbeck (Wasseraufbereitung) das auch bei bestimmten Zuständen e-Mails versenden kann. Wenn ich den Mail-Server der Firma Grünbeck eintrage funktioniert die Übertragung - die Mail kommt bei meinem Provider an. Wenn ich meinen eigenen Mailserver eintrage kommt eine Fehlermeldung, die ich nicht interpretieren kann bzw. wo ich keine Lösung dafür weiß. Leider kann ich die Firma Grünbeck nicht fragen, wie deren Mailserver konfiguriert ist. Jan 28 09:40:19 f42252vm postfix/smtpd[14552]: warning: Illegal address syntax from f42240gb.example.com[192.168.111.171] in RCPT c ommand: <send smtp.example.com:25> Nachdem ich mich mit dem Mailserver im INTRANET befinde nutze ich Port 25. Zugriff von Außen gibt es hier nicht. Dass das Kommando wohl seltsam ist erkenne ich. Aber wie muss ich Postfix konfigurieren, dass das durch geht? Immerhin kann der Mailserver der Firma Grünbeck, allerdings Port 587, das auch verarbeiten. Was kann hier die Fehlerursache sein bzw. wie muss ich Postfix konfigurieren, um das zu verstehen ? Danke
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
averlon schrieb: Jan 28 09:40:19 f42252vm postfix/smtpd[14552]: warning: Illegal address syntax from f42240gb.example.com[192.168.111.171] in RCPT c ommand: <send smtp.example.com:25>
Also die Fehlermeldung ist ja präzise: Offenbar ist die Empfängeradresse syntaktisch falsch. Das liegt aber nicht an deinem Postfix, sondern offenbar an dem Gerät. Du kannst um sicher zu gehen mal mit tcpdump die Kommunikation mitschneiden und auswerten.
Immerhin kann der Mailserver der Firma Grünbeck, allerdings Port 587, das auch verarbeiten.
Dazu kann ich nichts sagen. Wenn das Gerät aber nicht vernünftig SMTP spricht, haben die vielleicht irgendeine selbstgestrickte Software am laufen.
|
averlon
(Themenstarter)
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hi misterunknown,
danke für die Antwort. Klar, das war mir auch schon so, dass das "command" falsch sein könnte.
Da ich Postfix nur in den Grundzügen kenne war ich in der Hoffnung, dass es irgendein setting gibt das dem Ding herr werden kann. Ich habe mal von "Filtern" gelesen (sowas wie "MILTER"). Vielleicht reicht es einfach die Nachricht raus zu filtern und dann geht es. Falls da jemand helfen kann will ich das bei mir dann gerne probieren. So alleine bin ich da wohl nicht fit genug. Übrigens: Auf dem Grünbeck Gerät ist wohl sowas wie "X-Pico" im Einsatz - was immer das ist. Falls es jemand kennt und Erfahrung damit hat. Vielleicht hilft das ja!?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
averlon schrieb: Da ich Postfix nur in den Grundzügen kenne war ich in der Hoffnung, dass es irgendein setting gibt das dem Ding herr werden kann.
Das hat weniger was mit Postfix zu tun, als mit kaputtem SMTP, welches der Client offenbar spricht.
Ich habe mal von "Filtern" gelesen (sowas wie "MILTER"). Vielleicht reicht es einfach die Nachricht raus zu filtern und dann geht es.
Milter werden erst später in der Verarbeitungskette angenommen. Die Fehlermeldung, die du siehst, kommt direkt vom SMTP-Dienst von Postfix, also im Endeffekt die allervorderste Annahme für Mails. Wenn dort schon etwas schief geht, kann man normalerweise nichts machen.
Falls da jemand helfen kann will ich das bei mir dann gerne probieren. So alleine bin ich da wohl nicht fit genug. Übrigens: Auf dem Grünbeck Gerät ist wohl sowas wie "X-Pico" im Einsatz - was immer das ist. Falls es jemand kennt und Erfahrung damit hat. Vielleicht hilft das ja!?
X-Pico sagt mir nichts, Google spuckt auch nichts sinnvolles aus. Um sicher zu gehen, dass der Fehler beim Client liegt, solltest du mal die Kommunikation mitschneiden und auswerten. Das funktioniert folgendermaßen:
tcpdump starten (siehe unten) Mailversand auf dem Client-Gerät triggern Warten bis die Fehlermeldung im Postfix auftaucht und tcpdump beenden (STRG+c)
tcpdump -i any -s 0 -w kommunikation.dump port 25 Anschließend kannst du die erstellte Datei kommunikation.dump mit Wireshark auswerten. Dazu einfach die Datei mit dem Programm öffnen, ein entsprechendes Paket raussuchen, Rechtsklick ⇒ Folgen ⇒ TCP Stream. Und den Output hier mal posten.
|
averlon
(Themenstarter)
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hallo misterunknown, hat nach meiner meinung nur das gebracht, was wir schon wussten.
P.S.: ich habe TLS ausgeschaltet. Sonst sieht man ja nix. 220 f42252vm.example.com ESMTP Postfix (Ubuntu)
EHLO xPicoWifi
250-f42252vm.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
MAIL FROM:<1e>
250 2.1.0 Ok
RCPT TO:<send smtp.example.com:25>
501 5.1.3 Bad recipient address syntax
QUIT
221 2.0.0 Bye Kann man über irgendeine translation table im postfix den "RCPT TO" umwandeln in was Sinnvolles bevor der smpt abgebrochen wird?
Das mit dem MAIL FROM ist mir auch noch unklar wo das her kommt.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Also das Problem ist offensichtlich, dass das Client-Gerät falsch konfiguriert ist. "MAIL FROM" und "RCPT TO" sind ganz normale SMTP-Bestandteile. Aber schon "smtp.example.com" deutet darauf hin, dass da was nicht richtig ist. Im Klartext: Es liegt nicht an deinem Postfix, und du kannst es vermutlich auch nicht trivial fixen. Man könnte mit netcat den Port händisch aufmachen, und gucken, was dort ggf. noch kommt, und anschließend ein Skript bauen, welches die fehlerhafte Kommunikation korrigiert, aber das ist Aufwand.
|
averlon
(Themenstarter)
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hi misterunknown, mmmh - glaub mir, da steht schon die richtige domain. Unabhängig davon irritiert es mich, dass Grünbeck einen Mailserver als relay-server anbietet, den ich auch mal zu Testzwecken genutzt habe, wo es funktioniert. Die von Grünbeck habe mir erzählt dass es wohl Kunden gab, weil das Gerät nur unverschlüsselte Mails verschickt, die mit gmx als Empfänger Probleme hatten. Daraufhin hat Grünbeck einen eigenene Mailserver aufgebaut und bietet den den Kunden als Relay-Server an. Der macht dann TSL und dann können auch z.B. GMX-Adressen als Empfänger genutzt werden. Und dass die dafür was eigenes programmiert haben wage ich zu bezweifeln. Da steht auch sicherlich nur irgendein "Postfix" der eben nur entsprechend konfiguriert ist. Na ja, mal sehen ob ich noch was rausfinden kann. Übrigens:
Das ist wohl der X-Pico: https://www.lantronix.com/products/xpico-200/
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5334
|
Wie sieht denn die Konfiguration auf diesem "Grünbeck" Geraet aus? (Screenshot)
|
Cranvil
Anmeldungsdatum: 9. März 2019
Beiträge: 990
|
Wenn in der Adresse wirklich das Schema RCPT TO:<send smtp.example.com:25> Verwendung findet, ist das einfach falsch, egal wie richtig die mit smtp.example.com maskierte Domain sein mag. Falls du Lust auf Lesen hast: RFC5322 Sektion 3.4 (Internet Message Format - Address Specification). Zur Verwendung von Port 587 (Mail Submission): Im Allgemeinen sollte jeder nicht-MTA heutzutage diesen Mail Submission Port zur Einreichung seiner Emails verwenden, dein Gerät macht da also voraussichtlich erst einmal nichts falsch. Dem Serveradministrator (postfix) gibt es natürlich mehr Spielraum bei der Steuerung des Systems, was hier aber erstmal nicht so kritisch sein dürfte. Damit will ich ausdrücken: In deinem Fall dürfte es prinzipiell keinen Unterschied machen, ob du 25 oder 587 verwendest, die Adresse ist in beiden Fällen falsch. Wie trägst du denn deinen eigenen Mailserver ein bzw. wie heißen die Felder in der Eingabemaske/Konfigurationsdatei? <send smtp.example.com:25> liest sich für mich nach einer Fehlkonfiguration. Was stand vorher in diesen Feldern?
|
averlon
(Themenstarter)
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hallo,
ich habe das Gerät nochmal umkonfiguriert und dem smtp meines Providers eingetragen. Funktioniert nicht. Es scheint tatsächlich nur mit dem SMTP-Server von Grünbeck zu funktionieren. Die müssen irgendwas programmiert haben, um die Daten umzusetzen. Ich probiere noch etwas rum.
|
averlon
(Themenstarter)
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hallo,
ich habe noch einmal den gesamten Verkehr mitgeschnitten. Da pssiert sowas: TCP 60 30003 → 25 [RST, ACK] Seq=1 Ack=56 Win=0 Len=0
TCP 60 30003 → 25 [RST, ACK] Seq=1 Ack=56 Win=0 Len=0
TCP 62 30000 → 25 [SYN] Seq=0 Win=1460 Len=0 MSS=1480
TCP 58 25 → 30000 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460
TCP 60 30000 → 25 [ACK] Seq=1 Ack=1 Win=1460 Len=0
SMTP 102 S: 220 f42252vm.example.com ESMTP Postfix (Ubuntu)
SMTP 70 C: EHLO xPicoWifi
TCP 54 25 → 30000 [ACK] Seq=49 Ack=17 Win=64224 Len=0
SMTP 196 S: 250-f42252vm.example.com | 250-PIPELINING | 250-SIZE 10240000 | 250-VRFY | 250-ETRN | 250-ENHANCEDSTATUSCODES | 250-8BITMIME | 250-DSN | 250 SMTPUTF8
TCP 60 30000 → 25 [ACK] Seq=17 Ack=191 Win=1460 Len=0
SMTP 93 C: MAIL FROM:<1esend smtp.example.com:25>
SMTP 91 S: 501 5.1.7 Bad sender address syntax
SMTP 60 C: QUIT
SMTP 69 S: 221 2.0.0 Bye Dann setzt das Gerät neu an. TCP 54 25 → 30000 [ACK] Seq=244 Ack=63 Win=64178 Len=0
TCP 60 30000 → 25 [ACK] Seq=63 Ack=244 Win=1460 Len=0
TCP 62 30001 → 25 [SYN] Seq=0 Win=1460 Len=0 MSS=1480
TCP 58 25 → 30001 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460
TCP 60 30001 → 25 [ACK] Seq=1 Ack=1 Win=1460 Len=0
SMTP 102 S: 220 f42252vm.example.com ESMTP Postfix (Ubuntu)
SMTP 70 C: EHLO xPicoWifi
TCP 54 25 → 30001 [ACK] Seq=49 Ack=17 Win=64224 Len=0
SMTP 196 S: 250-f42252vm.example.com | 250-PIPELINING | 250-SIZE 10240000 | 250-VRFY | 250-ETRN | 250-ENHANCEDSTATUSCODES | 250-8BITMIME | 250-DSN | 250 SMTPUTF8
TCP 60 30001 → 25 [ACK] Seq=17 Ack=191 Win=1460 Len=0
SMTP 70 C: MAIL FROM:<1e>
SMTP 68 S: 250 2.1.0 Ok
SMTP 67 C: RCPT TO:<D>
SMTP 68 S: 250 2.1.5 Ok
SMTP 72 C: RCPT TO:<status>
SMTP 68 S: 250 2.1.5 Ok
SMTP 77 C: RCPT TO:<diagnostics>
SMTP 68 S: 250 2.1.5 Ok
SMTP 70 C: RCPT TO:<ping>
SMTP 68 S: 250 2.1.5 Ok
SMTP 105 C: RCPT TO:<ping google-public-dns-a.google.com 1 1>
SMTP 94 S: 501 5.1.3 Bad recipient address syntax
SMTP 60 C: QUIT
SMTP 69 S: 221 2.0.0 Bye Das zeigt, dass SMTP 70 C: RCPT TO:<ping>
SMTP 68 S: 250 2.1.5 Ok wohl ein gültiges RCPT-command ist Wenn dann aber der Ping abgesetzt wird SMTP 105 C: RCPT TO:<ping google-public-dns-a.google.com 1 1>
SMTP 94 S: 501 5.1.3 Bad recipient address syntax kommt eine Fehlermeldung und das Gerät macht noch einen weiteren Versuch und gibt dann auf. Ich habe das mal manuell nachvollzogen, lokal auf dem smtp-Server mit Telnet. Das Kommando "RCPT TO:<ping>" wird akzeptiert und der Ping selbst dann nicht. Jetzt stellt sich für mich die Frage: Was muss ich auf dem Postfix einstellen, damit dieses "RCPT TO:<ping>" schon mit Fehler abgewiesen wird. Das würde zumindest die Change geben, dass das Gerät dann eben keinen ping versucht und einfach die Mail schickt. Hat da jemand eine Idee? Ich habe schon viel in google gesucht aber auch nirgends gefunden, dass diese Syntax "RCPT TO:<ping>" korrekt ist bzw. wie man der in Postfix "entgegen treten kann". Ideen willkommen!
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
averlon schrieb: Das zeigt, dass
SMTP 70 C: RCPT TO:<ping>
SMTP 68 S: 250 2.1.5 Ok
wohl ein gültiges RCPT-command ist
Nö, ist es nicht. "RCPT TO" heißt "Recipient to". OK kommt nur, weil theoretisch "ping" eine valide Email-Adresse ist.
Wenn dann aber der Ping abgesetzt wird
SMTP 105 C: RCPT TO:<ping google-public-dns-a.google.com 1 1>
SMTP 94 S: 501 5.1.3 Bad recipient address syntax
kommt eine Fehlermeldung und das Gerät macht noch einen weiteren Versuch und gibt dann auf.
Ja, korrekt, "ping google-public-dns-a.google.com" ist keine valide Email-Adresse.
Was muss ich auf dem Postfix einstellen, damit dieses "RCPT TO:<ping>" schon mit Fehler abgewiesen wird.
Das ist nicht trivial möglich. Wie schon gesagt vergewaltigen die Hersteller offenbar das SMTP-Protokoll, und zwar extrem und gewalttätig. Mit einem "normalen" SMTP-Server wie Postfix kommst du da nicht weit. Du könntest, wie schon gesagt, beispielsweise ein Skript schreiben, welches die Kommandos entsprechend interpretiert, aber da du nicht wirklich weißt, was der Client dort als Antwort erwartet, ist das mit viel probieren verbunden. Was du machen kannst: Wenn es dir gelingt, die komplette Kommunikation des Client-Gerätes mit dem Grünwald-Server mitzuschneiden, könntest du nachvollziehen, was dort gesprochen wird, und welche Antworten der Client erwartet. Dann könntest du einen entsprechenden Server nachbauen. Aber auch dann vermutlich nicht mit Postfix, sondern mit etwas eigenem, beispielsweise einem kleinen Perl-Skript.
|
averlon
(Themenstarter)
Anmeldungsdatum: 18. Mai 2011
Beiträge: 286
|
Hallo zusammen,
ich habe in der Zwischenzeit viel getestet. Das Ergebnis ist eigentlich recht einfach. Der ursprüngliche Trace hat leider eine falsche Spur gelegt. Ergebnis:
Das Gerät von Grünbeck, bzw. der dort eingebaute Chip XPico, benötigt für SMTP eine Authentifizierung - zwingend! Nachdem ich dann im Postfix SASL mit "shadow" installiert und konfiguriert hatte, hat die Verbindung einwandfrei funktioniert. Es scheint so zu sein, dass die SMTP-Implementierung in dem XPico Prozessor wohl, wenn keine Authentifizierung vom SMTP-Server angeboten wird, in die Irre geführt wird und irgendwo auf einen seltsamen Pfad läuft und diese Reihe von Kommandos absetzt, die so gar keinen Sinn machen - zumindest aus meiner begrenzten Sicht. Fakt ist: Postfix mit SASL löst das Problem. Urspünglich hatte ich kein SASL implementiert, weil ich das in meinem INTRANET nicht benötige. Hier habe ich ander Mechanismen ("mynetworks"), die eine Zugriffsberechtigung auf den SMTP-Server ermöglichen. Aber das Gerät von Grünbeck benötigt wohl offensichtlich SASL.
|