Jail auf eigener partition

Fluxkompensator

Active Member
Axel S. Gruner schreibt in seinem Howto:

Ist ausreichend Plattenplatz vorhanden
Eine vollinstallierte Jail braucht in etwa 140 MB Plattenplatz.


nummer1# du -sh /jail/ssh/
142M /jail/ssh/

Wobei überflüssiges im nachhinein gelöscht werden kann, was auch den bevorzugten Weg darstellen sollte, da es besser ist so lange Dateien zu löschen bis die Jail nicht mehr funktioniert, als diese minimalistisch zu installieren und sich dann zu wundern das diese nicht startett. Die Frage nach einer eigenen Partition lässt sich einfach beantworten, es kommt darauf an. Eine eigene Partition hat den Vorteil, das das Hostsystem nicht durch eine immer weiteranwachsende Jail (Userdaten, logs,...) beeinträchtigt wird. Es hat auch gleichzeitig den Nachteil, das die Vorgaben sehr starr sind, und sich eine Vergrösserung des Plattenplatzes als schwierig erweisen könnte. Partitionen sind oft zu gross und mit noch grösserer Wahrscheinlichkeit zu klein gewählt. Ein kleiner webserver braucht meist nicht soviel Platz wie eine Datenbank in einer Jail, oder ein FTP-Server der allerhand zum download anbieten möchte. Sollte keine eigene Partition für die Jail(s) zur Verfügung stehen, oder Sie haben als Webhoster verschiedene Angebote mit variablen Plattenplatz, so würde es sich anbieten ein quota für die Jail(s) einzurichten. Es ist aber nur über Umwege möglich Quotas für eine Jail festzulegen. Die bessere Alternative wäre es den Jails eine eigene Partition zuzuteilen sich bei der Planung Zeit zu lassen und die Partition gross genug zu wählen:

nummer1# mount
/dev/ad0s1a on / (ufs, local)

devfs on /dev (devfs, local)

/dev/ad0s1f on /jail (ufs, NFS exported, local, soft-updates)

[...]

Und die Grösse der Partition kann ich mit df -m schnell ersehen

nummer1# df -m
Filesystem 1M-blocks Used Avail Capacity Mounted on

/dev/ad0s1a 503 65 398 14% /

devfs 0 0 0 100% /dev

/dev/ad0s1f 19683 7696 10411 43% /jail

[...]


Ist damit gemeint ich kann bereits während der Installation von FreeBSD ein slice für /jail vorsehen, so wie für /home oder /usr?

Was meint er damit:

nummer1# mount /dev/ad0s1a on / (ufs, local)

nummer1# devfs on /dev (devfs, local)

nummer1# /dev/ad0s1f on /jail (ufs, NFS exported, local, soft-updates)

Da wurde ein slice /jail angelegt und das später konfiguriert - grob gesagt?

Wenn ich einem jail Anwendungen installieren will, wie z. B. MySQL, dann muß ich /usr/ports nach /jail kopieren und dann dort unter /jail/usr/ports/databases/mysql das make usw. aufrufen? Habe ich das so richtig verstanden?

Und weil ich schon dabei bin, ich habe /var mit 512 MB eingerichtet. Mir geht langsam der Plattenspeicher aus. /usr hat aber noch jede Menge. Wie kann ich /var 100 MB von /usr abgeben?

Und auch noch dies:

Wenn ich eingebe:

du -sh /home

kommt als Antwort:

4,0K /home

Was heißt 4,0K? kbyte? Ich habe /home bisher noch nicht angerührt und auch keinen user eingerichtet.

Danke für Antwort, Markus.
 
Fluxkompensator schrieb:
Ist damit gemeint ich kann bereits während der Installation von FreeBSD ein slice für /jail vorsehen, so wie für /home oder /usr?

Ja das meine ich damit, und ja, das kannst Du machen. Du kannst aber auch unter /usr Deine Jail installieren. Es bleibt dir überlassen.

Da wurde ein slice /jail angelegt und das später konfiguriert - grob gesagt?

Das anlegen eines slice hat nichts mit der jail zu tun. Ich hätte das Teil auch "hurgelschnurgel" nennen können. Du kannst später auch die jail unter /usr anlegen, in ein Verzeichnis welchem Du einen Namen gibst den Du frei wählen kannst.

Wenn ich einem jail Anwendungen installieren will, wie z. B. MySQL, dann muß ich /usr/ports nach /jail kopieren und dann dort unter /jail/usr/ports/databases/mysql das make usw. aufrufen? Habe ich das so richtig verstanden?

Du kannst in der Jail ein eigenes /usr/ports haben, oder aber mit einem mount_nullfs das von hostsystem da rein hängen.
Wenn Du mysql oder was auch immer, in einer Jail installieren willst, musst Du Dich auf der jail zuerst einloggen, wie auf einem anderen System. Nicht einfach in das Dir der Jail gehen vom hostsystem und dort dann in das ports Dir der jail.
 
noch kurz zur Ergänzung, um der nächsten Frage bei read only mount der Ports vorzubeugen:

wenn ro dann im Hostsystem in der /etc/make.conf noch folgendes setzen:
WRKDIRPREFIX=/tmp
DISTDIR=/tmp/distfiles

da ja sonst weder im Work- noch Dist-Verzeichnis vom Jail User, welcher die Ports bauen möchte, aus geschrieben werden kann. Es sollte natürlich auf dem Mainhost genügend Platz in /tmp frei sein, ist klar.

Gruß Bummibaer

PS: und ja, bei rw mount braucht mer des ned.
 
Wenn laut dem Howto manuell so gemounted wird:

mount -t devfs devfs /jail/www/dev


und später automatisch beim bootup, was soll ich dann in die /etc/fstab eintragen?

devfs /jail/www/dev devfs rw 0 0 ??

Markus
 
Zuletzt bearbeitet:
Wie lange dauert ein

make world DESTDIR=/jail/www

Meine Kiste - ein PII läuft jetzt seit 9 Stunden und macht. Bei der Installation von phpMyAdmin brauchte er 4 Stunden. Bei Debian sind das Minuten!

Muß ich mir sorgen machen?
 
make world?

Ich kenne FreeBSD erst seit 3 Tagen. Das ist mein erstes make world.

Ich habe auf einem anderen Rechner eine CMS aufgesetzt und zusätzlich phpmyadmin installiert um mir die Tipperei bei MySQL zu ersparen. Die phpMyAdmin Installation dauerte knapp 4 Stunden bei einem Pentium II 266mHz. Bei Debian wären das Minuten. Aus den Sourcen vielleicht eine halbe Stunde. Die Installation des Basissystems incl. sourcen selber dauerte nur 2 Stunden.

Das ist entweder merkwürdig oder gewöhnungsbedürftig.

Mein Fehler bei dieser jail ist vielleicht das ich keine make.conf habe!?

Markus
 
die installation ist nicht sehr cpu-lastig, die fp sollte nicht zu langsam sein und bißchen speicher, x11R6 tröpelt nur vom server mit 15kb/s bei phpmyadmin-install und dauert schon 30min zum download, ...ist aber trotzdem lang 4stunden
 
Basis 1 ist dieses http://www.encephalon.de/freebsd/freebsd-jails/index.html Howto.

Basis 2 ist ein frisch installiertes FreeBSD 5.4.

Bis jetzt habe ich eingegeben:

TYPE mkdir –p /jail/www

TYPE cd /usr/src

TYPE make world DESTDIR=/jail/www

TYPE cd /usr/src/etc

TYPE make installworld DESTDIR=/jail/www

Nach dem ich gestern ohne make.conf gearbeitet habe, was 19 Stunden gedauert hat, habe ich heute mit der im Howto genannten make.conf gearbeitet, was nur 4 Stunden dauerte.

Letzteres endete beide Male in folgendem Fehler:

cd /usr/src/etc; install -o root -g wheel -m 644 amd.map apmd.conf auth.conf crontab csh.cshrc csh.login csh.logout devd.conf devfs.conf dhclient.conf disktab fbtab ftpusers gettytab group hosts hosts.allow hosts.equiv hosts.lpd inetd.conf login.access login.conf mac.conf motd netconfig network.subr networks newsyslog.conf pf.conf pf.os phones profile protocols rc rc.bsdextended rc.firewall rc.firewall6 rc.sendmail rc.shutdown rc.subr remote rpc services shells sysctl.conf syslog.conf usbd.conf etc.i386/ttys /usr/src/etc/../gnu/usr.bin/man/manpath/manpath.config /usr/src/etc/../usr.bin/mail/misc/mail.rc /usr/src/etc/../usr.bin/locate/locate/locate.rc /jail/www/etc; cap_mkdb /jail/www/etc/login.conf; install -o root -g wheel -m 755 netstart pccard_ether rc.suspend rc.resume /jail/www/etc; install -o root -g wheel -m 600 master.passwd nsmb.conf opieaccess /jail/www/etc; pwd_mkdb -p -d /jail/www/etc /jail/www/etc/master.passwd
cd /usr/src/etc/bluetooth; make install
install -o root -g wheel -m 600 hcsecd.conf /jail/www/etc/bluetooth/hcsecd.conf
install -o root -g wheel -m 644 hosts /jail/www/etc/bluetooth/hosts
install -o root -g wheel -m 444 protocols /jail/www/etc/bluetooth
cd /usr/src/etc/defaults; make install
install -o root -g wheel -m 444 devfs.rules pccard.conf periodic.conf rc.conf /jail/www/etc/defaults
cd /usr/src/etc/periodic; make install
===> daily
install -o root -g wheel -m 755 100.clean-disks 110.clean-tmps 120.clean-preserve 130.clean-msgs 140.clean-rwho 150.clean-hoststat 200.backup-passwd 210.backup-aliases 300.calendar 310.accounting 330.news 400.status-disks 420.status-network 405.status-ata-raid 430.status-rwho 440.status-mailq 450.status-security 460.status-mail-rejects 470.status-named 500.queuerun 999.local /jail/www/etc/periodic/daily
===> security
install -o root -g wheel -m 755 100.chksetuid 200.chkmounts 300.chkuid0 400.passwdless 500.ipfwdenied 510.ipfdenied 520.pfdenied 550.ipfwlimit 600.ip6fwdenied 650.ip6fwlimit 700.kernelmsg 800.loginfail 900.tcpwrap security.functions /jail/www/etc/periodic/security
===> weekly
install -o root -g wheel -m 755 120.clean-kvmdb 310.locate 320.whatis 330.catman 340.noid 400.status-pkg 999.local /jail/www/etc/periodic/weekly
===> monthly
install -o root -g wheel -m 755 200.accounting 999.local /jail/www/etc/periodic/monthly
cd /usr/src/etc/rc.d; make install
install -o root -g wheel -m 555 DAEMON LOGIN NETWORKING SERVERS abi accounting addswap adjkerntz amd apm apmd archdep atm1 atm2 atm3 bgfsck bootparams ccd cleanvar cleartmp cron devd devfs dhclient dmesg dumpon early.sh fsck gbde gbde_swap hostname ike inetd initdiskless initrandom ip6addrctl ip6fw ipfilter ipfs ipfw ipmon ipnat ipsec ipxrouted isdnd jail kadmind kerberos keyserv kldxref kpasswdd ldconfig local localpkg lpd mixer motd mountcritlocal mountcritremote mountd moused mroute6d mrouted msgs named natd netif netoptions network_ipv6 nfsclient nfsd nfslocking nfsserver nisdomain nsswitch ntpd ntpdate othermta pccard pcvt pf pflog preseedrandom power_profile ppp-user pppoed pwcheck quota random rarpd rcconf.sh resolv root route6d routed routing rpcbind rtadvd rwho savecore securelevel sendmail serial sppp sshd swap1 syscons sysctl syslogd timed tmp ugidfw usbd var vinum virecover watchdogd ypbind yppasswdd ypserv ypset ypupdated ypxfrd /jail/www/etc/rc.d
cd /usr/src/etc/../gnu/usr.bin/send-pr; make etc-gnats-freefall
install -o root -g wheel -m 0644 /usr/src/gnu/usr.bin/send-pr/categories /jail/www/etc/gnats/freefall
cd /usr/src/etc/../share/termcap; make etc-termcap
ln -fs /usr/share/misc/termcap /jail/www/etc/termcap
cd /usr/src/etc/../usr.sbin/rmt; make etc-rmt
rm -f /jail/www/etc/rmt
ln -s /usr/sbin/rmt /jail/www/etc/rmt
cd /usr/src/etc/pam.d; make install
install -o root -g wheel -m 444 README /jail/www/etc/pam.d/README
install -o root -g wheel -m 644 ftpd gdm imap kde login other passwd pop3 rexecd rsh sshd su system telnetd xdm /jail/www/etc/pam.d
/jail/www/etc/pam.d/ftp -> /jail/www/etc/pam.d/ftpd
cd /usr/src/etc; install -o root -g wheel -m 644 /jail/www/etc/ssh
*** Error code 64

Stop in /usr/src/etc.

Was soll das bedeuten?

Markus
 
wat make world jibs noch? ne das is falsch

das howto von http://www.encephalon.de/freebsd/fre...ils/index.html is wirklich hervorragend


mach einfach

cd /usr/src

make buildworld
make installworld DESTDIR=/jail/irgendwas
cd /usr/src/etc
make distribution DESTDIR=/jail/irgendwas

auf dem wirt traegst du dann in die rc.conf ein:

ifconfig_DEINDEVICE="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
ifconfig_DEINDEVICE_alias0="inet xxx.xxx.xxx.xxx netmask 255.255.255.255"
defaultrouter="xxx.xxx.xxx.xxx"
jail_enable="YES"
jail_list="deinejail"
jail_deinejail_rootdir="/jail/mailsystem"
jail_deinejail_hostname="mailsystem.teccon-berlin"
jail_deinejail_ip="xxx.xxx.xxx.xxx"
jail_deinejail_exec="/bin/sh /etc/rc"
jail_deinejail_devfs_enable="YES"


deinejail, DEINDEVICE, xxx.xxx.xxx.xxx sind natuerlich mit deinen werten zu ersetzen
 
Danke für die Antwort freddy, aber ich komme immer nur bis zum error 64.

Ich habe es auch mit

cd /usr/src/ && make buildworld && make installworld DESTDOR=/jail/www
cd/ /usr/src/etc && make distribution DESTDIR=/jail/www

versucht und einer Neuinstallation. Endet alles bei error code 64. Googeln brachte bislang auch nichts.

Markus
 
Guten Morgen,

so, habs geschafft. Problem war die make.conf. Das Grunersche Howto sagt, man kann die im Howto benannte make.conf übernehmen. Als Newbie habe ich das gemacht. Das war quatsch!

Markus
 
Zurück
Oben