Initial commit
This commit is contained in:
commit
ee1d292475
159 changed files with 4867 additions and 0 deletions
360
static/talks/chroot.html
Normal file
360
static/talks/chroot.html
Normal file
|
@ -0,0 +1,360 @@
|
|||
<html>
|
||||
<hr>
|
||||
<font size="+2"></font><div align="CENTER">
|
||||
<font size="+2"><br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
Changeroot Umgebungen an den Beispielen Apache und BIND<br>
|
||||
<br>
|
||||
</font><font size="-1"><br>
|
||||
Norbert Tretkowski<br>
|
||||
Debian Entwickler<br>
|
||||
tretkowski@bzimage.de<br>
|
||||
</font></div>
|
||||
<br>
|
||||
(page 1)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Was ist chroot?<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Ein Betriebssystemaufruf
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Ein Programm
|
||||
</ul>
|
||||
<br>
|
||||
(page 2)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Was macht chroot? (1)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Einschließen von Programmen in ein Verzeichnis
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Ein eingesperrter Prozess kann nur noch unterhalb dieses Verzeichnises Unheil treiben
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Dieses Verzeichnis muß aber alle vom Prozess benötigten Dateien, Pipes und Unix-Domain Sockets enthalten
|
||||
</ul>
|
||||
<br>
|
||||
(page 3)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Was macht chroot? (2)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Der Systemcall chroot() wird von einigen Programmen (z.B. Postfix) schon von Haus aus verwendet
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Programme die diese Funktionalität von sich aus nicht haben können auch in einer abgeschlossenen Umgebung laufen
|
||||
</ul>
|
||||
<br>
|
||||
(page 4)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: Installation<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Benötigte Software: BIND
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Installation der Software wie in der jeweils beiliegenden Dokumentation beschrieben
|
||||
</ul>
|
||||
<br>
|
||||
(page 5)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: Erstellen statischer Binaries<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>In der Zeile 'CDEBUG= -O2 -g' in src/port/linux/Makefile.set ein '-static' hinzufügen
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Aufruf von 'make clean && make'
|
||||
</ul>
|
||||
<br>
|
||||
(page 6)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: Erstellen eines Verzeichnisses<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Möglichkeit /chroot/bind
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Die Verzeichnisstruktur darunter:
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>/chroot/bind/dev
|
||||
<li>/chroot/bind/etc/bind
|
||||
<li>/chroot/bind/usr/sbin
|
||||
<li>/chroot/bind/var/run
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 7)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: Füllen der Verzeichnisse (1)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/chroot/bind/etc
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>named.conf
|
||||
<li>localtime
|
||||
<li>group (nur ein Eintrag für GID named)
|
||||
<li>passwd (ein Eintrag für UID named)
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/chroot/bind/etc/bind
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>Zonenfiles für BIND
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 8)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: Füllen der Verzeichnisse (2)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/chroot/bind/dev
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>mknod -m 666 /chroot/bind/dev/null c 1 3
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/chroot/bind/usr/local/bin
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>Statisch gelinkte `named` und `named-xfer` Binaries hinein kopieren
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 9)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: User und Gruppe hinzufügen<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>User 'named' in /chroot/bind/etc/passwd
|
||||
<br>
|
||||
<li>Gruppe 'named' in /chroot/bind/etc/group
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Verzeichnis /chroot/bind/var/run für User 'named' beschreibbar machen
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Besitzer der Dateien unter /chroot/bind/etc/bind: named.named
|
||||
</ul>
|
||||
<br>
|
||||
(page 10)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel BIND: Init Scripte<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>BIND:
|
||||
</ul>
|
||||
/chroot/named/usr/local/sbin/named \ <br>
|
||||
-u named -g named -t /chroot/named<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>syslogd:
|
||||
</ul>
|
||||
syslogd -m 0 -a /chroot/named/dev/log<br>
|
||||
<br>
|
||||
(page 11)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel Apache: Erstellen der Verzeichnisse<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Moeglichkeit /chroot/apache
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Verzeichnisse darunter:
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>/chroot/apache/dev
|
||||
<li>/chroot/apache/lib
|
||||
<li>/chroot/apache/etc
|
||||
<li>/chroot/apache/bin
|
||||
<li>/chroot/apache/usr/local
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 12)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel Apache: Verzeichnisse fuellen (1)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/chroot/apache/dev
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>mknod -m 666 /chroot/apache/dev/null c 1 3
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 13)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel Apache: Verzeichnisse fuellen (2)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/chroot/apache/etc
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>cp /etc/passwd /chroot/apache/etc
|
||||
<li>cp /etc/shadow /chroot/apache/etc
|
||||
<li>cp /etc/group /chroot/apache/etc
|
||||
<li>cp /etc/resolv.conf /chroot/apache/etc
|
||||
<li>cp /etc/hosts /chroot/apache/etc
|
||||
<li>cp /etc/localtime /chroot/apache/etc
|
||||
<li>cp /etc/ld.so.* /chroot/apache/etc
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 14)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel Apache: Verzeichnisse fuellen (3)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/lib
|
||||
<ul>
|
||||
<li>cp /lib/libm.* /chroot/apache/lib/
|
||||
<li>cp /lib/libgdbm.* /chroot/apache/lib
|
||||
<li>cp /lib/libdb.* /chroot/apache/lib
|
||||
<li>cp /lib/libdl.* /chroot/apache/lib
|
||||
<li>cp /lib/libc.* /chroot/apache/lib
|
||||
<li>cp /lib/libnss* /chroot/apache/lib
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 15)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel Apache: Verzeichnisse fuellen (4)<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>/usr/local
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<ul>
|
||||
<li>cp -rp /usr/local/apache/ /chroot/apache/usr/local
|
||||
</ul>
|
||||
</ul>
|
||||
<br>
|
||||
(page 16)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Beispiel Apache: Init Script<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>chroot /chroot/apache /usr/local/apache/bin/apachectl start
|
||||
</ul>
|
||||
<br>
|
||||
(page 17)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Feinheiten<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Anpassen von passwd, group und httpd.conf
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Permission 600 fuer passwd, shadown und group
|
||||
</ul>
|
||||
<br>
|
||||
(page 18)<br>
|
||||
<hr>
|
||||
<br>
|
||||
Fazit<br>
|
||||
<br>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Pro Dienst ein Verzeichnis
|
||||
</ul>
|
||||
<br>
|
||||
<ul>
|
||||
<li>Pro Dienst einen User und eine Group
|
||||
</ul>
|
||||
(page 19)<br>
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
FILE ARCHIVED ON 14:25:42 Jan 03, 2005 AND RETRIEVED FROM THE
|
||||
INTERNET ARCHIVE ON 10:25:25 May 11, 2024.
|
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
|
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
|
||||
SECTION 108(a)(3)).
|
||||
-->
|
||||
<!--
|
||||
playback timings (ms):
|
||||
captures_list: 0.756
|
||||
exclusion.robots: 0.21
|
||||
exclusion.robots.policy: 0.198
|
||||
esindex: 0.012
|
||||
cdx.remote: 18.814
|
||||
LoadShardBlock: 301.043 (3)
|
||||
PetaboxLoader3.datanode: 330.626 (4)
|
||||
load_resource: 80.75
|
||||
PetaboxLoader3.resolve: 39.298
|
||||
-->
|
Loading…
Add table
Add a link
Reference in a new issue