2 fragen zu jails

wysiib

Well-Known Member
ich versuche mich hier grade in die jails einzuarbeiten..... hab da 2 fragen:

1) auf welchem device mit welcher ip und netmask sind die jails nach aussen vollkommen unsichtbar? ich verwende momentan ein alias auf dem lo0 device. ich kann zwar nicht pingen, aber ich bekommen eine meldung von der host-ip zurück. ich möchte aber das diese ips nach aussen nicht zu erkennen und nicht vorhanden sind.
brauch ich dann etwas anderes als alias? oder auf einem anderen device?

2) ich nutze portupgrade. kann ich irgendwie wenn ich einen port installieren angeben, das dieser in das jail installiert werden soll? sonst bräuchte ich ja in jedem jail wieder portupgrade und so. wäre übersichtlicher das zentral machen zu können. und wenn das geht, wie lege ich das bei bestimmten ports dauerhaft fest?


danke schonmal für die hilfe
 
(1) Was meinst Du?

(2) Du kannst mit "mount_nullfs /usr/ports /meine/jail/usr/ports" die Ports in die Jail mounten und dann _in_ der Jail die Ports bauen.
 
asg schrieb:
(1) Was meinst Du?

(2) Du kannst mit "mount_nullfs /usr/ports /meine/jail/usr/ports" die Ports in die Jail mounten und dann _in_ der Jail die Ports bauen.

so erstmal zu (2): ich habe die per nfs-loopback gemountet. das geht auch ganz gut. ist nur etwas umständlich. gibt es keine möglichkeit bei der install eines ports + seinen abhängigkeiten das prefix zu andern (also von /usr/local auf den pfad des jails)

zu (1): für ein jail muss man ja vorher ein alias auf einer der netzwerkdevices anlegen. da das ganze ein dedizierter server in einem rz werden soll, hab ich aber nur eine ip. ausserdem darf der server auch von aussen nur über diese eine ip erreichbar sein. bisher hab ich das nur hinbekommen das die ips die ich den jails geben dann auch von aussen erreichbar sind. ich möchte aber interne ips die ich dann per nat von aussen versorge. wie kann ich das erreichen?
 
(1) In dem Du beispielsweise NATD nimmst und die Ports auf die interne IP der jail weiterleitest. Ich habe das hier seit Jahren so im Einsatz:
Code:
redirect_port tcp 192.168.0.200:80 80
redirect_port udp 192.168.0.200:80 80
Das würde dann alles was auf port 80 reinkommt auf die IP der Jail und port 80 weiterleiten.

(2) Du kannst einen anderen Prefix angeben, habe diese aber noch nie probiert. Zumal Du dann dennoch in der jail den Prozess starten musst, also über rc.d skript,... . Ich sehe darin keinen wirklichen Vorteil da Du dann auch Deine pkg DB nur auf dem Hostsystem hast und Dir immer überlegen musst was wo installiert ist. Evtl. willst Du ja zwei Programme in einer Jail und dem Hostsystem haben oder in 2 Jails...
Es wäre einfacher, und auch der "gute" Weg, die Jail als ein eigenes system zu betrachten (was sie ja auch ist) und die software in dieser für diese zu installieren. Das grenzt das alles schön ab und Du kommsrt nicht durcheinander. Ich sehe nur Vorteile und keine Nachteile bei dieser Methode, hingegen sehe ich bei Deinem gedankengang keine Vorteile.

Evtl. bringt Dir mein Jail kapitel etwas: www.encephalon.de/jails.pdf
 
Hi

Ich hab mich jetzt auch ein Weilchen mit Jails beschäftigt, habe aber auch noch ein paar Problemchen. Jails sollen es ja ermöglichen, auf einer Maschine mehrere root-server installieren zu können. So sollte es ja auch möglich sein, einen Dienst (z.B. http) in mehreren Jails gleichzeitg laufen zu lassen.
Soweit sogut, das hab ich auch gerafft wie das geht,. Aber irgendwie muss ich den anfragen von Aussen doch beibringen, in welcher Jail der Dienst läuft, den sie benötigen. wenn der Webserver für www.domain1.de z.B. in der Jail1 läuft und der Webserver www.domain2.de in der Jail2, dann kann ich den port 80 doch irgendwie nicht redirecten, oder kann man einen port von außen (in diesem Fall 80) auf mehrere interne interfaces forwarden??
Oder muss ich in diesem Fall einen DNS im Hostsystem laufen lassen, und dem internen DNS dann die ensprechenden Jails eintragen??
Irgendwie kann ich mir die ganze Sachen nicht erklären, bzw. ich komme immer auf den Schluss, dass ich soviele öffentliche IPs brauche, wie ich gleiche Dienste in unterschiedlichen Jails laufen lasse.... ;'(
 
Zuletzt bearbeitet:
asg schrieb:
(1) In dem Du beispielsweise NATD nimmst und die Ports auf die interne IP der jail weiterleitest. Ich habe das hier seit Jahren so im Einsatz:
Code:
redirect_port tcp 192.168.0.200:80 80
redirect_port udp 192.168.0.200:80 80

ok so weit hab ich das. du verwendest hier 192.168.0.200 als ip der jail. so wäre es ja möglich die jail auch direkt per ip adresse anzusprechen, ohne den umweg über den hostcomputer oder?

genau das will ich vermeiden! wie geht das?

ich denke dazu muss ich einen bestimmten ip bereich + bestimmtes subnet auf einem bestimmten device nehmen.... nur welches?
 
@martin
Sowas: http://ezine.daemonnews.org/200202/multiweb.html ?

@wysiib
Du kannst damit die Jail aus dem internen Netz 192.168.0 ansprechen, ja. So muss/soll es ja auch sein, da die Jail ein eigenes System ist. Sehe diese als einen weiteren Rechner/Server/Computer, der muss auch ansprechbar sein.
Du kannst mit einer FW alle Zugriffe auf die IP verbieten, und nur bsp. Port 80 durchlassen.
Ich verstehe noch nicht wirklich Dein Ziel welches Du verfolgst, könntest Du das mal genauer erläutern?
 
@asg
genau das hab ich gesucht.. ich werd mir den Happen mal durchlesen und wenn ich noch Fragen habe, melde ich mich...

Dank dir
 
asg schrieb:
Ich verstehe noch nicht wirklich Dein Ziel welches Du verfolgst, könntest Du das mal genauer erläutern?


also es handelt sich bei dem pc um einen dedizierten server der in ein rechenzentrum soll. dementsprechend darf er natürlich nur auf einer ip (nämlich der zugewiesenen öffentlichen) erreichbar sein.
die jails dürfen dann nur vom hostsystem erreichbar sein. oder seh ich das irgendwie falsch? weil ich ja nur diese eine ip zur verfügung hab.

kann ich das hostsystem auf 80.x.x.x laufen lassen und die jails auf 192.186.0.xx?

ich blicks selber irgendwie noch nicht so richtig. es geht mir halt nur darum das ich nur diese eine ip zur verfügung hab und keine anderen belegen darf
 
Ahso, einfach kompliziert erfragt ;-)
Du hast www.encephalon.de/jails.pdf gelesen?
Die 192.168.0 Adressen sind nicht routbare Adresse im weiten Netz dort draussen. Sind daher auch nicht von aussen erreichbar, sondern nur vom Hostsystem, bzw. Rechnern die im gleichen internen Netz hängen.
Da die jails aber von aussen erreichbar sein müssen, sonst macht es keinen Sinn dort einen httpd, smtpd, oder sonstigen Server zu betreiben, werden die entsprechenden Ports beispielsweise via NATD einfach auf die interne IP der Jail weitergeleitet. Wie schon hier in der redirect Regel angegeben.
 
asg schrieb:
Ahso, einfach kompliziert erfragt ;-)
Du hast www.encephalon.de/jails.pdf gelesen?
Die 192.168.0 Adressen sind nicht routbare Adresse im weiten Netz dort draussen. Sind daher auch nicht von aussen erreichbar, sondern nur vom Hostsystem, bzw. Rechnern die im gleichen internen Netz hängen.
Da die jails aber von aussen erreichbar sein müssen, sonst macht es keinen Sinn dort einen httpd, smtpd, oder sonstigen Server zu betreiben, werden die entsprechenden Ports beispielsweise via NATD einfach auf die interne IP der Jail weitergeleitet. Wie schon hier in der redirect Regel angegeben.

ah ich glaube langsam wird mir das klar =)

eins aber noch: wenn jetzt im rechenzentrum ein anderer freebsd server, der im selben ip bereich liegt wie meine öffentliche ip auch jails verwendet und dabei durch zufall die selben ips wie ich... können die sich dann nicht ins gehege kommen?
 
Hm, da habe ich auch nochmal eine Frage. Ich möchte 2 jails installieren (apache u. postfix). Ich gehe zu Hause über Modem ins Inet. @home habe ich noch eine netzwerkadresse über die ich mit meinem Bruder kommuniziere. Wenn ich jetzt ssh auf eine Ip fessele, lässt sich z.B. mein Rechner nicht mehr über Inet erreichen, da dynamische ip. Kann man da was tun?

Bjoern
 
asg schrieb:
(1) In dem Du beispielsweise NATD nimmst und die Ports auf die interne IP der jail weiterleitest. Ich habe das hier seit Jahren so im Einsatz:
Code:
redirect_port tcp 192.168.0.200:80 80
redirect_port udp 192.168.0.200:80 80


Aus jail.pdf:

"Wie NAT genau funktioniert und was Sie hierbei beachten m ssen lesen Sie in
Kapitel XXX."

Würde mich interessieren, was dazu noch notwendig ist. Wie wird natd gestartet? Ist ipfw notwendig (divert-regel?)?



Edit: in dem hier verlinkten Text [ http://ezine.daemonnews.org/200202/multiweb.html ] ist das glaub gut beschrieben.... werd ich danach ausprobieren.
 
Zuletzt bearbeitet:
rakso schrieb:
Würde mich interessieren, was dazu noch notwendig ist. Wie wird natd gestartet? Ist ipfw notwendig (divert-regel?)?
Edit: in dem hier verlinkten Text [ http://ezine.daemonnews.org/200202/multiweb.html ] ist das glaub gut beschrieben.... werd ich danach ausprobieren.

Aus der manpage zu natd(8):
Code:
DESCRIPTION
     The natd utility provides a Network Address Translation facility for use
     with divert(4) sockets under FreeBSD.

     (If you need NAT on a PPP link, ppp(8) provides the -nat option that
     gives most of the natd functionality, and uses the same libalias(3)
     library.)

     The natd utility normally runs in the background as a daemon.  It is
     passed raw IP packets as they travel into and out of the machine, and
     will possibly change these before re-injecting them back into the IP
     packet stream.
 
Zurück
Oben