OpenUEM unter Ubuntu 24.04 auf Proxmox installieren und produktiv für externe Clients bereitstellen
Ziel dieser Anleitung
Diese Anleitung beschreibt die produktive Neuinstallation von OpenUEM auf Ubuntu Server 24.04 in einer Proxmox-VM mit lokaler PostgreSQL-Datenbank, Nginx Proxy Manager für die Weboberfläche und externer Agentenanbindung über TCP 4433.Die Anleitung ist bereits an Wiki.js angepasst und kann direkt als Markdown importiert oder eingefügt werden.
openuem.it-service-ahd.de192.168.178.150Wichtig
In diesem Aufbau wird die Weboberfläche über Nginx Proxy Manager veröffentlicht.Die Agentenkommunikation läuft nicht über den normalen Web-Proxy, sondern direkt über NATS auf TCP 4433.
openuem-console.serviceopenuem-nats.serviceopenuem-ocsp-responder.serviceopenuem-agent-worker.serviceopenuem-notification-worker.serviceopenuem-cert-manager-worker.serviceopenuem-server-updater.service/var/log/openuem-server/
Typische Dateien sind zum Beispiel:
/var/log/openuem-server/openuem-console-service
/var/log/openuem-server/openuem-auth
/var/log/openuem-server/openuem-nats-service
/var/log/openuem-server/openuem-ocsp-responder
https://openuem.it-service-ahd.deopenuem.it-service-ahd.de:4433openuem-srv.it-service-ahd.de ausgestellt ist, der Agent aber openuem.it-service-ahd.de:4433 nutzt, entsteht ein TLS-Fehler.openuem-cert-manager neu zu erstellen, ist unter Ubuntu in diesem Aufbau nicht zielführend gewesen.openuem.it-service-ahd.de als produktiven Namen verwendenopenuem.it-service-ahd.de zeigt öffentlich auf den Nginx Proxy ManagerHinweis
OpenUEM benötigt eine saubere Namensauflösung. Falsche DNS-Auflösung führt in der Praxis schnell dazu, dass sich Console und NATS über die öffentliche WAN-IP statt intern über die LAN-IP erreichen wollen.
Wichtig
Für externe Agenten muss TCP 4433 zusätzlich auf die OpenUEM-VM weitergeleitet werden.
sudo apt update
sudo apt dist-upgrade -y
sudo apt install -y nano curl gpg ca-certificates postgresql postgresql-contrib
sudo timedatectl set-timezone Europe/Berlin
Hostname setzen:
sudo hostnamectl set-hostname openuem-srv
Hosts-Datei anpassen:
sudo nano /etc/hosts
Empfohlener Inhalt:
127.0.0.1 localhost
127.0.1.1 openuem-srv
192.168.178.150 openuem-srv.it-service-ahd.de openuem-srv
192.168.178.150 openuem.it-service-ahd.de
Namensauflösung prüfen:
getent hosts openuem-srv.it-service-ahd.de
getent hosts openuem.it-service-ahd.de
Wichtig
Beide Namen sollten intern auf die LAN-IP der OpenUEM-VM zeigen.Dadurch wird verhindert, dass sich der Server selbst über die öffentliche WAN-IP anspricht.
sudo -u postgres psql
Datenbank und Benutzer anlegen:
DROP DATABASE IF EXISTS openuem;
DROP ROLE IF EXISTS openuem;
CREATE ROLE openuem WITH LOGIN PASSWORD 'SEHR_STARKES_PASSWORT';
CREATE DATABASE openuem OWNER openuem;
GRANT ALL PRIVILEGES ON DATABASE openuem TO openuem;
\q
curl -fsSL https://apt.openuem.eu/pgp-key.public | sudo gpg --dearmor -o /usr/share/keyrings/openuem.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/openuem.gpg] https://apt.openuem.eu stable main" | sudo tee /etc/apt/sources.list.d/openuem.list
sudo apt update
sudo apt install -y openuem-server
Während der Installation die Fragen wie folgt beantworten.
8.1 Komponenten
Alle Komponenten auf dieser Maschine installieren.
8.2 Datenbank
DB Host: 127.0.0.1
DB Port: 5432
DB User: openuem
DB Passwort: das zuvor gesetzte Passwort
DB Name: openuem
8.3 Domain und Zertifikate
Basis-Domain: it-service-ahd.de
Zertifikate automatisch erstellen: Ja
Reverse Proxy DNS Name: openuem.it-service-ahd.de
8.4 Organisationsdaten
Beispiel:
Organisation: IT-Service AHD
Country: DE
Province: Rheinland-Pfalz
Locality: Flomborn
8.5 NATS
Hier liegt der wichtigste produktive Unterschied.
Diesmal nicht den internen Hostnamen verwenden, sondern direkt den produktiven öffentlichen Namen:
NATS Server Domain: openuem.it-service-ahd.de
NATS Port: 4433
Cluster: No
8.6 OCSP
Auch hier den gleichen produktiven Namen verwenden:
OCSP Server Domain: openuem.it-service-ahd.de
OCSP Port: 8000
8.7 Console
Auch die Console mit dem gleichen produktiven Namen konfigurieren:
Console DNS Name: openuem.it-service-ahd.de
Console Web Service Port: 1323
Console Auth Port: 1324
8.8 Reverse Proxy Auth Port
Reverse Proxy Auth Port: 1344
8.9 JWT Key
eine starke Zeichenfolge setzen
8.10 Admin-Zertifikat
Passwort für das Admin-Zertifikat vergeben
Linux-Benutzer für den Browser-Import angeben
Wichtig
Für einen praxistauglichen Betrieb mit externen Clients sollte in diesem Aufbau durchgängigopenuem.it-service-ahd.deverwendet werden.Nur so passen später Hostname, Portfreigabe und Zertifikate sauber zusammen.
systemctl list-unit-files | grep openuem
Status der wichtigsten Dienste prüfen:
sudo systemctl status openuem-console.service --no-pager -l
sudo systemctl status openuem-nats.service --no-pager -l
sudo systemctl status openuem-ocsp-responder.service --no-pager -l
sudo systemctl status openuem-agent-worker.service --no-pager -l
sudo systemctl status openuem-notification-worker.service --no-pager -l
sudo systemctl status openuem-cert-manager-worker.service --no-pager -l
sudo systemctl status openuem-server-updater.service --no-pager -l
Ports prüfen:
sudo ss -tulpen | grep -E '1323|1324|4433|8000|2022|1443'
Hinweis
Falls beissein Fehler erscheint, wurde meist versehentlich@statt|verwendet.
curl -kI https://127.0.0.1:1323
Erwartung: eine HTTP-Antwort wie 200.
Zusätzlich prüfen, ob NATS lokal lauscht:
sudo ss -tlnp | grep 4433
/etc/openuem-server/openuem.ini
11.2 Zertifikate
/etc/openuem-server/certificates
11.3 Logs
/var/log/openuem-server
Typische Dateien:
/var/log/openuem-server/openuem-console-service
/var/log/openuem-server/openuem-auth
/var/log/openuem-server/openuem-nats-service
/var/log/openuem-server/openuem-ocsp-responder
Verzeichnisinhalt prüfen:
sudo ls -la /var/log/openuem-server
openuem.it-service-ahd.dehttps192.168.178.1501323openuem.it-service-ahd.deproxy_ssl_verify off;
proxy_ssl_server_name on;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Wichtig
Der Nginx Proxy Manager ist in diesem Aufbau für die Weboberfläche zuständig.Die Agentenkommunikation auf Port 4433 läuft nicht über diesen normalen HTTPS-Proxy-Host.
OpenUEM NATSTCP44334433192.168.178.1504433Wichtig
Für externe Agenten muss TCP 4433 direkt auf die OpenUEM-VM zeigen.Eine Weiterleitung auf den Nginx Proxy Manager reicht hierfür nicht aus.
https://openuem.it-service-ahd.de
14.2 NATS-Port extern testen
Auf einem externen Windows-PC:
Test-NetConnection openuem.it-service-ahd.de -Port 4433
Erwartung:
TcpTestSucceeded : True
https://openuem.it-service-ahd.de
Standardbenutzer für den Passwort-Login:
openuem
Das initiale temporäre Passwort steht in den Console-Logs.
Im Log suchen:
sudo grep -i "password\|initial\|openuem" /var/log/openuem-server/openuem-console-service
oder:
sudo tail -n 200 /var/log/openuem-server/openuem-console-service
openuem zurücksetzensudo nano /etc/openuem-server/openuem.ini
In der Sektion [Console] ergänzen:
resetopenuemuser=true
Danach Dienst neu starten:
sudo systemctl restart openuem-console.service
sudo tail -n 200 /var/log/openuem-server/openuem-console-service
Das neue temporäre Passwort sollte nun im Log erscheinen.
Danach den Eintrag wieder entfernen oder auf false setzen und den Dienst erneut neu starten:
sudo systemctl restart openuem-console.service
Warnung
resetopenuemuser=truedarf nicht dauerhaft aktiv bleiben.
/etc/openuem-server/certificates/users/admin.pfx
/etc/openuem-server/certificates/ca/ca.cer
Falls nötig, nach /tmp kopieren:
sudo cp /etc/openuem-server/certificates/ca/ca.cer /tmp
sudo cp /etc/openuem-server/certificates/users/admin.pfx /tmp
sudo chmod 666 /tmp/ca.cer
sudo chmod 666 /tmp/admin.pfx
openuem-agent-setup.execa.cersftp.ceragent.ceragent.key/etc/openuem-server/certificates/ca/ca.cer
/etc/openuem-server/certificates/console/sftp.cer
/etc/openuem-server/certificates/agents/agent.cer
/etc/openuem-server/certificates/agents/agent.key
Die Dateien am besten in denselben Ordner wie den Windows-Installer legen.
18.2 Agent installieren
Für produktive externe Clients sollte als NATS-Ziel verwendet werden:
openuem.it-service-ahd.de:4433
Beispiel für eine stille Installation:
openuem-agent-setup.exe /server=openuem.it-service-ahd.de:4433 /sftp=2022 /vnc=1443 /VERYSILENT
Unit openuem-nats-service.service could not be found.
Lösung:
Die korrekten Dienstnamen unter Ubuntu prüfen:
systemctl list-unit-files | grep openuem
19.2 Fehler: Logdatei nicht gefunden
Beispiel:
tail: cannot open '/var/log/openuem-server/openuem-console.log'
Lösung:
Zuerst das Logverzeichnis anzeigen:
sudo ls -la /var/log/openuem-server
19.3 Fehler: no route to host oder i/o timeout auf :4433
Ursache:
Port 4433/tcp ist extern nicht erreichbar.
Lösung:
prüfen, ob openuem-nats.service lokal läuft
prüfen, ob 4433 lokal lauscht
FRITZ!Box-Portfreigabe auf die OpenUEM-VM setzen
extern mit Test-NetConnection testen
19.4 Fehler: Zertifikat nicht gültig für den verwendeten Hostnamen
Beispiel:
x509: certificate is valid for openuem-srv.it-service-ahd.de, localhost, not openuem.it-service-ahd.de
openuem.it-service-ahd.de für NATS, Console und OCSP verwenden.systemctl list-unit-files | grep openuem
Ports:
sudo ss -tlnp | grep -E '1323|1324|4433|8000|2022|1443'
Console-Log:
sudo tail -n 100 /var/log/openuem-server/openuem-console-service
NATS-Log:
sudo tail -n 100 /var/log/openuem-server/openuem-nats-service
Journal der Console:
sudo journalctl -u openuem-console.service -n 100 --no-pager
Journal von NATS:
sudo journalctl -u openuem-nats.service -n 100 --no-pager
Lokaler Console-Test:
curl -kI https://127.0.0.1:1323
Externer NATS-Test vom Windows-PC:
Test-NetConnection openuem.it-service-ahd.de -Port 4433
root heruntergeladen werden sollen, kann ein zusätzlicher Linux-Benutzer angelegt und der Gruppe openuem zugeordnet werden.Hinweis
OpenUEM speichert Konfiguration, Zertifikate und Logs unter/etc/openuem-serverbzw./var/log/openuem-server. Standardmäßig haben nurrootund der Benutzeropenuemdirekten Zugriff. In der Praxis kann deshalb ein zusätzlicher Benutzer über die Gruppeopenuemberechtigt werden.
21.1 Benutzer anlegen
Beispielhaft wird hier der Benutzertechnikerangelegt:
sudo adduser techniker
sudo usermod -aG openuem techniker
Danach einmal abmelden und mit dem neuen Benutzer neu anmelden, damit die Gruppenmitgliedschaft aktiv wird.
Prüfen:
id techniker
21.2 SSH / SFTP bereitstellen
FileZilla verbindet sich per SFTP über SSH. Falls der SSH-Server noch nicht installiert ist:
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh --no-pager
21.3 Empfohlener Praxisweg: Export-Ordner anlegen
Direkter Zugriff auf /etc/openuem-server/certificates ist möglich, sauberer ist aber ein eigener Export-Ordner im Home-Verzeichnis des Technikers.
sudo mkdir -p /home/techniker/openuem-export
sudo cp /etc/openuem-server/certificates/ca/ca.cer /home/techniker/openuem-export/
sudo cp /etc/openuem-server/certificates/console/sftp.cer /home/techniker/openuem-export/
sudo cp /etc/openuem-server/certificates/agents/agent.cer /home/techniker/openuem-export/
sudo cp /etc/openuem-server/certificates/agents/agent.key /home/techniker/openuem-export/
sudo chown -R techniker:techniker /home/techniker/openuem-export
sudo chmod 700 /home/techniker/openuem-export
sudo chmod 600 /home/techniker/openuem-export/*
Diese vier Dateien werden für die Verteilung des Windows-Agenten benötigt:
ca.cer
sftp.cer
agent.cer
agent.key
21.4 Mit FileZilla verbinden
In FileZilla einen neuen Server anlegen:
Protokoll: SFTP - SSH File Transfer Protocol
Host: IP oder Hostname der OpenUEM-VM, z. B. 192.168.178.150
Port: 22
Benutzer: techniker
Passwort: das beim Anlegen gesetzte Passwort
Nach der Anmeldung zum Ordner wechseln:
/home/techniker/openuem-export
und die Zertifikatsdateien auf den Verwaltungs-PC herunterladen.
21.5 Direkter Zugriff auf den Zertifikatsordner
Wenn bewusst direkt mit den Originaldateien gearbeitet werden soll, kann der Benutzer nach der Aufnahme in die Gruppe openuem auch auf diesen Pfad zugreifen:
/etc/openuem-server/certificates
sudo apt purge -y openuem-server
sudo apt autoremove -y
openuem-console.service läuftopenuem-nats.service läuftcurl -kI https://127.0.0.1:1323 liefert eine Antworthttps://openuem.it-service-ahd.de ist im Browser erreichbarTest-NetConnection openuem.it-service-ahd.de -Port 4433 liefert TrueEmpfehlung
Nach erfolgreicher Grundinstallation sollte zunächst ein einzelner Testclient sauber eingebunden werden. Erst danach sollte der flächige Rollout auf mehrere Kunden-PCs erfolgen.