Festplatten zu Proxmox hinzufügen

Text mit Chatgpt erstellt

1. Festplatten entschlüsseln und mounten

Die drei Festplatten werden beim Systemstart wie in der Anleitung auf der Seite automatisch entschlüsselt. Unter Debian fehlt

apt install systemd-cryptsetup

Anschließend wird das Btrfs-Dateisystem über einen Eintrag in /etc/fstab unter /mnt/nas eingebunden.

Die Einbindung lässt sich überprüfen mit:

lsblk -f
findmnt /mnt/nas
btrfs filesystem show /mnt/nas

Da Btrfs die drei Festplatten als gemeinsames Dateisystem verwaltet, muss das Dateisystem nur einmal gemountet werden.

2. Dateisystem in Proxmox registrieren (optional)

Damit die Kapazität und Auslastung des Dateisystems in der Proxmox-Weboberfläche angezeigt werden, kann es als Directory Storage hinzugefügt werden:

Datacenter → Storage → Add → Directory

Dabei wird /mnt/nas als Verzeichnis angegeben.

Anschließend kann die Mountpoint-Prüfung aktiviert werden:

pvesm set nas --is_mountpoint yes

nas ist dabei die zuvor vergebene Storage-ID.

Dadurch erkennt Proxmox, wenn das Dateisystem nicht eingebunden ist. Für die Verwendung als LXC-Bind-Mount ist die Registrierung als Proxmox-Storage allerdings nicht erforderlich.

3. Verzeichnisse in LXC-Container einbinden

Die Daten werden nicht auf die virtuellen Festplatten der Container kopiert. Stattdessen nutze ich LXC-Bind-Mounts, um ausgewählte Verzeichnisse direkt bereitzustellen.

Beispielsweise erhält mein Samba-Container mit der ID 104 Zugriff auf meine persönlichen und öffentlichen Dateien:

pct set 104 \
  -mp0 /mnt/nas/Arne,mp=/srv/share/Arne \
  -mp1 /mnt/nas/Public,mp=/srv/share/Public

Für einen Container mit der ID 105 werden die Medienverzeichnisse schreibbar eingebunden:

pct set 105 \
  -mp1 /mnt/nas/Public/Filme,mp=/mnt/nas/Public/Filme \
  -mp2 /mnt/nas/Public/Serien,mp=/mnt/nas/Public/Serien

Die Mountpoint-Nummern müssen im jeweiligen Container noch frei sein. Die Konfiguration lässt sich mit

pct config 105

überprüfen.

Nach einem Neustart des Containers stehen die Verzeichnisse unmittelbar zur Verfügung.

4. Berechtigungen für unprivilegierte LXC-Container

Eine Besonderheit sind die Dateiberechtigungen. Da meine LXC-Container unprivilegiert laufen, werden ihre Benutzer-IDs auf andere IDs des Proxmox-Hosts abgebildet.

Standardmäßig gilt beispielsweise:

  • LXC-UID 0 entspricht Host-UID 100000.
  • LXC-UID 1000 entspricht Host-UID 101000.

Die vorhandenen Btrfs-Dateien gehören allerdings teilweise der Host-UID 1000. Deshalb werden sie in den Containern zunächst als nobody:nogroup angezeigt.

Um die ursprünglichen Dateieigentümer beizubehalten, verwende ich gezielte POSIX-ACLs. Damit lässt sich beispielsweise dem Samba-Benutzer mit der gemappten Host-UID 101000 Schreibzugriff gewähren:

setfacl -m u:101000:rwx /mnt/nas/Arne
setfacl -m u:101000:rwx /mnt/nas/Public

Mit Default-ACLs kann der Zugriff auch für neu angelegte Dateien und Verzeichnisse vererbt werden:

setfacl -m d:u:101000:rwx /mnt/nas/Arne
setfacl -m d:u:101000:rwx /mnt/nas/Public

Bestehende Unterverzeichnisse benötigen gegebenenfalls zusätzliche ACL-Einträge. Die tatsächlich gemappte UID muss für jeden Container und Dienst geprüft werden.

5. Wichtige Hinweise

Außerdem ist zu beachten, dass Proxmox die Inhalte von LXC-Bind-Mounts nicht über das reguläre Container-Backup (vzdump) sichert. Die Daten auf dem Btrfs-Dateisystem benötigen deshalb eine separate Backup-Strategie.

Valheim Dedicated Server unter Proxmox LXC mit Ubuntu 24.04 installieren und sichern

Erstellt mit ChatGPT

In dieser Anleitung zeige ich, wie man einen eigenen Valheim Dedicated Server in einem Proxmox-LXC-Container mit Ubuntu 24.04 installiert und dauerhaft betreibt.

Der Server wird mithilfe von SteamCMD installiert und über systemd verwaltet. Dadurch startet er automatisch beim Hochfahren des Containers und wird bei einem Absturz selbstständig neu gestartet.

Außerdem zeige ich, wo Valheim seine Spielstände speichert, wie sich die Welten sichern lassen und wie man einen bestehenden Spielstand auf einem neuen Server wiederherstellt.

1. Voraussetzungen

Für diese Anleitung verwenden wir folgende Umgebung:

  • Proxmox VE als Virtualisierungsplattform
  • Einen LXC-Container mit Ubuntu 24.04 LTS (64 Bit)
  • Einen Benutzer namens steam
  • SteamCMD zur Installation des Valheim-Servers
  • systemd zur Verwaltung des Servers

Als Ausgangspunkt empfehle ich für einen kleinen privaten Server mindestens 2 CPU-Kerne und 4 GB Arbeitsspeicher. Bei größeren Welten oder mehreren gleichzeitigen Spielern kann mehr Arbeitsspeicher sinnvoll sein.

Alle folgenden Befehle werden direkt im Ubuntu-LXC-Container ausgeführt, sofern nicht ausdrücklich etwas anderes angegeben ist.

2. Ubuntu aktualisieren und benötigte Pakete installieren

Zunächst aktualisieren wir die Paketlisten und die bereits installierten Pakete:

apt update
apt upgrade -y

Für SteamCMD benötigen wir einige zusätzliche Pakete und 32-Bit-Bibliotheken.

Zuerst aktivieren wir die Unterstützung für die i386-Architektur:

dpkg --add-architecture i386

Anschließend installieren wir die benötigten Werkzeuge und Bibliotheken:

apt install -y \
    software-properties-common \
    nano \
    curl \
    wget \
    ca-certificates \
    lib32gcc-s1 \
    lib32stdc++6

Nun aktivieren wir das Ubuntu-Repository multiverse, das unter anderem SteamCMD enthält:

add-apt-repository -y multiverse
apt update

Danach installieren wir SteamCMD:

apt install steamcmd

Falls Ubuntu während der Installation nach der Annahme der Steam-Lizenzbedingungen fragt, müssen diese bestätigt werden.

SteamCMD befindet sich bei dieser Installationsvariante normalerweise unter /usr/games/steamcmd.

3. Steam-Benutzer mit Bash-Shell erstellen

Aus Sicherheitsgründen sollte der Valheim-Server nicht unter dem Benutzer root betrieben werden.

Wir erstellen deshalb einen eigenen Linux-Benutzer namens steam mit einem Home-Verzeichnis und der Bash-Shell.

adduser --shell /bin/bash steam

Während der Einrichtung vergeben wir ein Passwort. Die zusätzlichen Angaben wie Name oder Telefonnummer können übersprungen werden.

Falls der Benutzer bereits existiert, muss er nicht erneut angelegt werden. Wir können seine Shell bei Bedarf mit folgendem Befehl auf Bash ändern:

usermod -s /bin/bash steam

Anschließend wechseln wir zum neuen Benutzer:

su - steam

Mit folgendem Befehl überprüfen wir, ob wir im richtigen Home-Verzeichnis sind:

pwd

Die Ausgabe sollte lauten:

/home/steam

Alle nachfolgenden Befehle für die Serverinstallation führen wir unter diesem Benutzer aus.

4. Valheim Dedicated Server mit SteamCMD installieren

Der Dedicated Server von Valheim hat bei Steam die App-ID 896660.

Wir erstellen zunächst das Installationsverzeichnis:

mkdir -p /home/steam/valheim-server

Danach installieren wir den Server:

/usr/games/steamcmd \
    +force_install_dir /home/steam/valheim-server \
    +login anonymous \
    +app_update 896660 validate \
    +quit

SteamCMD meldet sich anonym bei Steam an, lädt die notwendigen Dateien herunter und überprüft die Installation.

Nach erfolgreicher Installation befinden sich die Serverdateien in folgendem Verzeichnis:

/home/steam/valheim-server/

Mit dem Befehl

ls -la /home/steam/valheim-server

können wir den Inhalt überprüfen.

Dort sollte sich unter anderem die ausführbare Datei valheim_server.x86_64 befinden.

5. Eigenes Startskript für Valheim erstellen

Anstatt die mitgelieferte Startdatei zu verändern, erstellen wir ein eigenes Skript. Das hat den Vorteil, dass unsere Konfiguration bei einem Update nicht durch die Originaldatei überschrieben wird.

Wir erstellen die Datei:

nano /home/steam/valheim-server/start_valheim.sh

Das Skript erhält folgenden Inhalt:

#!/bin/bash

cd /home/steam/valheim-server || exit 1

# Steam-Bibliotheken
export LD_LIBRARY_PATH="./linux64:${LD_LIBRARY_PATH:-}"
export SteamAppId=892970

# Valheim Dedicated Server starten
exec ./valheim_server.x86_64 \
    -nographics \
    -batchmode \
    -name "Staubig" \
    -port 2456 \
    -world "staubington" \
    -password "MEIN_SICHERES_PASSWORT" \
    -public 1

Die Einstellungen lassen sich an die eigenen Wünsche anpassen:

ParameterBedeutung
-nameÖffentlicher Name des Servers
-portNetzwerkport des Servers
-worldName der verwendeten Spielwelt
-passwordPasswort für den Server
-public 1Server in der Serverliste anzeigen

Das Serverpasswort muss mindestens fünf Zeichen lang sein. Für einen öffentlich erreichbaren Server sollte ein individuelles, ausreichend sicheres Passwort verwendet werden.

Wer den Server nicht in der öffentlichen Serverliste anzeigen möchte, kann -public 1 auf -public 0 ändern.

Wir speichern das Skript und machen es ausführbar:

chmod +x /home/steam/valheim-server/start_valheim.sh

Damit ist die eigentliche Valheim-Installation abgeschlossen.

6. Automatischen Serverstart mit systemd einrichten

Damit Valheim beim Hochfahren des Containers automatisch startet und bei einem Absturz neu gestartet wird, richten wir einen systemd-Service ein.

Zunächst verlassen wir die Sitzung des Steam-Benutzers:

exit

Wir sollten uns nun wieder in unserer ursprünglichen Sitzung als root befinden.

Anschließend erstellen wir eine neue Service-Datei:

nano /etc/systemd/system/valheim.service

Folgende Konfiguration wird eingefügt:

[Unit]
Description=Valheim Dedicated Server - Staubig
Wants=network-online.target
After=network-online.target

[Service]
Type=simple

User=steam
Group=steam

WorkingDirectory=/home/steam/valheim-server

ExecStart=/home/steam/valheim-server/start_valheim.sh

Restart=on-failure
RestartSec=15

KillSignal=SIGINT
TimeoutStopSec=120

StandardOutput=journal
StandardError=journal
SyslogIdentifier=valheim

[Install]
WantedBy=multi-user.target

Die wichtigsten Einstellungen sind:

  • User=steam: Der Server läuft mit den Berechtigungen des Steam-Benutzers.
  • Restart=on-failure: Bei einem Absturz wird der Server automatisch neu gestartet.
  • RestartSec=15: systemd wartet vor einem Neustart 15 Sekunden.
  • KillSignal=SIGINT: Beim Stoppen erhält Valheim ein Signal zum kontrollierten Beenden.
  • TimeoutStopSec=120: Dem Server bleiben bis zu 120 Sekunden, um seine Daten zu speichern und sich zu beenden.

Nun laden wir die systemd-Konfiguration neu:

systemctl daemon-reload

Anschließend aktivieren wir den automatischen Start:

systemctl enable valheim

Und starten den Server:

systemctl start valheim

Ob alles funktioniert, lässt sich mit folgendem Befehl überprüfen:

systemctl status valheim

Bei einem erfolgreich gestarteten Server sollte der Status active (running) angezeigt werden.

Server verwalten

Für die tägliche Verwaltung sind vor allem die folgenden Befehle wichtig:

Server starten:

systemctl start valheim

Server stoppen:

systemctl stop valheim

Server neu starten:

systemctl restart valheim

Serverstatus abfragen:

systemctl status valheim

Server-Logs live anzeigen:

journalctl -u valheim -f

Die Loganzeige kann mit Strg+C beendet werden, ohne dabei den Gameserver zu stoppen.

7. Netzwerk und Firewall konfigurieren

Damit andere Spieler den Server erreichen können, müssen die entsprechenden UDP-Ports freigegeben werden.

Valheim verwendet standardmäßig die Ports 2456 und 2457.

Wer UFW innerhalb des Ubuntu-Containers verwendet, kann die Ports mit folgendem Befehl freigeben:

ufw allow 2456:2457/udp

Zusätzlich müssen gegebenenfalls die Proxmox-Firewall und die Portweiterleitungen des Routers entsprechend konfiguriert werden.

Für einen über das Internet erreichbaren Server leiten wir die UDP-Ports an die IP-Adresse unseres LXC-Containers weiter.

Wer Crossplay über das PlayFab-Backend verwendet, benötigt abhängig von seiner Konfiguration nicht zwingend eine klassische Portweiterleitung. Diese Anleitung verwendet den normalen Steam-Servermodus.

Container in Proxmox automatisch starten

Damit unser Server auch nach einem Neustart des Proxmox-Hosts wieder erreichbar ist, aktivieren wir den Autostart des LXC-Containers.

Dazu öffnen wir die Proxmox-Weboberfläche und navigieren zu:

Container → Optionen → Beim Booten starten

Dort aktivieren wir die entsprechende Option.

Damit startet zuerst der Ubuntu-Container und anschließend unser Valheim-Service.

8. Wo speichert Valheim seine Welten?

Dies ist einer der wichtigsten Punkte, insbesondere für Backups oder eine spätere Migration des Servers.

Die Weltdateien werden standardmäßig nicht im Installationsverzeichnis des Valheim-Servers gespeichert.

Da wir den Server unter dem Benutzer steam betreiben, befinden sich die Spielstände normalerweise in folgendem Verzeichnis:

/home/steam/.config/unity3d/IronGate/Valheim/worlds_local/

Eine andere Möglichkeit besteht darin, beim Serverstart mit dem Parameter -savedir einen eigenen Speicherpfad festzulegen. In diesem Fall muss der entsprechend konfigurierte Pfad gesichert werden.

Bei unserer Installation verwenden wir den Standardspeicherort.

Wir können uns den Inhalt des Verzeichnisses mit folgendem Befehl anzeigen lassen:

ls -lah /home/steam/.config/unity3d/IronGate/Valheim/worlds_local/

Für unsere Welt staubington sollten sich dort unter anderem folgende Dateien befinden:

staubington.db
staubington.fwl

Welche Dateien sind wichtig?

staubington.db

Diese Datei enthält die eigentlichen Weltdaten. Dazu gehören beispielsweise die Veränderungen an der Spielwelt, Gebäude und Truhen samt Inhalt.

staubington.fwl

Diese Datei enthält wichtige Metadaten der Welt, insbesondere den Weltnamen und den World-Seed.

Für ein vollständiges Backup sollten immer beide Dateien zusammen gesichert werden.

Valheim legt gegebenenfalls zusätzliche automatische Sicherungen an. Diese befinden sich ebenfalls im Bereich der Weltdaten und können beispielsweise die Endung .db.old oder .fwl.old haben. Weitere automatische Backup-Dateien können mit einem Zeitstempel versehen sein.

Am sichersten ist es deshalb, das gesamte Verzeichnis worlds_local zu sichern.

Wichtig: Die Charaktere der Spieler werden normalerweise auf deren jeweiligen Clients beziehungsweise über Steam Cloud gespeichert. Ein Backup des Dedicated Servers sichert die Welt, nicht automatisch sämtliche Charakterdaten der Spieler.

9. Valheim-Welt manuell sichern

Damit beim Backup keine unvollständig geschriebenen Dateien entstehen, stoppen wir zunächst den Server.

Die folgenden Befehle werden wieder als root ausgeführt.

systemctl stop valheim

Wir erstellen ein separates Backup-Verzeichnis:

mkdir -p /var/backups/valheim

Nun erstellen wir ein komprimiertes Archiv mit dem aktuellen Datum:

tar -czf "/var/backups/valheim/valheim-$(date +%F_%H-%M-%S).tar.gz" \
    -C /home/steam/.config/unity3d/IronGate \
    Valheim

Das Archiv enthält den Valheim-Datenordner einschließlich der Welten und der dort gespeicherten Konfigurations- beziehungsweise Berechtigungsdateien.

Nach dem Backup starten wir den Server wieder:

systemctl start valheim

Die vorhandenen Backups lassen sich mit folgendem Befehl anzeigen:

ls -lh /var/backups/valheim/

So können wir jederzeit auf ältere Spielstände zurückgreifen.

Auch die Serverkonfiguration sichern

Neben den Weltdaten sollten wir die beiden selbst erstellten Konfigurationsdateien sichern:

/home/steam/valheim-server/start_valheim.sh
/etc/systemd/system/valheim.service

Diese Dateien enthalten die Startparameter und die Einstellungen für den automatischen Serverstart.

Der gesamte Server muss dagegen normalerweise nicht gesichert werden, da die eigentlichen Programmdateien jederzeit erneut über SteamCMD heruntergeladen werden können.

Backups außerhalb des Containers speichern

Ein Backup, das ausschließlich im LXC-Container gespeichert wird, schützt nicht vor dem Verlust des gesamten Containers oder des zugrunde liegenden Datenträgers.

Deshalb sollten wichtige Spielstände regelmäßig auf ein externes Laufwerk, ein NAS oder einen anderen Rechner kopiert werden.

Zusätzlich können wir den gesamten LXC-Container über die Backup-Funktionen von Proxmox sichern.

Hierbei ist zu beachten, dass zusätzliche Mountpoints je nach Proxmox-Konfiguration gegebenenfalls nicht im Container-Backup enthalten sind.

Für besonders wichtige Welten verwende ich deshalb zwei Sicherungsarten: ein separates Backup der Valheim-Weltdaten und ein vollständiges Proxmox-Backup des Containers.

10. Valheim-Welt aus einem Backup wiederherstellen

Falls eine Welt beschädigt wird oder wir unseren Valheim-Server auf einen neuen Ubuntu-Container umziehen möchten, können wir die zuvor gesicherten Dateien wiederherstellen.

Wir stoppen zunächst den Server:

systemctl stop valheim

Nun benennen wir das bisherige Valheim-Datenverzeichnis um. So gehen die vorhandenen Daten nicht verloren:

mv /home/steam/.config/unity3d/IronGate/Valheim \
   /home/steam/.config/unity3d/IronGate/Valheim-vor-restore

Anschließend stellen wir das Backup wieder her. Hier muss der Dateiname durch den Namen des gewünschten Sicherungsarchivs ersetzt werden:

tar -xzf /var/backups/valheim/MEIN-BACKUP.tar.gz \
    -C /home/steam/.config/unity3d/IronGate/

Jetzt setzen wir die Dateiberechtigungen:

chown -R steam:steam \
    /home/steam/.config/unity3d/IronGate/Valheim

Abschließend starten wir den Valheim-Server:

systemctl start valheim

Der Server sollte jetzt wieder die Welt aus unserem Backup verwenden.

Wichtig ist, dass der mit -world angegebene Weltname mit dem Dateinamen der wiederhergestellten Welt übereinstimmt.

Wer beispielsweise die Dateien staubington.db und staubington.fwl wiederherstellt, muss im Startskript auch -world "staubington" verwenden.

11. Valheim-Server aktualisieren

Nach einem Valheim-Update kann es notwendig sein, auch den Dedicated Server zu aktualisieren.

Vor jedem Update sollte eine Sicherung der Welt erstellt werden, wie in Abschnitt 9 beschrieben.

Anschließend stoppen wir den Server:

systemctl stop valheim

Nun führen wir SteamCMD unter dem Benutzer steam aus:

su - steam

Anschließend starten wir das Update:

/usr/games/steamcmd \
    +force_install_dir /home/steam/valheim-server \
    +login anonymous \
    +app_update 896660 validate \
    +quit

SteamCMD lädt die aktuellen Dateien herunter und überprüft die bestehende Installation.

Danach verlassen wir die Sitzung des Steam-Benutzers:

exit

Abschließend starten wir den Server:

systemctl start valheim

Da wir ein eigenes Startskript erstellt haben, bleiben unsere individuellen Servereinstellungen normalerweise auch nach dem Update erhalten.

12. Zusammenfassung: Die wichtigsten Pfade und Befehle

Für eine spätere Neuinstallation oder die Wiederherstellung eines Servers sind insbesondere die folgenden Pfade wichtig:

BeschreibungPfad
Steam-Benutzer/home/steam
Serverinstallation/home/steam/valheim-server
Startskript/home/steam/valheim-server/start_valheim.sh
systemd-Service/etc/systemd/system/valheim.service
Valheim-Datenordner/home/steam/.config/unity3d/IronGate/Valheim
Weltdateien/home/steam/.config/unity3d/IronGate/Valheim/worlds_local
Unsere Backups/var/backups/valheim

Die wichtigsten Verwaltungsbefehle auf einen Blick:

# Server starten
systemctl start valheim

# Server stoppen
systemctl stop valheim

# Server neu starten
systemctl restart valheim

# Serverstatus anzeigen
systemctl status valheim

# Live-Logs anzeigen
journalctl -u valheim -f

Fazit

Mit einem Ubuntu-LXC-Container unter Proxmox lässt sich ein Valheim Dedicated Server relativ einfach und ressourcenschonend betreiben.

Durch den eigenen Steam-Benutzer, das separate Startskript und den systemd-Service erhalten wir eine übersichtliche Serverinstallation, die sich zuverlässig verwalten lässt.

Für einen langfristigen Betrieb ist allerdings nicht nur die Installation wichtig. Entscheidend ist vor allem, dass die Weltdaten regelmäßig gesichert werden.

Wer den Ordner worlds_local, die Serverkonfiguration und seine Backups sicher aufbewahrt, kann seinen Valheim-Server auch nach einem Defekt oder einer vollständigen Neuinstallation mit der bisherigen Welt wieder in Betrieb nehmen.

Weiterführende Informationen:

Ubuntu 26.04 LTS für den Desktop

Lass uns einfach die Snaps entfernen und stattdessen Flatpak installieren.

https://askubuntu.com/questions/1035915/how-to-remove-snap-from-ubuntu

sudo apt autoremove --purge snapd
#After that, run the following command so that Ubuntu does not automatically install snapd as an update.
sudo apt-mark hold snapd
#Also, since removing snap will also remove snap-store, you may want to install gnome-software as a GUI app store.
sudo apt install gnome-software --no-install-recommends

Nobara

Secure Boot

tl/dr: https://www.youtube.com/watch?v=6TKJkLWMr50

1) Boot into your motherboard bios. Turn off secure boot, but enable key management. Delete all existing keys (AFTER YOU MAKE SURE YOU DON’T HAVE BITLOCKER ENCRYPTED DRIVES). Exit and boot into Nobara.

2) Add the sbctl copr to your repositories: sudo dnf copr enable chenxiaolong/sbctl

3) Install sbctl: sudo dnf in sbctl

4) Initialize the key database: sudo sbctl create-keys 5) Enroll microsoft keys: sudo sbctl enroll-keys -m

5) Determine current kernel: uname -r

6) Sign current kernel: sudo sbctl sign -s /boot/vmlinuz-6.19.2-200.nobara.fc43.x86_64

7) Sign grub .efi program: sudo sbctl sign -s /boot/efi/EFI/fedora/grubx64.efi

8) Boot back into bios, enable secure boot, save and exit back to Linux

9) Verify secure boot is working: sudo sbctl status

10) Create auto-sign script /etc/kernel/install.d/99-sign-kernel.install:

#!/bin/bash 
for kernel in /boot/vmlinuz-*; do 
/usr/bin/sbctl sign -s "$kernel" 
done 

11) Make the script executable: sudo chmod u+x /etc/kernel/install.d/99-sign-kernel.install

12) Run the script, verify it works: sudo /etc/kernel/install.d/99-sign-kernel.install

Automatisches Entschlüsseln der Partition

Im Grunde wie unter Ubuntu. Nur init ramfs ist ein anderer befehl

sudo dracut -f --regenerate-all<br>

Odroid 4h+

Einrichtung wie PI Nas

smartctl

sudo apt install smartmontools

temp sensoren

sudo apt install lm-sensors
sudo sensors-detect
sensors

ssh hardening

ssh keys auf client erstellen ssh-keygen. inhalt der .pub datei auf dem server an ~/.ssh/authorized_keys einfügen

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo sshd -T
sudo nano /etc/ssh/sshd_config

ListenAddress 192.168.178.0
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 20
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
X11Forwarding no
#AllowAgentForwarding no
#AllowTcpForwarding no
PermitTunnel no



sudo sshd -t
sudo systemctl reload sshd.service

Proxy für IPv4 zu IPv6 Bridge

Ein Nginx Installieren. Certbot muss geteilt werden und kann nicht auf beiden Servern laufen. Anscheinend ist es nicht möglich auf beiden Servern ein eiegens Zertifikat zu bekommen.

# /etc/nginx/sites-available/reverse-proxy.conf
server {
    listen 80;
    listen [::]:80;
    server_name TLD;

    # Weiterleitung auf HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name TLD;


    # SSL-Zertifikate (Let's Encrypt)
    ssl_certificate /home/user/letsencrypt/live/TLD.de/fullchain.pem;
    ssl_certificate_key /home/user/letsencrypt/live/TLD.de/privkey.pem;


    # Sicherheit & Performance
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    # Proxy-Einstellungen
    location / {
        proxy_pass https://[IPV6];
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_set_header Host TLD.de;       # Für HTTP-Header
        proxy_ssl_server_name on;                     # Aktiviert SNI
        proxy_ssl_name TLD.de;             # SNI explizit setze

        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Timeout für WebSockets & H2
        proxy_read_timeout 3600;
    }
}

IPv6 für Docker Container aktivieren

https://docs.docker.com/engine/daemon/ipv6/#use-ipv6-for-the-default-bridge-network

/etc/docker/daemon.json

{
  "ipv6": true,
  "ip6tables": true,
  "fixed-cidr-v6": "2001:db8:1::/64"
  "default-network-opts": {"bridge":{"com.docker.network.enable_ipv6":"true"}}
}

LUKS2 mit TPM automatisch bei Systemstart entschlüsseln

Dank Copilot:

TPM-Unterstützung prüfen

ls /dev/tpm*

Erwartet: /dev/tpm0 und /dev/tpmrm0

TPM2-Tools installieren

sudo apt install tpm2-tools cryptsetup

UUIDs der Partitionen ermitteln

sudo blkid /dev/sdb1

TPM-Key in LUKS eintragen für jede Festplatte

sudo systemd-cryptenroll --tpm2-device=auto /dev/disk/by-uuid/16d6c412-6434-4fdc-951b-1d7176a0c03e

Prüfe ob der Key in slot 1 eingetragen wurde

 sudo cryptsetup luksDump /dev/disk/by-uuid/16d6c412-6434-4fdc-951b-1d7176a0c03e

Wenn der Key in Slot 2 eingetragen wurde können die Slots mit gelöscht werden

sudo systemd-cryptenroll --wipe-slot=tpm2 /dev/disk/by-uuid/16d6c412-6434-4fdc-951b-1d7176a0c03e

crypttab konfigurieren

sudo nano /etc/crypttab

sdb1_crypt UUID=16d6c412-6434-4fdc-951b-1d7176a0c03e none luks,tpm2-device=auto
sdc1_crypt UUID=7e86646a-6efd-47b9-996c-e0597b8038b7 none luks,tpm2-device=auto
sdd1_crypt UUID=82b8afee-51f5-43e9-bb35-7e108f073c3d none luks,tpm2-device=auto

initramfs aktualisieren

sudo update-initramfs -u -k all

Nach Reboot prüfen ob das Entschlüsseln jetzt automatisch funktioniert. Dann fstab anpassen

/dev/mapper/sdb1_crypt /mnt/nas btrfs defaults,noatime,compress=zstd 0 0

Profit!

BTRFS Notizen

btrfs subvolume list /dev

HDD zum Dateisystem hinzufügen oder entfernen. Ich mag Kuchen

https://wiki.tnonline.net/w/Btrfs/Adding_and_removing_devices#Complete_example_of_adding_a_second_device_to_single_disk_filesystem

Verschicken von BTRFS Subvolumes

Snapshot umbennen

https://superuser.com/a/415194

Übersicht von Festplattenbelegung

 sudo btrfs device usage /mnt/nas

Dateisystemfehler prüfen

sudo btrfs check /mnt/dm-1

Neue HDD einrichten

Partition erstellen

 sudo parted /dev/sde print
 sudo parted /dev/sde mklabel gpt
 sudo parted /dev/sde mkpart primary 2048s 100%
 sudo parted /dev/sde print
 sudo parted /dev/sde align-check optimal 1

Verschlüsselungsart bestimmen

cryptsetup benchmark

Partition verschlüsseln

sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 -y /dev/sde1 

Partiton entschlüsseln

sudo udisksctl unlock -b /dev/disk/by-uuid/82b8afee-51f5-43e9-bb35-7e108f073c3d

HDD zu bestehendem BTRFS Pool hinzufügen

sudo btrfs device add /dev/dm-3 /mnt/nas

Pool Balancen

sudo btrfs balance start -v --full-balance /mnt/nas

Balance überwachen (als root)

 watch "btrfs filesystem usage -T /mnt/nas; btrfs balance status /mnt/nas"

Dateisystem erstellen

 sudo mkfs.btrfs /dev/dm-4

Dateisystem mounten

sudo mount /dev/dm-4 /mnt

Von anderem BTRFS Dateisystem kopieren

sudo btrfs subvolume list /quelle
btrfs subvolume snapshot -r /quelle/subvolume /quelle/subvolume@yyyymmddhhnn
btrfs send /quelle/subvolume@yyyymmddhhnn | pv -tba | btrfs receive /ziel

Oracle DMP Importieren

Eine WM erstellen, Oracle DB installieren, SQLDeveloper runterladen, SQLDeveloper starten.

Verbindung mit der DB herstellen, neuen User erstellen (muss mit C## beginnen und komplett groß geschrieben werden). Alle Rechte und Rollen zuordnen ausser die sys* rollen.

Alls neuer User verbinden. Ansicht->DBA Verbinden. Datapump Import. Assistent Datapump

GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO C##ARNE;

CREATE OR REPLACE DIRECTORY „DATA_PUMP_DIR“ as ‚C:\tmp\‘;

Tablespaces

SELECT DISTINCT sgm.TABLESPACE_NAME , dtf.FILE_NAME
FROM DBA_SEGMENTS sgm
JOIN DBA_DATA_FILES dtf ON (sgm.TABLESPACE_NAME = dtf.TABLESPACE_NAME)
WHERE sgm.OWNER = ‚C##ARNE‘

ggfs tablespaces und userschemas anpassen lassen