HTTP und SMTP trennen

Hallo Experten
ich möchte den HTTP/FTP Traffic über eine DSL Leitung und den SMTP Traffic über eine Mietleitung leiten.
Auf dem Firewall ist es aber ja nur möglich einen Default Gateway einzusetzten. Welche Möglichkeitwen gibt es um dies zu realisieren? Hat dies schon mal jemand versucht?

Danke für die Tipps

Moin fourX,

da du nicht schreibst welche Firewall du einsetzt, auch nicht ob du einen lokalen Mailserver hast oder nur clients und eigentlich kaum nützliche Infos gibts.
Ist es kaum möglich eine vernünftige Aussage zutreffen.

Berücksichtige das mir der folgende Vorschlag, nur auf die schnelle eingefallen ist und ich nicht darüber nachgedacht habe ob er sinnvoll ist.

du könntest deinen Client bzw. Server zu einrichten das ein Smarthost verwendet wird und dann richtest du eine hostroute (zum Smarthost) ein, die über die Mietleitung geht.

Unter Linux würden mir da noch ne reihe sinnvoller alternativen ein Fallen.

polarbear

ich möchte den HTTP/FTP Traffic über eine DSL Leitung und den
SMTP Traffic über eine Mietleitung leiten.
Auf dem Firewall ist es aber ja nur möglich einen Default
Gateway einzusetzten. Welche Möglichkeitwen gibt es um dies zu
realisieren? Hat dies schon mal jemand versucht?

Falls du einen speziellen SMTP-Server hast, dann kannst du das über die Routes des Firewal/Routers lösen.

Die Default-Route geht über die DSL-Leitung, für die IP-Adresse des SMTP-Servers setzt du eine eigene Route die über die Mietleitung geht.

Damit kannst du aber nur über IPs differenzieren, d. h. falls auf dem SMTP-Server auch ein FTP-Server läuft, dann würde FTP-Traffic zu diesem Server auch über die Mietleitung laufen.

Vielleicht gibt es aber auch eine Möglichkeit die Routes für bestimmte Ports zu setzen, zumindest bei normalen PC-Betriebssytemen geht sowas AFAIK nicht, aber falls du einen Router-Appliance hast vielleicht, keine Ahnung. :o)

Grüße, Robert

s/ein Fallen/einfallen/
ot

Normales OS / Was ist normal ?

Vielleicht gibt es aber auch eine Möglichkeit die Routes für
bestimmte Ports zu setzen, zumindest bei normalen
PC-Betriebssytemen geht sowas AFAIK nicht, aber falls du einen

Was verstehst du unter einen normalen PC-Betriebssystem?

Also das OS das ich _normal_erweise einsetzte kann das schon.

polarbear

Also das OS das ich _normal_erweise einsetzte kann das schon.

Deswegen das AFAIK. Hab zwar mal einen Router mit Linux eingerichtet, aber allzu intensiv habe ich mich nicht damit beschäftigt.

Was verwendest du, und wie geht das da?

Grüße, Robert

Was verwendest du, und wie geht das da?

,----=[**man ipchains**]=---
| 
| 
| [...]
| 
| 
| -s, --source [!] address[/mask] [!] [port[:stuck\_out\_tongue:ort]]
| Source specification. Address can be either a
| hostname, a network name, or a plain IP address.
| The mask can be either a network mask or a plain
| number, specifying the number of 1's at the left
| side of the network mask. Thus, a mask of 24 is
| equivalent to 255.255.255.0. A "!" argument before
| the address specification inverts the sense of the
| address.
| The source may include a port specification or ICMP
| type. This can either be a service name, a port
| number, a numeric ICMP type, or one of the ICMP
| type names shown by the command
| ipchains -h icmp Note that many of these ICMP names
| refer to both a type and code, meaning that an ICMP
| code after the -d flag is illegal. In the rest of
| this paragraph, a port means either a port specifi
| cation or an ICMP type. An inclusive range is can
| also be specified, using the format port:stuck\_out\_tongue:ort. If
| the first port is omitted, "0" is assumed; if the
| last is omitted, "65535" is assumed.
| Ports may only be specified in combination with the
| tcp, udp, or icmp protocols. A "!" before the port
| specification inverts the sense. When the check
| command is specified, exactly one port is required,
| and if the -f (fragment) flag is specified, no
| ports are allowed. The flag --src is a convenience
| alias for this option.
| 
| --source-port [!] [port[:stuck\_out\_tongue:ort]]
| This allows separate specifiction of the source
| port or port range. See the description of the -s
| flag above for details.The flag --sport is an alias
| for this option. 
| 
| -d, --destination [!] address[/mask] [!] [port[:stuck\_out\_tongue:ort]]
| Destination specification. See the desciption of
| the -s (source) flag for a detailed description of
| the syntax. For ICMP, which does not have ports, a
| "destination port" refers to the numeric ICMP code.
| The flag --dst is a convenience alias for this
| option.
| 
| --destination-port [!] [port[:stuck\_out\_tongue:ort]]
| This allows separate specifiction of the ports.
| See the description of the -s flag for details.
| The flag --dport is an alias for this option.
| 
| [...]
| 
| -i, --interface [!] name
| Optional name of an interface via which a packet is
| received (for packets entering the input chain), or
| via which is packet is going to be sent (for pack
| ets entering the forward or output chains). When
| this option is omitted, the empty string is
| assumed, which has a special meaning and will match
| with any interface name. When the "!" argument is
| used before the interface name, the sense is
| inverted. If the interface name ends in a "+",
| then any interface which begins with this name will
| match.
| 
| [...]
| 
`----

Hmmmm, und wie kann man über ipchains ein Datenpaket über eine bestimmte Route leiten?

Ich kenn ipchains nur als Firewall-Konzept des Linux-Kernels 2.2. Die von dir beschriebenen Parameter sind eine Möglichkeit eine Regel für ein Datenpaket zu erstellen. Wenn eine Regel zutrifft kann man dann eine Aktion wie ACCEPT oder DENY wählen, aber ich wüßte nicht wie ich da eine bestimmte Route vorgeben könnte.

Das kenne ich nur über die Routing-Tabellen, steuerbar über das route-Kommando.

Korrigiere mich, wenn ich falsch liege …

Grüße, Robert

Routing in Abhängigkeit mit Diensten / Services

Ich kenn ipchains nur als Firewall-Konzept des Linux-Kernels
2.2.

[…]

Das kenne ich nur über die Routing-Tabellen, steuerbar über
das route-Kommando.

Gut.

Vielleicht besser eine schmerzfreie Lösung (mit ip_tables_):

http://www.linuxguruz.org/iptables/howto/2.4routing-…

Sebastian

Vielleicht besser eine schmerzfreie Lösung (mit
ip_tables_):

Würde das mit ipchains auch gehen oder ist das ein neues Feature?

Grüße, Robert

Vielleicht besser eine schmerzfreie Lösung (mit
ip_tables_):

Würde das mit ipchains auch gehen

Spontan hätte ich keine wirklich gute Idee. Je nach Setup könntest Du den Mailserver ja auch an einen anders routenden Rechner verweisen: dort wird dann die Mail über eine andere Leitung verteilt. Sicher nicht die eleganteste Möglichkeit…

Sebastian

Spontan hätte ich keine wirklich gute Idee. Je nach Setup
könntest Du den Mailserver ja auch an einen anders routenden
Rechner verweisen: dort wird dann die Mail über eine andere
Leitung verteilt. Sicher nicht die eleganteste Möglichkeit…

OK, darum meinte ich auch, dass es AFAIK nicht geht, iptables kannt ich nicht. :o)

Grüße, Robert

Spontan hätte ich keine wirklich gute Idee. Je nach Setup
könntest Du den Mailserver ja auch an einen anders routenden
Rechner verweisen: dort wird dann die Mail über eine andere
Leitung verteilt. Sicher nicht die eleganteste Möglichkeit…

OK, darum meinte ich auch, dass es AFAIK nicht geht, iptables
kannt ich nicht. :o)

Ja. War ein Schnellschuss meinerseits.

Alternativ: Du könntest Deinen Mailserver unter der besagten IP senden lassen. Oder so:

Zum Beipiel einen gepatchten qmail. Wenn der nur als smarthost für den eigentlichen Mailserver (auch auf dem gleichen Rechner) Mail annimmt und weiterleitet, wäre das auch eine Lösung…

Sebastian

Alternativ: Du könntest Deinen Mailserver unter der besagten
IP senden lassen. Oder so:

Ich denke, dass es absolut ausreichend ist, die komplette route auf den Mailserver über die andre Leitung laufen zu lassen.

In den meisten Fällen wird der Mailserver ein dezidierter Mailserver sein und damit ists eh kein Problem. :o)

Grüße, Robert

PS: Ausserdem ist der Thread inzwischen so lange, dass der ursprüngliche Fragensteller wahrscheinlich gar nicht mehr mitliest. *g* :smile:

Ich denke, dass es absolut ausreichend ist, die komplette
route auf den Mailserver über die andre Leitung laufen zu
lassen.

Ja, wenn er auf separater Maschine läuft.

In den meisten Fällen wird der Mailserver ein dezidierter
Mailserver sein und damit ists eh kein Problem. :o)

Ja, kommt sicher auf die Größe des Setups an. Ich habe hier einen (produktiven) Mailserver, der noch anderen Krempel nebenher macht. naja, ist natürlich nicht optimal, aber webmail zwingt geradezu Apache auf…

PS: Ausserdem ist der Thread inzwischen so lange, dass der
ursprüngliche Fragensteller wahrscheinlich gar nicht mehr
mitliest. *g* :smile:

Pah!

Fragesteller - wen interessieren die schon?

Sebastian

ES GEHT … HOW TO http://ds9a.nl/lartc/
http://ds9a.nl/lartc/

cu

polar