(Server, Appliances und Client)
Linux Software für Desktop-Installation
Quellen und Links:
Software, die nicht fehlen sollte:
Browser:
- Firefox Browser (+Ghostery) und Thunderbird Mailclient
- ggf. Chrome Browser
RDP:
- UK: Devolutions Remote Desktop Manager (RDP, SSH, VNC, VMWare, Hyper-V, Telnet, FTP, Powershell, Anydesk, Teamviewer, HTTP/S, SNMP)
- Remmina - (RDP, SSH, Spice, VNC, X2Go, HTTP/S)
- Gnome Verbindungen - minimalistische RDP-Anwendung für Gnome, Zugriff per RDP und VNC, läuft teilweise besser als alle Anderen
Terminal: /usr/bin/gnome-connections
Office-Suiten:
- Libre Office - meist vorinstalliert, OpenSource, leistungsstark
- OnlyOffice - OpenSource, sehr moderne Suite, kein Datenbank-Modul
Grafik:
- Grafik siehe auch "UK: Grafikprogramme" (Gimp, Inkscape)
- GwenView oder gThumb - Bildbetrachter und Fotogalerie
gThumb: (sudo apt install gthumb) - Darktable - beste kostenlose Alternative zu Adobe Lightroom (RAW-Formate, Lcihttisch, nicht-destrukive Bearbeitung, mit Bibliotheksdatenbank und XMP-Datei)
sudo apt install darktable
Videobearbeitung:
- OpenShot - OpenSource, nichtlineare Video-Bearbeitungs-Software für die Betriebssysteme Windows, macOS und Linux
unbegrenzt viele Spuren, Blender 3.3 kompatibel - Freetube - Abspielen/Download von Youtube-Videos
Audio:
- Audacity - universeller Audio-Editor
- Ardor - professionelle Mehrspur Audio-/Midi-Workstation ab 1 USD
PlugIns: AudioUnit, LV2, VST (v2 & v3) and LADSPA formats. FX plugins. Software instruments. MIDI processors. Automate any parameters. - Clementine - Audio-CDs rippen
- VLC Mediaplayer
- Kodi Mediacenter - openSource Mediacenter, viele Decoder und PlugIns
Utils/Sonstige:
- PDF Drucker (apt install printer-driver-cups-pdf)
- KeepassXC (offiziell, Software-Distribution), Keepass2 (inoffiziell, Synaptic) - Passwort-Manager
- Signal Messenger (Synaptic)
- Midnight Commander MC - Terminal Dateimanager wie NC (sudo apt install mc)
- Flameshot - Sniping-Tool, Screenshot mit umfangreichen Bearbeiten-Funktionen (Software-Distribution)
- MS Visual Studi Code - Programmieren
- PDF Arranger - PDFs zusammenführen, aufteilen sowie deren Seiten rotieren, ausschneiden oder umsortieren
- Angry IP Scanner - IPs und Ports, Open Source
- FileZilla - S/FTP Filetransfer
- ClamAV - Virenscanner für E-Mail u.a.
- Fastfetch - umfangreiche Systeminformationen im Terminal (sudo apt install fastfetch)
- Btop++ - System- und Prozessmonitor (sudo apt install btop)
- Okular (im Softwarestore) - universeller Documentviewer, PDF, ePub, Bildformate
- balenaEtcher - ISO auf USB brennen (RUFUS-Ersatz)
- K3B - Brennen von CD-ROMs & Audio-CD's
- Turbo-Print - kostenpflichtig, aber Druckertreiber mit großem Funktionsumfang
- UK: Backup Software
Virtualisierer mit Qemu und KVM (für die letzte Windows App)
- WinBoat - sehr einfach zu installieren, reicht Verzeichnis, Zwischenablage, USB durch
- KVM - volle KVM/Qemo-Virtualisierung, Verwaltung mehrerer VMs
-> siehe UK: Linux KVM
5 Wege zur Softwareinstallation: https://www.tutonaut.de/5-wege-zur-softwareinstallation-unter-linux/
Linux Distributionen und Basics
Linux Mint
- eigenständige Distribution, aufbauend aus Debian und Ubuntu (LTS)
- konservativer Systemunterbau, stabil und wartungsarm
- einsteigerfreundlich, Windows-ähnliches Layout, geringe Lernkurve
- schlank und schnell auch auf alter Hardware
- mit Cinnamon (Mint Default), MATE oder Xfce stehen drei verschiedene Desktopumgebungen zur Verfügung
- Cinnamon ist anpassungsfähiger als Ubuntu GNOME
- aktualisiert sich jeweils aus Ubuntu LTS, nutzt aber kein SNAP und ergänzt die Distribution mit Codecs, Java usw.
- nutzt die Ubuntu Paketquellen + eine Eigene
- teilweise proprietäre Betriebssystembestandteile
- ein zweiter, separater Zweig "Linux Mint Debian Edition" nutzt die original Debian Quellen
- Tool WebApps: Webseiten können auf Desktop angepinnt werden und starten in eigenem Fenster ohne Adressleiste
- vollständige Multimedia-Unterstützung incl. Codecs
- Softwaremanager besser als bei Ubuntu
Flatpak (Mint und Ubuntu) - frei, meist Community
Snap (Ubuntu) - vor allem große Softwareanbieter - Installation von .DEB Dateien
- 5 Jahre Langzeitsupport
- Linux Mint wird von der Community entwickelt, Ubuntu von Canonical (einem kommerziellen Unternehmen)
- Ubuntu bietet kostenpflichtigen Business-Support, Mint Community Support
Linux Ubuntu
- kommerzieller Hersteller Canonical
- Debian-basierend, LTS-Versionen alle 2 Jahre, 5 Jahre oder mehr Support
- stabil, geht inzwischen viele Sonderwege, dass es oft nicht mehr empfohlen wird
- Ubuntu Pro Abo (für Privat bis 5 PCs kostenlos) bis 10 Jahre Sicherheitsupdates
- setzt vorrangig auf proprietäre 'Snap' Paketverteilung
- Gnome Desktop unter Wayland
- Cinnamon Desktop unter Ubuntu inst: sudo apt install cinnamon-desktop-environment
- eigenes Softwarecenter: App Center (kein Open Source) zeigt nur Snap (andere Softwareverteilungen nur über Shell)
- RDP Zugriff standardmäßig
- Wireguard mit GUI
Linux Fedora Workstation
- schön, neu, für experimentierfreudige Nutzer
- extrem reduzierte Gnome Shell, nicht Windows-ähnlich
- Virtualisierungssoftware "Boxen" vorinstalliert, beispielsweise für Windows-VM
- moderne Wayland Architektur
- Updates und Store: Gnome Software
- integriert nur patentfreie Software, das erschwert Installation von Codecs, Grafiktreibern usw.
- eine der führenden Distributionen, Hauptsponsor ist Red Hat
- halbjährlich neue Version mit 9 Monaten Support
- verschiedene Editions für Server, Workstation, IoT, Cloud usw.
- ct Distibutionen Auswahlhilfe
Softwareverteilung, Softwarekatalog
- FlatHub/FlatPak
- Flathub ist distributionsübergreifender Standardkatalog (ausser Ubuntu)
Flathub in Ubuntu installieren: https://flathub.org/de/setup/Ubuntu
- enthält Open-Source-Apps und proprietäre Anwendungen wie Discord, Zoom, Spotify
- verteilt immer die aktuellste Version unabhängig von der Linux-Distribution
- jede Runtime enthält alle benötigten Bibliotheken
- Apps sind gekapselt und haben im Idealfall keinen direkten Zugriff auf System oder andere Apps (Sandboxing)
- Berechtigungen werden bei der Installation festgelegt (mit App Flatseal können die Berechtigungen manuell angepasst werden)
- neue und alte Versionen kollidieren nicht
- doppelte Ressourcen werden nur einmal gespeichert (Deduplication), trotzdem ressourcenhungrig und etwas langsamer beim Start - AppImage
- alternatives, distributionsübergreifendes Format, nicht so verbreitet wie FlatHub
- Images enthalten alle benötigten Bibliotheken und können ohne Installation gestartet werden (Ausführen erlauben)
- es können mehrere Versionen des selben Programmes "installiert" sein
- keine automatische Integration in das System
- keine automatischen Updates - Snap
- proprietärer, kommerzieller App-Store von Canonical
- Default für Ubuntu, nutzbar für viele andere Distributionen
- Softwareprojekte wie Firefox, Libre Office.. können die Wartung der Pakete selbst übernehmen
(oft ist Snap aber ungepflegeter als FlatPak)
- verwaltet von Dienst snapd, Kommandozeilenbefehl snap
- technisch vergleichbar mit AppImage oder FlatPak
- es können mehrere Versionen des selben Programmes installiert sein
- gespeichert in /var/lib/snapd/snaps
- Sandbox/Berechtigungen werden mit AppArmor verwaltet - RPM
- klassisches Paketformat von Fedora - klassische DEB Paketverwaltung
- oft für Server verwendet, Zugriff über Repositories der jeweiligen Distribution - fremde Paketquellen (PPA)
- klassisches Repository der jeweiligen Software - ausführbare Binärdatei
- letzte zu wählende Installationsmethode
- keine automatischen Updates
Terminal / Shell / Konsole öffnen mit [STRG] + [ALT] + [T]
Konsole als ROOT dauerhaft öffnen: sudo -i
ROOT-Konsole wieder verlassen: exit
Nur ein Administrator kann 'sudo' ausführen.
User "root" hat unter Ubuntu per Default kein Passwort.
Interaktive Anmeldung als root ist nicht empfohlen.
User (mit Home) erstellen: sudo useradd -m uwe
Passwort festlegen: sudo passwd uwe
User wechseln: su uwe
Falls root ein Passwort hat, zu root wechseln: su (ohne root)
Befehl als 'root' ausführen: sudo touch /etc/test
Befehl als 'benutzer' ausführen: sudo benutzer touch /etc/test (ergibt Fehler)
Konsolenkommandos
Systemupdate
sudo apt(-get) update
sudo apt(-get) upgrade
sudo reboot
sudo apt(-get) -y dist-upgrade
sudo apt(-get) -F install - repariert beschädigte Pakete
sudo pro config set apt_news=false (Werbung für Ubuntu Pro deaktivieren)
sudo do-release-upgrade - Release-Upgrade
automatische Updates
* sudo apt install unattended-upgrades - automatische Sicherheitsupdates installieren (Debian)
* cronjob mit allen Updates erstellen (update / upgrade / dist-upgrade / autoremove)
Systembereinigung
sudo apt-get autoremove - entfernt veraltete Kernel und Hilfspakete
sudo apt-get autoclean - entfernt veraltete DEB-Dateien aus der Paketquelle /var/cache/apt/archives/
sudo apt-get clean - entfernt alle DEB-Dateien aus der Paketquelle /var/cache/apt/archives/
Allgemein
lsb_release -a - zeigt Ubuntu Version
cat /ect/os-release - zeigt Linux OS Release
ls - wie dir,
ls -sh (zeigt Liste),
ls -l (Langform mit Berechtigungen, Anzahl Dateien im Verzeichnis, 1=Datei, Besitzer, Gruppe, Bytes, Datum, Name),
ls -a (zeigt auch versteckte Files) -> ls -all
man -k <Stichwort> - zeigt alle Befehle zu einem Stichwort
nano (dateiname> - Editor (Kopieren: ALT-6, Einfügen: Strg-U)
pwd - zeigt aktuellen Datei-Pfad
ps -edaf -> listet laufende Prozesse mit ihrer ID
kill (ID) -> beendet Prozess mit ID siehe ps .edaf
top - zeigt Taskmanager (Auslastung CPU, Speicher, Swap, Prozesse)
whoami - zeigt aktuellen Benutzer
tail -f /var/log/*.log - zeigt alle System-Logs
tail -f /var/log/syslog - zeigt Syslog live
crontab -l - listet alle Cronjobs des Benutzers auf
sudo dpg-reconfigure locales - Konfigurationsscript für Spracheinstellung Ubuntu / Debian
Netzwerk
ifconfig - (wie Windows IPCONFIG) zeigt Namen der Netzwerkkarten, ausgehandelte Geschwindigkeit und IP-Parameter (apt install net-tools)
ip a - (neu, wie IPConfig) - listet alle Netzwerkadapter + Parameter auf
ip r - (wie route print)
hostname -I - zeigt nur IP (mit Boardmitteln)
ping [webseite.com]
traceroute [dns/ip] - (sudo apt install traceroute)
nslookup [webseite.com]
curl -v [webseite.com] - gibt http-Inhalt und Zertifikat zurück
"route -n" oder "netstat -r" - zeigt Routingtabelle, Route ADD / DEL route... (ggf. nachinstallieren)
tcpdump -i eth0 port 443 - Paketsniffer (oft vorinstalliert), gibt Datendump aller Verbindungen von Netzwerkkaqrte und Port (apt install tcpdump)
tcpdump -i eth0 - zeigt allen Traffic auf eth0
sudo nano /etc/netplan/00-installer-config.yaml - IP-Adresse konfigurieren mit Netplan per Terminal
sudo nano /etc/netplan/01-netcfg.yaml (Verzeichis nicht sichtbar!)
iftop - Netzwerktool, analysiert Traffic, Ports, DNS und Bandbreite (sudo apt install iftop), Aufruf: sudo iftop
Festplatte
df -h - zeigt freien Speicherplatz der Festplatte (disk free)
du -shc * - zeigt alle Verzeichnisgrößen im aktuellen Verzeichnis incl. Summe
lsblk - listet alle Datenträger und Block Storages auf
gparted - Partition Editor, GUI, auch aus Live-System
cd -L <Verzeichnis> - Wechsel in logisches Verzeichnis (Standard)
cd -P <Verzeichnis> - Wechsel in physisches Verzeichnis (Bsp: cd -P /bin, cd -P /home)
cp [Optionen] Quelle Ziel - copy
mv [Optionen] Quelle Ziel - move
rm -r * - löscht aktuelles Verzeichnis incl. Unterverzeichnisse (recursiv)
find / -iname "datei.log" - sucht Datei (groß oder klein geschrieben) in allen Verzeichnissen
Partiton vergrößern:
- physische HD vergrößern
- lsblk - listet aktuelle Struktur
- growpart /dev/sda 3 - (mit Leerzeichen) vergrößert das angegebene Vol. auf die freie Größe (growpart installieren)
- resize2fs -p /dev/sda3 - (ohne Leerzeichen) Dateisystem anpassen
siehe Linux Filesystem
Neue Festplatte einbinden:
- cfdisk /dev/sdb - Partition erstellen
- Festplattenmanager GUI: Partition formatieren
- Festplattenmanager: HD beim Systemstart einhängen, Einhängepunkt festlegen
oder: mount /dev/sdb1 /mnt/hd1, dauerhaft in /etc/fstab
Dateiberechtigungen
cut -d: -f1 /etc/passwd - alle User im System anzeigen
cat /etc/group - alle Gruppen anzeigenid {Benutzer} - zeigt alle Gruppen eines Benutzers
Ubuntu: Standardmäßig hat ein User im eigenen Home-Verzeichnis Vollzugriff und in anderen User-Verzeichnissen Lesezugriff.
Linux vererbt grundsätzlich nichts.
Rechte rekursiv setzen: chmod -R u+rwX,g+rX,o+rX /verzeichnis (User:rwx, Gruppe: rX, other: rx)
• chown - ändert Besitzer
• chgrp - ändert die Gruppe
• chmod - ändert die Berechtigungen
• chattr - ändert Dateiattribute auf ext - Filesystemen

Zeichen: Directory (d) oder Datei (-)
2.-4. Zeichen: rwx - User (u)
5.-7. Zeichen: rwx - Group (g)
8.-10. Zeichen: rwx - Other (o)
• rwx - read / write / execute-search
Execute bei Ordnern bedeutet: Recht zum Ordner öffnen
• Berchtigung ändern: chmod u=rwx, g=rw, o=r testfile.txt
oder: read=4, write=2, execute=1 -> alle Rechte= 7
ergibt: chmod 754 testfile.txt
• Benutzer + Gruppe ändern:
chown -R www-data:www-data /var/www/wordpress
(weist dem /wordpress -Verzeichnis recursiv(-R) den Besitzer + Gruppe "www-data" zu)
Dateimanager Nautilus mit Root-Rechten nutzen: nautilus-admin installieren
sudo apt-get install nautilus-admin
Nach Neustart gibt es "Als Systemverwalter ausführen" im Kontextmenue.
Terminal-Dateimanager MC (Midnight Commander, ähnlich Norton Commander)
apt install mc - Aufruf mit 'mc' im Terminal
(System)festplatte verschlüsseln
1) Systemverschlüsselung mit Cryptsetup/Luks:
- geht nur, wenn kein Multi-Boot mit anderem OS verwendet wird
- nicht geeignet für Server, die unbeaufsichtigt starten (Passworteingabe erforderlich)
- Systempasswort, ist für alle User gleich
• beim Installationsvorgang: Festplatte löschen und Ubuntu installieren -> Erweiterte Funktionen zur Verschlüsselung der Festplatte
• LVM verwenden
• neue Installation verschlüsseln -> "Sicherheitsschlüssel" wird bei jedem Start verlangt
2) ab Ubuntu 23.10: experimentelle TPM-Unterstützung
• beim Installationsvorgang: Festplatte löschen und Ubuntu installieren -> Erweiterte Funktionen -> Enable Hardware-Backed Full Disk Encryption
• Schlüssel wird im TPM abgelegt und muß nicht bei jedem Boot eingegeben werden (wie Bitlocker)
3) Cryptsetup installieren, HD nachträglich verschlüsseln
• im Festplattenmanager können nun beliebige Festplatten oder USB-Stick verschlüsselt neu formatiert werden
• Schlüssel kann im System-Schlüsselbund/Brieftasche gespeichert werden
SSH-Zugriff aktivieren
• ggf. feste IP einrichten
• sudo systemctl status ssh - läuft SSH?
• sudo apt install openssh-server -> SSH (Server) installieren
• sudo systemctl status ssh -> wie oben, Status überprüfen, hilfreich bei Anmeldefehlern
• sudo systemctl enable ssh -> Dienststart automatisch
• sudo systemctl start ssh -> Dienst manuell starten
• sudo ufw allow ssh -> Firewall für SSh öffnen
• sudo nano /etc/ssh/sshd_config -> sshd_config anpassen
- (LoginGraceTime 200)
- PermitRootLogin yes - erlaube Root-Login
- StrictModes yes
- Port xyz - ggf. eigenen Port definieren
• /etc/init.d/ssh restart -> Dienst neu starten
SSH-Zugriff:
• ssh root@192.168.178.50 (Windows oder Linux)
Linux merkt sich die Fingerprints jeder SSH-Verbindung.
Befindet sich unter einer schon bekannten IP ein neues, unbekanntes Gerät, schlägt die SSH-Verbindung fehl!
Abhilfe: Verzeichnis .ssh enthält 'known_hosts'. In dieser Datei Eintrag mit der o.g. IP-Adresse löschen.
Ubuntu remote bedienen:
Einstellungen -> Freigabe -> Bildschirmfreigabe aktivieren, VNC-Protokoll aktivieren, Fernsteuerung erlauben
Damit die Remote Anmeldung ohne Bestätigung vom Ubuntu-Desktop funktioniert, diese Einstellung ändern.
Achtung! Ubuntu legt für die RDP-Verbindung ein eigenes Passwort fest!
Bug in Ubuntiu 20: das Kennwort ändert sich bei jeder Anmeldung.
Lösung:
XRDP installieren.
apt update apt install xrdp
apt install xorgxrdp
sudo systemctl start xrdp // Start und Eable XRDP-Service sudo systemctl enable xrdp systemctl status xrdp // Check Status sudo ufw allow from any to any port 3389 proto tcp // open Port in Firewall
Wichtig: Die RDP-Anmeldung funktioniert nur, wenn der Nutzer lokal abgemeldet ist!
Teamviewer Host in Shell installieren
- wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
- sudo apt install ./teamviewer_amd64. deb
- teamviewer info
- teamviewer passwd xxxgeheimxxx
- teamviewer setup
Verzeichnisstruktur
- bin - Binärdateien, Programme
- dev - Devices (Tastatur, Maus, Festplatte)
- etc - Konfigurationsdateien
- home - vergl. "Users" unter Windows
- lib - Codebibliotheken, die sich andere Programme teilen
- media - für Automounter (USB-Sticks..), Verzeichnisse werden unter Gnome auch auf dem Desktop angezeigt
- mnt - als Mountpoint für HDs
- sbin - Systemdateien
- tmp - Temporäre Dateien
- usr - Programmtools und Bibliotheken
- usr/local - für eigenes Zeug
- usr/local/bin - für eigene, systemweite Scripts
- var - vom System verwendete Dateien
E-Mail / SendMail
Ubuntu hat per Default keinen Mailserver / MTA (Mail Transfer Agent) installiert.
• Unix E-Mail Postausgang Warteschlange: /var/spool/mqueue oder /var/mqueue
• Unix E-Mail Posteingang: /var/spool/mail/ (eine Datei je E-Mail)
- Nullmailer (am Beispiel CheckMK) Benachrichtigungen mit CheckMK 1.6 via E-Mail versenden - YouTube
Log: /var/log/mail.log - SSMTP zum Senden per SMTP Einfache sendmail Konfiguration auf UBUNTU | Gloski Consulting
- SendMail Verwendung und allgemeine Konfiguration von Sendmail unter Linux (linux-praxis.de)
Config: /etc/sendmail.cf
Shortcut erstellen (Programm, Webseite o.a.)
Ubuntu / Snap Installed Pakete
- /var/lib/snapd/desktop/applications/ - enthält die Verknüpfungen aller Snap installierten Pakete (*.desktop)
- /usr/share/applications/ - sonstige Verknüpfungen (*.desktop)
- copy & paste auf Desktop
- Rechtsklick: Start erlauben
- fertig
Ubuntu manuell
- "Name.desktop" Datei auf User-Schreibtisch erstellen
(nano Name.desktop) - Bsp: WEB-Link
[Desktop Entry]
Version=1.0
Name=Testlink Google
Type= Application
Exec=firefox https://www.google.com/search?q=uwe-kernchen.de&ie=UTF-8
Icon=text-html
(oder) Icon=/snap/firefox/current/default256.png - Bsp: Programm
[Desktop Entry] Version=x.y Name=ProgramName Comment=This is my comment Exec=/home/alex/Documents/exec.sh Icon=/home/alex/Pictures/icon.png Terminal=false Type=Application Categories=Utility;Application;
- Dateieigenschaften: Ausführen als Programm (chmod 755)
- Rechtsklick auf Verknüpfung: "Start erlauben"
- Wenn alles passt, wird der Link mit dem im Desktop Entry definierten Name angezeigt, nicht mit "Name.desktop".
- Chrome kann mit "Speichere als Shortcut" selber *.desktop Datei unter "Anwendungen" erstellen
- Lösung2 (Meta Refresh):
- erstelle Name.html auf User-Desktop
- Inhalt:
<html> <head> <meta http-equiv="refresh" content="0; url=https://askubuntu.com" /> </head> <body> </body> </html>
RSYNC
Beispiel:
- kopiert Unterverzeichnisse, Rechte, Zeit, Gruppenrechte, Besitzrechte (bei root), Human readable
- mit Logfile
- mit Status am Ende des Logfiles
- exclude = Ausschluß
- delete = löscht fehlende Dateien am Ziel
rsync -rptgoh -stats (--exclude='Temp/') (--delete) --log-file=logfile.log [Quelle/] [Ziel]
Ubuntu Recovery
- beim Booten SHIFT oder ESC drücken führt zum GRUB Boot-Menue, "Erweiterete Optionen" wählen
(Systemübersicht mit HD-Nutzung, Pakete reparieren, Dateisystem prüfen, Root Shell) - Quellen: https://wiki.ubuntuusers.de/Recovery-Modus/
Multiboot Linux-Windows erzeugt falsche Uhrzeit
• Lösung1: Windows Zeit auf "TimeZoneIsUniversal" setzen "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation", DWORD (32-Bit) Name „RealTimeIsUniversal“ - Wert= 1
• Lösung2: Linux Zeit auf "Lokale Zeit" setzen,
im Terminal: sudo timedatectl set-local-rtc 1 --adjust-system-clock
Systemzeit in Hardware-Uhr übertragen: sudo hwclock -w
Server sicher machen, wichtige Befehle: CT 13/2016 S. 124ff.
- Prozessliste: ps ax | grep -v " \[.*\]"
- Verbindungsliste von außen: lsof -i 4 -n
- Liste aller geöffneten Dateien: lsof +L1
- System Syslog: /var/log/syslog
Linux serielles Terminal
- sudo dmesg | grep tty - zeigt alle seriellen Geräte + Namen
Quellen und Links:
- UK: Linux Software für Desktop
- UK: Linux Filesystem
- UK: Samba, SMB, NFS
- UK: CronJobs
- Ubunutu Pro Werbung ausschalten
- UK: Linux administrieren
- UK: Linux Bash Script
- UK: Linux Mail
- UK: Linux KVM Virtualisierung
- Links: ct.de/ynhu
Linux Debian
- freies Betriebssystem des Debian-Projektes
- Basis für viele andere Forks (Ubuntu, Mint, Proxmox..)
- "Fels in der Brandung", grundsolide, langsamer bei neuen Komponenten
- etwa alle 2 Jahre erscheint eine neue Stable Version
- LTS-Support 3 bis 5 Jahre
- 32-bit (i386) Unterstützung bei Bedarf nachinstallieren
- eigene Paketverwaltung dpkg und deren Frontend APT
- Cinnamon Desktop installieren:
su
apt install cinnamon-desktop-environment - Drucker: CUPS = lokale Drucker mit automatischer Erkennung (http://localhost:631/)
- Cinnamon GUI ist (auch bei Ubuntu) spürbar langsamer
- Cinnamon (Software Rendering) ist schnell, hängt aber bei meinem Debian
- Cinnamon mit Wayland (Experimental) - ist schnell, übernimmt aber die deutsche Tastatureinstellungen nicht - GNOME - ist spürbar schneller, aber gefällt mir nicht so gut
- sudo apt install gnome-shell-extension-manager
- öffne es -> "Erweiterungs-Manager"
- suche nach - "Add to Desktop" und "Desktop Icons NG"
- "ArcMenu" - Startmenue oben li.
- "Blur my Shell" - Taskpanel wird halbtransparent
- "Dash to Dock" - Dockingleiste unten (ähnlich wie Ubuntu) oder "Dash to Panel" (ähnlich Windows)
Proxmox Cluster und HA Storage
Quellen und Links:
Beide HA Speicheranbindungen funktionieren bei Proxmox immer mit einer Downtime beim Desaster Recovery.
Die Live Migration von VM ist möglich, selbst bei lokalem Storage.
2-Node-Cluster mit ZFS
- Datacenter mit 2 Nodes + lokalen Storages (mehr als 2 Nodes -> CEPH)
- lokales File- und Block-Storage
- bessere Performance gegenüber CEPH (Zugriff lokal)
- asynchrone Verteilung auf alle Storage
- für Datenbanken nicht geeignet, besser DB-Cluster oder CEPH
- ZFS Pool muß auf beiden Storages identisch heißen -> Storage wird repliziert
rpool = lokales System
vm-pool = für VMs - VM erstellen, dann Replication einrichten (Bsp. alle 5 min)
-> Container wird in definierter Zeit repliziert
-> HA wird pro VM definiert
More (rechts) -> Manage HA -> HA aktivieren - HA wartet 2 min. (Zeit fest!) bei Serververlust
-> dann startet VM auf 2. Host
-> Downtime = 2 min. immer beim HA-Wechsel - drittes Quorum erforderlich, Mehrheit hat gültigen Storage
Quorum ist nur in Shell sichtbar (pvecm status) - Datacenter: HA zeigt Status
- HA-Gruppen: Priorität des Hostes für VM definieren
- laufende VM können live zwischen den Hosts migriert werden
- laufende CT können nicht migriert werden
Installation:
- Management-Port fest auf IP legen
- vmbr0 Config-Bridge löschen - Corosync (Cluster-Netzwerk) direkt auf ein Interface legen
2. Netzwerkkarte sinnvoll (ggf. GUI-Netz) - falls möglich Ports bündeln
- Linux Bond, Mode= LACP oder Balance - Bond für Storage ohne Switch (performanter)
- VM-LAN: Linux Bridge vmbr0 -> Port oder Bond zuweisen
(VLAN aware, keine IP) - PVE1: Join Info kopieren
- PVE2: Join Cluster
- Netzwerke wählen - PVE3 für Quorum
- Quorum auf Debian Mini-PC (apt install corosync-qdevice /em)
- physischer PBS-Server gut als Quorum geeignet
Ceph
- verteilte open source Storage Lösung (File, Block, Object-Storage)
- bessere Redundanz und Datensicherheit gegenüber ZFS
- CEPH Netzwerk Latenz darf 9ms nicht überschreiten! (10..25 Gb/s)
-> CEPH geht nicht über mehrere Standorte
-> CEPH hat vergleichsweise hohe Latenz - synchrone Verteilung auf alle Storage
- selbstheilend
- gutes Dashboard im PVE
- Update-Installation wie PVE Updates
- läuft auf Standard-Hardware, keine Hersteller-Liste
- Subscription- (mit PVE Subscription) oder NoSubscription Updates
- HDs zufügen / verschiedene HD-Größen / Hosts zufügen
- RADOS Block Device für PVE VMs
- PVE Client verhandelt mit CEPH und speichert auf einen Datenträger
CEPH synchronisiert Daten selbständig auf (min. 2) weitere Kopien - CEPH wird über PVE pro Host installiert
- eigenes, performantes Netzwerk verwenden! (25 Gb/s) - (Public Network + Cluster Network gemeinsam)
-> Full Meshed Network for 3x CEPH (=keine Switche, spart ca. 35.000,-) - CEPH Monitor für Host2 + Host3 nachinstallieren, Host1 wird automatisch installiert
- CEPH Manager für Host2 oder 3 installieren, 2x Manager genügt
- CEPH OSD = Datenträger, nur NVMe/ SSD, alle Datenträger pro Host hinzu fügen (OSD zu phys. HD dokumentieren)
- CEPH Pools anlegen, Size=3 (Anzahl der Replikate), Min.Size=2 (sonst geht CEPH down)
- CEPH / DephFS: 3x Metadaten Server pro Host erstellen
- VM: Storage Move-to: CEPH-Pool
- CEPH / OSD: Global Flags (noaut usw.) setzen für Wartung
Grundvoraussetzungen:
- min. 3 Ceph-Server
3x CEPH (immer ungerade Anzahl) Monitor für Quorum, Client-Management
CEPH Manager (Monitoring-Daten, Schnittstelle für ext. Monitoring) - min. 4x OSD (Datenträger) pro Cluster, gleiche Anzahl pro Host empfohlen
- ausschließlich Einsatz von Flash statt HDs
- Implementierung eines Monitoringsystems für Disk- und Poolauslastung
ohne Cluster
Proxmox Remote Migration
- Migration von VM oder LXC von einem Host auf einen anderen über das Netzwerk
- kein Cluster erforderlich, verteilte Standorte und getrennte Systeme möglich
- Berechtigung über API-Token
- Anleitung: https://www.thomas-krenn.com/de/wiki/Proxmox_Remote_Migration?xtxsearchselecthit=1
Proxmox Datacenter Server
- Verwaltung von mehreren Proxmox VE oder PBS-Servern
- Server müssen nicht im selben Cluster sein
- Vertrauensstellung wird durch Fingerprint hergestellt (PVE: Zertifikate -> pve-ssl.pem)
Proxmox Cluster
Cluster (ermöglicht Livemigration, Hochverfügbarkeit, gemeinsame Oberfläche)
-> Datacenter -> Cluster (Cluster erstellen, weitere Hosts beitreten)
- zentrales Management: Single web interface allows you to manage all servers in the cluster
- Nodes mit selber Version, Hosts mit gleichem CPU-Vendor erforderlich (kein Mischbetrieb AMD - Intel)
- VM Live-Migration: move virtual machines between physical servers without interrupting their service (99ms).
- VM Replication: Replicate virtual machines for backup and disaster recovery purposes (nur ZFS).
- High Availability (HA): With features like shared storage or replication, you can automatically restart virtual machines on another node if one server fails.
(1 Min. Umschaltzeit, ohne zentralen Storage wird die letzte Replication-Kopie genutzt) - Cluster-wide Firewall
- ungerade Anzahl an Host erforderlich (Corosync Quorum), wichtig wenn man HA nutzt
(Lösung: zusätzliches QDevice (auf Raspberry, Backup-Server...), oder höhere Votes für einen Host festlegen) - IDs dürfen im Cluster nur einmal vorhanden sein -> hinzu gefügter Host sollte leer sein
- ZFS erforderlich (also kein RAID-Controller + LVM)
- NTP Zeit muß synchron sein
- LANs (empfohlen):
- Corosync - PVE-Cluster
- Ceph - Storage
- vmbr0 - VMs - Cluster synchronisiert /pve/ Konfigurationen
- fügt 2 oder mehr Proxmox-Hosts zu einer Oberfläche hinzu, auch ohne zentralen oder replizierten Storage (2 Instanzen bilden "Mehrheit")
- mit zentralem Storage können VM im laufenden Betrieb verschoben werden (HA, Failover)
- auch ohne zentralem Storage geht Livemigration im Cluster (entsprechend langsam), Server-Sync (Bsp. minütlich)
- dediziertes (schnelles!) Storage-Netz für ZFS Sync
- Achtung: VMs dürfen keine gleichen Namen (101) haben! Am Besten leeren Host hinzu fügen. Sync. Storage-Pools müssen gleichen Namen haben.
- https://pve.proxmox.com/wiki/Cluster_Manager
- CEPH (empfohlen) ist ein selbstheilender, sich selbst verwaltender, frei skalierbarer Speicher über mehrere Geräte hinweg (Open Source Software)
- min. 3 Server
- min. 4 Datenträger je Server
- dediziertes Storage-LAN (min. 25 Gb/s bei NVMe)
Linux KVM Virtualisierungstechnologie
Quellen und Links:
- UK: wichtige Befehle (Linux/Proxmox/ZFS)
- UK: Proxmox PVE Server
- https://www.redhat.com/de/topics/virtualization/what-is-KVM
- KVM Management Tools: https://www.linux-kvm.org/page/Management_Tools
- KVM Community: https://www.linux-kvm.org/page/Main_Page
- Windows in KVM: https://www.makeuseof.com/create-windows-virtual-machine-in-linux-with-kvm/
- Anleitung dt.: https://docs.linuxmuster.net/en/stable/appendix/install-on-kvm/index.html
- https://docs.linuxfabrik.ch/software/kvm.html
- Hot-Backup mit virtnbdbackup utility for libvirt: https://github.com/abbbi/virtnbdbackup
- VMWare in Proxmox konvertieren (vor Proxmox 8.2): https://pve.proxmox.com/wiki/Migrate_to_Proxmox_VE#Migration
KVM/Qemu-Virtualisierung
Volle KVM/Qemu-Virtualisierung, Verwaltung mehrerer VMs
- egrep -c '(vmx|svm)' /proc/cpuinfo - Virtualisierung verfügbar? muss "0" ergeben
- sudo apt install qemu-kvm qemu-system qemu-utils python3 python3-pip libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager -y - Qemu installieren
- sudo systemctl status libvirtd.service - Dienst überprüfen
- sudo virsh net-start default - virt. Netzwerk zuweisen
- sudo virsh net-autostart default - Autostart
- sudo virsh net-list --all - Status prüfen
- virt-manager - startet Virtualisierungs-Manager GUI
- Quelle und alle Schritte: https://christitus.com/vm-setup-in-linux/
WinBoat
- Electron-App, nutzt KVM und Containervirtualisierung unter Linux
- guter Assistent führt per GUI durch alle Installations-Schritte
- Programm lädt und installiert auf Wunsch automatisch das Gast-(Windows)-OS per Dockur
- Anwendungen lassen sich einzeln per RDP aus dem Wirtsystem aufrufen und fühlen sich wie nativ in Linux installiert an
- Windows läuft als VM innerhalb eines Docker-Containers und kommuniziert mit dem Anwender über Winboat Guest Server per FreeRDP
- Dateisystem-Integration über durchgereichtes Verzeichnis in Netzwerkumgebung und Drag & Drop
- Windows-VM läuft auch im Browser (http://127.0.0.1:8006), aber RDP ist flüssiger
- Netzwerk ist per Default zum LAN gekapselt, hat aber Internetzugriff
- USB Passthrough (Beta) funktioniert super
Kernel-Based Virtual Machine (KVM) ist eine Open Source-Virtualisierungstechnologie, die im Linux® Kernel integriert ist.
Diese Technologie wird unter anderem genutzt bei:
- UK: Proxmox VE
- WinBoat (siehe unten)
- Linux onboard (siehe unten)
Voraussetzung: Hardware-Virtualisierungs-Unterstützung durch die CPU.
Linux entscheidet sich wegen schlechter Performance gegen Spectre-Schutz
Eine Schutzfunktion im Linux-Kernel sollte vor der Hardware-Lücke Spectre-V2 schützen, hat wohl aber mitunter zu starken Einfluss auf die Rechengeschwindigkeit.
In Benchmarks einiger Beobachter, etwa beim Linux-Hardware-Portal Phoronix, ist von 40 bis 50 Prozent Leistungsverlust die Rede, wie immer bei Meltdown- und Spectre-Patches kommt dies allerdings sehr stark auf die Art der Arbeit an, mit der die CPU beschäftigt wird.
Auch hier ist der Schutz also optional und keineswegs durchgehend.
