OpenSuse 11.4 Port Forwarding funktioniert nicht!
Hallo zusammen!
ich habe einen Linux Router mit DSL Modem und fester IP Adresse. OpenSuse 11.4.
In der DMZ befindet sich ein Mailserver, der die Mails mit Postfix über Post 25 annimmt.
Router und Mailserver funktionieren!
Über YAST habe ich am Router Masquerading aktiviert und lasse alle Pakete über Port 25
weiter leiten:
Source Network: 0/0 Requested IP: 0/0 Requested Port: 25 Redirekt to 192.168.1.5 Redir to Port 25
Diesen Eintrag gibt es für tcp und udp
Wenn ich nun eine Verbindung über Telnet Port 25 aufbaue funktioniert das ganze leider nicht.
tail /var/log/firewall gibt folgende Meldungen aus:
Jun 27 14:19:56 gate kernel: [429715.972728] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=bond0 SRC=62.224.33.50 DST=192.168.1.5 LEN=48 TOS=0x00 PREC=0x00 TTL=121 ID=17569 DF PROTO=TCP SPT=11006 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405AC01010402)
Somit versucht doch der Router die Pakete an 192.168.1.5 weiter zu leiten aber am Mailserver kommt nichts an! Über iftop sieht man, dass es zu LAN Verkehr kommt aber ich kann den Fehler nicht finden. Im Protokoll /var/log/mail am Mailserver wird kein Verbindungsaufbau dokumentiert.
Ich verstehe nicht woran es noch hängen kann. Was gibt es noch für Tools, die man hier einsetzen kann?
Danke für Eure Hilfe
Gruß
Libor
ich habe einen Linux Router mit DSL Modem und fester IP Adresse. OpenSuse 11.4.
In der DMZ befindet sich ein Mailserver, der die Mails mit Postfix über Post 25 annimmt.
Router und Mailserver funktionieren!
Über YAST habe ich am Router Masquerading aktiviert und lasse alle Pakete über Port 25
weiter leiten:
Source Network: 0/0 Requested IP: 0/0 Requested Port: 25 Redirekt to 192.168.1.5 Redir to Port 25
Diesen Eintrag gibt es für tcp und udp
Wenn ich nun eine Verbindung über Telnet Port 25 aufbaue funktioniert das ganze leider nicht.
tail /var/log/firewall gibt folgende Meldungen aus:
Jun 27 14:19:56 gate kernel: [429715.972728] SFW2-FWDext-ACC-REVMASQ IN=dsl0 OUT=bond0 SRC=62.224.33.50 DST=192.168.1.5 LEN=48 TOS=0x00 PREC=0x00 TTL=121 ID=17569 DF PROTO=TCP SPT=11006 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405AC01010402)
Somit versucht doch der Router die Pakete an 192.168.1.5 weiter zu leiten aber am Mailserver kommt nichts an! Über iftop sieht man, dass es zu LAN Verkehr kommt aber ich kann den Fehler nicht finden. Im Protokoll /var/log/mail am Mailserver wird kein Verbindungsaufbau dokumentiert.
Ich verstehe nicht woran es noch hängen kann. Was gibt es noch für Tools, die man hier einsetzen kann?
Danke für Eure Hilfe
Gruß
Libor
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 168736
Url: https://administrator.de/forum/opensuse-11-4-port-forwarding-funktioniert-nicht-168736.html
Ausgedruckt am: 20.12.2024 um 03:12 Uhr
12 Kommentare
Neuester Kommentar
Eigentlich sieht der Syslog Eintrag gut aus ! Du solltest einmal mit tcpdump nachsehen ob das Paket wirklich auf der DMZ Seite also im DMZ Segment ankommt.
Noch besser wäre dort einen Rechner mit einem freien Wireshark Sniffer zu platzieren und wirklich physisch einmal zu prüfen ob diese Pakete wirklich nicht geforwardet werden oder ob doch und ggf. eine lokale Firewall am Mail Server zuschlägt.
Nach deinem o.a. Syslog Eintrag sollten die Pakete vom OpenSuse Router eigentlich schon sauber geforwardet werden !
Noch besser wäre dort einen Rechner mit einem freien Wireshark Sniffer zu platzieren und wirklich physisch einmal zu prüfen ob diese Pakete wirklich nicht geforwardet werden oder ob doch und ggf. eine lokale Firewall am Mail Server zuschlägt.
Nach deinem o.a. Syslog Eintrag sollten die Pakete vom OpenSuse Router eigentlich schon sauber geforwardet werden !
Wenn dein Client dip0.t-ipconnect.de. ist sieht das ja gut aus, dann wird auch brav TCP 25 geforwardet an dem Mailserver.
Der böse Buhmann ist also dann dein Mailserver und eben nicht der Linux Router.
Nimm einen Wireshark und sniffer lokal den Verbindungsaufbau mit vom Client !
Vermutlich sind dort noch mehr Ports als einfach nur 25 TCP involviert die du forwarden musst. Ansonsten kann es ja dann wie immer nur die lokale Firewall des Mailservers sein die (wie im Default üblich) ja alles wegblockt was nicht mit einer lokalen IP Adresse kommt !!
Der böse Buhmann ist also dann dein Mailserver und eben nicht der Linux Router.
Nimm einen Wireshark und sniffer lokal den Verbindungsaufbau mit vom Client !
Vermutlich sind dort noch mehr Ports als einfach nur 25 TCP involviert die du forwarden musst. Ansonsten kann es ja dann wie immer nur die lokale Firewall des Mailservers sein die (wie im Default üblich) ja alles wegblockt was nicht mit einer lokalen IP Adresse kommt !!
Rein für den Mailversand reicht Port 25.
Allerdings wenn der SuSe Router die Rückroute ändert kann das Ding auch niht antworten.
Und das ist nichts anderes wie ein Iptables Ding das heist wenn du nicht mit den verschiedenen Verbindungsstatus Meldungen arbeitest musst du die Rückrouten auch erlauben
Gruß
Hitman
Allerdings wenn der SuSe Router die Rückroute ändert kann das Ding auch niht antworten.
Und das ist nichts anderes wie ein Iptables Ding das heist wenn du nicht mit den verschiedenen Verbindungsstatus Meldungen arbeitest musst du die Rückrouten auch erlauben
Gruß
Hitman
Der Mailserver gibt aber keine Antwort zurück - kein ACK!
Wenn ich über Telnet eine Verbindung intern über Port 25 aufbaue erscheint ...
... auch die ACK (Antwort) vom Mailserver an den Client.
Wenn ich über Telnet eine Verbindung intern über Port 25 aufbaue erscheint ...
... auch die ACK (Antwort) vom Mailserver an den Client.
Check mal die Routingtabellen auf dem Mailserver. Wenn die stimmen, dann die Firewall-Einstellungen. ggf. könnte auch dein MTA nichtlokale Adressen blocken, wobei es dann aber ungewöhnlich ist, daß er gar keine Antwort zurückgibt. eventuell könnte da noch ein tcp-wrapper laufen, nur die lokalen Verbindungswünsche durchläßt, und, und und, ...
Kannt Du ein tcpdump/wireshark/snoop auf dem mailer laufen lassen?
Und warum läßt Du den nicht einfach als relay arbeiten? Wäre imho angemessener.
Und zu deinem eigentliche Problem sagt meien Kristallkugel, daß
Du solltest also auf dem Mailserver auf jeden Fall sniffen, um zu schauen, wo die Pakete reinkommen und auf welchem Weg sie den Mailsrver wieder verlassen.
Und zu deinem eigentliche Problem sagt meien Kristallkugel, daß
- entweder die default-Route falsch ist und daher die Pakete falsch zurückgeroutet und daher an der ersten DSl-leitung verworfen werden (Du hast vermutlich NAT auf beiden DSL-Leitungen und für die TCP-Session hat der erste Router kein SYN gesehen und blockt das. Selbst wenn er es nicht blockt, kann der Initiator das ACK-Paket keinem TCP-Verbindung zuordnen, weil es von einer anderen IP-Adresse kommt. Würde kein NAT gemacht, wäre es unerheblich auf welchem Weg die Rückpakete laufen.
- oder Deine Iptables nicht damit rechnen, daß die Pakete auf einem anderen Intferace als gewöhnlich für externe SMTP-Verbindungen kommen.
Du solltest also auf dem Mailserver auf jeden Fall sniffen, um zu schauen, wo die Pakete reinkommen und auf welchem Weg sie den Mailsrver wieder verlassen.
Zitat von @Lochkartenstanzer:
Halte ich am ehesten für das Problem das bei den IPTables ein Fehler ist.- oder Deine Iptables nicht damit rechnen, daß die Pakete auf einem anderen Intferace als gewöhnlich für externe
Außerdem ist ein Open Suse das auch noch andere Dienste anbietet definitiv kein Firewall/Router OS.
Gruß Hitman
Noch ein paar Nachfragen:
Hängt er direkt an der DSL-Leitung dran und hat quasi diese öffentliche IP-Adresse oder ist er im internen Netz mit einer internen IP-Adresse. Wie sieht seine routingtabelle aus (netstat -r)?
Wieviele "LANKarten" sind denn eingebau? wie ist die Topologie?
Woraus schließt Du, daß Port-forwarding nicht funktioniert? Hast Du am Ziel geprüft, z.B. mit tcpdump oder wireshark, ob die Pakete ankommen? Du hast doch selbst gesagt, daß die SYN-Pakete durchgehen, aber kein ACK zurückkommt. Also muß das forwarding zumindest funktionieren.
YAST war schon immer das Problem von SuSE. Deswegen bin ich ja auch in den 90ern zu debian gewechselt. Aber das führt uz weit vom Thema weg.
Also:
lks
Zitat von @Libor74:
... das ganze sieht so aus: Der Mailserver ist ein openSuse 11.1 auf dem Postfix mit Spamassassin und Antivir läuft. Dieser
verarbeitet bereits eingehende Mails über eine DSL Leitung mit fester IP Adresse.
... das ganze sieht so aus: Der Mailserver ist ein openSuse 11.1 auf dem Postfix mit Spamassassin und Antivir läuft. Dieser
verarbeitet bereits eingehende Mails über eine DSL Leitung mit fester IP Adresse.
Hängt er direkt an der DSL-Leitung dran und hat quasi diese öffentliche IP-Adresse oder ist er im internen Netz mit einer internen IP-Adresse. Wie sieht seine routingtabelle aus (netstat -r)?
Die Mails, die hier durchgelassen werden, werden über eine andere LAN Karte an einen Exchange Server weiter geleitet.
Wieviele "LANKarten" sind denn eingebau? wie ist die Topologie?
Nun habe ich eine zweite (deutlich schnellere) DSL Leitung mit fester IP bekommen. Hierfür habe ich als Router eben diesen
openSUSE 11.4 installiert. Als Router funktioniert das prima. An Diesem Router habe ich nun eben noch das Port Forwarding
aktiviert und das funktioniert nicht.
openSUSE 11.4 installiert. Als Router funktioniert das prima. An Diesem Router habe ich nun eben noch das Port Forwarding
aktiviert und das funktioniert nicht.
Woraus schließt Du, daß Port-forwarding nicht funktioniert? Hast Du am Ziel geprüft, z.B. mit tcpdump oder wireshark, ob die Pakete ankommen? Du hast doch selbst gesagt, daß die SYN-Pakete durchgehen, aber kein ACK zurückkommt. Also muß das forwarding zumindest funktionieren.
Wenn ich an der Konsole des Routers eine Telnet Verbindung auf den Mailserver mit Port 25 aufbaue, funktioniert es ja prima aber
nicht mit
den Anfragen, die von extern kommen. Ich habe das ganze mit YAST konfiguriert und nach all den Tests habe ich so langsam den
Eindruck
dass das womöglich das Problem ist.
nicht mit
den Anfragen, die von extern kommen. Ich habe das ganze mit YAST konfiguriert und nach all den Tests habe ich so langsam den
Eindruck
dass das womöglich das Problem ist.
YAST war schon immer das Problem von SuSE. Deswegen bin ich ja auch in den 90ern zu debian gewechselt. Aber das führt uz weit vom Thema weg.
Also:
- Topologie aufzeichen und posten.
- Routing-tabelle(n) posten
- mit tcpdump/wireshark mitschneiden, ob die syn-pakete im Mailserver ankommen und auf welchem weg die ack-pakete das System verlassen.
lks
Zitat von @Libor74:
Dieser schickt die Antwort aber an sein Standard Gateway, also an die alte (langsamere) Leitung zurück .und somit kommt die
Verbindung nicht zustande.
Ich verstehe aber immer noch nicht warum das so ist!
Dieser schickt die Antwort aber an sein Standard Gateway, also an die alte (langsamere) Leitung zurück .und somit kommt die
Verbindung nicht zustande.
Ich verstehe aber immer noch nicht warum das so ist!
Eben das ist der Grund. Der Ablauf ist folgender:
- Absender erzeugt SYN-Paket mit Ziel Router-neu
- SYN-Paket komm über Router-neu herein.
- RouterNeu trägt in NAT-Tabelle SYN-Paket ein.
- Router leitet SYN-Paket an Mailer weiter.
- Erzeugt SYN-ACK-Paket
- Mailer schaut in Routing-Tabelle nach wo das Paket hin soll.
- Mailer schickt an default Router -> Router-ALT
- Router alt bekommt SYN-ACK-Paket und je nach iptables gibt es zwei Varianten:
Variante 1:
- Zum-SYN-ACK-Paket gibt es keine passenden Eintrag in der NAT-Tabelle, weil da kein SYN druchgekommen ist. -> Schmeiß weg das Paket.
- ENDE-Gelände.
Variante 2:
- Router-ALT denkt Wir habe zwar in der Zustandtabelle keinen Eintrag, aber wir machen halt einfach einen neuen und schicken das Paket mit unserer IP-Adresse im Source weiter. (NAT).
- Absender bekommt ein SYN-ACK-Paket von einer IP-Adresse an die er kein SYN geschickt hat.
- Absender denkt Wer bist'n Du und schmeißt das Paket weg.
Jetzt klarer?
Um dem abzuhelfen mußt Du entweder dein Setup ändern z.B. indem Du die Router als Relay konfigurierst und kein Port-Forwarding machst, oder Du mußt per IP-Tables-regeln Dir merken, über welchen Router welches Paket kommt und Deine Routingtabelle dynamisch anpassen (sehr kompliziert und fehleranfällig). Du könntest natürlich auch NAT in zwei Richtungen machen, aber dann würde deine SPAM-Erkennung, sofern sie auch mit auf IP-Adressen basiert, auf die Schnauze fallen.
Zum Testen kannst Du ja für einen einzelnen Absender die Route auf den neuen Router setzen und dann den Telnet-versuch erneut machen. dann sollte es gehen. oder Du änderst deien default-Route auf demMailer, dann muß Du aber auch gleich den MX ändern, da ansonsten die Systeme versuchen noch über den alten Router reinzukommen und dann auf die Schnauze fallen.
lks
Nachtrag: Falls Du mehr Untersützung brauchst: Ich bin IT-Dienstleister.