PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Echtes NAT unter Linux - wie?



20.03.01, 10:09
Hallo!

Mit Masquerading unter Linux habe ich schon eine Menge Erfahrung, läßt sich ja wunderbar machen.
Wie sieht es hingegen mit echtem NAT aus? D.h. ein statisches Mapping zwischen internen privaten IPs und fest vom Provider zugewiesenen IPs.
Hintergrund: ein kleines internes Netz mit privaten IPs und einem Mailserver, der naturbedingt eine feste IP verwenden muß, soll durch einen Firewall von der Außenwelt abgeschirmt werden.
Die Firewall muß dann statisches NAT betreiben, d.h Anfragen von außen an die feste IP (z.B. 195.196.197.198) an die private interne IP (z.B. 192.168.50.50) weitergeben. Das Ganze dann natürlich auch in umgekehrter Richtung, d.h. Mails vom Mailserver mit der privaten IP müssen unter der offiziellen IP nach draußen.
Funktioniert das irgendwie mit Linux Bordmitteln (ich glaube nicht) und wenn nein, wie dann, mit welchen Zusatztools?
Vielen Dank schon mal

Björn

------------------
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas

pitu
20.03.01, 14:41
Du musst den Clients sagen, dass sie den Server als Relay" benutzen sollen.

Du musst deinen MTA auf dem Server dann so konfigurieren, dass er seine Adresse im Header eintraegt.

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

20.03.01, 17:03
Seih' mir nicht bös', aber mit der Antwort kann ich irgendwie nichts anfangen.
Ich benötige "echtes" NAT, also klassische IP Adressen Umsetzung.
Danke

Björn

------------------
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas

21.03.01, 09:15
hi,
schau mal unter http://www.crosswinds.net/~toycity nach, vielleich findest du da ein bisschen hilfe.
ich habe da ein paar seiten online.
cu

pitu
21.03.01, 12:03
Ich habe lediglich auf den Mail-Teil geantwortet, die Clients muessen den Server als Relay benutzen, sonst klriegst du die feste IP nie in die Mails rein, wird immer im Header stehen.

Zum NAT. Das Masquerading von Linux ist echtes NAT, oder was meinst du? natuerlich ist es moeglich beim Masquerading eine Feste IP anzugeben.

Schau dir mal die /etc/rc.config.d/firewall.rc.config an bzw. die Doku dazu unter /usr/share/doc/packages/SuSEfirewall

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

pitu
21.03.01, 12:03
P.S. natuerlich nur wenn du eine SuSE hast http://www.linuxforen.de/ubb/wink.gif

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

21.03.01, 13:30
ich glaub ich weiß was er meint ;-)
beim masq kann es vorkommen, das beim aktiven ftp der server sagt ist net weil er den client mit (e. g.) 192.168.1.16 nicht erreichen kann.
das problem ist, das manchmal beim masq, nur die absenderadresse verschleiert wird, um routen zu können (siehe konventionen private ip-adressen). das nat, was novell und os eg machen is im vergleich zu masq schon proxy-masq.
wenn ich mich recht entsinn, hab ich letztens irgendwas gelesen, das mit den neuen iptables das prob gelöst sein soll ... habs leider noch net ausprobiert.

cu/2 iae

ps: nehmt bitte net alles so wörtlich, nicht das mich noch einer verhaut wg proxy-masq ;-)

pitu
21.03.01, 16:41
Ahhh, in diesem Fall kann man ftp aber im "passive mode" betreiben.

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

22.03.01, 08:57
Hallo!

An Sven_R: ich habe versucht, auf Deine Seite zu kommen (www.crosswinds.net/~toycity), aber ich bekomme nur die Meldung: "Document contains no data" bzw. bei Verwendung von Squid:
The following error was encountered:
Zero Sized Reply
Squid did not receive any data for this request.
Stimmt die URL Angabe?
An alle: Was ich meine ist folgendes.
Bei Masquerading "versteckt" sich ja ein privates LAN (mit welchen IPs auch immer) hinter einer einzigen, in der Regel vom Provider zugewiesenen offiziellen IP. Das hat den Effekt, daß alle Rechner z.B. über ein zentrales Gateway unter dieser einen IP mit dem Internet Kontakt haben. Der Nachteil ist, daß es dabei nicht möglich ist, vom Internet aus eine Verbindung zu einem bestimmten Rechner in diesem privaten LAN aufzubauen.
Genau das ist aber zwingend vonnöten, wenn ich einen offiziellen Mailserver (ein Mailserver, der im DNS einen MX Eintrag für eine bestimmte Domäne hat) hinter einem solchen Gateway betreiben will.
Diesem sogenannten Mailexchanger wurde vom Provider z.B. die offizielle feste IP 195.196.197.198 zugewiesen. Unter dieser IP ist der Mailserver der Domäne beispiel.de weltweit zu erreichen.
In Wirklichkeit ist der Mailserver aber Bestandteil des oben erwähnten privaten LANs, z.B. das Netzwerk 192.168.50.0 und hat die Adresse 192.168.50.50.
Nötig ist nun folgendes: das Gateway nimmt von außen kommende Verbindungswünsche an den Mailserver (normalerweise SMTP) unter der IP 195.196.197.198 an und "übersetzt" sie per statischem NAT in die korrekte IP 192.168.50.50. Pakete, die der Mailserver ins Internet schickt, werden vom Gateway entsprechend von der Quelladresse 192.168.50.50 in die offizielle IP 195.196.197.198 umgesetzt.
Masquerading ist nur ein Spezialfall von NAT und kann diese oben geschilderte'Anforderung nicht erfüllen.
Ich hoffe, es ist nun etwas klarer geworden.
Viele grüße

Björn

------------------
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas

22.03.01, 09:08
Ich verwende übrigens RedHat 7. Trotzdem vielen Dank, Thorsten.
Und: aktives FTP oder nicht, ist mir im Moment auch relativ Wurscht ;-)
Noch zur Info: die Sache mit dem Mailexchanger Eintrag im DNS kann auch jeder gerne mal selbst ausprobieren.
1) nslookup eingeben
2) Eingabe von set type=mx
3) Eingabe der Lieblingsdomain, z.B. linuxforen.de
Das sieht dann am obigen Beispiel etwa so aus:

[user@host]$ nslookup
Default Server: dns.beispiel.de
Address: 192.168.50.100

> set type=mx
> linuxforen.de
Server: dns.beispiel.de
Address: 192.168.50.100

linuxforen.de preference = 100, mail exchanger = mail.naol.de
linuxforen.de nameserver = ns1.nameserving.de
linuxforen.de nameserver = ns2.nameserving.de
mail.naol.de internet address = 213.69.4.39
ns1.nameserving.de internet address = 212.168.0.49
ns2.nameserving.de internet address = 212.168.14.49

Das heißt: der offizielle Mailserver der Domäne "linuxforen.de" ist unter der Adresse mail.naol.de erreichbar. Dieser Host hat die offizielle IP 213.69.4.39.
Viele Grüße

Björn

------------------
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas

22.03.01, 10:46
wieso hab ich das gefühl, daß du sehr viel mit novell zu tun hast / hattest?

cu/2 iae

22.03.01, 12:35
Hi!

Deine Intuition in allen Ehren, aber:
NEIN, ich habe nichts und hatte auch noch nichts mit Novell zu tun. Das was ich bisher davon gesehen habe, hat mich genügend abgeschreckt.
Ich komme aus der reinen Unix Ecke (hauptsächlich Solaris) und habe dort sehr viel mit NAT in Zusammenhang mit Firewalls zu tun. Daher frage ich mich, wie Du in diesem Zusammenhang auf Novell kommst, die waren doch die absolut letzten, die TCP/IP Unterstützung in Ihrem System eingeführt haben.
Gruß

Björn

P.S. Bitte, bitte eine Antwort auf die Ur-Frage ;-)

------------------
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas

22.03.01, 13:04
oki, anders rum.

ich kenn diese funktionalität wie du sie für deinen mailserver erreichen möchtest auch in den bereichen web-, ftp-, name-, account-, asp-, terminal-, metaframes- etc -servern.
das nat ist dort aber das gleich funktiono wie masq. die oben genannten optionen wird durch proxy erreicht, bzw entsprechenden programme die solche funktionalitäten anbieten (eg checkpoint, bordermanager, cisco-pix etc.)
bei microsoft erreicht man nat durch proxy's, alles andere ist port-forwarding ... oder erweitertes routing.

kurz und knapp zu deiner frage:
ja

ausführlicher?
da haperts, ich such seit zwei tagen schon die entsprechenden seiten. so ist das leider wenn man solche sachen net aktiv macht, erinnert man sich im besten fall noch dran, es gelesen zu haben.

alternative?
hm, vielleicht helfen die entsprechende links auf der <a href="http://www.os2.de">OS/2 Seite</a>??

cu/2 iae

ps: damit konnte ich zwar deine Ur-Frage beantworten, aber net weiterhelfen. ich schrei dich an, wenn ichs find

22.03.01, 13:47
http://home.t-online.de/home/hburde/freebsd.html
http://www.othello.ch/ + http://www.gated.org/
http://www.alumni.caltech.edu/~dank/peer-nat.html

viel Spaß beim lesen ;-)

grüße

pitu
22.03.01, 16:39
###########
Natuerlich geht es hinter einer Firewall...

Hier eins der Beispiele fuer die SuSEfirewall. Die Variablen hab ich weggelassen, da du sie eh nicht verwenden kannst.

Mit anderen Worten, du richtest eine DMZ ein.



Scenario 5:
Most complex scenario!

Network map:

Internet Trusted_Company
| |
| |
| |
SuSE-Firewall-------Webserver
| |
| |
| |
| |--- Admin Network
|
Internal LAN---Server (for the trusted_company)
|
Mailserver

The company has a connection to the internet but also to an additional
line to a trusted third party company, who needs SSH Access to an internal
server ("Server" on the map).
There is also a DMZ with a webserver (www, https) which sends DNS, mail and
syslog to the firewall. The webserver has got a private IP Adress, hence it
must be reverse masqueraded. It gets being adminstrated with SSH from the
Admin LAN.
The Admin Network should be masqueraded to the internet and get full access.
The Internal LAN should also be masqueraded to the internet but only be allowed
to access www, https and ftp.
Only TCP connections from the Admin network to the internal LAN should be
allowed, not from the internal LAN to the Admin network.
No traffic between the internet and the trusted company should be allowed.
The firewall receives all mails and sends them to an internal mailserver or
to the internet. It also provides DNS service to it's internal/dmz networks.


thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

23.03.01, 10:16
Hi Thorsten!

Was ich meine, braucht gar nicht so kompliziert zu sein. Gefordert ist folgendes:
<pre>
Internet
|
|
Firewall
|
|
-------------------------
| | | |
Workstation1 WS2 WS3 Mailserver
</pre>

Der Mailserver ist also nur ein Rechner von vielen (ohne DMZ), aoll sich aber von außen unter einer offiziellen IP ansprechen lassen (für SMTP Verkehr) und nach außen hin unter dieser offiziellen IP auftreten. Etwa so:

<pre>
SMTP an 195.196.197.198 (NAT: Umsetzung auf 192.168.50.50)
Internet------------------------->FW------------------------------------->Mailserver

SMTP nach außen (NAT: Umsetzung auf 195.196.197.198)
Mailserver---------------->FW-------------------------------->Internet
</pre>

Gruß

Björn

------------------
Contrary to popular belief, Unix is user friendly.
It just happens to be selective about who it makes friends with.
-- Dave Parnas

pitu
23.03.01, 12:04
Ich wollte mit dem Beispiel nur zeigen, dass es auch mit einer festen IP hinter der Firewall geht.
Leider kenne ich mich ansonsten mit firewall nicht so richtig aus, ich kann halt die Variablen von unserem Script ausfuellen. http://www.linuxforen.de/ubb/wink.gif

thorsten

------------------
Thorsten Wandersmann
SuSE GmbH, Nuernberg

23.03.01, 14:06
meines wissens ist das unter linux mit transparent proxying möglich.

25.03.01, 20:39
hi,

ich denke was du brauchst ist port-forwarding.
<code>
ipmasqadm portfw -a -P tcp -L $LOCAL_IP 25 -R $INTERN_IP 25
</code>
(ipmasqadm portfw -h)
$LOCAL_IP ist die IP der Firewall
$INTERN_IP die IP des Mailservers

HTH,

ChakZul

04.04.01, 22:40
hi,

man korrigiere mich bitte bei falschangaben, aber imo unterstützt linux 2.2 *kein* echtes NAT sondern lediglich Masquerading. Wobei Masquerading ein Spezialfall von Source-NAT ist.

mit portforwardung des smtp-ports könntest du unter 2.2.x unter Umständen schon erfolgreich sein, aber für *echtes* NAT brauchst du 2.4.x (IPTABLES anstatt IPCHAINS) ... dort wird zwischen SNAT (Source-NAT) und DNAT (Destination-NAT) unterschieden, also *auch* das DNAT, welches du willst.

elementare info's zu IPTABLES findest du unter http://www.linuxia.de/lt-netfilter.de.html ... wenn du mit ipchains fit bist, wird der umstieg leicht sein.

grüße
pasto

04.04.01, 22:58
ähm,

nachdem ich brav geantwortet hab, würd es mich doch interessieren, wie du die folgende schwierigkeit überwindest :

Fakt ist, daß du pro einwahl eine andere andere IP bekommst. Meine Frage : wie schaffst du es, daß sämtliche DNS-Server innerhalb von sekunden wissen, *WO* dein SMTP-Server zu erreichen ist???

Selbst wenn DEIN Gateway richtig routet ... wie überzeugst du den Rest des Internet's, daß dein Server da zu erreichen ist, wo er sich gerade befindet???

Mein Problem bezieht sich auf das Routing der Provider, die mit deinem Provider nichts zu tun haben (im allgemeinem) ... ich kenne für sowas keine lösungen, wäre aber sehr dankbar korrigiert zu werden!

ciao
pasto

04.04.01, 23:20
und bevor ich mich nochmal unklar ausdrücke http://www.linuxforen.de/ubb/wink.gif

du hast für den mx vielleicht eine statische ip. aber das routing um diese ip von außerhalb zu erreichen wechselt ja ständig ....
ich würd mich freun, wenn du mir verrätst wie du das machst (sitz ich auf dem schlauch??)