IT-Support > Linux > Linux-Installation > Sicherheit

Sicherheit unter Linux

Immer häufiger erfolgen Angriffe auf die Rechner an der Universität Hannover, auch oder speziell auf unter Linux betriebene. Diese Angriffe sind leider manchmal erfolgreich. Daher folgen hier einige Bemerkungen zu diesem Thema.

Was für Angriffe sind das normalerweise?

Üblich sind im Linux/Unix-Umfeld zum einen DoS (Denial of Service)-Angriffe, die Rechner oder ganze Netze lahm legen, zum anderen Angriffe, um Rechner in die Gewalt zu bekommen und damit ein Sprungbrett für weitere Aktivitäten zu haben, die dann unter falscher Identität durchgeführt werden können. Des Weiteren wird versucht, dort Unmengen von mehr oder weniger legaler Software oder anderen Daten (Musik, Bilder, Filme) zu lagern, die dann von außerhalb abgerufen werden, was nicht nur das Netz belastet, sondern auch die Betreiber der betroffenen Uni-Rechner in rechtliche Problemzonen bringen kann. Ferner gibt es noch den Angriff auf den Rechner selbst zwecks Stehlens von Information oder Löschens von Daten.
Bisher nicht üblich sind unter Linux/Unix die von Windows gewohnten Attacken über Mail.

Was kann man dagegen tun?

Zunächst muss man sich Gedanken machen: Welche Rechner sind wie wichtig? Was passiert, wenn ein Rechner vom Netz genommen werden muss; welche Dienste sind dann nicht vorhanden; welche sind überhaupt nötig und für wen? Beispielsweise müssen Druckdienste für ein Institut nicht unbedingt weltweit zur Verfügung stehen.

Daraus könnte sich folgendes ergeben:

  • Analyse, welche Dienste angeboten werden sollen, Einschränkung auf diese.
  • Analyse, wem die Dienste angeboten werden sollen (weltweit, Uni-intern, institutsintern, bestimmte Benutzer, keine Dienste, d. h. nur Benutzer-Workstation)
  • Überlegungen zur – möglichst automatischen – Überwachung (tripwire, scanlog)

Was passiert im Ernstfall?

  • Wie kann man das System danach möglichst schnell wieder aufsetzen (Backup, Neuinstallation)?

Vorbeugend:

  • Informationen in einschlägigen Zeitschriften (c´t, Linux Magazin), bei CERT oder im Internet sammeln.
  • Wissen, dass alle Überlegungen immer wieder überdacht werden müssen.

Praktisches Vorgehen:

  1. Partitionieren

    Partitionieren der Festplatte in / (klein), /usr (groß, fixiert), /tmp und /var (dynamisch), /home (Benutzer, dynamisch). Dann fällt es hinterher wesentlich leichter, ein System wiederherzustellen.
    Eine weitere Partition zum Anlegen von Sicherheitskopien der anderen Partitionen (mit dd | gzip -c), eventuell diese Kopien an anderer Stelle (auf CD) lagern.
  2. Netzdienste

    An Diensten sollte man nur die benötigten und bei Alternativen nur die sichereren zulassen. So sollte man z. B. finger und die Internet-Relay-Chat-Dienste ausschalten. Die abgesicherten Dienste ssh/scp/sftp ersetzen die unsicheren Dienste telnet/rxp/ftp.
    Falls Dienste mit dem Internetdämon inetd gestartet werden, sollten die als benötigt eingestuften Dienste mit dem TCP-Wrapper tcpd überwacht werden. Mit den Dateien /etc/hosts.deny und /etc/hosts.allow kann detailliert eingestellt werden, welcher Dienst wie genutzt werden darf.
  3. Dateisystem

    Die Originalität eines Dateisystems kann mittels tripwire festgestellt werden. Von den zu überwachenden Daten werden anfangs Überprüfungsmerkmale festgelegt und in einer Datei festgehalten. Bei späteren Aufrufen von tripwire werden die aktuellen Merkmale mit den gespeicherten verglichen und alles vermerkt, was sich geändert hat. Dieses Verfahren ist ziemlich sicher – speziell, wenn man die Vergleichsdatei als von Niemandem änderbar lagert – beispielsweise auf CD. Es hat jedoch den Nachteil, dass nach jeder größeren Systemänderung die Vergleichsdatei neu erzeugt werden muss. Im Ernstfall kann man dann die geänderten Dateien mit den Originalen überschreiben (wenn man diese hat). tripwire kann man über cron beispielsweise täglich aufrufen und sich das Ergebnis per E-Mail mitteilen lassen. Zum Entdecken des Abtastens des Rechners nach offenen Diensten (Scans) kann man scanlog installieren. Auch dann sollte man wie bei tripwire häufig genug prüfen, ob etwas auffiel.
    Es macht auch Sinn, auf dem Linux-System eine Brandmauer (Firewall) mit iptables einzurichten.
    Nach erfolgter Installation oder auch allmonatlich sollte man die Zugriffsmöglichkeiten von außen beispielsweise mit nessus überprüfen lassen.
    Die Überwachungsprotokolle (in /var/log) sollte man möglichst auf sicherere Rechner übertragen, siehe /etc/syslog.conf.
  4. Standard

    Man sollte regelmäßig die neuesten Versionen der sicherheitsrelevanten Software installieren und außerdem auf Unregelmäßigkeiten achten.

Ernstfall

Es hat ein Einbruch mit Missbrauch stattgefunden; man hat es selbst (durch die Überwachung) gemerkt, oder das RRZN hat den Rechner vom Netz genommen, weil er unverhältnismäßig viel Netzbelastung verursachte oder weil sich Andere über Angriffe, die von dem Rechner ausgingen, beschwerten. Dann ist Besonnenheit gefordert, jede übereilte Reaktion ist wahrscheinlich von Übel. Man sollte auch dem Security-Team Bescheid sagen (E-Mail an securityrrzn.uni-hannover.de) und Hilfe nicht nur im Notfall anfordern; auch der Autor dieser Zeilen hilft gern.
Man sollte die Systemlogs (z. B. /var/log/messages) retten, wenn man hofft, irgendjemanden verantwortlich machen zu können.
Anschließend erfolgt die Reparatur: Entweder lässt sich anhand von tripwire rekonstruieren, welche Dateien betroffen sind, und man hat Originale, die man wieder einspielen kann, oder eine Wiederherstellung (aus dem oben erwähnten Backup mit gunzip|dd) bzw. eine Neuinstallation sind fällig. Gesondert zu berücksichtigen sind die /home-Verzeichnisse, die ja die Daten von Benutzern beinhalten und daher besondere Sorgfalt erfordern, will man sich nicht den (gerechten) Zorn seiner Kolleginnen und Kollegen zuziehen. Falls es sich bei dem Missbrauch allerdings um das Einrichten einer Verteilstation für illegale Software handelt, ist es wahrscheinlich, dass diese irgendwo im /home-Bereich in einem nicht sofort erkenntlichen Verzeichnis lagert. Dann ist es anzuraten, die alten /home-Verzeichnisse irgendwohin wegzuspeichern, neue leere /home-Verzeichnisse einzurichten und die Benutzer zu bitten, die benötigten Daten explizit aus den alten Verzeichnissen zu holen.

Weitere Überlegungen

Weil viele Daten zur Überwachung angelegt werden, sollten über cron ältere Daten gelöscht werden, bevor Partitionen volllaufen.
Die Überwachung sollte weitgehend automatisiert werden. Wozu hat man sonst einen Computer? Die Angreifer arbeiten ja auch mit automatisierten Scripts.

Folgerung

Es geht primär darum, den Betrieb aufrecht zu erhalten oder wieder aufzunehmen, nicht, die Schuldigen zu erwischen oder gar bestrafen zu wollen. Das muss man wohl Sicherheits-Spezialisten überlassen.

IT-Support

Letzte Änderung: 17.10.2011
 
Verantwortlich RRZN