Aus EasyLinux 03/2016

Sicherheit und Privacy im Internet

© Marquis, photocase

Verschlusssachen

Angreifer wollen Ihren Rechner in ein Bot-Netz integrieren, während Onlinehändler und andere Webseiten Ihr Such- und Kaufverhalten ausspähen möchten. Sicherheit und Privacy sind wichtige Themen – wie gut Sie als Linux-Nutzer geschützt sind, verrät dieser Artikel.

Wer sich um die Sicherheit seiner Daten sorgt, hat viele Baustellen zu beachten. Unter Linux sind das teilweise dieselben wie auf Windows-Rechnern, aber es gibt ein paar deutliche Unterschiede, die Linux-Anwender meist ruhiger schlafen lassen.

Viren und andere Schadsoftware

Eine häufig gestellte Frage ist die nach einem guten Virenscanner für Linux. Die Standardantwort der EasyLinux-Redaktion ist: Den brauchen Sie nicht, es sei denn, Ihr Linux-Rechner ist ein Mail- oder Dateiserver, auf den auch Windows-Anwender zugreifen.

Linux-Anwender sind aus verschiedenen Gründen besser gegen Virenbefall geschützt als Windows-Benutzer. Das wichtigste Argument ist die strikte Rechteverwaltung: Wenn Sie als normaler Anwender ein bösartiges Programm ausführen (egal, auf welchem Weg es auf Ihren Rechner gelangt ist), dann läuft es mit einfachen Benutzerrechten. Es könnte dann z. B. Ihre privaten Dateien manipulieren oder löschen. Das wäre ärgerlich, aber solche Software kann nicht die Kontrolle über Ihren ganzen Rechner gewinnen, weil es dazu Administratorrechte benötigt.

Das macht Linux-PCs als Angriffsziel weniger attraktiv; verbunden mit der geringeren Verbreitung von Linux auf dem Desktop haben Programmierer von Schadsoftware damit keine hohen Anreize, Varianten ihrer Schädlinge für Linux zu entwickeln – und Windows-Schädlinge sind unter Linux nicht lauffähig.

Trotzdem gibt es Virenscanner für Linux – die suchen aber nach denselben Dateien wie auf Windows-Rechnern: Wer einen Mailserver unter Linux betreibt, kann damit eingehende E-Mails auf Viren untersuchen und verdächtige Dateien löschen oder unter Quarantäne stellen, um so Windows-Anwender, die ihre Mails vom Linux-Server abholen, zu schützen. Nutzen Sie Linux nur als Desktop-Betriebssystem, ist das nicht nötig.

Neben Viren gibt es aber auch andere Kategorien von Schadsoftware [4]; die meisten Probleme entstehen unter Linux durch Sicherheitslücken in Server-Anwendungen, etwa in Content-Management-Systemen wie WordPress oder Drupal, die auf einer Apache-Webserver-Installation aufbauen. Auch solche Software läuft auf einem typischen Linux-Desktop nicht, sie wird bei einer Standardinstallation auch gar nicht mit installiert.

Rootkits

Ein Rootkit ist eine Softwaresammlung, die Angreifer verwenden, um sich Zugriff auf fremde Rechner zu verschaffen und diesen auch dauerhaft zu behalten: Es besteht also aus mehreren Komponenten.

  • Die erste Komponente ist für den Angriff gedacht, über offene Ports (etwa den HTTP-Port auf einem Webserver) und Ausnützen bekannter Schwachstellen erhält der Angreifer den Zugriff auf einen Rechner, idealerweise mit Administratorrechten. Ist dieser Zugriff einmal etabliert, kann der Angreifer auf dem Rechner machen, was er will, z. B. eigene Software nachinstallieren und ausführen oder bereits installierte Programme durch eigene Varianten mit für ihn nützlichen Zusatzfeatures austauschen.
  • Die meisten auf diese Weise angegriffenen Rechner ändern jeden Tag ihre IP-Adressen und sind nach einem solchen Wechsel für den Angreifer nicht mehr identifizierbar – darum wird Software installiert, die regelmäßig den Angreifer über solche Änderungen informiert. Das läuft automatisiert ab, z. B. über so genannte Command-and-control-Server (C&C-Server). Die sind dann umgekehrt in der Lage, Kommandos an den kontrollierten Rechner zu schicken, so dass etwa tausende Maschinen gleichzeitig einen Denial-of-Service-Angriff gegen einen ausgewählten Rechner im Netz fahren können oder sich einfach am millionenfachen Spam-Versand beteiligen. Der betroffene Anwender-PC ist damit zum „Bot“ geworden, der ferngesteuert Aufgaben für den Angreifer verrichtet und auch selbst weitere Rechner angreifen und unter seine Kontrolle bringen kann.
  • Die dritte Komponente soll vor dem PC-Besitzer verbergen, dass ein Angriff stattgefunden hat. Dazu werden z. B. Systemtools so verändert, dass in der Prozessliste verdächtige Programme ausgeblendet werden und beim Auflisten eines Verzeichnisses Dateien nicht erscheinen, die dem Angreifer gehören.

Rootkits gibt es für verschiedene Betriebssysteme, und auch für Linux sind welche im Umlauf. Diese greifen aber typischerweise Internetdienste an, die auf einem Rechner laufen.

Firewall

Ports, die von Internetdiensten geöffnet werden, sind potenzielle Einfalltore für Angreifer. So können Sie z. B. einen SSH-Server installieren. Den Mechanismus, den Sie in diesem Fall für die Anmeldung aus der Ferne benutzen, können sich auch Angreifer zunutze machen. Die Crux ist: Wenn Sie selbst den SSH- oder VNC-Zugang nutzen wollen, muss er offen erreichbar sein, weil Sie sich sonst selbst aussperren würden – auch wenn Sie eine Firewall installieren, ist also der jeweilige Port freizugeben (Abbildung 1).

Abbildung 1: Der Screenshot zeigt die via YaST deaktivierte Firewall von OpenSuse.
Abbildung 1: Der Screenshot zeigt die via YaST deaktivierte Firewall von OpenSuse.

Angreifer scannen permament das Netz auf der Suche nach offenen Ports. Wenn Sie für den Systemadministrator root das einprägsame aber hochgradig unsichere, gleichnamige Passwort root vergeben, den SSH-Server starten und diesen Port von außen erreichbar machen, müssen Sie mit einem erfolgreichen Angriff rechnen. Es ist aber möglich, den Zugang abzusichern, indem Sie z. B. festlegen, dass eine Anmeldung nicht durch Eingabe von Benutzername und Passwort, sondern nur über einen Schlüssel möglich ist. Dazu erstellen Sie (auf dem Rechner, von dem aus Sie zugreifen wollen) mit ssh-keygen ein Schlüsselpaar und kopieren dessen öffentlichen Teil auf den Zielrechner – wie das im Detail geht, lesen Sie im Kasten SSH mit Schlüsseln.

SSH mit Schlüsseln

Wollen Sie sich nicht mit Ihrem Account-Passwort, sondern über einen SSH-Schlüssel anmelden, müssen Sie diesen zunächst lokal erzeugen und dann auf den Server übertragen. Sie öffnen dazu über [Alt]+[F2] und Eingabe von konsole ein Terminalfenster, in dem Sie die folgenden zwei Befehle ausführen:

ssh-keygen -t rsa

Das erste Kommando fragt Sie nach einer Schlüsseldatei (hier übernehmen Sie die Vorgabe id_rsa) und zweimal nach einer Passphrase: Das hier eingebenene Passwort schützt den Schlüssel, siehe auch den letzten Abschnitt dieses Kastens. Damit erzeugen Sie ein Schlüsselpaar (privater und öffentlicher Schlüssel); der private bleibt auf dem Rechner, auf dem Sie ihn erzeugt haben, und den öffentlichen Schlüssel kopieren Sie auf Rechner, die Ihnen Zutritt via SSH gewähren sollen.

Es folgt der Befehl

ssh-copy-id username@rechnername

in dem Sie username und rechnername durch den Benutzernamen auf dem anderen Rechner und den Rechnernamen (oder die IP-Adresse) ersetzen. Das Kommando erfragt (zum letzten Mal) das Passwort für die Gegenseite und kopiert dann den öffentlichen Schlüssel dorthin. Ab dem nächsten Loginversuch erkennt der andere Rechner Sie automatisch und lässt Sie nach korrekter Eingabe der Passphrase rein.

Der Vorteil ist hierbei, dass Sie anschließend die klassische Anmeldung über Benutzername und Passwort deaktivieren können: Nur wer im Besitz des privaten Schlüssels ist, kann sich noch per SSH anmelden; alle anderen sehen nicht mal eine Passwortabfrage, sondern werden direkt abgewiesen. Um diese Verhaltensänderung einzustellen, müssen Sie als Administrator die Konfigurationsdatei /etc/ssh/sshd_config bearbeiten und dort die Raute in der Zeile

#PasswordAuthentication no

löschen; falls am Ende yes steht, ändern Sie das Wort außerdem in no (Abbildung 2) – der neue Eintrag verbietet dann die klassische Anmeldung durch Eingabe der am PC gültigen Zugangsdaten.

Abbildung 2: Entfernen Sie die markierte Raute in der Konfigurationsdatei "sshd_config" und setzen Sie den Wert auf "no", um SSH-Anmeldungen über Benutzername und Passwort zu verbieten.
Abbildung 2: Entfernen Sie die markierte Raute in der Konfigurationsdatei „sshd_config“ und setzen Sie den Wert auf „no“, um SSH-Anmeldungen über Benutzername und Passwort zu verbieten.

Komfortabler wird das Ganze, wenn Sie beim Erzeugen des Schlüssels die Passphrase leer lassen. Dann fragt ssh beim Verbindungsaufbau kein Passwort mehr ab, sondern lässt Sie direkt auf den Zielrechner. Das ist aber riskant, denn wenn der Rechner gestohlen wird, der den privaten Schlüssel enthält, erhält auch der Dieb passwortlos Zugriff auf den Zielrechner. Auf Notebooks, die das Haus verlassen, sollten Sie immer eine Passphrase verwenden; bei stationären PCs ist das Abwägen zwischen Sicherheit und Bequemlichkeit akzeptabel.

Laufen auf einem Rechner keine Dienste, ist er auch von außen nicht erreichbar. Kubuntu wird standardmäßig ohne solche Dienste eingerichet, und OpenSuse schaltet bei einer Standardinstallation automatisch eine Firewall ein, die den Zugriff auf eventuell laufende Dienste von außen verhindert. Dazu kommt noch, dass die meisten Anwender über einen DSL-Router oder ein ähnliches Gerät auf das Internet zugreifen, und damit sind die lokalen PCs zunächst generell vor Zugriffen von außen geschützt – Ports müssen im Router manuell an einen bestimmten PC weitergeleitet werden, wenn ein Dienst von außen erreichbar sein soll.

EasyLinux 03/2016 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: