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.