3988
Kommentar: converted to 1.6 markup
|
← Revision 4 vom 2023-08-19 18:15:43 ⇥
0
Veraltet
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
== 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 |