Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Mehrere Maschinen hinter NAT und Server/Subdomain in der DMZ
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Nov 03, 2005 8:35 am    Post subject: Mehrere Maschinen hinter NAT und Server/Subdomain in der DMZ Reply with quote

Ich würde gern auf einer Testmaschine mehrere virtuelle Maschinen laufen lassen. Ob nun vmware, uml oder qemu ist dabei erstmal nicht relevant. Jede Maschine soll dann eine IP aus dem privaten Bereich bekommen und über NAT rauskommen, weil nur einen öffentliche IP zur Verfügung steht. Domain für den realen Host (der virtuellen Maschinen) ist dann z.B. example.com, für jede virtuelle Maschine (zumindest von "innen" betrachtet) eine Subdomain, z.B. files.example.com.

Um auf den virtuellen Maschinen nun jeweils auf Port 80 einen Webserver laufen zu lassen und dafür zu sorgen das die virtuellen Maschinen auch von extern über den Subdomainnamen (indirekt) erreichbar sind habe ich schonmal so erreicht, das ich auf dem Host einen Squid als http-accelerator aufsetzte der dann je nach angefragter Subdomain (die von außen alle auf den Host zeigten) die Daten von dem internen Webserver holte und rausgab.

Wie mache ich das aber für andere Dienste? Also ich meine z.B. POP3, also auf jeder "internen Subdomain" würde eine POP3-Server laufen und alle(!) sollen von außen unter dem 110 Port erreichbar sein, nur abhängig vom jeweiligen Domainnamen auf einen andere Maschine laufen.

Die Lösung jeweils extern einen anderen Port zuzuordnen und den dann per iptables auf den 110 intern umzubiegen ist mir bekannt, aber das meine ich nicht. Auch war das mit POP3 nur ein Beispiel.

Also ich dachte da eher so an eine Art Proxy, wie oben beschrieben die Squid Lösung, mit dem man alle Protokolle so behandeln kann. (oder kann das Squid sogar?) Insbesonders bei https hatte ich mit der Squid-Lösung meine Schwierigkeiten, ich denke da aber auch an Dinge wie ssh, ftp, p2p ...

Also zusammenfassend, ich möchte erreichen: Mit (virtuellen) Maschinen und IPs aus privatem Bereich in einem Netz welches nur über NAT nach extern angebunden ist Server (mit den jeweiligen Standardports innen wie außen) realisieren die so erscheinen als würden sie im öffentlichen Netz mit jeweils eigener IP liegen.

Das es wahrscheinlich nicht komplett möglich ist mir klar, ebenso was NAT macht, aber welche Lösungen nutzt ihr da so für welche Dienste?
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Thu Nov 03, 2005 10:33 am    Post subject: Re: Mehrere Maschinen hinter NAT und Server/Subdomain in der Reply with quote

slick wrote:
...Also ich dachte da eher so an eine Art Proxy, wie oben beschrieben die Squid Lösung, mit dem man alle Protokolle so behandeln kann. (oder kann das Squid sogar?) Insbesonders bei https hatte ich mit der Squid-Lösung meine Schwierigkeiten, ich denke da aber auch an Dinge wie ssh, ftp, p2p ...
Das es wahrscheinlich nicht komplett möglich ist mir klar, ebenso was NAT macht, aber welche Lösungen nutzt ihr da so für welche Dienste?


Wie hast du das denn überhaupt mit Squid hinbekommen ohne das du auf Clientseite ständig Zertifikatfehler bekommst? Soweit ich das weiß kann doch noch kein Browser RFC3546/Server-Name-Indication.

POP3/IMAP4 sollte unkritisch sein da entscheidet ja nicht der FQDN sondern die User-ID darüber auf welches Postfach du letztlich zugreifst, und das das funktioniert sieht man ja bei GMX und Co.

Für FTP fällt mir da net-ftp/frox ein.

Im Endeffekt kann das überhaupt nur funktionieren wenn du zusätzlich zur IP-Adresse ein Unterscheidungsmerkmal hast das du auswerten kannst, also den Host-Header bei http zum Beispiel.
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Nov 03, 2005 1:14 pm    Post subject: Re: Mehrere Maschinen hinter NAT und Server/Subdomain in der Reply with quote

Think4UrS11 wrote:
Wie hast du das denn überhaupt mit Squid hinbekommen ohne das du auf Clientseite ständig Zertifikatfehler bekommst? Soweit ich das weiß kann doch noch kein Browser RFC3546/Server-Name-Indication.

Also bei https geht es nur mit einem (Sub-) Domainnamen, egal ob auf dem Host oder ins LAN, allerdings findet dann die Kommunikation zwischen Squid<->LanServer über http statt, d.h. der Squid wird dann mit den Zertifikaten (des LAN-Servers) konfiguriert. Ist schon eine Weile her das ich das gemacht hatte, mußte auch eine Weile googlen bis das lief.

Quote:
POP3/IMAP4 sollte unkritisch sein da entscheidet ja nicht der FQDN sondern die User-ID darüber auf welches Postfach du letztlich zugreifst, und das das funktioniert sieht man ja bei GMX und Co.

Häää? Wie soll das denn gehen? Da hast mich nicht ganz verstanden denk ich mal. Wenn ich von extern auf den 110 connecte, woher weiß dann der Service an dieser Maschine zu welchem POP3-Server in der DMZ er "durchstellen" soll?
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Thu Nov 03, 2005 1:57 pm    Post subject: Re: Mehrere Maschinen hinter NAT und Server/Subdomain in der Reply with quote

slick wrote:
Also bei https geht es nur mit einem (Sub-) Domainnamen, egal ob auf dem Host oder ins LAN, allerdings findet dann die Kommunikation zwischen Squid<->LanServer über http statt, d.h. der Squid wird dann mit den Zertifikaten (des LAN-Servers) konfiguriert. Ist schon eine Weile her das ich das gemacht hatte, mußte auch eine Weile googlen bis das lief.

öhmm - also so in der Art?
Du hast eine Art 'catch-all' Zertifikat für unser.de erstellt und hast da dann Subdomains laufen ala
https://www.meins.unser.de + https://www.deins.unser.de
das ginge damit also, soweit bin ich dabei, aber
https://www.meins.de + https://www.deins.de ginge nicht, egal wie dus machst, korrekt? Jedenfalls wüßte ich nicht wie das jemals funktionieren soll.

slick wrote:
Häää? Wie soll das denn gehen? Da hast mich nicht ganz verstanden denk ich mal. Wenn ich von extern auf den 110 connecte, woher weiß dann der Service an dieser Maschine zu welchem POP3-Server in der DMZ er "durchstellen" soll?

Öh ja ich glaube du hast recht :roll:
Meinst du dann sowas? http://www.vergenet.net/linux/perdition/
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Nov 03, 2005 2:16 pm    Post subject: Re: Mehrere Maschinen hinter NAT und Server/Subdomain in der Reply with quote

Think4UrS11 wrote:
öhmm - also so in der Art?
Du hast eine Art 'catch-all' Zertifikat für unser.de erstellt und hast da dann Subdomains laufen ala
https://www.meins.unser.de + https://www.deins.unser.de
das ginge damit also, soweit bin ich dabei, aber
https://www.meins.de + https://www.deins.de ginge nicht, egal wie dus machst, korrekt? Jedenfalls wüßte ich nicht wie das jemals funktionieren soll.


Korrekt, also auf was Du das Zertifikat ausstellst, ob auf *.unser.de oder sub.unser.de ist dabei erstmal irrelevant. Denn man kann, ich müßte echt mal wieder danach suchen, den Squid so einrichten das er Connections auf 443 entgegennimmt, bei EINEM Server die Daten per http holt und dann über 443 und das eingestellte Zertifikat wieder zurück gibt. Also ich habs nicht hinbekommen das er je nach angefragten Hostname einen anderen Server anspricht. Das würde ja bei den Subdomains einer Domain und *.foo.tld Zertifikat ausreichen.

Quote:
Meinst du dann sowas? http://www.vergenet.net/linux/perdition/

Klingt interessant...
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Thu Nov 03, 2005 2:27 pm    Post subject: Re: Mehrere Maschinen hinter NAT und Server/Subdomain in der Reply with quote

slick wrote:
Korrekt, also auf was Du das Zertifikat ausstellst, ob auf *.unser.de oder sub.unser.de ist dabei erstmal irrelevant. Denn man kann, ich müßte echt mal wieder danach suchen, den Squid so einrichten das er Connections auf 443 entgegennimmt, bei EINEM Server die Daten per http holt und dann über 443 und das eingestellte Zertifikat wieder zurück gibt.

Ahjo soweit schon klar aber das führt auf Clientseite doch trotzdem zu Gemecker weil ggf. das Zertifikat nicht zum angesprochenen URI paßt. (sub.bla.de <>foo.bla.de)
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Thu Nov 03, 2005 4:24 pm    Post subject: Reply with quote

Na doch, das paßt schon, da ja im DNS (extern) die Domain und Subdomain auf die gleiche IP zeigen, da ja der DNS extern nicht die privaten Adressen aus der DMZ wissen kann. Und wie ich schon sagte, es ist eben nur mit genau EINER subdomain möglich. Klar kann man dann eine andere eingeben, dann bekommt man aber die Seite der vorgesehenen & genannte Fehlermeldung.
Back to top
View user's profile Send private message
sschlueter
Guru
Guru


Joined: 26 Jul 2002
Posts: 578
Location: Dortmund, Germany

PostPosted: Thu Nov 03, 2005 9:09 pm    Post subject: Reply with quote

Allgemein gesagt funktioniert das, was du möchtest, nur bei solchen Protokollen direkt, die den vollen Namen des Hosts als Bestandteil ihres Protokolls senden.

Das ist bei HTTP der Fall, aber bei den meisten anderen Protokollen nicht.

Natürlich gibt es Proxies, die tricksen. Für POP3 beispielsweise kann man einen Proxy-Server machen, der anstelle von Username und Passwort ("foo" und "pass") die Anmeldung per "foo@bar" und "pass" erwartet. Er stellt dann seinerseits eine POP3-Verbindung zu "bar" her und authentifiziert sich mit "foo" und "pass".

Oder man benutzt gleich ein allgemeines Proxy-Protokoll. Das bekannteste allgemeine Proxy-Protokoll ist Socks. Dann kann man sich ganz simpel über das Proxy-Protokoll mit der gewünschten privaten IP verbinden - ganz ohne Tricks.

Ein populärer Socks-Server ist Dante http://www.inet.no/dante/.

Die Client-Anwendungen sollten jedoch Unterstüzung für das Socks-Protokoll haben. Es gibt zwar auch einen Socks-Wrapper, mit dem Anwendungen ohne Socks-Unterstüzung "socksifiziert" werden können, aber ich habe damit keine Erfahrung. Das Socksifizierungs-Tool ist auch Bestandteil des Dante-Pakets.

Natürlich muß man dann einen speziellen Proxy konfigurieren. Und man muß die privaten IPs kennen. Der Zugriff über die Subdomains gelingt nur dann, wenn man die DNS-Auflösung auch vom Socks Server durchführen läßt und dafür sorgt, daß dieser bei der Namensauflösung die richtigen privaten IPs erhält. Meiner Erfahrung nach kann man sich allerdings bei Clients mit Socks-Unterstüzung nicht unbedingt drauf verlassen, daß sie auf eine DNS-Auflösung verzichten und diese statt dessen vom Socks-Server erledigen lassen.

Es ist sicher überflüssig zu erwähnen, aber zur Sicherheit sage ich es trotzdem mal: Auf keinen Fall sollte man auf die Idee kommen, die öffentlichen DNS-Einträge privaten IP-Adressen zuzuordnen.
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Thu Nov 03, 2005 10:29 pm    Post subject: Reply with quote

sschlueter wrote:
Es ist sicher überflüssig zu erwähnen, aber zur Sicherheit sage ich es trotzdem mal: Auf keinen Fall sollte man auf die Idee kommen, die öffentlichen DNS-Einträge privaten IP-Adressen zuzuordnen.

<sarcasm>
Ei warum denn nicht? Für ausreichend Spaß wäre dann jedenfalls mal gesorgt :twisted:
Vor allem dann wenn man zufällig im gleichen IP-Netz hängt und dort eine Maschine hat die den entsprechenden Service anbietet.
User: ich hab aber nen Connect
Admin: ich seh nix
...
</sarcasm>
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Fri Nov 04, 2005 8:52 am    Post subject: Reply with quote

sschlueter wrote:
Die Client-Anwendungen sollten jedoch Unterstüzung für das Socks-Protokoll haben. Es gibt zwar auch einen Socks-Wrapper, mit dem Anwendungen ohne Socks-Unterstüzung "socksifiziert" werden können, aber ich habe damit keine Erfahrung. Das Socksifizierungs-Tool ist auch Bestandteil des Dante-Pakets.

Natürlich muß man dann einen speziellen Proxy konfigurieren. Und man muß die privaten IPs kennen. Der Zugriff über die Subdomains gelingt nur dann, wenn man die DNS-Auflösung auch vom Socks Server durchführen läßt und dafür sorgt, daß dieser bei der Namensauflösung die richtigen privaten IPs erhält. Meiner Erfahrung nach kann man sich allerdings bei Clients mit Socks-Unterstüzung nicht unbedingt drauf verlassen, daß sie auf eine DNS-Auflösung verzichten und diese statt dessen vom Socks-Server erledigen lassen.


Nurnochmal sicherheitshalber nachgefragt das ich mich mit Socks nicht so auskenne, damit wäre es theoretisch möglich z.B. den Socks auf 80 an der öffentlichen IP lauschen zu lassen und er dann an (per Name) angefragte Subdomains "weiterleitet", unter der vorraussetzung das der Socksserver selbst den Subdomainnamen über z.B. eine eigene Hostsdatei auf die entsprechende IP in der DMZ auflösen kann?
Back to top
View user's profile Send private message
sschlueter
Guru
Guru


Joined: 26 Jul 2002
Posts: 578
Location: Dortmund, Germany

PostPosted: Fri Nov 04, 2005 10:41 am    Post subject: Reply with quote

Ja, beim Socks-Protokoll kann der CONNECT-Befehl bei der Zieladresse eine IP-Adresse oder einen FQDN enthalten.

Je nach Client kann es jedoch sein, daß der die Namensauflösung zuerst selbst macht und dann beim Socks-CONNECT-Befehl die IP-Adresse verwendet, die er bei der Namensauflösung erhalten hat. Wenn jetzt also die Subdomains öffentliche Einträge hätten und auf dieselbe IP wie die Hauptdomain verweisen würden, dann könnte das, was du möchtest, unter Umständen selbst für Proxy-Benutzer nicht klappen. Und für Nicht-Proxy-Benutzer klappt es ja ohnehin nicht. Also würde ich das dann so machen, daß die Subdomains ganz einfach keinen öffentlichen DNS-Eintrag haben. Es gibt ja ohnehin keine sinnvollen Einträge dafür. Und Proxy-Benutzer schicken dann den FQDN in ihrer Anfrage, da ihnen ja eine Namensauflösung, selbst wenn sie eine versucht haben, nicht gelungen ist.

Je nachdem, welche Clients du benutzen würdest, kann es sein, daß man bei denen auch direkt konfigurieren kann, ob sie selbst eine DNS-Auflösung versuchen sollen oder die Auflösung immer dem Socks-Server überlassen sollen. Aber ich weiß aus eigener Erfahrung, daß man das oft nicht konfigurieren kann und daß das Auflösungsverhalten dann etwas unberechenbar sein kann.


Ach, und der Standardport für Socks ist 1080.
Back to top
View user's profile Send private message
phixom
Apprentice
Apprentice


Joined: 07 Jan 2003
Posts: 224

PostPosted: Fri Nov 04, 2005 12:30 pm    Post subject: Reply with quote

Es wird langsam Zeit das endlich IPv6 eingeführt wird, dann hätten wir genau solche Probleme nicht mehr.
Ich warte auch schon sehnsüchtig darauf mehrere IP's besitzen zu dürfen.

phixom
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum