Linux-Tagebuch #12 – Sicherheit, Firewall und Virenscanner

In dieser mehrteiligen Beitragsreihe versuche ich mich aus Sicht eines Windows PC-Nutzers dem Linux-Desktop als Betriebssystem zu nähern. Dabei möchte ich dieses als Linux-Anfänger selbst besser kennen lernen und zu verstehen versuchen.  Zu Teil 1…

In diesem Beitrag möchte ich meine Gedanken festhalten, die ich mir zum Thema „Sicherheit“ bei der Benutzung von Ubuntu 20.04 LTS als Betriebssystem gemacht habe. Ich bin sicherlich kein Experte auf dem Fachgebiet, aber der ein oder andere Kniff lässt sich als Normal-Nutzer meiner Meinung nach dennoch leicht umsetzen.

Das Sicherheits-ABC

Wie auch bei Windows gelten unter Ubuntu die gleichen Grundregeln für die Sicherheit im Umgang mit dem Computer. Man sollte stehts…

  • das System aktuell halten,
  • sichere und unterschiedliche Passwörter wählen,
  • möglichst auf ungeprüfte Fremdquellen (wie PPAs) verzichten,
  • vorsichtig mit Mail-Anhängen sein,
  • Programme nicht mit mehr Rechten starten, als für en Anwendungszweck notwendig,
  • Downloads und Skripte nicht gedankenlos ausführen,
  • Sensible Daten getrennt speichern oder verschlüsseln

Die Liste ließe sich bestimmt beliebig ergänzen, das soll auch gar nicht der Schwerpunkt dieses Beitrags sein. Hier findet ihr übrigens eine interessante Sammlung aus dem ubuntuusers Wiki dazu. Ich möchte an dieser Stelle noch einmal anmerken, dass ihr während der Installation von Ubuntu die Möglichkeit habt, euren Datenträger zu verschlüsseln, dies kann insbesondere bei Notebooks, die häufig unterwegs sind, sinnvoll sein. An einfachsten ist es, diese Entscheidung bereits bei der Installation von Ubuntu / bei der Partitionierung der Festplatte zu treffen.

Ein für mich besonderes Risiko stellen die Programme dar, die eine Schnittstelle zum Internet sind, wie zum Beispiel der Browser. Da bietet es sich doch an, gleich ein paar sicherheitsrelevante Add-Ons zu installieren. Ich nutze dafür gerne uBlock Origin, Privacy Badger und HTTPS Everywhere. Die gibt es sowohl für Firefox als auch für Chrome(ium). Für Mails benutze ich unter Ubuntu Mozilla Thunderbird, hier habe ich den Junk-Filter entsprechend eingerichtet. Dieser kann auch „trainiert“ werden, in dem man selber Spam markiert. [2] Außerdem ist es empfehlenswert, HTML für Mails zu deaktivieren, wenn man nicht darauf angewiesen ist. Das erhöht den Datenschutz und die Sicherheit. [3]

Firewall einrichten

Euer Rechner befindet sich höchstwahrscheinlich hinter einem Router, der eingehende Verbindungen nicht ohne weiteres an euren PC durchlässt. Ihr habt also schon eine einfache Hardware-Firewall. [4] Welche Programme wie mit dem Internet kommunizieren dürfen und welche Ausnahmen gelten, lässt sich noch besser mit einer Software-Firewall regeln. Die kann außerdem von Vorteil sein, wenn man mal in einem fremden Netzwerk (wie einem öffentlichen Hotspot) unterwegs ist.

Unter Ubuntu 20.04 ist bereits die Software-Firewall ufw (uncomplicated firewall) vorinstalliert, aber standardmäßig nicht aktiv. Diese könnt ihr mit wenigen Schritten starten und einrichten.

sudo ufw enable (oder ... disable, um wieder auszuschalten!)
sudo ufw default deny incoming
sudo ufw default allow outgoing

Damit startet ihr ufw und die Vorgabe für unbekannte Verbindungen soll sein, diese nach außen (ins Internet) zuzulassen, aber eingehende Verbindungen erst einmal zu blockieren. Ufw startet damit auch automatisch beim nächsten Systemstart. Danach könnt ihr den Status der Firewall mit

sudo ufw status

überprüfen, bereits angelegte Ausnahmen (z.B. für P2P oder ssh) werden hier angezeigt. Wenn man keine besonderen Anforderungen hat, war’s das eigentlich schon. Ufw lässt sich über das Terminal umfangreich konfigurieren. Wie das geht und wie ihr anwendungs- oder portspezifische Ausnahmen hinzufügt, lest ihr hier bei heise.

Etwas praktischer und – naja – hübscher ist die grafische Frontend gufw für ufw. Damit lassen sich der Status und die Regeln wesentlich komfortabler verwalten. Der Funktionsumfang entspricht ungefähr dem, wie man es von der Windows-Firewall kennt.

Insofern ufw bereits installiert ist, holt ihr euch gufw einfach dazu

sudo apt install gufw

Virenscanner einrichten

Wenn man sich mit dem Thema auseinandersetzt, liest man früher oder später, das „Computerviren“ unter Linux keine große Rolle spielen. Das liegt unter anderem an der geringen Verbreitung [auf dem Desktop], aber bestimmt auch an der strengeren Benutzerrechte-Architektur. [1] Wahrscheinlich ist es eher meiner jahrelangen Windows-Nutzung geschuldet (Luke Filewalker hat mich damals unter Windows ME vor dem ein oder anderen Schädlich bewahrt), aber auch unter Linux wollte ich gerne einen Virenschutz parat haben, mit dem ich zumindest on demand die wichtigsten Daten (Home-Verzeichnis, Downloads etc.) scannen kann. Das populärste Beispiel dafür ist das quelloffene ClamAV. Vielleicht habt ihr schon einmal davon gehört, auch unter Windows ist der Virenscanner zu haben, wie ich 2014 schon einmal berichtete.

ClamAV lässt sich recht einfach installieren

sudo apt-get install clamav clamav-freshclam

und auch umfangreich konfigurieren, was beispielsweise das Updateverhalten, die Aktion bei Erkennung und das Logging angeht. Darauf möchte ich aber in diesem Beitrag nicht eingehen. Das könnt ihr z.B. hier nachlesen. Scans auf eine Datei oder ein Verzeichnis können im Terminal mit dem Befehl clamscan ausgeführt werden. Auch eine grafische Benutzeroberfläche gibt es (clamtk), die man sich dazuinstallieren kann, aber ich konnte damit nicht viel anfangen.

inoffizielle Signaturen

Ich möchte euch an dieser Stelle gerne noch etwas anderes zeigen: ClamAV kann um „inoffizielle“ Malware-Signaturen ergänzt werden, um die Erkennungsrate zu verbessern. Hier am Beispiel der SaneSecurity Signatures. [5] Das erhöht zwar potentiell die Chance für Falschmeldungen (false positives), das war bei mir aber bisher nur unter Windows der Fall.

Die Einrichtung dieser Signaturen besteht aus mehreren Installationsschritten, die ich hier aufgrund des Beitragsumfangs nicht einzeln durchgehen werden, aber auf der offiziellen github Seite ist eine ausführliche Schritt-für-Schritt Installationsanleitung für Ubuntu (auch für andere Distributionen).

Skript für manuelle Überprüfung

In meinem Anwendungsszenario, also einer Dual-Boot Installation mit Ubuntu als Produktivsystem und Windows 10 als Backup, wollte ich in unregelmäßigen Abständen Dateien überprüfen, die ich mit Windows-Rechnern gemeinsam bearbeite oder versende. Es ist bei mir also nicht notwendig, dass sich die Virensignaturen mehrmals am Tag selbstständig aktualisieren, das erhöht nur unnötig die Serverlast des Anbieters und verursacht Betriebskosten.

Um das Aktualisierungsintervall der Signaturen zu ändern, könnte ich die Konfigurationsdatei unter

/etc/clamav/freshclam.conf

anpassen (z.B. mit nano im Terminal!). Ich habe mich aber einfach dazu entschieden, den Dienst freshclam nicht beim Systemstart zu laden, weil er sowieso bei einem manuellen Aufruf zuerst beendet werden müsste. [6]

sudo update-rc.d clamav-freshclam disable

Die SaneSecurity Signaturen werden nicht automisch aktualisiert, sondern nur über den Aufruf des gerade installierten Skripts clamav-unofficial-sigs.sh.

Dann habe ich mir folgendes bash-Skript zusammenbastelt, das ich bei Bedarf ausführe. Ich möchte es hier mit euch teilen! 🙂 Es aktualisiert zunächst manuell und „still“ die Virendatenbank, führt dann einen Scan des Benutzerverzeichnisses durch und gibt ggf. Funde aus (es wird nichts unternommen!). Ihr könnt es euch als *.sh Skript speichern. Nach dem Anpassen eurer Dateipfade müsst ihr die Datei dann noch mit chmod als ausführbar markieren und ihr könnt die Datei wie eine Anwendung per Mausklick starten. Allerdings als root, da sonst das Aktualisieren der Signaturen nicht funktioniert.

#!/bin/bash
echo "Cedric's ClamAV Scanner-Skript 1.0"
if (( $EUID != 0 )); then
    echo "Bitte mit erhöhten Rechten starten!"
    exit
fi
echo -n "Aktualisiere ofizielle Signaturen... "
#sudo killall freshclam
freshclam --quiet --no-warnings
echo "OK"
echo -n "Aktualisiere inoffizielle SaneSec Signaturen... "
/usr/local/sbin/clamav-unofficial-sigs.sh -s
echo "OK"
#echo "EINGABE, um Scan zu starten"
#read
echo -n "Startzeit: "; date +"%T"
echo "Überprüfe /home ... "
clamscan --infected --recursive ~

Backup in der Cloud #02: Dateien verschlüsseln

[…] Zum Schutz der eigenen Privatsphäre sollten die auf die Cloud hochgeladenen Daten stehts verschlüsselt sein. Nicht nur, weil man nie weiß, in welchen Händen die Daten gelangen, oder ob euch mal die Zugangsdaten entwendet werden: So durchsucht z.B. Microsoft bei OneDrive auch mit Bots systematisch die OneDrive-Konten seiner Benutzer auf nicht regelkonforme Inhalte, wie ihr zum Beispiel hier nachlesen könnt. Mit diesen vier Tools geht das Verschlüsseln eurer Daten ganz einfach von der Hand:

++ 7-Zip ++ VeraCrypt ++Cryptomator ++ deja-dup ++

Das bekannte Packprogramm 7-Zip bietet beim Komprimieren auch eine Verschlüsselung des Archivinhaltes inklusive der Dateinamen mit AES-256 an. Wer bei großen Dateimengen nicht stundenlang warten möchte und genug Speicherplatz zur Verfügung hat, reduziert einfach die Kompressionsstärke. Zur Website ->

VeraCrypt ist der inoffizielle Nachfolger des bekannten Tools TrueCrypt und gilt als „sicher“. Erstellte Container können mit gängigen Verschlüsselungsstandards sicher, auch kombiniert verschlüsselt werden. Der Container wird anschließend über das Hauptprogramm eingebunden und als virtuelles Laufwerk dargestellt. Die Methode ist bei vielen kleineren Dateimengen eher etwas arbeitsaufwendig. Zur Website ->

Das aus Deutschland stammende quelloffene Tool Cryptomator erfreut sich zunehmender Popularität. Im Programm können wie u.a. bei VeraCrypt verschlüsselte Container angelegt werden, die aber (und das ist das neue) automatisch in Teilcontainer aufgesplittet werden, so dass kein unflexibles „Monsterarchiv“ entsteht. Außerdem werden bei einer Aktualisierung des Containerinhaltes immer nur die betroffenen Teilcontainer geändert, so dass auch nur diese neu hochgeladen werden müssen, was Zeit und Traffic spart. Das Tool kann zudem bequem in die gängigen Uploader-Ordner von OneDrive, Dropbox usw. eingebunden werden. Zur Website ->

Das unter Debian-Linux und Derivaten wie Ubuntu verbreitete Programm deja-dup (Duplicity), auch als Datensicherung bekannt, nutzt schon lange einen ähnlichen Ansatz wie Cryptomator. Der zu sichernde Inhalt wird auf Wunsch verschlüsselt und automatisch in ca. 25 mb große Teile aufgesplittet. Die Daten können neben einer lokalen Sicherung auch automatisch mit einem Netzwerklaufwerk, Amazon Cloud oder einem WebDAV-Dienst synchronisiert werden. Die Verwendung von deja-dup ist sehr einfach, bei mir kommt es jedoch zu Problemen, da auf Grund der kleinen Dateiteilgrößen von 25Mb schnell das Dateianzahllimit auf meinem Cloud-Speicher erreicht ist.* Deja-dup ist in den gängigen Paketquellen enthalten, ansonsten ist es hier zu finden.

*Werksseitig bietet deja-dup wenig Einstellungsmöglichkeiten. So lässt sich auch nicht die Splitgröße der Backups einstellen. Auf launchpad gibt es eine angepasste Version, die eine Veränderung dieser Größe zulässt. Der Code kann via bazar empfangen und mit cmake kompiliert werden.