steve-meier.de

Ein bisschen mehr Sicherheit

Das aktuelle Linux-Magazin hat einen ganz lustigen Artikel über einen “Hacker”, der nun Strafverfolger schult. Da er im Rahmen eines Interviews zwei Tipps gibt, wie der 0815-Systemadministrator sein Linux-System etwas sicherer macht, der Autor des Artikels diese aber leider nicht aufgreift übernehme ich das mal.

Erster Tipp: Die .bash_history auf “append-only” setzen.

Standardmäßig notiert die Bash alle abgesetzt Kommandos in der Datei .bash_history im Home-Verzeichnis des jeweiligen Benutzers. Ein Hacker hat nun zwei ganz einfache Möglichkeiten, dieses Protokoll zu umgehen:

unset HISTFILE

Dies löscht die Umgebungsvariable $HISTFILE und damit “vergisst” die Bash, das sie Protokoll führen sollte, oder

cp /dev/null $HISTFILE

Damit wird das Protokoll mit einer leeren Datei überschrieben. Man könnte es vermutlich umständlich zurückholen, aber das tut wohl kaum jemand.

Nun, wie sorgt man also dafür, das die Bash immer ein vollständiges, nicht löschbares Log führt ?

chattr +a .bash_history

sorgt dafür, das nur noch Daten an die Protokoll-Datei angehängt werden können. Sie kann nicht mehr überschrieben werden.

readonly HISTFILE
readonly HISTSIZE
readonly HISTFILESIZE

sorgen anschließend dafür, das alle mit der Protokoll-Datei zusammenhängenden Umgebungsvariablen nicht verändert werden können. Diese Einstellung sollte man (je nach Distribution) in /etc/profile oder /etc/profile.local hinterlegen.

Zweiter Tipp: Die /home-Partition “noexec” mounten.

Diese Einstellung sorgt dafür, das ein Angreifer, der Zugang zu einem Benutzeraccount erlang hat, nicht einfach irgendwelche Programme hochladen und ausführen kann. Selbstverständlich muß man dieses Flag auch für das /tmp-Dateisystem setzen, da es sonst relativ sinnlos ist. Ich persönlich gehe sogar noch einen Schritt weiter und setze folgende Optionen für die /home-Partition:

noexec, nosuid, nodev

noexec: Binaries/Scripte dürfen nicht ausgeführt werden
nosuid: Evtl. gesetzt SetUID-Bits werden ignoriert
nodev: Gerätedateien können nicht angelegt/verwendet werden.

Um diese Optionen einsetzen zu können, muß man die Home-Verzeichnisse der Benutzer natürlich auf eine eigene Partition legen, das möchte ich aber sowieso jedem Admin ans Herz legen.

1 Comment

  1. guestseinfreund

    Oder einfach … “history -c” ….! 😉

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.