Einen verschlüsselten Ordner unter Debian 12 mit eCryptFS erstellen

Zuerst musst du es installieren.

sudo apt install ecryptfs-utils

Dann konfigurierst du eCryptFS

ecryptfs-setup-private

Es wird nach einer Login-Passphrase und einer Mount-Passphrase gefragt. Die Login-Passphrase ist die gleiche wie Ihr normales Login-Passwort. Die Mount-Passphrase wird zur Ableitung eines Hauptschlüssels für die Dateiverschlüsselung verwendet. Lass diese leer, um einen zu erzeugen, da dies sicherer ist. Melden dich ab und melden dich wieder an.

Du wirst feststellen, dass eCryptFS zwei Verzeichnisse angelegt hat: „Private“ und „.Private“ in deinem /home Verzeichnis. Das Verzeichnis ~/.Private enthält verschlüsselte Daten, während du auf die entsprechenden entschlüsselten Daten im Verzeichnis ~/Private zugreifen kannst. Wenn du dich anmeldest, wird das Verzeichnis „~/.Private“ automatisch entschlüsselt und dem Verzeichnis „~/Private“ zugeordnet, so dass du darauf zugreifen kannst. Wenn du dich abmeldest, wird das Verzeichnis „~/Private“ automatisch ausgehängt und der Inhalt des Verzeichnisses „~/Private“ wird wieder in das Verzeichnis „~/.Private“ verschlüsselt.

Nun kannst du mit folgendem Befehl den Ordner „~/Private“ mounten und entschlüsseln:

ecryptfs-mount-private ~/.Private ~/Private

Tippe dazu deine Passphrase ein und drücke ENTER

Nun kannst du alle wichtigen Datei die du verschlüsseln wilst in den Ordner „~/Private“ ablegen.

Mit dem folgenden kannst du das Verzeichnis „unmounten“ und somit verschlüsseln.

ecryptfs-umount-private ~/Private

Das musst du aber in der Regel nicht von Hand machen, weil beim runterfahren das Verzeichnis automatisch verschlüsselt wird, wie schon etwas weiter oben beschrieben.

Keymap im Terminal unter Debian ändern

Wenn du nach der Installation von Debian nur ein anderes Tastaturlayout als deutsch hast, kannst du mit diesem Tool das deutsche Tastaturlayout einstellen.

Du kannst die Pakete „console-data" und „console-setup“ verwenden.

sudo apt install console-data console-setup

Nach dem du den Befehl ausgeführt hast startet die Installation und du kannst ein anderes Layout auswählen.

Wählen Sie „Select keymap from archlist“

Dann „qwertz“

Im Anschluss wählst du

Und dann noch „latin1_nodeadkeys“

Anschließend drücken sie auf „OK“ und du hast erfolgreich dein Tastaturlayout auf „deutsch“ umgestellt.

Absicherung eines Debian Server

Bei den meisten Providern für vServer aller Art, gibt es die Möglichkeit den Server automatisch installieren zu lassen. Daher zeige ich jetzt nicht die komplette Installation von Debian 12. Das werde ich in einem anderen Tutorial noch nachholen. Wir gehen nun bei dieser Anleitung davon aus, das wir einen frisch installierten Debian Server vor uns haben. Am besten noch haben wir uns mit dem Root-User angemeldet.

Non-Root User anlegen und mit sudo Rechten ausstatten

Nun kannst du erstmal einen non-Root-User anlegen und diesem sudo Rechte übertragen.
Dazu nutzen wir folgenden Befehl

adduser bernd

Dort wird nach einem Passwort gefragt und noch ein paar Andere Daten. Das Passwort ist wichtig die anderen Daten kannst du auch ohne Eingabe mit Enter bestätigen. Zum Schluss noch die Eingabe eines Y und der User „bernd“ ist angelegt. Du kannst natürlich einen selbst gewählten Namen nutzen.

Dann installierst du das Paket sudo

apt install sudo

Im Anschluss kannst du dem Nutzer „bernd“ die sudo Rechte zuweisen.
Das sind im Prinzip Admin Rechte für das System. So brauchst du dann nicht mehr mit Root anmelden und hast trotzdem die Möglichkeit Updates einzuspielen und Pakete zu installieren.
Nun die Gruppenzuweisung von sudo an User „bernd“

usermod -aG sudo bernd

Nun kannst du dich mit dem Command „exit“ mit dem User Root abmelden.

exit

Dann melden wir uns mit dem User bernd an

ssh nonroot@deineip

Dann kannst du es gleich mal ausprobieren, ob sudo Rechte vorhanden sind. Wir aktualisieren einfach mal unsere Paketliste. Dort werdet ihr nach dem User-Passwort von „bernd“ gefragt.

sudo apt update 

SSH Public Key Authentifizierung

Dieser Part ist für Linux Systeme beschrieben für Windows findet ihr hier eine Anleitung.
Der Schritt findet auf deinem Computer und nicht auf dem Server statt. Für euren persönlichen PC Account habe ich den Namen user genommen. Also ist euer Home Verzeichnis: /home/user

Nun öffnest du deinen Terminal und wechselst in das versteckte Verzeichnis „.ssh“ – Dieses liegt in deinem /home Verzeichnis.

cd /home/user/.ssh 

Wenn es dieses noch nicht gibt dann leg es einfach mit „mkdir .ssh“ an.
Nun legst du in diesem Ordner unser Schlüsselpaar bestehend aus Public und Private Key .

 ssh-keygen -b 4096

Dort wirst du gefragt wie du die Schlüsseldatei nennen möchtest, ich hab sie im Screenshot key01 genannt.
Dann noch eine Passphrase und nochmal bestätigen. Dann Enter und zack ist das Schlüsselpaar erstellt und kann verwendet werden.

Nun musst du noch den Public Schlüssel auf das Zielsystem übertragen, dafür nutzt du den Befehl
ssh-copy-id

ssh-copy-id -i /home/user/.ssh/key01.pub bernd@ipvomserver 

Dann wirst du wie bei der SSH Verbindung nach deinem Passwort vom Server User gefragt. Dieses gibst du ein und dann wird der Public Schlüssel auf den Server geschoben. Wenn das alles geklappt hat, kannst du dich ohne Passwort nur mit Passphrase und Schlüssel anmelden.

ssh -i /home/user/.ssh/key01 bernd@ipvomserver

Konfiguration SSH

Nun widmen wir uns dem SSH-Dienst und konfigurieren diesen so das er die nötigsten Einstellungen bekommt. Dazu musst du die Konfigurations-Datei des SSH-Dienstes bearbeiten.
Diese öffnest du mit folgendem Befehl:

sudo nano /etc/ssh/sshd_config

So etwa sollte die Konfigurations-Datei aussehen nun musst du einige Werte anpassen. Wenn du die Datei runter scrollt kommen noch einige weitere Werte die angepasst werden müssen.

Der Wert Port steht am Anfang auf 22. Aus Sicherheitsgründen sollten wir diesen ändern.
Dazu kannst du dir eine Zahl ab 10240 aussuchen

LoginGraceTime 2m vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PermitRootLogin noRoot soll sich weder mit Password noch Pubkey anmelden können
StrictModes yes vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
MaxAuthTries 6 vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PubkeyAuthentication yes Pubkey Schlüssel Authentifizierung
PasswordAuthentication noDieser Wert wird auf No gesetzt weil wir das verbieten wollen

Wenn diese Werte angepasst sind, kannst du die Konfigurationsdatei speichern [Strg]+[O] + [ENTER] und mit [Strg]+ [X] verlassen.

Nun startest du den SSH-Dienst neu:

sudo service ssh restart

Fail2Ban installieren

Nun installierst du ein Tool, das Bots und Hacker davon abhalten soll unseren SSH Zugang zu übernehmen. Dabei bemerkt das Tool, wie von bestimmten IP Adressen Anmelde-Versuche kommen. Wenn diese eine bestimmte Anzahl von malen nicht funktioniert hat, sperrt Fail2Ban diese IP für einen bestimmten Zeitraum.
Installation:

sudo apt install fail2ban

Firewall UFW

Ohne eine Firewall geht es nicht. Die bekannteste Firewall ist IPTables. Aber diese ist in der Konfiguration ziemlich schwierig. Daher nutzen wir für unseren Server UFW.
Also gleich mal installieren:

sudo apt install ufw

Nun müssen wir die Firewall „UFW“ noch konfigurieren.
Die Firewall blockiert per Anfangseinstellung alle Ports, d.h. das erst einmal kein Dienst von Außen aufgerufen werden kann. Aber wir brauchen ein paar offene Ports, damit wir unserer Server nutzen können. Da fällt mir gleich der erste ein, der SSH Port, sonst kannst du dich nicht an der Konsole anmelden. Also stellst du diesen eine. Diesen Port solltest du von 22 auf einen Wunschport ändern im Kapitel „Konfiguration SSH“. Bei mir nehme ich jetzt Port 10240

sudo ufw allow 10240/tcp 

Dann öffnen wir gleich mal noch die Ports HTTP und HTTPS diese werden in der Regel benötigt. Wenn du keinen Webserver betreiben möchtest, kannst du diesen Schritt überspringen.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Jetzt hast du die ersten Ports geöffnet aber müssen noch die Firewall einschalten. Daher ist es wichtig das du den richtigen SSH Port angegeben haben, sonst sperrst du dich selbst aus dem System aus.
Firewall einschalten:

sudo ufw enable 

Diese Info musst du mit einem „y“ bestätigen.
Es kommt noch die Meldung: „Firewall is active and enabled on system startup“
Im Anschluss ist nun auch die Firewall aktiv. Und sollte einige Angriffe abhalten. Wenn du einen neuen Dienst installierst, musst du dann in Zukunft die dazugehörigen Ports öffnen.