3988
Kommentar: + deutscher howto link
|
3988
converted to 1.6 markup
|
Es wurden keine Änderungen gefunden! |
UML
allgemein
- user mode linux ist im wesentlichen ein kernel patch fuer das linux, das als prozess laufen soll (das dann in der doku UML heisst).
die UMLs koennen von Usern gestartet werden -> nette Privilege seperation!
- das Ganze kostet Performance, es gibt aber einen patch (skas) fuers host system, der auf jeden Fall eingespielt werden sollte, weil er auch dolle Sicherheitsfeatures hat, die das jail sichern.
- apt-get install kernel-patch-skas
- es gibt schoene Doku auf der Homepage und so: apt-get install user-mode-linux-doc
nett in deutsch: http://www.mathematik.uni-marburg.de/~odb/usermodelinux-howto.html
policy fuer sao2
- Tun/Tap einrichten, z.B. mit 192.168.5.n fuer die Host-Enden des tun devices und 192.168.4.n fuer die UMLs. Konventionsvorschlag: n ist an beiden Enden des tun devices gleich.
- was ein paar Freaks gemacht haben:
The host firewall accepts no syn packets at all on its external IP address. All syn packets must be directed to the UML kernel IP address to be accepted.
mehr spannende details von deren setup unter /usr/share/doc/user-mode-linux-doc/html/case-studies.html auf deiner Kiste ;>
- jedes uml kriegt nen eigenen user, alle in einer Gruppe?
wie geht was bestimmtes genau:
- image besorgen:
- vorcompiliert: apt-get install user-mode-linux (sollte eigentlich reichen)
- sourcen (: besser erstmal apt-get install user-mode-linux-doc, dann: dillo /usr/share/doc/user-mode-linux-doc/html/compile.html)
da steht: kernelsourcen ziehn, passenden patch von http://sourceforge.net/project/showfiles.php?group_id=429 besorgen
- mkdir /usr/src/uml
- cd /usr/src/uml
- tar -xzvf linux-2.4.0-prerelease.tar.bz2
- cd /usr/src/uml/linux
- cat uml-patch-2.4.0-prerelease.bz2 | bunzip2 - | patch -p1
- make menuconfig ARCH=um
- devfs anlassen, oder folgendes im fs machen: for i in 0 1 2 3 4 5 6 7; do mknod ubd$i b 98 $i; done
- dann auch /etc/fstab und /etc/inittab anpassen
- make linux ARCH=um
- make modules ARCH=um
- mount root_fs mnt -o loop
make modules_install INSTALL_MOD_PATH=pwd/mnt ARCH=um
- umount mnt
- netz einrichten:
aufm host als root tunctl -u <uid> tippen, wobei uid die UserID oder der Name des users ist, der das uml starten wird. Das tool sagt, welches tap device eingerichtet wurde (ab jetzt $TAP).
- aufm host ist(am besten als Boot-UML-Script):
- ifconfig $TAP $HOST_IPADDRESS up
echo 1 > /proc/sys/net/ipv4/ip_forward
- route add -host $UML_IPADDRESS dev $TAP
echo 1 > /proc/sys/net/ipv4/conf/$TAP/proxy_arp
- arp -Ds $UML_IPADDRESS eth0 pub
- host: chmod 666 /dev/net/tun (wenn wir den usern trauen, ansonsten debians uml-net Gruppe)
- UML mit folgender commandline starten: eth0=tuntap,$TAP
- im UML /etc/network/interfaces:
- auto eth0
- iface eth0 inet static
- address 192.168.4.1
- netmask 255.255.0.0
- network 192.168.0.0
- gateway 192.168.5.1 #uml host
TODO aus irgendeinem abgefahrenen Grund kommt das UML-eth0-device nachm down nicht mehr up.. -> nicht downen hehe
- damit die lokalen clients die Kiste sehen, muessen sie netmask 192.168.0.0 haben.
- laufenden uml-kernel als root killen (wenns nur einer ist):
kill ps -e | grep linux| head -1| cut -d " " -f 2 && rm -r ~/.uml/*
FAQ
- Q: Kernel panic: outer trampoline didn't exit with SIGKILL
- A: UML Kernel ist zu alt fuer den Host. Neueren nehmen.
- Q: Ich hab das test-rootfs von deren Seite gezogen, und beim booten hoerts nach cron auf/ hat schon vorher kernel panic
- A: /etc/fstab Zeile auf /dev/ubd0 aendern, in /etc/inittab 4 Zeilen auf folgendes veraendern:
- 0:2345:respawn:/sbin/getty 38400 tty1
- #1:2345:respawn:/sbin/getty 38400 tty2
- #2:2345:respawn:/sbin/getty 38400 tty3
- c:2345:respawn:/sbin/getty 38400 ttyS0
- A: /etc/fstab Zeile auf /dev/ubd0 aendern, in /etc/inittab 4 Zeilen auf folgendes veraendern: