Wie man Virtualmin auf Ubuntu 22.04 installiert und absichert

Virtualmin ist ein Open-Source Control Panel für Linux- und UNIX-Server. Es ermöglicht Administratoren die Verwaltung von Domains, E-Mail-Konten, Datenbanken, DNS und Anwendungen über eine zentrale Oberfläche. Virtualmin unterstützt verschiedene Webserver, Datenbanken und Mail-Systeme und bietet zusätzlich Monitoring- sowie Benachrichtigungsfunktionen für Serverressourcen und Website-Performance.

Diese Anleitung zeigt, wie man Virtualmin auf Ubuntu 22.04 installiert, eine virtuelle Host-Webanwendung einrichtet und sie mit Let’s Encrypt SSL-Zertifikaten absichert.

Voraussetzungen

  • Ein Ubuntu 22.04 Server.
  • Ein A-Record für die Domain, der auf die IP-Adresse des Servers zeigt, z. B. virtualmin.example.com.
  • SSH-Zugang als Nicht-Root-Benutzer mit sudo-Rechten.
  • Ein vollständig aktualisierter Server.
  • Eine 2FA-App wie Google Authenticator auf deinem Gerät installiert.

Virtualmin installieren

Da Virtualmin nicht in den Standard-Repositories von Ubuntu 22.04 verfügbar ist, muss das offizielle Installationsskript heruntergeladen und ausgeführt werden. Gehe wie folgt vor:

Server-Hostname festlegen

Ersetze die Beispiel-Domain durch deine eigene:

$ sudo hostnamectl set-hostname virtualmin.example.com

Das Virtualmin-Installationsskript ausführen

Mit folgendem Befehl installierst du die Open-Source (GPL) Edition von Virtualmin mit einem LAMP-Stack:

$ sudo sh -c "$(curl -fsSL https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh)" -- --bundle LAMP

Bestätige die Installation mit Y. Die Einrichtung dauert etwa 5–10 Minuten. Nach Abschluss erscheint:

[SUCCESS] Installation Complete!
[SUCCESS] Wenn keine Fehler aufgetreten sind, ist Virtualmin bereit.
[SUCCESS] Zugriff über https://virtualmin.example.com:10000 (oder https://192.0.2.1:10000).

Virtualmin mit Let’s Encrypt absichern

So richtest du Let’s Encrypt SSL-Zertifikate ein, um die Virtualmin-Oberfläche zu schützen:

Apache-Dienst stoppen

$ sudo systemctl stop apache2

Certbot installieren

Installiere den Let’s Encrypt-Client zur Verwaltung von SSL-Zertifikaten:

$ sudo apt install certbot

Ein neues SSL-Zertifikat anfordern

Ersetze Domain und E-Mail durch deine Werte:

$ sudo certbot certonly --standalone -d virtualmin.example.com -m virtualmin@example.com --agree-tos

Falls bereits ein Zertifikat existiert, zeigt Certbot eine Auswahl:

  1. Das bestehende Zertifikat behalten
  2. Das Zertifikat erneuern und ersetzen

Wähle 1, um das aktuelle Zertifikat zu behalten. Wenn keine Auswahl erscheint, wird ein neues Zertifikat ausgestellt. Folge den Anweisungen bis zur Bestätigung.

Zertifikats-Bundle erstellen

Kombiniere Zertifikat und privaten Schlüssel und richte Webmin so ein, dass es die Datei verwendet:

$ sudo cat /etc/letsencrypt/live/virtualmin.example.com/fullchain.pem /etc/letsencrypt/live/virtualmin.example.com/privkey.pem | sudo tee /etc/webmin/ssl.pem

miniserv.conf bearbeiten

sudo nano /etc/webmin/miniserv.conf

Folgende Zeile anpassen:

keyfile=/etc/webmin/ssl.pem

Webmin neu starten

$ sudo systemctl restart webmin

Webmin-Status prüfen

$ sudo systemctl status webmin

Die Ausgabe sollte ähnlich aussehen:

● webmin.service - Webmin server daemon
     Loaded: loaded (/lib/systemd/system/webmin.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-04-29 08:53:57 UTC; 5s ago
   Main PID: 58333 (miniserv.pl)
      Tasks: 1 (limit: 9385)
     Memory: 88.0M
     CGroup: /system.slice/webmin.service
             └─58333 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf

Apache neu starten

$ sudo systemctl start apache2

Apache-Dienst überprüfen

$ sudo systemctl status apache2

Die Ausgabe sollte so ähnlich aussehen:

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-04-29 08:56:30 UTC; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 58415 (apache2)
      Tasks: 106 (limit: 9385)
     Memory: 11.2M
     CGroup: /system.slice/apache2.service
             ├─58415 /usr/sbin/apache2 -k start
             ├─58416 /usr/sbin/apache2 -k start
             ├─58417 /usr/sbin/apache2 -k start
             └─58418 /usr/sbin/apache2 -k start

Firewall-Regeln einrichten

Virtualmin verwendet das firewalld-Tool zur Verwaltung von Firewall-Einstellungen. So lässt du die benötigten Ports und Dienste zu:

firewalld-Dienst prüfen

Überprüfe, ob der Dienst läuft:

$ sudo systemctl status firewalld

Beispielausgabe:

● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-04-06 05:53:56 UTC; 1h 20min ago
       Docs: man:firewalld(1)
   Main PID: 46542 (firewalld)
      Tasks: 2 (limit: 9415)
     Memory: 25.8M
     CGroup: /system.slice/firewalld.service
             └─46542 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid

Zugelassene Ports anzeigen

$ sudo firewall-cmd --zone=public --list-ports

Beispielausgabe:

20/tcp 2222/tcp 10000-10100/tcp 20000/tcp 49152-65535/tcp

Zugelassene Dienste anzeigen

$ sudo firewall-cmd --zone=public --list-services

Beispielausgabe:

dhcpv6-client dns dns-over-tls ftp http https imap imaps mdns pop3 pop3s smtp smtp-submission smtps ssh

Zugriff auf Virtualmin

Standardmäßig läuft Virtualmin auf dem TCP-Port 10000. So greifst du auf die Oberfläche zu und erstellst einen neuen virtuellen Server:

  • Öffne im Browser: https://virtualmin.example.com:10000
  • Melde dich mit deinen sudo-Benutzerdaten an.
  • Klicke im Post-Installation Wizard auf Next, um die Basiskonfiguration abzuschließen.
  • Wähle im linken Menü Dashboard, um die Systemübersicht aufzurufen.

2-Faktor-Authentifizierung aktivieren

Zur Erhöhung der Sicherheit kannst du 2FA in Virtualmin mit Google Authenticator aktivieren:

  1. Scrolle in der linken Navigation nach unten und klicke auf deinen Benutzernamen.
  2. Erweitere den Bereich Security and limits options.
  3. Klicke auf Enable Two-Factor For User.
  4. Klicke auf Enroll For Two-Factor Authentication.
  5. Scanne den angezeigten QR-Code mit deiner Authenticator-App.
  6. Melde dich über das linke Menü bei Virtualmin ab.
  7. Melde dich erneut mit deinen Nicht-Root-Zugangsdaten an.
  8. Gib den von deiner App generierten Token ein, um die Anmeldung zu bestätigen.

Virtualmin über die Weboberfläche konfigurieren

Bei der erneuten Anmeldung fragt Virtualmin nach einem 2FA-Token. Gib den Code aus deiner Authenticator-App ein und klicke auf Verify, um Zugang zur Administrationsoberfläche zu erhalten.

Fazit

In diesem Tutorial hast du Virtualmin installiert, eine Website mit Let’s Encrypt-SSL (HTTPS) eingerichtet und die Zwei-Faktor-Authentifizierung aktiviert. Zusätzlich wurden Firewall-Regeln konfiguriert und unnötige Ports geschlossen. Weitere Informationen findest du in der offiziellen Virtualmin-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: