current
BSD Fan
Nachdem ich letzte Woche ziemlich im Stress gewesen bin, musste die Rubrik leider ausfallen. Diese Woche berührt "das Kommando der Woche" mehr als nur ein Kommando, nämlich die ganze Funktionalität der "file flags". Diese sind meines Wissens nach eine BSD-Eigenart, zumindest habe ich sie unter anderen Unixen noch nicht gesehen.
Mit Hilfe von "chflags" lassen sich die "file flags" eines Files setzen. Die Syntax ist einfach "chflags flags file". Welche Flags dabei legal sind steht in der man page. Als Beispiel lässt sich der installierte Kernel mit "chflags schg /boot/kernel/kernel" gegen Veränderung (schg = system immutable Flag) schützen - das passiert tatsächlich schon bei der Installation des Kernels.
Ein anderes Beispiel sind Logfiles, die mittels "chflags sappend logfile" zu "append only" files gemacht werden können. Das ist zum "Härten" eines Systems sehr interessant, da ein Angreifer seine Spuren nicht mehr durch Manipulation des Logfiles verwischen kann. Dazu muss der "securelevel" des Systems auf einen Wert grösser Null gesetzt werden, denn der Kernel verbietet dann das Ändern der "file flags".
Der "securelevel" lässt sich über "sysctl kern.securelevel" anzeigen und entsprechend mit "sysctl -w kern.securelevel=<Wert>" auf einen anderen Wert setzen (er kann nur erhöht werden).
Die gesetzten Flags lassen sich per "ls -lo" anzeigen, der Output für den Kernel ergibt z.B.:
Mit Hilfe von "chflags" lassen sich die "file flags" eines Files setzen. Die Syntax ist einfach "chflags flags file". Welche Flags dabei legal sind steht in der man page. Als Beispiel lässt sich der installierte Kernel mit "chflags schg /boot/kernel/kernel" gegen Veränderung (schg = system immutable Flag) schützen - das passiert tatsächlich schon bei der Installation des Kernels.
Ein anderes Beispiel sind Logfiles, die mittels "chflags sappend logfile" zu "append only" files gemacht werden können. Das ist zum "Härten" eines Systems sehr interessant, da ein Angreifer seine Spuren nicht mehr durch Manipulation des Logfiles verwischen kann. Dazu muss der "securelevel" des Systems auf einen Wert grösser Null gesetzt werden, denn der Kernel verbietet dann das Ändern der "file flags".
Der "securelevel" lässt sich über "sysctl kern.securelevel" anzeigen und entsprechend mit "sysctl -w kern.securelevel=<Wert>" auf einen anderen Wert setzen (er kann nur erhöht werden).
Die gesetzten Flags lassen sich per "ls -lo" anzeigen, der Output für den Kernel ergibt z.B.:
Code:
-r-xr-xr-x 1 root wheel schg 3406912 Feb 11 14:38 kernel