FreeBSD 5 + Jails auf einer Netzwerkkarte

narozk

Well-Known Member
hallo,

ich habe einen server in einem RZ stehen, auf dem fbsd 5 läuft. ich möchte auf diesem server mehrere jails einrichten. das prob. ist, dass man normalerweise jails auf eine 2. netzwerkkarte legt, die man dann mit internen IPs (aliases) z.b. 192.168.0.x bestückt. ich muss mit einer Netzwerkkarte und somit mit einer IP (217.160.x.x) zurechtkommen.

meine frage:

vergebe ich meinen jails trotzdem interne IPs also:
ifconfig xl0 inet alias 192.168.0.1 netmask 0xffffffff ??

wenn ja, wie bringe ich dem sshd im jail bei, dass er auf logins aus dem internet reagieren soll. muss ich in der sshd_conf des jails den "ListenAddress" wert auf 192.168.0.1 setzen?

da der hosts ansich auf alle ssh anfragen reagiert (217.160.x.x), müsste ich nach meinem verständnis die ssh-logins, die für die jails gedacht sind auf deren internen IPs umleiten. die ip 217.160.x.x erreiche ich über mehrere namen: domain1.de, domain2.de.... ich stelle mir dass so vor, dass ein ssh-login auf domain1.de auf den host ansich zielt (217.160.x.x) und ein ssh-login auf domain2.de auf die interne jail-ip (192.168.0.1) - eben durch ein routing. liege ich mit der theorie völlig falsch??? wenn nicht, wie nehme ich das routing vor? komme ich ohne eine firewall aus?

welche einträge benötige ich in /etc/hosts und jail/192.168.0.1/etc/hosts?

aus den folgenden quellen konnte ich bisher diese fragen nicht selbst beantworten:

http://www.bsdpro.com/info.php?cat=security&fileid=00014#article
http://docs.freebsd.org/44doc/papers/jail/jail.html
http://su2.info/uni/systemdienste/bsd_jails/
http://memberwebs.com/nielsen/freebsd/jails/
http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/jail.html
http://www.gsyc.inf.uc3m.es/~assman/jail/index.html
http://www.hsc.fr/ressources/breves/jail.html


ich hoffe mir kann hier einer weiterhelfen.
danke.
 
Die Antworten zu diesen Fragen ...

Die Antworten zu diesen Fragen ...
würden mir auch weiterhelfen !

Ich habe auch gesucht und ähnliche Links
gefunden - nur "warum" es funktioniert
und das mit einer Karte interesseirt mich auch.

Da muss ein NAT im Spiel sein ....

Grüsse
Stefan
 
hmm mittlerweile bin ich etwas weiter:

jails laufen wunderbar auf der host-netzwerkkarte - als alias eben. ifconfig_vr0_alias0="inet 192.168.0.1 netmask 0xffffffff"

derzeit bin ich dabei mit nat den jails beizubringen, wie sie ins internet kommen. das dürfte nicht so schwer sein, das eigentliche problem ist, wie ich einem ssh connect aus dem internet beibringe, auf welche interne jail-IP (192.168.0.1, 192.168.0.2, etc.) er connecten soll. wie gesagt der host hat nur eine öffentliche IP 217.160.x.x aber mehrere zugewiesene domainnamen: domain1.de, domain2.de, domain3.de. wenn ich ssh einuser@domain2.de mache landet die anfrage natürlich beim host, weil ein beliebiger dns die IP 217.160.x.x für domain2.de aufgelöst hat. die anfrage an domain2.de soll aber eigentlich auf die interne IP des hosts 192.168.0.1 weitergeleitet werden, weil jail1=domain2.de=192.168.0.1....

ich werde als nächstes versuchen mit www.delegate.org etwas zu erreichen.

bin für jede idee/hinweis dankbar
 

Sie wollen ne Anleitung von Dir (weil Du dich ma am besten damit auszukennen scheinst hier im Board):D

Aber die Suche im Board selber ergibt schon Weiterführendes:
http://www.bsdforen.de/forums/showthread.php?s=&threadid=5&highlight=Jail
http://www.bsdforen.de/forums/showthread.php?s=&threadid=33&highlight=Jail
http://www.bsdforen.de/forums/showthread.php?s=&threadid=230&highlight=Jail

Kurzum, eine kleine Anleitung, wie man die entsprechenden Ports forwarded zu den entsprechenden Jails.
 
dass man normalerweise jails auf eine 2. netzwerkkarte legt, die man dann mit internen IPs (aliases) z.b. 192.168.0.x bestückt. ich muss mit einer Netzwerkkarte und somit mit einer IP (217.160.x.x) zurechtkommen.
meine frage:
vergebe ich meinen jails trotzdem interne IPs also:
ifconfig xl0 inet alias 192.168.0.1 netmask 0xffffffff ??

Was hindert Dich daran Deiner NIC einmal die IP 192.168.0.254 zu geben, als GW. Und dann die Jails 192.168.0.200/201/202 oder dergleichen?

wenn ja, wie bringe ich dem sshd im jail bei, dass er auf logins aus dem internet reagieren soll. muss ich in der sshd_conf des jails den "ListenAddress" wert auf 192.168.0.1 setzen?

Indem Du den port 22 auf die IP der Adresse legst. Wenn Du ipfw als FW verwendest, dann nimmst Du dazu die natd.conf:

redirect_port tcp 192.168.0.202:22 22

Dann musst Du dem sshd vom Hostsystem der jails aber noch mitteilen nicht auf port 22 für ssh zu lauschen, sondern auf einem anderen:

/etc/rc.conf:
sshd_flags="-p 1022"

Oder Du machst das in der /etc/ssh/sshd_config, was Dir lieber ist.

da der hosts ansich auf alle ssh anfragen reagiert (217.160.x.x), müsste ich nach meinem verständnis die ssh-logins, die für die jails gedacht sind auf deren internen IPs umleiten.

Exakt, siehe oben.
 
Original geschrieben von narozk
hmm na ja, damit geht dann jede anfrage in das eine jail, ich will aber mehrere jails laufen lassen.

Na dann configuriere den ssh auf den anderen jails so, das diese auf andere ports hören:

2022
2023
2024

und mach einen redirect vom host system auf diese ports der jails.
Das Hostsystem sollte auf diesen ports aber keinen daemon lauschen haben.
 
[QUOTE
jails laufen wunderbar auf der host-netzwerkkarte - als alias eben. ifconfig_vr0_alias0="inet 192.168.0.1 netmask 0xffffffff"
[/QUOTE]

So soll es auch sein.
Mein output meiner jails:

inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::201:2ff:fe16:e138%xl0 prefixlen 64 scopeid 0x2
inet 192.168.0.200 netmask 0xffffffff broadcast 192.168.0.200
inet 192.168.0.201 netmask 0xffffffff broadcast 192.168.0.201
inet 192.168.0.202 netmask 0xffffffff broadcast 192.168.0.202
inet 192.168.0.203 netmask 0xffffffff broadcast 192.168.0.203
 
Kann natd nicht auch Adressen redirecten? Musst Du mal die manpage lesen, dann wäre Dein Problem ja gelöst.
Ansonsten kann es vielleicht /usr/ports/net/rinetd.
Schau es Dir mal an...
 
Original geschrieben von narozk
das würde aber immer noch bedeuten, dass ich die jails übers internet nicht mit ssh user@domain2.de (jail 2 ist z.b. domain2.de) ansprechen kann?

Hmm, warum nicht:

ssh -l $user domain2.de -p 2022

Ist doch das gleiche wie:

ssh -l $user 217.124.xx.xxx -p 1022

Es wird eben auf die interne jail umgeleitet mittels der port nummer.

Schau Dir das mal an:
http://www.daemonnews.org/200202/multiweb.html
 
Original geschrieben von narozk
hm ja, mit der portnummer wäre das problem behoben - die frage ist, ob es nicht auch ohne geht

Schau Dir mal den link an den ich gepostet habe. Evtl. ist das was für Dich.
Ansonsten würde es gehen wenn natd auch mit namen ungehen könnte anstatt nur mit IPs. Evtl. kann das "rinetd", wie ich schon gepostet hatte.
 
narozk schrieb:
das würde aber immer noch bedeuten, dass ich die jails übers internet nicht mit ssh user@domain2.de (jail 2 ist z.b. domain2.de) ansprechen kann?

Doch, gib doch einfach jeder Jail eine öffentliche IP Adresse, der domain für die jail eben nur diese eine zuweisen per nameserver.

Bingo: die Auflösung der domain1.tld führt zur IP Adresse .100 und dort lauscht nur ein sshd (der 1. Jail), wobei hingegen die Auflösung der domain2.tld z.B. zur Ip Adresse .200 führt und dort der andere (der 2. Jail) lauscht.

Um das nochmals deutlich zu sagen, man benötigt wenn alle SSH Daemons auf Port 22 lauschen und extern erreichbar sein sollen (über die jedweilige Domain) [davon ausgegangen, dass jeder Jail eine Domain hat] pro Jail eine feste öffentliche IP Adresse nebst den notwendigen Nameserver Einträgen.

Gruß Bummibaer
 
Zuletzt bearbeitet:
Ich kann mir nicht vorstellen, dass man natd für Namen verwenden kann. Die Namesinformation steht ja im Paket selbst. Somit müsste das ssh-Paket vom natd entschlüsselt werden können, bevor es redirected werden kann,oder?!
Die Problematik kommt mir irgendwie bekannt vor (Apache + https + Zertificat).
Kann aber auch sein, dass ich mich täusche.

Gruß,

Ice
 
Zurück
Oben