jail: nur 1 IP verbrauchen ("name based")

Der Link http://www.encephalon.de/freebsd/freebsd-jails/index.html funkt leider nicht :-(
Aber vielleicht kann mir das jemand auch so nahebringen ?

Ich habe einen Server mit 2 Netzwerkkarten. EIne Karte ist für den Zugriff aus dem privaten Netz gedacht. An die 2. Karte wollte ich ein jail klemmen, im eigenen Subnetz und dieses von draussen zugänglich machen (soll einen separaten Server ersetzen).
Mittlerweile bin ich mir nict mehr sicher, ob das überhaupt klappen kann.

Stefan
 
An die 2. Karte wollte ich ein jail klemmen, im eigenen Subnetz und dieses von draussen zugänglich machen (soll einen separaten Server ersetzen).

Das funktioniert, indem du NAT auf dem oeffentlichen Interface laufen laesst und dann an bestimmte Ports gerichtete Anfragen auf dein Jail leitest. Also du kannst zum Beispiel deinen Webserver innerhalb des Jails laufen lassen und dann die Anfragen an Port 80 deiner Firewall/deines Router an das Jail weiterleiten.

Soweit ich mich erinnern kann, beschreibt asg sogar ein solches Szenario in seiner Dokumentation. Den Verweis hast du ja jetzt. Viel Spass.
 
Mein Scenario sieht so aus:
router mit
LAN 192.168.3.1
DMZ 192.168.5.1

www mit 192.168.5.2, soll durch die jail abgelöst werden
server mit Netzkarte1 192.168.3.10 + Netzkarte2 192.168.5.10

An die Netzkarte2 ist das jail gebunden

In der rc.conf des jail ist als defaultrouter die 192.168.5.1 eingetragen
Der sshd ist in der rc.conf eingetragen, startet aber nicht
starte ich das jail mit /bin/sh zeigt er mir an, dass defaultroute auf 192.168.3.1 steht.
Das jail findet also seinen Netzausgang nicht
Wieso werden die Daten der 1. Karte überhaupt im jail angezeigt ???

Fragen über Fragen.

Stefan
 
rc.conf host
defaultrouter="192.168.3.1"
hostname="t9serv4.tulpenweg.cxm"
ifconfig_em0="inet 192.168.3.10 netmask 255.255.255.0"
keymap="german.iso"
keyrate="fast"
sshd_enable="YES"
apache_enable="YES"
syslogd_flags="ss"

rc.conf jail
sendmail_enable="NO"
portmap_enable="NO"
network_interface=""
sshd_enable="YES"
sshd_flags="-p 2222"
defaultrouter="192.168.5.1"
hostname="DMZ"

gestartet wird das jail über
ifconfig fxp0 inet 192.168.5.10/24
mount_devfs devfs /usr/local/jail-dmz/dev
jail /usr/local/jail-dmz/ dmz 192.168.5.10 /bin/sh /etc/rc

stefan
 
Ich meine, dass ein defaultrouter Eintrag innerhalb dem Jail gar keine Wirkung hat. Als naechstes benoetigst du ein Alias fuer das Interface des Hosts, welchen dann dein Jail benutzt.

Ich wuerde vorschlagen, dass du die Anleitung von asg Schritt fuer Schritt durchmachst. Du darfst auch das Jail nicht als vollstaendig alleinstehenden Computer betrachten.
 
Ich möchte kein alias für meine Netzwerkkarte. Ich möchte die 2. Karte in einem eigenen Subnetz nutzen. Das steht leider in keiner Anleitung drinnen, die ich bisher gefunden habe :-(
Stefan
 
Jetzt habe ich das verstanden. Ok, dann stimmen deine Schritte bisher. Also das Starten der Jail,... Das Problem ist, wie gesagt, nur, dass der Host das Routing uebernimmt.

Das ganze kannst du dann so verwirklichen: NAT auf deiner zweiten Netzwerkkarte laufen lassen, die eine Adresse in einem eigenen Subnetz hat. Dann leitest du alle Anfragen aus dem Subnetz auf deiner zweiten Netzwerkkarte an deine Jail weiter. Ausserdem leitest du alle Anfragen, die von deiner Jail kommen, auch mit Hilfe von NAT, in das Subnetz. Es ist eben das Routing.

Hab' ich dich jetzt wieder falsch verstanden oder etwas vergessen? :D
 
Zuletzt bearbeitet:
Wo zu Nat?
Das kann man hervorragend mit routen lösen.
Dein Szenario ist kein Problem aber wenn einem routen, gateways etc nicht ganz klar sind kann einem das graue Haare wachen lassen ;-)
 
Na gut also noch mal mit bisschen mehr Input ;-)

Du kannst im jail keine routen setzen, somit auch keine default route.
Das musst Du alles im Host regeln.

Das jail mit der IP 192.168.5.10 (Interfucker fxp0) soll also über 192.168.5.1 nach aussen kommunizieren? Da diese IP dem Subnetz 192.168.5/24 entspricht was auf fxp0 liegt muss darüber das gateway erreichbar sein.

Nun kommen wir zu 192.168.3.10, der Host.
Wo muss der raus, auch über 192.168.5.1 (fxp0)? Wenn dem so sein sollte, brauchst Du noch eine route die das Subnetz 192.168.3/24 umbiegt auf 192.168.5.1.
Soll 192.168.3.10 allerdings auf ein eigenes Gateway rausgehen, dann muss Du auch eine route setzen. Damit er nicht gegen die Wand rennt wegen der defaultroute die ausserhalb des Sunbetzes lieget: 192.168.3/24 -> 192.168.3.1(?).

Das ganze könnte man auch umgekehrt machen, also defaultroute für 192.168.3/24 setzen und eine weitere Statische route für das Subnetz vom jail.

Routen kannst du per rc.conf setzen:
static_routes="abc"
route_abc="... ROUTE(8) Syntax..."

routen testen kannst Du mit:
route get <wo es hinsoll>
Zeigt dir genau an über welches Interface er rausgehen würde.

Wegen dem SSHD, DNS-Server erreichbar bzw. funktioniert die Namensauflösung?

hostname, da solltest du immer ein FQDN (The fully qualified domain name) setzen und nicht nur den Rechner Namen alleine.

So ich hoffe damit kommst Du weiter?

Nachtrag:
Die Jail-IP kannst natürlich gleich mit in die rc.conf packen:
ifconfig_fxp0="inet 192.168.5.10/24"
 
Zuletzt bearbeitet von einem Moderator:
Genau wie du (bis jetzt) nicht mehr als eine IP im Jail haben kannst. Auch IPv6 ist (bis jetzt) nicht möglich im Jail. Row Socket ist Default auch unersagt und muss erst über sysctl aktiviert werden.
 
Hatte wieder etwas Zeit für Ursachenforschung ;-)
Ein route get erzählt mir, dass der Bursche im Jail immer über meine andere Karte raus will, sprich: das routing ist noch im argen.
ein :
route add -net 192.168.5.0/24 -gateway 192.168.5.1 scheint nix zu bringen, jedenfalls schickt das jail alles über die 192.168.3.10

bth: bei jls taucht noch ein gestoppter jail auf, der bei ps keine Prozesse mehr anzeigt. Wie kille ich den, ohne die Kiste zu booten ?

Stefan
 
route add -net 192.168.5.0/24 -gateway 192.168.5.1 scheint nix zu bringen, jedenfalls schickt das jail alles über die 192.168.3.10

Ist meiner Meinung nach logisch, da: Jeder Verkehr, der in das Subnetz stattfindet, soll ueber das Gateway laufen. Jetzt gibt es allerdings keine Route, die sagt, wie man das Gateway erreichen kann. Also wird die Defaultroute verwendet, die jedoch die falsche ist.
Allerdings bin ich mir jetzt nicht sicher, ob das so stimmt. Als Hilfe koenntest du mal deine Routingtabelle (netstat -rnf inet) posten, dann sieht man das anschaulich.

bei jls taucht noch ein gestoppter jail auf, der bei ps keine Prozesse mehr anzeigt. Wie kille ich den, ohne die Kiste zu booten ?

Werf' am besten einen Blick in /etc/rc.d/jail.
 
Ich verstehe das eher so: Der Datenverkehr aus dem Netz 192.168.5 soll für alle anderen Ziele das Gateway 192.168.5.1 genutzt werden.

Vom Server 192.168.3.10 (host) kann ich mich per ssh auf das jail einloggen.
Ein 2. Rechner in der DMZ kann ebenso problemlos per ssh drauf.

Scheint so, als ob er die routing-Anweisung nicht sonderlich ernst nimmt ;-)

Stefan
 
Ich verstehe das eher so: Der Datenverkehr aus dem Netz 192.168.5 soll für alle anderen Ziele das Gateway 192.168.5.1 genutzt werden.

Was heisst hier Du verstehst?
Wie sollen wir die helfen wenn Du dir noch nicht mal selber sicher bist was Du willst?

Vom Server 192.168.3.10 (host) kann ich mich per ssh auf das jail einloggen.
Ein 2. Rechner in der DMZ kann ebenso problemlos per ssh drauf.

Ich verstehe nimmer was Du willst.
Auch gehst Du nicht auf die Fragen ein.

Scheint so, als ob er die routing-Anweisung nicht sonderlich ernst nimmt ;-)

routen sind wegweiser und keine Stopschilder. Letzeres ist ein Paketschupser.

jail killen: killall -j <jid>
 
Entschuldigt bitte meine flapsige Ausdrucksweise; ich weiss schon was ich will !
wenn ich Packete aus einem Subnetz in ein anderes Subnetz senden möchte, so brauche ich ein gateway. Für mein Subnetz, nennen wir es LAN, mit dem IP-Bereich 192.168.3 habe ich das Gateway 192.168.3.1. In diesem Netz steht auch der Server (192.168.3.10 / em0), der als host für meine Jail (192.168.5.10/fxp0) dienen soll. In meinem Subnetz DMZ mit dem IP-Bereich 192.168.5 hängt die jail.
Beide Subnetze sind über meinen router miteinander verbunden. Er hat 3 Netzwerkkarten mit den IP-Nummern 192.168.3.1 (LAN), 192.168.5.1 (DMZ) und eine Karte zum Provider.
Auf dem Server (host) habe ich als default die 192.168.3.1 eingetragen
Ebenso habe ich über "route add -net 192.168.5 -gateway 192.168.5.1" einen Eintrag gesetzt, der alle Packete, die nicht für das DMZ-Netz bestimmt sind und aus dem Jail kommen, über den "router" geroutet werden.
Leider nehmen alle diese Packete aus der Jail den Weg über die Serverkarte em0 mit der IP 192.168.3.10.
Packete aus dem jail, die im Subnetz 192.168.5 bleiben, verlassen den Rechner über fxp0.

So, ich hoffe das war jetzt verständlich genug ;-)

Meine konkrete Frage:
Wie lautet der routing-Befehl für das beschriebene Szenario oder ist jemanden ein anderer Fehler aufgefallen ?

Stefan
 
Ahhh ok jetzt begreife ich :-)

route add -net 192.168.5/24 192.168.5.1

sollte reichen.
Kannst Du sonst mal ein `ifconfig` und ein `netstat -rnfinet` pasten?

Ähh quatsch. /me macht dann mal den Kopf an.
cnopers hat natürlich recht.

Du musst die Deafultroute auf 192.168.5.1 setzen und mit einer route dafür sorgen das dein 192.168.3/24er Netz nicht dort drüber geht.

(letzendlich so wie ich es geschrieben hatte..)
 
Zuletzt bearbeitet von einem Moderator:
@stefan

Wenn du weisst, was du willst, dann ist doch alles klar. Und wie paefchen schon sagte, routes sind Wegweiser. Und wenn der Rechner keinen Wegweiser fuer ein Ziel hat, dann weiss er nicht, wie er da hinkommt. Also ist es wichtig dem dummen Rechner diese Wegweiser zu zeigen/geben. Entweder ueberlegst du dir jetzt Schritt fuer Schritt, was dein Rechner braucht, um so zu funktionieren, wie du willst oder du postest deine Routingtabelle und wir zeigen dir, wo welcher Weg nicht gefunden wird.

Guten Abend :)
 
Zurück
Oben