Technologieführer

Terminal-Server in Linux einrichten mit Ubuntu 9.10 und FreeNX

9 min read Linux Server Aktualisiert 18 Oct 2025
Terminal-Server mit FreeNX auf Ubuntu 9.10 einrichten
Terminal-Server mit FreeNX auf Ubuntu 9.10 einrichten

Wichtig: Ubuntu 9.10 (Karmic Koala) ist veraltet. Für produktive Umgebungen sollten Sie eine unterstützte LTS-Version verwenden. Dieser Leitfaden basiert auf den damals gültigen Schritten, ist aber auch als Konzept- und Prozessvorlage für aktuellere Versionen nützlich.

Übersicht und Einsatzzwecke

Thin-Client- oder Terminal-Server-Setups erlauben es, zentrale Rechenleistung und Daten an mehrere entfernte Arbeitsplätze zu verteilen. FreeNX ist eine Open-Source-Implementierung des NX-Protokolls von NoMachine. Im Vergleich zu klassischem VNC reduziert NX Bandbreitennutzung, verbessert die Reaktionsfähigkeit und verwendet standardmäßig SSH für verschlüsselte Verbindungen.

Typische Einsatzszenarien:

  • Unternehmenszugang zu internen Ressourcen über einen per SSH geschützten Einstiegspunkt.
  • Zugriff auf den leistungsfähigen Heimarbeitsplatz von einem Netbook oder schwächeren Gerät.
  • Wiederverwendung älterer Hardware als Thin Clients (ggf. in Verbindung mit LTSP).

Vorteile auf einen Blick:

  • Ein einziger offener Port (SSH 22) vereinfacht Firewall- und NAT-Regeln.
  • Zentrale Administration und Datenspeicherung.
  • Geringeres Risiko durch beschränkte Client-Umgebung (z. B. weniger Malware-Angriffspunkte).

Voraussetzungen und Risiken

  • Grundkenntnisse in Linux-Administration und Netzwerktechnik werden vorausgesetzt.
  • Diese Anleitung ist eine pragmatische Schritt-für-Schritt-Anleitung; sie deckt nicht alle Sicherheits- und Compliance-Aspekte ab.
  • Arbeiten Sie in produktiven oder sensiblen Netzwerken nur mit überprüften, aktuellen Betriebssystemen und halten Sie Sicherheitsrichtlinien ein.

Kurze Begriffsdefinitionen

  • NX: Ein Protokoll für Remote-Desktop-Sitzungen mit Fokus auf Effizienz.
  • FreeNX: Open-Source-Server-Implementierung für das NX-Protokoll.
  • SSH: Secure Shell, ein verschlüsseltes Protokoll für entfernte Kommandozeilen- und Tunnelsitzungen.

Vorbereitung: Betriebssystem

Installieren Sie Ubuntu 9.10 (Karmic Koala) wie gewohnt. Falls Sie neuere Ubuntu-Versionen verwenden, passen sich einige Paket- und Repository-Namen an. Als Basis reichen die Schritte 1–3 einer typischen Desktopinstallation; Desktop-Umgebung: GNOME (Standard bei 9.10).

Weiterführende Installationsanleitungen finden Sie z. B. hier: https://www.howtoforge.com/the-perfect-desktop-ubuntu-9.10-karmic-koala

Root-Rechte erlangen und Pakete installieren

Öffnen Sie ein Terminal (Anwendungen -> Zubehör -> Terminal) und wechseln Sie zu root:

 sudo su -l

Installieren Sie die notwendigen Pakete. OpenSSH ist Voraussetzung für FreeNX; fail2ban begrenzt Brute-Force-Versuche; firehol ist ein nutzerfreundlicher Wrapper für iptables.

 aptitude update && aptitude install openssh-server fail2ban firehol

Testen Sie den SSH-Server lokal:

 ssh 127.0.0.1

Sie sollten die RSA-Fingerprint-Abfrage sehen. Notieren Sie den Fingerabdruck — wir vergleichen ihn später. Brechen Sie die Verbindung mit Strg+C ab.

Wichtig: Lassen Sie dieses Terminal geöffnet; wir nutzen es später erneut.

Netzwerk einrichten: statische IP konfigurieren

Da der Rechner als Server dient, empfiehlt sich eine statische IP im lokalen Netz. Alternativ können Sie eine feste DHCP-Zuweisung verwenden (MAC-basiert), die in Ihrem DHCP-Server eingerichtet wird.

Prüfen Sie aktuelle Netzwerkinformationen:

 ifconfig eth0

Notieren Sie IP-Adresse (inet addr), Broadcast (Bcast) und Netzmaske (Mask). Prüfen Sie DNS-Server:

 cat /etc/resolv.conf

Und die Standardroute:

 route

Bearbeiten Sie die Netzwerkkonfiguration:

 nano /etc/network/interfaces

Ändern Sie eine vorhandene DHCP-Zeile von

 iface eth0 inet dhcp

auf

 iface eth0 inet static

Fügen Sie anschließend diese Werte mit Ihren spezifischen Netzdaten ein und passen Sie sie an:

    address 192.168.1.253
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8, 8.8.4.4

Hinweis: Die Google-DNS-Server sind praktisch und leicht zu merken, ersetzen aber nicht zwingend lokale DNS- oder Betriebsspezifika.

Anschließend Neustart des Netzwerk-Services:

 /etc/init.d/networking restart

Öffnen Sie Firefox und prüfen Sie Internetzugang, bevor Sie fortfahren.

Firewall mit FireHOL konfigurieren

Firehol wird so konfiguriert, dass nur eingehende SSH-Verbindungen erlaubt werden; ausgehender Traffic bleibt offen.

Aktivieren Sie Firehol beim Systemstart:

 nano /etc/default/firehol

Ändern Sie:

START_FIREHOL=NO

auf

START_FIREHOL=YES

Aktualisieren Sie die reservierten IP-Adressen:

 get-iana

Bearbeiten Sie die Konfigurationsdatei:

nano /etc/firehol/firehol

Fügen Sie am Ende folgende Regel ein:

server ssh accept

Starten Sie Firehol:

 firehol start

Sie sollten eine Bestätigung wie “Activating new firewall (…) : OK” sehen. Zur Überprüfung können Sie die iptables-Regeln anzeigen:

 iptables --list

Wichtiger Hinweis: Wenn Sie zusätzlich Dienste auf dem Server betreiben (z. B. HTTP, Samba), müssen weitere Ports konfiguriert werden.

FreeNX installieren und Grundkonfiguration

FreeNX ist in einem PPA verfügbar; fügen Sie das Repository hinzu und installieren Sie:

 add-apt-repository ppa:freenx-team
 aptitude update
 aptitude install freenx
 /usr/lib/nx/nxsetup --install

Bei Bedarf können Sie zusätzliche Schlüsselpaar-Dateien erzeugen. Standardmäßig nutzt FreeNX vorhandene Server-Schlüssel. Eigene Schlüssel erhöhen die Sicherheit, erfordern aber, dass der öffentliche Teil an Clients verteilt wird.

Empfehlung: In produktiven, extern erreichbaren Setups eigene Schlüssel verwenden und sicher verteilen.

Schlüssel erzeugen und verteilen (kurz)

SSH-Server-Schlüssel (falls neu erzeugt) können Sie mit ssh-keygen erstellen. Beispiel für ein RSA-Schlüsselpaar:

ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key_custom

Wenn FreeNX eigene Schlüssel verlangt, platzieren Sie diese an den von FreeNX genutzten Orten (Dokumentation beachten). Verteilen Sie nur den nötigen öffentlichen Schlüssel an Clients.

Wichtig: Bewahren Sie private Schlüssel sicher (nur root-Zugriff) auf.

Client-Installation und Sitzung anlegen

Auf dem Client (Windows, OS X, Linux, Solaris) laden Sie den NX-Client von NoMachine:

http://www.nomachine.com/download.php

Installation:

  • Führen Sie den Installer des passenden Clients aus.
  • Starten Sie den NX Connection Wizard.
  • Geben Sie einen Sitzungstitel und die IP-Adresse des Servers ein. Wählen Sie die Netzwerkgeschwindigkeit (z. B. LAN).
  • Wählen Sie als Desktop-Umgebung GNOME (Standard bei Ubuntu 9.10) statt KDE, falls erforderlich.
  • Falls Sie eigene Schlüssel erzeugt haben: aktivieren Sie die erweiterte Konfiguration und importieren Sie den Schlüssel (Key-Button).

Anmeldung:

  • Geben Sie Ihren Linux-Benutzernamen und Ihr Passwort ein.
  • Beim ersten Verbindungsaufbau werden Sie den SSH-Fingerprint akzeptieren müssen. Vergleichen Sie diesen mit dem zuvor notierten Fingerabdruck.

Warnung: Wenn der Fingerprint später unvermittelt wechselt, könnte das auf einen Man-in-the-Middle-Angriff hindeuten. Untersuchen Sie die Ursache, bevor Sie erneut verbinden.

Benutzerverwaltung

Legen Sie Benutzerkonten auf dem Server an, die sich per NX anmelden dürfen:

System -> Verwaltung -> Benutzer und Gruppen (oder per CLI mit adduser):

adduser vorname.nachname

Passen Sie Gruppenzugehörigkeiten und sudo-Rechte entsprechend an.

Router und Fernzugang

Für externen Zugriff muss Port 22 an die statische IP des NX-Servers weitergeleitet werden (Port-Forwarding). Alternativ nutzen Sie eine Bastion/Jump-Host-Architektur oder VPN-Verbindungen.

Sicherheitsüberlegungen:

  • Öffnen Sie SSH nur, wenn nötig. Beschränken Sie Verbindungen per Firewall oder TCP-Wrappers auf bekannte IPs, falls möglich.
  • Setzen Sie Fail2Ban mit angepassten Filtern und längeren Sperrzeiten für wiederholte Fehlschläge ein.

Konkrete Sicherheitsverbesserungen

Empfohlene Maßnahmen, ohne Anspruch auf Vollständigkeit:

  • SSH auf Schlüssel-basierte Authentifizierung umstellen und Passwort-Login deaktivieren (in /etc/ssh/sshd_config: PasswordAuthentication no).
  • Root-Login per SSH deaktivieren (PermitRootLogin no).
  • SSH-Port ändern (Security by obscurity; reduziert nur opportunistische Scans).
  • Rate-Limiting und Intrusion-Prevention: fail2ban konfigurieren.
  • Regelmäßige Updates und ein Intrusion-Detection-System (IDS) erwägen.

Beispiel: Minimaler fail2ban-Filter in /etc/fail2ban/jail.local:

[sshd]
enabled  = true
port     = 22
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5
bantime  = 3600

Hinweis: Überprüfen Sie die Pfade und Konfigurationssyntax für Ihre Distribution.

Troubleshooting: Häufige Probleme und Lösungen

Verbindung schlägt fehl:

  • Prüfen Sie, ob der SSH-Dienst läuft: systemctl status ssh (oder /etc/init.d/ssh status).
  • Testen Sie lokalen SSH-Zugriff: ssh 127.0.0.1
  • Firewall prüfen: iptables –list und /var/log/firehol – bei Firehol-Konfigurationen ggf. firehol status.
  • Router/Port-Forwarding prüfen: Von außerhalb einen Portscan (z. B. nmap) gegen Ihre öffentliche IP durchführen.

XSitzung startet nicht oder ist schwarz:

  • Stellen Sie sicher, dass auf dem Server ein Desktop-Manager (z. B. GNOME) installiert ist.
  • Prüfen Sie FreeNX-Logs (typischer Pfad: /var/log/nx/) auf Fehlermeldungen.
  • Prüfen Sie Home-Verzeichnis-Berechtigungen und .Xauthority-Dateien.

SSH-Fingerprint ändert sich:

  • Klären Sie, ob Sie kürzlich Host-Schlüssel erneuert haben. Wenn nicht, behandeln Sie dies als potentiellen Sicherheitsvorfall.

Alternative Ansätze und Vergleich

Wenn FreeNX oder Ubuntu 9.10 nicht passend sind, ziehen Sie folgende Alternativen in Betracht:

  • xrdp: Einfacher Remote-Desktop-Zugang via RDP-Protokoll; gut für Windows-Clients.
  • VNC (TigerVNC, TightVNC): Breite Unterstützung, meist höhere Bandbreitenlast.
  • NoMachine Enterprise: Kommerzielle Lösung mit erweitertem Feature-Set.
  • SSH + X11 Forwarding: Geeignet für einzelne X-Anwendungen, nicht für komplette Desktop-Sitzungen.

Kurzvergleich (konzeptionell):

  • FreeNX: Effizient, niedrige Bandbreite, verschlüsselt über SSH.
  • VNC: Einfach, aber oft träger und ohne standardmäßige Verschlüsselung.
  • RDP/xrdp: Gut für Windows-interoperabilität.

Migrationstipps und Kompatibilität

  • Ubuntu 9.10 ist End-of-Life. Für produktive Systeme migrieren Sie auf eine aktuelle LTS-Version (z. B. Ubuntu 20.04/22.04) und prüfen Sie verfügbare Remote-Desktop-Pakete.
  • PPA-Namen und Paketverfügbarkeit ändern sich über die Jahre. Prüfen Sie aktuelle Dokumentation für Ihre Version.
  • Firewall- und Fail2Ban-Regeln lassen sich weitgehend 1:1 übernehmen, die Syntax aktueller Systemd-Services (systemctl) ist jedoch zu beachten.

Rolle-basierte Checklisten

Server-Administrator (Vor dem Produktionsstart):

  • Statische IP konfiguriert und getestet.
  • Firehol/iptables so konfiguriert, dass nur benötigte Ports offen sind.
  • SSH-Härtung durchgeführt (Schlüssel, Root-Login deaktiviert, ggf. Port geändert).
  • Fail2Ban aktiviert und getestet.
  • FreeNX installiert und Grundsitzung getestet.
  • Backups und Wiederherstellungsplan eingerichtet.

Client-Benutzer (Vor der Nutzung):

  • NX-Client installiert und Sitzung angelegt.
  • SSH-Fingerprint beim ersten Verbinden geprüft und akzeptiert.
  • Zugriff auf benötigte Anwendungsdaten geprüft.

Mini-Methodik: Schritte zusammengefasst (Schnellreferenz)

  1. Ubuntu installieren (oder vorhandenes System verwenden).
  2. Root-Rechte erlangen: sudo su -l.
  3. Installieren: openssh-server, fail2ban, firehol.
  4. Statische IP konfigurieren (/etc/network/interfaces).
  5. Firehol aktivieren, get-iana ausführen und SSH erlauben.
  6. FreeNX PPA hinzufügen, freenx installieren und nxsetup ausführen.
  7. Client installieren, Session anlegen, Schlüssel/Fingerprint prüfen.
  8. Benutzer anlegen, Tests durchführen, optional Router-Port-Forwarding konfigurieren.

Testfälle und Akzeptanzkriterien

  • Verbindungstest: Lokaler SSH-Login erfolgreich.
  • Remote-Test: Verbindung per NX-Client von einem entfernten Rechner möglich.
  • Firewall-Test: Port 22 ist nur auf dem NX-Server offen, keine unerwarteten Ports.
  • Authentifizierungstest: Passwort-Login (falls deaktiviert) funktioniert nicht; Schlüssel-Login funktioniert.

Sicherheitsvorfall-Runbook (Kurz)

  1. Erkennen: Unerwarteter SSH-Fingerprint-Wechsel oder wiederholte Abwehrversuche in Logs.
  2. Isolieren: Firewall-Regel verschärfen, Quelle blocken.
  3. Analysieren: /var/log/auth.log, FreeNX-Logs prüfen; Versionen und Änderungen dokumentieren.
  4. Wiederherstellen: Schädlingsfreie Backups einspielen oder Host-Schlüssel regenerieren und Clients informieren.
  5. Lessons learned: Ursachenanalyse und Maßnahmen anpassen (z. B. Fail2Ban-Richtlinien verschärfen).

Weiterführende Dokumentation und Links

  • Ubuntu FreeNX Documentation
  • Firehol
  • Fail2ban
  • NoMachine

Zusammenfassung

Sie haben jetzt eine vollständige Anleitung, um Ubuntu 9.10 als FreeNX-Terminal-Server einzurichten: von der Paketinstallation über statische Netzwerkkonfiguration und Firewall bis hin zum Client-Setup und empfohlenen Sicherheitsmaßnahmen. Testen Sie Verbindungen lokal und remote, härten Sie SSH und verwenden Sie Fail2Ban, um Brute-Force-Angriffe zu mindern.

Wichtig: Aktualisieren Sie Betriebssystem und Software für produktive Umgebungen auf unterstützte Versionen und evaluieren Sie moderne Alternativen zu FreeNX, falls erforderlich.

Kriterien beiёмnahme (Kriterien für Akzeptanz):

  • Der Server ist über NX von mindestens einem entfernten Client erreichbar.
  • SSH-Fingerprint wurde geprüft und dokumentiert.
  • Firewall erlaubt nur die gewünschten Verbindungen.
  • Fail2Ban oder gleichwertige Schutzmaßnahmen sind aktiv.

Glossar: NX — effizientes Remote-Desktop-Protokoll; FreeNX — Open-Source-Server-Implementierung; SSH — verschlüsselte Verbindung.

Autor
Redaktion

Ähnliche Materialien

Podman auf Debian 11 installieren und nutzen
DevOps

Podman auf Debian 11 installieren und nutzen

Apt-Pinning: Kurze Einführung für Debian
Systemadministration

Apt-Pinning: Kurze Einführung für Debian

FSR 4 in jedem Spiel mit OptiScaler
Grafikkarten

FSR 4 in jedem Spiel mit OptiScaler

DansGuardian + Squid (NTLM) auf Debian Etch installieren
Netzwerk

DansGuardian + Squid (NTLM) auf Debian Etch installieren

App-Installationsfehler auf SD-Karte (Error -18) beheben
Android

App-Installationsfehler auf SD-Karte (Error -18) beheben

Netzwerkordner mit KNetAttach in KDE
Linux Netzwerk

Netzwerkordner mit KNetAttach in KDE