Freetz chroot: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(69 dazwischenliegende Versionen derselben Benutzerin werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:chroot}}
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #333333; padding: 0em 1em 1em 1em; background-color:#1B1C2D; align:right;">
== chroot ==
<br><center>[[Datei:ZD-Logo.png]]</center>
chroot steht für „change root“ und ist eine Funktion auf Unix-Systemen, um das Rootverzeichnis zu ändern. Sie wirkt sich nur auf den aktuellen Prozess und seine Kindprozesse aus. „chroot“ selbst kann sich auf den Systemaufruf  chroot(2) als auch auf das Dienstprogramm chroot(8) beziehen.
<center><big><span style="color:#B5B5B5;">'''''Das Board mit Freiheiten'''''</span></big></center>
 
<font color=white></font>
Ein Programm, das auf ein Verzeichnis re-rooted wurde, kann nicht mehr auf Dateien außerhalb dieses Verzeichnisses zugreifen. Chrooting bietet somit eine einfache Möglichkeit, nicht vertrauenswürdige, Test- oder sonstwie gefährliche Programme in eine Sandbox zu versetzen. Es ist ein einfacher Jail-Mechanismus, aus dem aber durchaus leicht wieder ausgebrochen werden kann.
----
 
<br>
In der Praxis wird "Chrooting" dadurch erschwert, dass Programme beim Start erwarten, Platz für temporäre Dateien, Konfigurationsdateien, Gerätedateien und Shared Libraries an bestimmten festen Orten vorzufinden. Um Programme also innerhalb des chroot-Verzeichnisses laufen lassen zu können, muss das Verzeichnis mit diesen notwendigen Dateien ausgestattet werden. Dabei ist vorsichtig vorzugehen, damit über sie nicht versehentlich Zugriff auf das restliche System ermöglicht wird.
<div style="margin: 0px 20px 15pt 15pt; border: 2px solid rgb(223, 223, 223); padding: 0em 1em 1em; background-color:#303140; border: 1px solid #000000;">
 
<br/>
== Einsatz ==
{{Navi-Sektion}}
 
{{Navi-Freetz-Sektion}}
; Rechtetrennung : Ein chroot kann als Vorsorgemaßnahme gegen einen Sicherheitsbruch eingesetzt werden, indem es einen potentiellen Angreifer daran hindert, mit einem kompromittierten Programm Schaden anzurichten oder das System zu sondieren. Beispielsweise kann ein Dateiserver im Netzwerk das Verzeichnis, aus dem er einen Client bedient, direkt nach der Verbindungsaufnahme chrooten. Einen ähnlichen Ansatz verfolgt der [[Mail Transfer Agent]] [[Postfix (Mail Transfer Agent)|Postfix]], der seine Aufgabe auf mehrere kleine, hintereinandergeschaltete Programme aufteilt, die jedes für sich in eigenen Chroots laufen. Ein guter Einsatz ist chroot auch für FTP Server, damit FTP User nicht aus ihrem "home" Directory in ein anderes Verzeichnis wechseln können.
; [[Honeypot]] : Ein chroot-Verzeichnis kann so bestückt werden, dass ein echtes System mit Netzwerkdiensten simuliert wird. Der chroot-Mechanismus kann dann dieses System kompromittierende Angreifer daran hindern, zu erkennen, dass sie sich in einer künstlichen Umgebung befinden, oder in das echte System auszubrechen.
; Testen : Die durch den chroot-Mechanismus erreichte Isolation ist auch zu Testzwecken nützlich. In ein solches Verzeichnis kann eine eigene Kopie des Betriebssystems installiert werden und als Testumgebung für Software dienen, deren Einsatz in einem Produktivsystem zu riskant wäre.
; Reparatur : Um ein Linux/Unix System mit Hilfe einer Boot-CD wie Knoppix zu reparieren, kann chroot genutzt werden um auf dem eingemounteten System zu arbeiten. So kann beispielsweise ein vergessenes Root-Passwort wiederhergestellt werden.
 
 
 
 
 
 


= Freetz [[chroot]] =


== USB-root ==
== USB-root ==
Mit USB-[http://de.wikipedia.org/wiki/Root-Account root] lässt sich das Root-Verzeichnis (/) auf ein an die FritzBox angeschlossenes USB-Gerät auslagern - was zusätzlichen Platz nicht nur für weitere Software schafft


Mit USB-root lässt sich das Root-Verzeichnis (/) auf ein an die FritzBox angeschlossenes USB-Gerät auslagern - was zusätzlichen Platz nicht nur für weitere Software schafft.
=== Vorteile ===
=== Vorteile ===


    * Immer noch ein lauffähiges System im Flash-Speicher der Fritzbox als Notfall-System vorhanden
*Immer noch ein lauffähiges System im Flash-Speicher der Fritzbox als Notfall-System vorhanden
    * Nahezu unbegrenzter Platz
*Nahezu unbegrenzter Platz
    * Mehrere Systeme parallel zur Auswahl auf dem USB-Stick → einfaches Testen neuer Versionen und Konfigurationen. Dabei  
*Mehrere Systeme parallel zur Auswahl auf dem USB-Stick → einfaches Testen neuer Versionen und Konfigurationen. Dabei
    sollte allerdings die jeweils genutzte Firmwarebasis von AVM ein zueinander kompatibles Konfigurationsformat aufweisen!  
sollte allerdings die jeweils genutzte Firmwarebasis von AVM ein zueinander kompatibles Konfigurationsformat aufweisen!  


Ein Beispiel aus der Praxis:
Ein Beispiel aus der Praxis:


Annex A Box in Frankreich mit DAU als Besitzer ;-) Bei einem nicht funktionierenden System im Flash würde da gar nichts mehr gehen. Strom aus, USB-Stick ab und Strom wieder an, bekommt er aber hin um damit das Notfallsystem im Flash nutzen zu können.
Annex A Box in Frankreich mit DAU als Besitzer ;-) Bei einem nicht funktionierenden System im Flash würde da gar nichts mehr gehen. Strom aus, USB-Stick ab und Strom wieder an, bekommt er aber hin um damit das Notfallsystem im Flash nutzen zu können.


=== Konfiguration und Kompilierung ===
=== Konfiguration und Kompilierung ===
Zeile 47: Zeile 37:
=== Packen, kopieren auf die FritzBox und entpacken ===
=== Packen, kopieren auf die FritzBox und entpacken ===


# In den Ordner mit dem neu gebauten Filesystem wechseln:
*In den Ordner mit dem neu gebauten Filesystem wechseln:
<font color=black>
  cd [Freetz-Ordner]/build/modified/filesystem
  cd [Freetz-Ordner]/build/modified/filesystem
# Das Filesystem inkl. Symlinks und Unterordnern packen:
</font>
*Das Filesystem inkl. Symlinks und Unterordnern packen:
<font color=black>
  tar czf [Freetz-Ordner]/build/modified/rootfs.tar.gz ./*
  tar czf [Freetz-Ordner]/build/modified/rootfs.tar.gz ./*
# Fritzbox von Flash booten lassen, dazu USB-Root im
</font>
# [http://fritz.box:81/cgi-bin/pkgconf.cgi?pkg=usbroot Freetz-Webinterface] deaktivieren und rebooten.
*Fritzbox von Flash booten lassen, dazu USB-Root im
# Das Archiv auf die Fritz!Box kopieren in den richtigen Ordner kopieren, z.B.:
*[http://fritz.box:81/cgi-bin/pkgconf.cgi?pkg=usbroot Freetz-Webinterface] deaktivieren und rebooten.
scp user@my_pc:/home/slightly/freetz-trunk-new/build/modified/rootfs.tar.gz /var/media/ftp/uStor01/rootfs
*Das Archiv auf die Fritz!Box kopieren in den richtigen Ordner kopieren, z.B.:
  # "/var/media/ftp/uStor01/rootfs" ist hierbei selbst festgelegt, der USB-Datenträger für USB-Root muss nicht zwingend auf uStor01
*scp user@my_pc:/home/slightly/freetz-trunk-new/build/modified/rootfs.tar.gz /var/media/ftp/uStor01/rootfs
sein  
<font color=black>
# und auch "roots" als Ordner ist freigewählt  
  "/var/media/ftp/uStor01/rootfs"  
# In den Ordner wechseln
</font>
ist hierbei selbst festgelegt, der USB-Datenträger für USB-Root muss nicht zwingend auf uStor01 sein  
und auch "roots" als Ordner ist freigewählt  
*In den Ordner wechseln
<font color=black>
  cd /var/media/ftp/uStor01/rootfs
  cd /var/media/ftp/uStor01/rootfs
# Archiv entpacken
</font>
*Archiv entpacken
<font color=black>
  tar xzpf ./rootfs.tar.gz
  tar xzpf ./rootfs.tar.gz
# Besitz anpassen
</font>
*Besitzer anpassen
<font color=black>
  chown -R 0.0 /var/media/ftp/uStor01/rootfs
  chown -R 0.0 /var/media/ftp/uStor01/rootfs
 
</font>
Nun ist im Freetz-Webinterface USB-Root wieder zu aktivieren.
*Nun ist im Freetz-Webinterface USB-Root wieder zu aktivieren.
 


=== Einbinden von Partitionen ===
=== Einbinden von Partitionen ===
Zeile 75: Zeile 75:


=== Verbesserungsmöglichkeiten ===
=== Verbesserungsmöglichkeiten ===
  1. Direkt per SCP oder rsync aus der Stinky-VM auf die Fritzbox kopieren.
*1. Direkt per SCP oder rsync aus der Stinky-VM auf die Fritzbox kopieren. Wenn man aus Buildsystem (z.B. VM mit STinky) direkt über [[Local Area Network (LAN)|Netzwerk]] die Fritzbox per ssh/scp erreichen kann ist der Umweg über einen weiteren PC unnötig. Hier wäre es dann eine direkte Verbindung zwischen Fritzbox und Buildsystem eleganter. Die Variante oben ist aber für entfernte Systeme, ohne von außen erreichbaren SSH-Zugang weiterhin brauchbar.
      Wenn man aus Buildsystem (z.B. VM mit STinky) direkt über Netzwerk die Fritzbox per ssh/scp erreichen kann ist der Umweg über einen weiteren PC unnötig. Hier wäre es dann eine direkte Verbindung zwischen Fritzbox und Buildsystem eleganter. Die Variante oben ist aber für entfernte Systeme, ohne von außen erreichbaren SSH-Zugang weiterhin brauchbar.
*2. Die sich wiederholenden Befehle in ein bash-script packen
  2. Die sich wiederholenden Befehle in ein bash-script packen
 
== Debian FreetzBox  ==
 
[[Image:Debian.png|right|202x52px|Debian.png]]
 
<br>
 
*[http://rapidshare.com/files/350673964/Debian_FritzBox.tar.part1.rar| Debian_FritzBox.tar.part1.rar]
*[http://rapidshare.com/files/350861195/Debian_FritzBox.tar.part2.rar| Debian_FritzBox.tar.part1.rar]
 
*auf PC mit winrar entpacken
 
hier entpacken
 
*USB Stick in ext2 formatieren und anschließend an Fritzbox anschließen
 
*Debian_FritzBox.tar.gz per FTP auf den USB Stick kopieren
 
*unter telnet Debian_FritzBox.tar.gz auf USB Stick entpacken mit
 
tar zxvf Debian_FritzBox.tar.gz
 
oder
 
tar xzpf ./Debian_FritzBox.tar.gz
 
*Rechte vergeben
 
chmod 777 /var/media/ftp/uStor01/
 
*mounten
 
mount -t proc proc /var/media/ftp/uStor01/Debian_FritzBox/proc/


*in chroot Umgebung wechseln<br>
== rootfs Methode  ==


chroot /var/media/ftp/uStor01/Debian_FritzBox/ bash
[[CCcam ab 2.1.2 auf einer Fritz!Box mit Freetz unter CHROOT betreiben!!]] 


== DebianLenny FreetzBox ==
[[CCcam alle Versionen @ Freetz mit Normal- und Chroot-Modus (ab 2.1.2 mit chroot)]]  
 


*[http://rapidshare.com/files/379187470/fritzDebianLenny.tar.gz| fritzDebianLenny.tar.gz]
<br>


tar zxvf fritzDebianLenny.tar.gz
=== Quellenangaben ===
*Quelle Zebradem


<br>  
== Wichtige Links  ==
*[[chroot Debian FritzBox|<span style="color:#87ceeb;">chroot Debian FritzBox</span>]]
*[[Freetz|<span style="color:#87ceeb;">Freetz</span>]]
*[http://www.zebradem.com/46025-cccam-2-1-3-freetz-mit-chroot Supportthread und Images  ]
*[http://trac.freetz.org/wiki/packages/usb-root/ freetz.org/wiki]
*[[Hauptseite||<span style="color:#87ceeb;">Zurück zu Hauptseite</span>]]


[[Hauptseite|[Zurück zu Hauptseite]]]
[[Category:Fritzbox]]

Aktuelle Version vom 21. Februar 2012, 08:24 Uhr


Das Board mit Freiheiten





Zebradem Fritzbox Wiki >> Freetz chroot Magyar, Nederlands, Italiano, English
Community Modelle Freetz Fritzbox Tipps & Tricks

Einführung Freetz Pakete Freetz Addons Freetz Tipps Freetz chroot Freetz Images Freetz Faqs

Freetz chroot

USB-root

Mit USB-root lässt sich das Root-Verzeichnis (/) auf ein an die FritzBox angeschlossenes USB-Gerät auslagern - was zusätzlichen Platz nicht nur für weitere Software schafft

Vorteile

  • Immer noch ein lauffähiges System im Flash-Speicher der Fritzbox als Notfall-System vorhanden
  • Nahezu unbegrenzter Platz
  • Mehrere Systeme parallel zur Auswahl auf dem USB-Stick → einfaches Testen neuer Versionen und Konfigurationen. Dabei

sollte allerdings die jeweils genutzte Firmwarebasis von AVM ein zueinander kompatibles Konfigurationsformat aufweisen!

Ein Beispiel aus der Praxis:

Annex A Box in Frankreich mit DAU als Besitzer ;-) Bei einem nicht funktionierenden System im Flash würde da gar nichts mehr gehen. Strom aus, USB-Stick ab und Strom wieder an, bekommt er aber hin um damit das Notfallsystem im Flash nutzen zu können.

Konfiguration und Kompilierung

USB-root muss einfach bei Erstellung des Images mit make menuconfig (siehe Freetz Installation?) mit ausgewählt werden. Um später eine Shell auf der Fritzbox zu haben und scp nutzen zu können, sollte auch dropbear mit ins Image. Zuerst wird dann ein Image mit USB-Root erzeugt, das in den Flashspeicher der Fritzbox passt und dann auch wie jedes Image auf die Fritzbox geflasht wird.

Dann kann man sich sein System für den USB-Root zusammen stellen und braucht nicht mehr auf den Platz zu achten. Das USB-Root Paket muss jedoch ausgewählt bleiben! Die Fehlermeldung am Ende, dass das Image zu groß ist, stört hier nicht weiter. Wir benötigen ja nur das erstellte Systeme, das wir in [Freetz-Ordner]/build/modified/filesystem finden.

Es kann eine beliebige Freetz-Version für den USB-Stick verwendet werden. Es muss nicht die gleiche Version verwendet werden, wie sie im Flashspeicher der Fritzbox abgelegt ist. Es muss ausschließlich der Kernel im Flashspeicher zum Kernel des USB-Sticks passen.


Packen, kopieren auf die FritzBox und entpacken

  • In den Ordner mit dem neu gebauten Filesystem wechseln:

cd [Freetz-Ordner]/build/modified/filesystem

  • Das Filesystem inkl. Symlinks und Unterordnern packen:

tar czf [Freetz-Ordner]/build/modified/rootfs.tar.gz ./*

  • Fritzbox von Flash booten lassen, dazu USB-Root im
  • Freetz-Webinterface deaktivieren und rebooten.
  • Das Archiv auf die Fritz!Box kopieren in den richtigen Ordner kopieren, z.B.:
  • scp user@my_pc:/home/slightly/freetz-trunk-new/build/modified/rootfs.tar.gz /var/media/ftp/uStor01/rootfs

"/var/media/ftp/uStor01/rootfs" 

ist hierbei selbst festgelegt, der USB-Datenträger für USB-Root muss nicht zwingend auf uStor01 sein und auch "roots" als Ordner ist freigewählt

  • In den Ordner wechseln

cd /var/media/ftp/uStor01/rootfs

  • Archiv entpacken

tar xzpf ./rootfs.tar.gz

  • Besitzer anpassen

chown -R 0.0 /var/media/ftp/uStor01/rootfs

  • Nun ist im Freetz-Webinterface USB-Root wieder zu aktivieren.

Einbinden von Partitionen

Das Einbinden von weiteren Partitionen funktionierte in frühen Freetz-Versionen nicht, somit mussten diese Partitionen manuell eingebunden werden. In aktuellen Freetz-Versionen funktioniert dies nun, so dass die AVM-Features, welche auf USB-Partitionen speichern, verwendet werden können.

Allerdings gibt es beim Mounten der Partitionen eine Fehlermeldung für die verwendete Root-Partition: da diese bereits gemountet ist, schlägt ein weiterer Mount-Versuch (der "normale" von AVM) natürlich fehl. Dies kann mit ruhigem Gewissen ignoriert werden.

Verbesserungsmöglichkeiten

  • 1. Direkt per SCP oder rsync aus der Stinky-VM auf die Fritzbox kopieren. Wenn man aus Buildsystem (z.B. VM mit STinky) direkt über Netzwerk die Fritzbox per ssh/scp erreichen kann ist der Umweg über einen weiteren PC unnötig. Hier wäre es dann eine direkte Verbindung zwischen Fritzbox und Buildsystem eleganter. Die Variante oben ist aber für entfernte Systeme, ohne von außen erreichbaren SSH-Zugang weiterhin brauchbar.
  • 2. Die sich wiederholenden Befehle in ein bash-script packen

rootfs Methode

CCcam ab 2.1.2 auf einer Fritz!Box mit Freetz unter CHROOT betreiben!!

CCcam alle Versionen @ Freetz mit Normal- und Chroot-Modus (ab 2.1.2 mit chroot)



Quellenangaben

  • Quelle Zebradem

Wichtige Links