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).
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.
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.
Browser-Add-ons
Einige Add-ons für Firefox sind als notorisch unsicher bekannt, darunter etwa das Flash-Plug-in, das auf vielen Seiten benötigt wird, um Videos anzuzeigen. Geeignet manipulierte Inhalte auf Webseiten können dann via Flash einen Rechner angreifen, auf dem der Flash-Code im Browser ausgeführt wird.
Aus Sicherheitsgründen sollte man darum eine Erweiterung wie NoScript [3] einsetzen (Abbildung 3), um das ungefragte Ausführen von Flash-Code und anderen aktiven Elementen einer Webseite zu verhindern – wenn Sie einer Seite vertrauen (etwa Ihrer Bank), können Sie dann gezielt Ausnahmen zulassen.

Abbildung 3: NoScript ist ein Plug-in für Firefox, mit dem Sie verhindern, dass der Browser unerwünschte aktive Elemente ausführt.
Privacy
Ein wichtiger Sicherheitsaspekt wird oft vernachlässigt: Die so genannte Privacy (wörtlich etwa: Privatheit, Achtung der Privatsphäre) wird verletzt, wenn persönliche Daten (etwa das Surfverhalten oder die Inhalte von E-Mails) bekannt werden. Über Tracking-Mechanismen können die Betreiber von Webseiten beobachten, wann Sie deren Webseiten zuletzt besucht haben: Dank Browser-Cookies erkennen sie, wenn Sie die Seite erneut besuchen, und können dann z. B. Vorschläge zu interessanten Produkten machen – das ist an sich ein nützlicher Mechanismus. Allerdings gibt es auch Tracking-Netzwerke, bei denen die Wiedererkennung über mehrere, verschiedene Webseiten hinweg funktioniert.
Vielen Anwendern ist dieser Versuch der Totalüberwachung nicht bewusst, und wenn sie davon erfahren, möchten sie das Verhalten abstellen. Das ist leicht zu schaffen, indem Sie einen anonymisierenden Proxy verwenden: Der leitet alle Webseitenzugriffe über zahlreiche andere Rechner zum Anbieter und verschlüsselt so, wo Sie herkommen. Dazu gehört dann aber auch, Cookies abzuschalten (oder diese nur im Bedarfsfall zuzulassen). Das Standardprogramm für diese Aufgabe heißt Tor (ehemals TOR in Großbuchstaben, als Abkürzung von “The Onion Router”; Abbildung 4), und wir haben es in einem älteren Artikel vorgeschrieben [1]. Bei aktuellen Tor-Versionen hat sich die Installation vereinfacht; Sie laden einfach die deutsche Version des “Tor Browser Bundle” für Linux von der Projektseite [2] herunter, entpacken das Archiv mit
tar xJf tor-browser-linux64-6.0.2_de.tar.xz
und starten das enthaltene Programm start-tor-browser.desktop im erzeugten Unterordner tor-browser_de – Sie können die Datei auch mit Dolphin auf den KDE-Desktop ziehen und eine Verknüpfung erzeugen; dann starten Sie das Programm per Mausklick.
Falls der Start von Tor nicht gelingt, prüfen Sie, ob die Systemuhr auf die richtige Uhrzeit eingestellt ist – ist die Abweichung von der tatsächlichen Zeit zu groß, schlägt die Verbindung zu anderen Tor-Knoten fehl, und das Startfenster bleibt im Zustand Netzwerkstatus wird geladen in einer ewigen Warteschleife hängen.
Daten in der Cloud
Wer Daten in der Cloud speichert, also z. B. Google Mail verwendet, Officedokumente mit Google Docs erstellt oder einen Dropbox-Account (Abbildung 5) für die bequeme Synchronisation nutzt, legt diese Daten auf dem Server eines Unternehmens ab. Das setzt das Vertrauen voraus, dass sich der Betreiber nicht für diese Daten interessiert und sie nicht missbrauchen wird. Anbieter, die im Ausland sitzen, unterliegen zudem anderen Gesetzen als deutsche Anbieter, so dass evtl. ausländische Ermittlungsbehörden Zugriff auf die Daten haben.

Abbildung 5: Zwar können Sie bei Dropbox jederzeit sehen, welchen Geräten und welchen Apps Sie Zugriff auf die Daten gewähren, aber wenn Ihre Zugangsdaten ausgespäht werden, erhält ein Angreifer sofort Zugriff auf alle Dateien.
Unabhängig von möglicherweise rechtmäßig angeordnetem Zugriff auf solche Daten gibt es auch das Risiko, dass die Diensteanbieter selbst Opfer eines Hacking-Angriffs werden und Daten so in fremde Hände fallen.
Für die Nutzung von Onlinediensten ist es generell wichtig, dass man für jeden Dienst ein eigenes Passwort (und am besten auch einen abweichenden Benutzernamen) verwendet, denn wenn Angreifer Zugriff auf die Benutzer- und Passwortliste eines Dienstes erhalten, testen sie, ob die Zugangsdaten auch für andere Angebote nutzbar sind. Wer hier konsequent auf unterschiedliche Passworte setzt, stellt zumindest sicher, dass im Falle eines erfolgreichen Angriffs nur die Inhalte kompromittiert sind, die beim betroffenen Dienst gelagert werden. Das hat nichts mit Linux zu tun, ist aber auch für Linux-Anwender wichtig.
Verschlüsselung
Wer Daten in der Cloud lagern möchte oder regelmäßig ein Notebook mit auf Reisen nimmt und sich wegen eines möglichen Diebstahls sorgt, sollte seine Dateien verschlüsseln – wenigstens die eigenen Dateien im Verzeichnis /home und genauso Dateien auf USB-Sticks, die auf Reisen verloren gehen können. Das ging unter Linux in früheren Jahren am leichtesten mit TrueCrypt, dessen Entwicklung aber eingestellt wurde. Eine Schweizer Webseite bietet die Software weiterhin zum Download an [5], so dass Sie etwa unsere letzte Anleitung zur TrueCrypt-Installation [6] nutzen können, die Software aber aus einer anderen Quelle beziehen. Für 64-Bit-Linux-Versionen benötigen Sie dazu das Paket truecrypt-7.1a-linux-x64.tar.gz. Es gibt mit VeraCrypt auch ein Nachfolgeprojekt [7], das genau wie TrueCrypt arbeitet.
Auch vertrauliche E-Mails sollte man verschlüsseln, entweder über S/MIME oder das in der Linux-Welt populärere GnuPG. Wie Sie S/MIME oder GnuPG unter Thunderbird einrichten, lesen Sie auch in einem älteren Artikel [8]. Die sichere Kommunikation via GnuPG setzt voraus, dass Sender und Empfänger beide die Software einsetzen; für den S/MIME-Einsatz muss man ein Zertifikat ausstellen lassen.
Paket-Aktualisierungen
Ältere Distributionsversionen, deren Support ausgelaufen ist, erhalten keine Paketupdates mehr, und damit auch keine Korrekturen von später bekannt gewordenen Sicherheitslücken. Hier hilft dann nur der Wechsel auf ein aktuelleres System, für das der Distributor noch Updates in die Paketrepositorys einpflegt. Wer das regelmäßige Distributionsupgrade umgehen möchte, kann eine der LTS-Versionen (Long Term Support) einsetzen.
Gefälschte Pakete
Auch in den Bereich der Softwarepakete fällt ein Angriffsszenario, bei dem nicht direkt ein individueller Anwender-PC attackiert wird – stattdessen versucht der Angreifer, einen Server zu übernehmen, der als Paketquelle für Linux-Distributionen dient. Hat er den Rechner einmal unter Kontrolle, kann er Pakete gegen selbst gebaute Ersatzpakete mit enthaltener Schadsoftware austauschen; Anwender installieren diese dann automatisch, wenn sie ein Paket aus dieser Quelle auswählen.
Der einfachsten Form dieses Angriffs haben die Linux-Distributionsentwickler aber einen Riegel vorgeschoben: Pakete werden signiert, das funktioniert ähnlich wie bei signierten Mails, und Angreifer können keine korrekte Signatur erzeugen, so dass die Paketverwaltung warnt, wenn Anwender versuchen, ein manipuliertes Paket zu installieren. Hier kommt es aber darauf an, als Benutzer nicht jede Warnmeldung zu Signaturen einfach wegzuklicken und dennoch zu installieren.
Es gibt auch legitime Gründe dafür, dass eine Warnung zu einer fehlenden (oder fehlerhaften) Signatur erscheint, aber die muss man im Einzelfall prüfen. Hat man eine Paketquelle z. B. für die Installation eines einzelnen Programms in die Repositoryliste aufgenommen (ohne ihren Signierschlüssel mitzuinstallieren) und danach vergessen, das Repo wieder zu entfernen, taucht eine solche Warnung immer dann auf, wenn die Paketverwaltung versucht, ein weiteres Paket dieser Quelle zu installieren.
Grundsätzlich sollte man für jedes Repository entscheiden, ob man dem Anbieter vertraut (dann integriert man den öffentlichen Signierschlüssel des Anbieters in den Schlüsselbund) oder nicht (dann erscheint für jedes Paket aus dieser Quelle eine Warnung). Vertrauenswürdig sind die direkt vom Distributor angebotenen Repositorys. Bei allen anderen Quellen ist es nicht möglich, eine generelle Empfehlung zu geben. Wer hier maximale Sicherheit haben möchte, sollte keine Fremdquellen nutzen – muss dann aber auch damit leben, dass manche Programme nicht verfügbar sind.
Fazit
Es gibt gute Gründe, die Sicherheit eines Linux-Systems im Blick zu behalten – Grund zur Panik gibt es hingegen nicht; Windows-Anwender müssen sich deutlich mehr Sorgen um den Zustand ihres Rechners machen und an regelmäßige Aktualisierungen der Virensignaturen denken. Im folgenden Artikel beschreiben wir, wie Sie mit Hilfe von OpenVPN unterwegs auf Ihr heimisches Netzwerk zugreifen können, um z. B. Dateien von einem eigenen PC herunterzuladen.
Infos
[1] Tor-Artikel: Thomas Drilling, “Das Zwiebelprinzip”, EasyLinux 04/2013, S. 54 ff., http://linux-community.de/30172
[2] Tor Browser Bundle: https://www.torproject.org/projects/torbrowser.html
[3] NoScript: https://addons.mozilla.org/de/firefox/addon/noscript/
[4] Wikipedia (englisch) zu Linux-Schadsoftware: http://en.wikipedia.org/wiki/Linux_malware
[5] TrueCrypt-Archiv: https://truecrypt.ch/
[6] TrueCrypt auf USB-Sticks: Martin Loschwitz, “Sicher unterwegs – Verschlüsselte USB-Sticks mit TrueCrypt”, EasyLinux 01/2014, S. 61 ff., http://linux-community.de/31337
[7] VeraCrypt: https://veracrypt.codeplex.com/
[8] Artikel zu Mail-Verschlüsselung: Florian Effenberger, “Briefgeheimnis”, EasyLinux 04/2012, S. 36 ff., http://linux-community.de/27114



