Laptop mit Debian härten

Begonnen von Neo, 25.10.2022, 16:15

Vorheriges Thema - Nächstes Thema

Neo

Hallo Forum,

ich plane meinen Rechner nach dieser Anleitung mit Debian minimal (KDE/Testing) zu installieren.
Geplant ist auf jeden Fall Firefox und Thunderbird nach Mike seiner Anleitung zu installieren. Verwendet werden soll dann noch Gajim, Libreoffice, KeepassXC, Virtualbox.
Was bzw. wie würdet ihr diesen Rechner härten? Würdet ihr z.B. bei der Installation die Festplatte verschlüsseln oder ist das eher nicht notwendig, mit einem sicheren Passwort für den User.
Was ist sonst noch zu empfehlen, um Sicherheitsrisiken zu minimieren?

LG
Neo👋


[MOD] Link repariert

sibylla

#1
Zitat von: Neo am 25.10.2022, 16:15
Was bzw. wie würdet ihr diesen Rechner härten?
Guckst du hier bei Mike in der Artikelserie  Linux härten

Ich nutze z.B. firejail mindestens für firefox und thunderbird.
Ich finde auch wichtig, dass man nicht unbemerkt einen Port nach außen offen hat. (So man keinen Dienst anbietet.) Da schau ich schon ab und zu in meiner Fritzbox nach.

p.s. aktuell ist Debian 11 bullseye. Der Artikel bezieht sich auf Debian 10 buster. Macht ja vielleich nix, will's nur gesagt haben.

Neo

Danke sibylla‍  :TOP
Frage: Ist diese Artikelserie aus 2016 heute noch gültig bzw. kann man diese heute noch so anwenden?

Fjellrev

#3
Zitat von: Neo am 25.10.2022, 21:14kann man diese heute noch so anwenden?
Ja, kann man. Ob der Tipp, dass man Sudo nutzen sollte, aber wirklich sicherer ist, ist fragwürdig. Es gibt verschiedenste Leute die anderer Ansicht sind (es lässt sich aber jederzeit nachträglich umstellen).
Edit: Ich bin ein Depp. Das Zitat bezieht sich auf Mikes Artikelserie, nicht auf Sybillas Anmerkung. Ich meine den Ursprünglich erwähnten Artikel im ersten Post.

Es gibt auch die Möglichkeit eine Installation mit KDE noch minimalistischer durchzuführen (ohne bspw. Konqueror), ob das aber sinnvoll ist (weniger Pakete gegen Einfachheit)? Bei großen Updates (stable -> testing) könnte man sich so aber auch Probleme einhandeln. Dafür müsste man andere Pakete bei der Installation angeben. Falls du dir das zutraust, oder für wichtig erachtest, kann man dir sagen wie, aber empfehlenswert ist das denke Ich nicht.

Zur Festplattenverschlüsselung: der Login schützt deine Daten nicht vor physischen Angreifern, die deine Festplatte/Laptop mitnehmen.
Wenn du dein Gerät mit dir herumträgst solltest du auf jeden Fall bei schützenswerten Daten die Festplatte verschlüsseln.
Je nach Lage wäre das auch bei stationären Systemen sinnig.
Falls du planst den Datenträger ggf. mitsamt allen Daten je zu entsorgen, bzw. nach löschung zu verkaufen, wäre sie auch hilfreich.

sibylla

Zitat von: Neo am 25.10.2022, 21:14
Ist diese Artikelserie aus 2016 heute noch gültig bzw. kann man diese heute noch so anwenden?
Im Detail vielleicht nicht.
So wurde z.B. die Firewall iptables ab Debian 10 durch nftables ersetzt.
Ein sudo geht bei mir auch nicht, dann mache ich statt dessen vor dem netstat ein su. Also man muss sich schon durchwurschteln. Aber ich denke das Grundsätzliche ist sicher noch sehr relevant.

Neo

Danke euch. Gibt es vielleicht andere (aktuelle) Artikel zu diesem Thema, die man empfehlen kann?

Fjellrev

Aktuelle, empfehlenswerte Artikel zum Thema sind mir nicht bekannt.
Abgesehen von ein paar Grundregeln, welche in Mikes Artikelserie auch genannt wären, hängt das ganze auch äußerst stark von deinen genutzten Programmen, Kenntnissen, und gewünschtem Zeitaufwand ab. Außerdem ergeben manche Empfehlungen auch nur Kontextweise sinn, und sind für Desktopsysteme unsinnig/unmöglich umzusetzen.
Daher gestaltet es sich auch eher schwierig ordentliche, gültige Texte zur Thematik zu verfassen.

Für Debian sollte natürlich entsprechende Lektüre bevorzugt werden, welche jedoch in Teilen sehr angestaubt ist, und somit keine Kopieren & Einfügen Lösungen beinhaltet:
Securing-Debian-Handbuch

Am Ende besteht jede Linux Distribution aus verschiedener Software. Zum härten eines Systems muss man sich mit diesem auskennen, und wissen, welche Software für was verwendet wird, um diese zu konfigurieren, zu ersetzen, oder zu entfernen.
Aber denk daran: Distributionen versuchen für gewöhnlich selbst, stetig die Sicherheit zu verbessern, so schlecht fährt man also gar nicht mit einer (ordentlichen) Distribution, wenn man sich auch an die Sicherheitsempfehlungen dieser hält, und sich etwas mit dem System vertraut macht.

Aber um doch etwas spezifischere Dinge zu sagen:
Um den Kernel zu härten gibt es verschiedene Möglichkeiten.
Vom anpassen bestimmter Optionen per sysctl, über die Nutzung von Kernel Parametern wie "lockdown=confidentiality", als auch das kompilieren des Kernels mit eigener, auf das System & Sicherheit zugeschnittener Konfiguration, hin zu Kernel Patches - das im Artikel von Mike erwähnte Grsecurity ist aus meiner Sicht aber eher nichts, da seit 2017 hinter einer Paywall.
Welche Optionen dir zur Verfügung stehen hängt aber von der Kernel Version ab, die du verwendest.
Für Debian lassen sich diese aber vermutlich gut recherchieren, da man hier üblicherweise bei "einer" LTS-Version bleibt. Entsprechende Artikel die für die Debian Ausgabe (11/Bullseye, etc) verfasst wurden, sollten sich also umsetzen lassen.

Weiterhin gibt es die Möglichkeit hardened_malloc vom GrapheneOS Entwickler Daniel Micay zu nutzen, falls du es nicht scheust, dich selbst um Aktualisierungen dieser Komponente zu kümmern, und sie selbst zu kompilieren (bei Fragen dazu kann dir sicher jemand helfen).
hardened_malloc releases auf Github
Für Software die ein paar Macken bei Nutzung per /etc/ld.so.preload hat (in meinen Fall Firefox und VLC), kann man /etc/ld.so.preload auch einfach in Firejail zur Blacklist (über Profil oder Kommandozeilenparameter) für die jeweilige Anwendung hinzufügen.


Ich bin auch einmal die Artikelserie von Mike aus dem Jahr 2016 durchgegangen, und sie sollte weitgehend so anwendbar sein - die genannten Profile für AppArmor & Firejail müssten ggf. angepasst werden, diese habe Ich nicht geprüft. Im Fall von Firejail sollten aber eigentlich ordentliche Profile für einige Anwendungen mitgeliefert werden.
Bei folgenden Punkten hätte Ich ein paar Sachen zu erwähnen:
· In Teil 2 der Serie, im Abschnitt 3.2, wird unter "Überflüssige Dienste deaktivieren" das Programm netstat empfohlen, dieses ist unter Debian nicht standardmäßig installiert. Stattdessen kann man einfach  "ss" verwenden (als Root oder mit vorangestelltem "sudo", zum Anzeigen der Programme zu jeden Socket).
ss -nltup
· In Teil 2, Abschnitt 3.2: Paket-Abhängigkeiten wird empfohlen, beim installieren über apt "--no-install-recommends --no-install-suggests" anzuhängen.
Das lässt sich auch standardmäßig festlegen, wobei "Vorschläge" sowieso nicht standardmäßig installiert werden.
Dafür einfach als Root eine Datei im Ordner /etc/apt/apt.conf.d/ anlegen, mit beliebigem Namen, bspw. "norecommendations".
In dieser mit einen Editor (bspw. nano) folgendes eintragen:
APT::Install-Recommends "false";
Hinterher solltest du sicherheitshalber noch deren Zugriffsrechte/Besitzer prüfen, z.B. mit
ls -l /etc/apt/apt.conf.d/norecommendations
Das sollte in den ersten 4 Teilen "-rw-r--r-- 1 root root" für die Datei ausgeben, andernfalls mithilfe von chown und chmod verändert werden.
Paket-Empfehlungen lassen sich dann trotz dieser Einstellung per "--install-recommends" oder selektiver, zusätzlicher Angabe dieser innerhalb der Paketauflistung installieren.
· In Teil 2, Abschnitt 3.2: Firewall konfigurieren - siehe sibyllas Post (nftables).
· Die Firejail Entwickler empfehlen auf Github Firejail aus dem Backports-Repo zu installieren, darauf wird in der Anleitung nicht hingewiesen, finde Ich erwähnenswert.

Sehr wichtig halte Ich diesen Satz im KISS Abschnitt unter 3.1:
Zitat von: https://www.kuketz-blog.de/linux-systemhaertung-basis-linux-haerten-teil2/Setzt keine Tools oder Maßnahmen ein, die ihr nicht versteht. Es sollte alles nachvollziehbar und überschaubar sein.
In jeden Fall solltest du für dich (und mögliche Helfer) dokumentieren, welche Änderungen du vornimmst, da das bei eventuell auftretenden Problemen hilfreich ist. Optionen wie hidepid für das Proc Dateisystem vertragen sich z.B. nicht mit PolicyKit. ;)

Jux

#7
Für Debian gibt es ein Paket(hardening-runtime), das Voreinstellungen mitbringt.

Ich habe mich auch mal an ein Hardening herangewagt. Einfach ist es nicht, wenn man sich damit noch nicht beschäftigt hat. Man kann für sich abwägen, was man braucht und was man lieber vorerst sein lässt.

Ein paar Tipps gibt kann man auch auf der folgenden Seite nachlesen.
madaidans-insecurities.github.io

Ein paar Fragezeichen hat dann aber eine Einstellung hinterlassen: "efi=disable_early_pci_dma".

Damit startet eine Samsung NVME nicht mehr bzw. nach Grub wird es blau oder an einen anderen PC erscheint die Bios-Passworteingabe und alles ist eingefroren. Ich konnte noch kurz ein "EFI stub: ERROR: exit_boot() failed!" lesen.

Eine SSD läuft mit dem selben Setup und an beiden PCs problemlos.

Jux

In der Tat scheint etwas nicht zu stimmen, es scheint nicht an der Samsung NVME gelegen zu haben. Nach einem Secure Erase und einer neuen Installation von Ubuntu kann ich einwandfrei mit der Samsung NVME die Option "efi=disable_early_pci_dma" verwenden. Die Option scheint richtig zu funktionieren. So viel kann ich sagen, eine Windows Installation war noch auf der NVME und /efi wurde geteilt und ich habe auch eine Vermutung wie es dazu kam. :-X