Hallo Andreas,
On Mon, Oct 07, 2013 at 19:36:19 +0200, Andreas Oettel wrote:
Ich möchte erzwingen, dass jeder, der von dem Rechner was will, über das Netzwerk kommen muss. Ich möchte verhindern, dass irgendjemand gepatchte Hardware an den Rechenr ansteckt und das laufende System komprimitieren kann. Buchsen ablöten ist dabei nicht wirklich die Lösung. :o)
Du moechtest also, dass kein angestecktes Geraet von irgendeinem Treiber angefasst wird und dadurch praktisch wirkungslos bleibt?
Eine radikale Methode waere grossflaechiges Blacklisten von Modulen (inkl. der Module in der initialen Ramdisk). Das wuerde aber bereits beim Booten die ladbaren Module einschraenken.
Auf USB-Ebene koennte man nach dem Booten die /sys/bus/usb/devices/*/authorized-Dateien oder die /sys/bus/usb/drivers_autoprobe-Datei im sysfs nutzen.
Beim Anstecken von PS/2-Geraeten gibt es meineswissens keine Hotplug-Events. Allerdings wird das nicht verhindern, dass sich etwa eine angesteckte PS/2-Tastatur als solche nutzen laesst.
Bei Firewire waere es auch sinnvoll, die Module zu blacklisten. Allerdings kommt es darauf an, wie das BIOS den Firewire-Controller initialisiert. Bei falscher Initialisierung (DMA-Zugriff erlaubt) ist auch ohne Mitwirkung des Betriebssystems der Arbeitsspeicher ueber Firewire les- und schreibbar.
Generell bleibt bei physischem Zugang zum Rechner immer das Problem, dass er von einem externen Medium gebootet werden kann -- das wird kein installiertes System verhindern koennen. Natuerlich kann man ein BIOS-Passwort setzen, aber dann ist die naechste Stufe, einfach die Festplatte auszubauen und extern zu manipulieren. Gegen sowas hilft ein Kryptodateisystem, aber das kann unter Umstaenden verhindern[1], dass der Rechner unattended bootet.
[1] Passphrase-Eingabe ueber dropbear in der initialen Ramdisk waere ein Hack, um auch das zu ermoeglichen.
Gruss, Chris