Login
Newsletter
Werbung

So, 11. Mai 2003, 00:00

Sicherheitssysteme - LIDS

Wenn Sie Ihr komplettes /etc-Verzeichnis schützen, wird Linux mit Sicherheit beim Hochfahren meckern, da es Schreibzugriff in das Verzeichnis benötigt, welchen es allerdings nicht besitzt. Jetzt gibt es mehrere Möglichkeiten, die Probleme zu lösen. Einmal muß das Problem mit der Datei /etc/mtab gelöst werden. Die einfachste Methode ist, diese Datei zu löschen und einen symbolischen Link auf /proc/mounts zu setzen:

cd /etc
ln -s /proc/mounts mtab

Dann kann es noch Probleme mit /etc/ioctl.save geben. Diese lösen Sie am besten, indem Sie init erlauben, in die Datei zu schreiben:

lidsadm -A -s /sbin/init -o /etc/ioctl.save -j WRITE

Das sind die gröbsten Problemlösungen. Wenn Sie Ihr ganzes /etc schützen, wird Linux je nach Konfiguration des Systems wahrscheinlich immer noch meckern. Dann bleibt einem nur folgendes übrig: Die Dateien nach Möglichkeit verschieben (Boot-Skript) und symbolische Links auf diese Dateien setzen, oder den Programmen Schreibzugriffe auf die Dateien erlauben.

Nun können Sie Ihren Rechner definitiv neu starten...

Nach dem Neustart können Sie selbstverständlich Korrekturen vornehmen. Dazu müssen Sie den Schreibschutz deaktivieren:

lidsadm -S -- -LIDS_GLOBAL
lidsadm -S -- -LIDS

Mit dem ersten Befehl deaktivieren Sie LIDS komplett. Mit dem zweiten Befehl wird LIDS nur auf der Konsole deaktiviert, auf der Sie sich gerade befinden. Am besten nutzen sie den Global-Parameter, da es einfacher ist, das System damit zu administrieren. Wundern Sie sich allerdings nicht, wenn Sie LIDS deaktivieren. Bei korrekter Paßworteingabe meldet LIDS eine Fehlermeldung. Merkwürdigerweise "sealed" sich der Kernel danach selber, und nur wenn Sie dann nochmal versuchen, LIDS zu deaktivieren, funktioniert es. Anscheinend ist dies kein Bug, sondern so gewollt, da dieses Problem nicht auftritt, wenn Sie den Kernel erst komplett "sealen" (siehe weiter unten).

Wenn Sie LIDS wieder aktivieren möchten, machen Sie das bitte mit folgendem Befehl:

lidsadm -S -- +LIDS_GLOBAL
lidsadm -S -- +LIDS

Bitte benutzen Sie am besten den ersten Befehl, da Sie so ganz sicher sind, daß LIDS auch Global aktiviert ist.

Den Kernel "Sealen"

Nun gehen wir langsam dem Ende entgegen. Ich gehe jetzt davon aus, daß Ihr System ohne Fehlermeldungen hochläuft und Sie somit alle nötigen Korrekturen erledigt haben. Jetzt muß der Kernel nur noch "gesealt" (to seal: versiegeln) werden. Um den Kernel zu versiegeln, müssen verschiedene Fähigkeiten (Capabilities) aktiviert bzw. deaktiviert werden. Unter einer Fähigkeit versteht LIDS zum Beispiel, daß Module nicht mehr geladen werden können, oder daß das System nicht heruntergefahren werden kann. Fähigkeiten werden mit folgenden Befehl aktiviert bzw. deaktiviert:

lidsadm -S -- -CAP_SYS_BOOT
# Der reboot-Befehl wird verboten
lidsadm -S -- +CAP_SYS_BOOT
# Der reboot-Befehl darf benutzt werden

Hier folgt eine Liste der wichtigsten Fähigkeiten, die auf jeden Fall deaktiviert werden sollten:

Fähigkeit Beschreibung
-CAP_SYS_MODULE Module können nicht mehr geladen werden
-CAP_SYS_RAWIO

Verbietet Zugriff auf ioperm/iopl und /dev/port

Verbietet Zugriff auf /dev/mem and /dev/kmem

Verbietet Zugriff auf raw block devices (/dev/[sh]d??)

-CAP_SYS_ADMIN Verbietet große Bereiche der Systemadministration
-CAP_SYS_BOOT Verbietet den Reboot eines Systems
-CAP_SYS_PTRACE Verbietet ptrace() bei jedem Prozess
-CAP_NET_ADMIN Verbietet große Bereiche der Netzadministration
-CAP_INIT_KILL Verbietet das Töten der INIT Kindprozesse

Alles zusammen ergibt folgenden Befehl:

lidsadm -I -- -CAP_SYS_MODULE -CAP_SYS_RAWIO -CAP_SYS_ADMIN \
-CAP_SYS_BOOT -CAP_SYS_PTRACE \
-CAP_NET_ADMIN -CAP_INIT_KILL

Diesen Befehl sollten Sie als kleines Skript formulieren und/oder in das Boot-Skript einbinden. Danach sind alle wichtigen Bereiche des Systems vollständig geschützt.

Fazit

Zugegeben... LIDS hat noch 2-3 kleinere Bugs. Aber es ist ansonsten ein hervorragendes Programm, um sein System ausreichend abzusichern. Allerdings ist dieses Programm ein wenig unflexibel, da es direkt in den Kernel eingebunden wird. Die dadurch erhöhte Sicherheit gleicht dieses Problem allerdings wieder aus. Ich denke, das daß Programm überwiegend in kleineren Serversystemen eingesetzt werden sollte. Dabei ist zu beachteten, daß es sich hier nicht um eine Firewall, sondern um ein Sicherungssystem für ein Rechner handelt. Aus diesem Grund sollte es nur als Ergänzung genommen werden.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung