FreeBSD Pendant zu molly-guard

Sowas sollte sich relativ einfach selbst machen lassen, indem man entsprechende Wrapper für shutdown, reboot und (sofern vorhanden) poweroff schreibt, die erst nach einer Abfrage des Hostnamen den eigentlichen Befehl ausführen. D.h. Binaries an eine andere Stelle kopieren, stattdessen Skripte an diese Stelle legen und fertig.
 
...D.h. Binaries an eine andere Stelle kopieren, stattdessen Skripte ...
Also diese Aussage ist mal völliger Blödsinn! Bitte nicht!

Ein Alias sollte es auch tun:
Code:
alias shutdown='echo "STOP"'
alias reboot='echo "STOP"'
alias halt='echo "STOP"'
Möchte man den Server rebooten, kann man den Alias erst löschen oder das Binary mit dem ganzen Pfad starten: "/sbin/halt".
 
Also diese Aussage ist mal völliger Blödsinn! Bitte nicht!

Ich glaube kaum, dass diese Aussage Blödsinn ist.

Ein Alias sollte es auch tun:
Code:
alias shutdown='echo "STOP"'
alias reboot='echo "STOP"'
alias halt='echo "STOP"'
Möchte man den Server rebooten, kann man den Alias erst löschen oder das Binary mit dem ganzen Pfad starten: "/sbin/halt".

Damit stellst du noch immer nicht sicher, dass auch der richtige Server rebootet wird. Man kann sich dann noch immer auf dem falschen Server befinden. Und auch ein Druck auf den Power-Button wird damit nicht abgefangen, denn bei diesem wird bei den meisten Systemen der Shutdown-Befehl aufgerufen. Bei Molly-Guard geht es darum, dass man den Hostnamen eingeben muss um sicherzustellen, dass man auch wirklich den richtigen Server rebootet. Das ist mit einem Alias nunmal leider nicht machbar, auch wenn es durchaus auch mein erster Gedanke war. Btw.: Molly-Guard macht auch nichts anderes als diese Befehle zu ersetzen.

Ausserdem hat deine Lösung ein weiteres Problem. Was ist mit 'ssh root@host shutdown...'? In dem Fall wird die Bash-Konfiguration auf den meisten Systemen gar nicht erst geladen und somit auch deine Aliases nicht. Sie sind in diesem Fall also nutzlos und der Shutdown wird einfach ausgeführt.

Vielleicht in Zukunft einfach mit Aussagen wie "Das ist Blödsinn" etwas zurückhalten. :)
 
Damit stellst du noch immer nicht sicher, dass auch der richtige Server rebootet wird.
Dann sollte man halt einfach sein Hirn einschalten und prüfen, auf welchen Server man sich befindet. Schliesslich ist ein "reboot" mit "/sbin/reboot" dann möglich.

Man kann sich dann noch immer auf dem falschen Server befinden.
Ja aber die Befehle sind nutzlos also kann man ihn nicht einfach so rebooten.

Und auch ein Druck auf den Power-Button wird damit nicht abgefangen,
Was hat das jetzt mit ssh zu tun?

Bei Molly-Guard geht es darum, dass man den Hostnamen eingeben muss um sicherzustellen, dass man auch wirklich den richtigen Server rebootet.
Man kann ja die Ausgabe des Aliases noch anpassen:
Code:
alias reboot='echo "ACHTUNG! Aktueller HOST lautet: $(hostname)"'

Ausserdem hat deine Lösung ein weiteres Problem.
Es ist eine Möglichkeit! Nicht ein Ersatz!

Vielleicht in Zukunft einfach mit Aussagen wie "Das ist Blödsinn" etwas zurückhalten. :)
Genau aber Binär Dateien ersetzten ist besser? Nach einem Update sind sie wieder da und man muss sich wieder darum kümmern! Nicht wirklich eine Lösung!
 
Dann sollte man halt einfach sein Hirn einschalten und prüfen, auf welchen Server man sich befindet. Schliesslich ist ein "reboot" mit "/sbin/reboot" dann möglich.
Hast du dir mal die Intension von Molly-Guard angeschaut? Ich habe das Gefühl, dass dem nicht so ist.

Ja aber die Befehle sind nutzlos also kann man ihn nicht einfach so rebooten.
Es geht aber nicht darum die Befehle nutzlos zu machen sondern sie eine zusätzliche Verifizierung ausführen zu lassen.

Was hat das jetzt mit ssh zu tun?
Wo steht geschrieben, dass Molly-Guard nur für SSH eingesetzt wird? Historisch gesehen sollte genau dieser Druck auf den Power-Button abgefangen werden, da die Tochter Molly dadurch immer den Server abgeschaltet hat. Aus dem ursprünglichen Hardware-Schutz (Plexiglas-Klappe über den Power-Button) wurde dann eine Software-Lösung (Abfrage vor dem Ausführen des Befehls).

Man kann ja die Ausgabe des Aliases noch anpassen:
Code:
alias reboot='echo "ACHTUNG! Aktueller HOST lautet: $(hostname)"'
Nochmal: Es geht nicht darum die Ausführung der Befehle zu verhindern sondern sie eine zusätzliche Verifizierung durchführen zu lassen, so dass man sicher ist, dass der korrekte Server/Rechner neugestartet/runtergefahren wird. Und darum, dass das Töchterchen, das den Power-Button drückt, dadurch nicht den Server abschiesst.

Genau aber Binär Dateien ersetzten ist besser? Nach einem Update sind sie wieder da und man muss sich wieder darum kümmern! Nicht wirklich eine Lösung!

Immutable-Bit heisst das Zauberwort. Am Shutdown-Programm wurden bereits sein Jahren keine Änderungen mehr vorgenommen, so dass es unwahrscheinlich ist, dass dafür nochmal Updates kommen sofern nicht irgendwas sehr grundlegendes im Kernel verändert wird. Es spricht also nichts dagegen seine Wrapper mit Immutable-Bit auszustatten. Alternativ kann man seine Wrapper auch ordentlich paketieren und nach einem Update der System-Tools auch ein Update des Wrapper-Pakets durchführen. Mit den BSD-Ports lässt sich sowas problemlos im zugehörigen Makefile verdrahten. Oder man legt seine Wrapper so ab, dass sie in $PATH vor den eigentlichen shutdown-Befehlen liegen, so wie es auch das Debian-Paket tut. Hat allerdings die gleiche Schwäche wie deine Aliases: Ändert man $PATH oder lässt die Shell-Konfiguration aus irgendeinem Grund nicht laden, greift es nicht mehr.

Wie bereits gesagt: Die Idee mit dem Alias war auch mein erster Gedanke. Sie erfüllt aber leider nicht die Kriterien von Molly-Guard. Und hier wurde explizit nach einem "BSD Pendant zum Programm (Script) Molly-Guard" gefragt. Und wenn man das haben will, bleibt einem nichts anderes übrig als die Binaries auszutauschen. Imo kann man nur so sicherstellen, dass die Abfrage tatsächlich immer erfolgt.
 

Ähnliche Themen

[gelöst] 2.HDD unter Freebsd partitionieren

Origin Ersatz unter Linux

FreBSD 9.2 per grub2 booten

html2text für ganzes Verzeichnis

shutdown mit script verbinden

Zurück
Oben