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 ~

Linux-Tagebuch #10 – Tipps für den Alltag

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. Nach einem knappen Jahr Pause folgen nun die weiteren geplanten geplanten Beiträge zu dieser Artikelserie. Die letzten Artikel befassen sich mit weiteren Anpassungen, Backups, Gaming und einem finalen Fazit. Zu Teil 1…

Im letzten Tagebuch-Eintrag vom November 2020 ging es ja um die ersten Schritte nach der Installation von Ubuntu 20.04. Diese Version ist übrigens nach wie vor die aktuelle, stabile Hauptversion von Ubuntu. Die nächste Ausgabe erscheint im kommenden April, wird aber das Rad sicherlich nicht neu erfinden, auch im Bezug auf diese Beitragsserie. 🙂

Der aktuelle Stand

Seit einigen Wochen läuft Ubuntu bei mir auf einem gebraucht angeschafften 15″ Notebook von TUXEDO mit einem Intel Core i7 und einer NVIDIA RTX 2060, welches hunderprozentige Linux-Unterstützung bietet (also ein andere Hardware wie im letzten Beitrag!). Und ich muss wirklich sagen, dass ist ein wahrer Segen. Nach einer anfänglichen Umgewöhnungsphase komme ich soweit gut zurecht, abgesehen von einigen Spirenzien mit dem WLAN-Drucker. Und für den „Fall“ lässt sich über Dual-Boot noch Windows 10 starten.

Ich habe leider etwas lasche dokumentiert, aber im folgenden möchte ich euch noch von einigen Alltags-Anpassungen berichten, die ich in meinem Ubuntu vorgenommen habe und die für euch vielleicht auch interessant sein könnten.

Einige praktische Erkenntnisse

In den letzten Wochen konnte ich mich intensiv mit meinem neuen Betriebssystem auseinandersetzen. Hier einige grundlegende Erkenntnisse, die ich an euch weitergeben möchte.

  • Auch wenn man es im Alltag (hoffentlich) selten benötigt, sind ein paar grundlegende Kenntnisse (durch Verzeichnisse navigieren, wie funktionieren Aufrufe mit Parameter) über den Umgang mit dem Terminal und der Shell „bash“ meiner Meinung nach essentiell für den Umgang mit Linux. Hier erfahrt ihr beispielsweise mehr.
  • Mit dem Hotkey Strg+C könnt ihr einen laufenden Prozess oder eine fehlerhafte Eingabe im Terminal abbrechen.
  • Kleiner, aber wichtiger Unterschied: Verzeichnisangaben unter Linux werden immer mit einem Vorwärts-Slash „/“ angegeben! Bei Windows inst es ein Backslash „\“. Linux unterscheidet dabei auch zwischen Groß- und Kleinschreibung sowie Dateiendung.
  • Verzeichnisangaben können in Linux relativ oder absolut sein. Relativ bedeutet vom aktuellen Arbeitsverzeichnis ausgehend und wird ohne ein führendes Slash angegeben. Ein Beispiel: ~/Bilder/Urlaub. Absolut bedeutet immer vom obersten Wurzelverzeichnis „/“ ausgehend und wird immer mit einem führenden Slash angegeben. Die Tilde „~“ stellt das Home-Verzeichnis dar (die Benutzerdaten). Ein Beispiel: /opt/Programm/config
  • Im Internet gibt es viele Anleitungen und Lösungsvorschläge zu Problemen, die mit dem Copy & Paste von Terminaleingaben einhergehen. Es ist aus eigener Erfahrung selten eine gute Idee, einfach blind Befehle zu kopieren und auszuführen, insbesondere mit Admin-Rechten (root, sudo), da man sich so das System zerschießen kann.
  • Die in den offiziellen Paketquellen vorhandene Software liegt unter Umständen nicht in der neuesten Version vor oder ist sogar veraltet. Wenn ihr euch ein bestimmtes neues Programm installieren wollt, prüft zunächst, in welcher Version es vorliegt. Je nach Anforderung ist es aus eigener Erfahrung, die aktuellste Version über eine fremde Quelle (Archiv, PPA, …) zu beziehen. Das könnt ihr über das Softwarecenter oder mit dem Befehl apt show paketname prüfen.

Weitere Anpassungen

Einige der Tipps erfordern die Eingabe von Befehlen über das Terminal (bash), dieses könnt ihr im aktuellen Arbeitsverzeichnis über den Dateimanager Nautilus, oben im Menü, oder mit Strg+Alt+T öffnen.

Mehr Anwendungen im Startmenü (Aktivitäten)

Um den Platz des Bildschirms besser zu nutzen (auch wenn er nicht groß ist) und schneller das gewünschte Programm zu finden, habe ich mir die Gnome Extension More columns in applications view geholt, über die gnome-tweaks Anwendung angepasst (siehe vorherigen Beitrag) und so die Anzahl auf acht Apps pro Zeile erhöht.

Schnell zwischen Arbeitsflächen wechseln

Auch aus Windows 10 kennt ihr bestimmt die Möglichkeit, mit mehreren virtuellen Desktops zu arbeiten. Ein Feature, welches ich lange unterschätzt habe und den Arbeitsfluss enorm beschleunigen kann. Nun, unter Linux gibt es diese Funktion natürlich schon länger. Aber auch hier klickt man sich ganz schön blöd, wenn man erstmal mehrere Desktops offen hat und ständig wechseln muss. Ich habe mir deshalb die Gnome Extension Top Panel Scroll geladen. Nun kann ich einfach den Mauszeiger auf die obere Titelleiste bewegen und mithilfe des Mausrads die Arbeitsflächen umschalten, das ist komfortabel und geht deutlich schneller.

Hintergrund des Login-Bildschirms ändern

Damit ist auch alles gesagt. Sorgt für einen einheitlichen Look und schafft Abhilfe, wenn man den Vorgabe-Hintergrund nicht mehr sehen möchte. Leider ist das so über die Einstellungen ohne weiteres nicht möglich. Abhilfe schafft ein kleines und einfaches bash Skript, welches ihr euch hier anschauen könnt.

Systemstart beschleunigen

Von Windows kennt ihr vielleicht das Prefetching. Häufig gestartete Programme und Daten werden beim Systemstart im Arbeitsspeicher vorgeladen, um den ersten Start zu beschleunigen. Auch so eine Funktion kann unter Ubuntu 20.04 bequem nachinstalliert werden, mit dem Paket preload. Dazu reicht eine einfache Installation mittels

sudo apt-get install preload

aus. Eine weitere Konfiguration ist in der Regel nicht notwendig. Gerade langsamere Systeme ohne SSD können davon profitieren. Weitere Details siehe wiki.ubuntuusers.de.

proprietäre Media-Codecs nachinstallieren

Nach einiger Zeit habe ich bemerkt, dass ich nicht alle in meinen bisherhigen Daten vorhandenen Media-Formate abspielen kann. Ubuntu installiert die Codecs nicht automatisch mit, da sie nicht quelloffen sind. Diese können nachinstalliert werden

sudo apt install ubuntu-restricted-extras

Das betrifft zum Beispiel MP4-Videos. Siehe auch hier.

7-zip Unterstützung im Kontextmenü

Der Dateimanager Nautilus bringt ja bereits über das Kontextmenü (Rechtsklick) eine Funktion für das bequeme (ent)packen von Dateien mit sich. Damit ihr damit auch 7-Zip Archive in vollem Umfang bearbeiten könnt, sind ein paar Zusatzpakete notwendig.

sudo apt install rar unrar p7zip-full p7zip-rar

Es ist also keine externe Anwendung wie bei 7-Zip unter Windows notwendig.

Ordner für Screenshots ändern

Unter Ubuntu (Gnome) gibt es die Möglichkeit, mit dem „Screenshot“ Tool Bildschirmaufnahmen zu machen (entspricht dem Snipping Tool unter Windows), oder direkt mit der „Drucken“-Taste. Letzeres Speichert dann das Bild automatisch ab. Nutzt ihr diese Funktion häufiger, könnt ihr den Zielordner ändern, mit folgendem Befehl

gsettings set org.gnome.gnome-screenshot auto-save-directory "file:///home/$USER/ZIELORDNER"

Den Ordnerpfad müsst ihr natürlich entsprechend anpassen.

Zeilenumbruch bei langen Ordner- oder Dateinamen begrenzen (Nautilus)

Der Dateimanager Nautilus handhabt Ordner oder Dateien mit langen Namen etwas anders als man es vom Windows Explorer kennt. Der Zeilenumbruch findet deutlich später statt, was zu, meiner Meinung nach, zu unübersichtlichen Einträgen im Dateimanager führt. Die Anzahl der Zeilen, die Pro Datei oder Ordner angezeigt werden, bevor abgekürzt (…) wird, lässt sich begrenzen

gsettings set org.gnome.nautilus.icon-view text-ellipsis-limit "['2']"

Gutenprint Treiber für Canon-Drucker

Zeitgleich mit dem Notebook habe ich mir für Lau einen gebrauchten Canon PIXMA WLAN-Drucker gekauft. Leider wurde dieser von Ubuntu nicht im Netz gefunden. Selbst bei eingesteckter USB-Verbindung verweigerte dieser konsequent das Drucken oder Scannen. Um es es vorweg zu nehmen: Eine 100%ige Lösung habe ich leider nicht gefunden. Zunächst habe ich den offiziellen Linux-Treiber aus einem Archiv händisch installiert, wie z.B. hier beschrieben. Danach wurde der Drucker zwar unter Verwendung dieses Treibers korrekt erkannt und eingerichtet, gedruckt oder gescannt hat er aber leider trotzdem nicht.

Dann habe entdeckt, dass es ein freies Treiberpaket namens „gutenprint“ in Paketquellen gibt, welches Unterstützung für ältere Canon Drucker anbietet. Dieses habe ich installiert über

sudo apt install libusb-0.1-4 printer-driver-gutenprint

Für mehr Details siehe diesen Beitrag hier im Ubuntuusers-Forum.

Pinta als Paint-Ersatz

Selbst unter Windows 10 weiß ich Microsoft Paint als einfaches und vor allem schnelles Bildbearbeitungsprogramm, vor allem für Screenshots, noch sehr schätzen. Unter Ubuntu habe ich mich etwas länger umsehen müssen, bis ein Programm gefunden habe, welches vom Funktionsumfang und vor allem der Usability an Paint herankommt: Pinta

Das Grafiktool lässt sich unter Ubuntu bequem als Snap-Paket installieren über

sudo snap install pinta

Die Verwaltung läuft hier also nicht über die apt Paketmanager.

PDFs auftrennen oder zusammenfügen

Für mein Studium musste ich bereits mehrmals PDFs zusammenmergen, das geht super einfach mit dem Kommandozeilen-Tool pdftk, welches über apt installiert werden kann:

sudo apt install pdftk

Danach öffnet ihr ein Terminal (über Nautilus im Menü oben oder Strg+Alt+T) im Arbeitsverzeichnnis und könnt PDFs zusammenfügen mit dem Befehl

pdftk Datei1.pdf Datei2.pdf Datei3... cat output Zieldatei.pdf

Um zum Beispiel nur Seite 2-4 aus einem PDF Dokument auszutrennen

pdftk Quelldatei.pdf cat 2-4 output Zieldatei.pdf

Benutzeroberfläche neu starten, Prozesse abwürgen

Dass sich die Benutzeroberfläche (Desktop, GUI) aufhängt oder ich in einer Vollbild-Anwendung stecken bleibe, ist mir bisher glücklicherweise noch nicht passiert. Dennoch finde ich es wichtig zu wissen, dass es unter Ubuntu Linux nicht den „Froschgriff“ inklusive Task-Manager gibt. Grundsätzlich sollte das Verlassen einer Vollbild-Anwendung mit Escape oderüber Alt+Tab immer funktionieren. Schlägt das fehl, könnt ihr über den Hotkey Alt + F2, Strg + Alt + F2 oder das Terminal mit folgendem Befehl die GNOME-Benutzeroberfläche neu starten (Achtung, ungesicherte Arbeit geht unter Umständen verloren)

sudo systemctl restart systemd-logind

Alternativ könnt ihr auch Strg + Alt + Entf drücken. Wenn Ubuntu sich nicht aufgehängt hat, werdet ihr in 60 Sekunden abgemeldet.

Wenn ihr ein Prozess beenden wollt, der sich aufgehängt hat oder der sich nicht mehr schließen lässt, könnt ihr das über die Systemüberwachung (entspricht dem Task-Manager) machen, oder das Terminal. Tippt ihr

ps -u BENUTZER

ein, seht ihr von eurem Benutzer aus laufenden Prozesse.

Ihr braucht davon die Prozess-ID, um den Prozess mit

kill -15 -ID

zum Beenden aufzufordern, oder kill -9 -ID um diesen hart abzubrechen.

Blaulichtfilter

Gerade in der dunklen Jahreszeit ein praktischer Helfer gegen müde Augen. Während es dieses Feature beispielsweise bei aktuellen Android-Version schon ins System integriert ist, kann man sich unter Ubuntu z.B. mit redshift aus dem Software-Katalog Abhilfe schaffen. Die Farbtemperatur des Displays kann nach einem Schema oder fest mit Sonnen auf- und untergang verändert werden.

Akkulaufzeit verlängern (Notebooks)

Seid ihr frisch von Windows umgestiegen und habt das Gefühl, die Akkulaufzeit könnte besser sein, könnt ihr es mit dem Stromspar-Tool laptop-mode-tools versuchen. Um den Rahmen dieses Beitrags nicht zu sprengen, verlinke ich hier auf eine Anleitung mit weiteren Informationen.

Voraussetzung dafür ist, dass Ubuntu (der Linux Kernel) eure Hardware vollständig unterstützt und so z.B. Komponenten abschalten oder die Taktrate des Prozessors drosseln kann. Bei meinem TUXEDO ist eine entsprechende Funktion schon voreingerichtet (ich habe ein Control-Center).