Webmin ist eine webbasierte Administrationsoberfläche für Linux-Server. Es ermöglicht die Verwaltung von Diensten, Benutzern, Dateien und mehr über einen Browser.

Installation

Debian/Ubuntu

# Repository hinzufügen
curl -fsSL https://download.webmin.com/jcameron-key.asc | gpg --dearmor -o /usr/share/keyrings/webmin.gpg

echo "deb [signed-by=/usr/share/keyrings/webmin.gpg] https://download.webmin.com/download/repository sarge contrib" | tee /etc/apt/sources.list.d/webmin.list

# Installieren
apt update
apt install webmin

CentOS/RHEL

# Repository erstellen
cat > /etc/yum.repos.d/webmin.repo << EOF
[Webmin]
name=Webmin Distribution Neutral
baseurl=https://download.webmin.com/download/yum
enabled=1
gpgcheck=1
gpgkey=https://download.webmin.com/jcameron-key.asc
EOF

# Installieren
dnf install webmin

Universeller Installer

# Herunterladen
wget https://www.webmin.com/download/webmin-current.tar.gz
tar -xzf webmin-current.tar.gz
cd webmin-*

# Installieren
./setup.sh

Nach Installation

# Service starten
systemctl enable --now webmin

# Status prüfen
systemctl status webmin

# Port prüfen
ss -tlnp | grep 10000

Erster Zugriff

URL

https://server-ip:10000

Login

Benutzer: root (oder sudo-User)
Passwort: System-Passwort

Selbstsigniertes Zertifikat

Browser-Warnung ist normal bei selbstsigniertem Zertifikat.
Ausnahme hinzufügen oder Let's Encrypt einrichten.

Grundkonfiguration

Webmin-Einstellungen

Webmin → Webmin Configuration → Webmin-Konfiguration

Sprache ändern

Webmin → Change Language and Theme
→ Personal choice: German (DE)

Port ändern

# /etc/webmin/miniserv.conf
port=10000
listen=10000

# Oder via Web-Interface:
# Webmin → Webmin Configuration → Ports and Addresses

SSL aktivieren

# /etc/webmin/miniserv.conf
ssl=1

# Service neustarten
systemctl restart webmin

Benutzer und Zugriff

Webmin-Benutzer erstellen

Webmin → Webmin Users
→ Create a new Webmin user
→ Username: admin
→ Password: ***
→ Available Webmin modules: Auswählen

Zugriff beschränken

Webmin → Webmin Configuration → IP Access Control
→ Only allow from listed addresses
→ 192.168.1.0/24

Zwei-Faktor-Authentifizierung

Webmin → Webmin Configuration → Two-Factor Authentication
→ Google Authenticator aktivieren

PAM-Authentifizierung

# /etc/webmin/miniserv.conf
pam=1
pam_conv=

# Für LDAP-Integration
# /etc/webmin/miniserv.conf
extauth=/usr/share/webmin/miniserv-ldap.pl

Let's Encrypt SSL

Über Web-Interface

Webmin → Webmin Configuration → SSL Encryption
→ Let's Encrypt Tab
→ Hostname: webmin.example.com
→ Request Certificate

Voraussetzungen

# Domain muss auf Server zeigen
# Port 80 muss erreichbar sein (für Challenge)

# Firewall öffnen (temporär)
ufw allow 80/tcp

Automatische Erneuerung

Die Erneuerung erfolgt automatisch über Webmin.
Prüfen unter: Webmin → Webmin Configuration → SSL Encryption

Module

Wichtige Standard-Module

System:
- Bootup and Shutdown (Systemdienste)
- Disk Quotas
- Scheduled Cron Jobs
- Users and Groups
- Software Packages

Servers:
- Apache Webserver
- BIND DNS Server
- MySQL Database Server
- OpenSSH Server
- Postfix Mail Server
- Samba Windows File Sharing

Networking:
- Firewall (iptables/firewalld)
- Network Configuration
- Bandwidth Monitoring

Hardware:
- System Time
- Disk Partitions
- Logical Volume Management

Module installieren

Webmin → Webmin Configuration → Webmin Modules
→ From URL oder Standard modules
→ Modul auswählen und installieren

Drittanbieter-Module

# Virtualmin (Webhosting-Panel)
wget http://software.virtualmin.com/gpl/scripts/install.sh
sh install.sh

# Usermin (Benutzer-Interface)
apt install usermin

Häufige Aufgaben

Benutzer verwalten

System → Users and Groups
→ Create a new user
→ Username, Password, Home, Shell eingeben
→ Create

Cronjobs erstellen

System → Scheduled Cron Jobs
→ Create a new cron job
→ User auswählen
→ Command eingeben
→ Zeitplan festlegen
→ Create

Dienste verwalten

System → Bootup and Shutdown
→ Dienst auswählen
→ Start/Stop/Restart
→ Start at boot: Yes/No

Firewall konfigurieren

Networking → Firewall (iptables)
→ Add rule
→ Incoming/Outgoing
→ Port und Aktion definieren
→ Apply Configuration

Pakete installieren

System → Software Packages
→ Package from APT/YUM
→ Paketname eingeben
→ Install

Dateimanager

Zugriff

Tools → File Manager

Funktionen

- Dateien durchsuchen
- Upload/Download
- Bearbeiten
- Berechtigungen ändern
- Komprimieren/Extrahieren
- Suchen

SSH-Terminal

Tools → Command Shell
→ Terminal im Browser

Backup mit Webmin

Filesystem Backup

System → Filesystem Backup
→ Directories to backup
→ Backup destination
→ Schedule

Webmin-Konfiguration sichern

Webmin → Backup Configuration Files
→ Module auswählen
→ Backup to file/FTP/SSH

Sicherheit

Firewall-Regeln

# UFW (Ubuntu)
ufw allow from 192.168.1.0/24 to any port 10000

# firewalld (CentOS)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="10000" protocol="tcp" accept'
firewall-cmd --reload

Fail2ban für Webmin

# /etc/fail2ban/jail.local

[webmin-auth]
enabled = true
port    = 10000
filter  = webmin-auth
logpath = /var/webmin/miniserv.log
maxretry = 3
bantime = 3600
# /etc/fail2ban/filter.d/webmin-auth.conf

[Definition]
failregex = ^<HOST>.*Invalid login as .* from
ignoreregex =

Session-Timeout

Webmin → Webmin Configuration → Authentication
→ Auto-logout after: 30 minutes

Passwort-Policy

Webmin → Webmin Configuration → Authentication
→ Minimum password length
→ Block after failed logins

Nginx Reverse Proxy

Konfiguration

# /etc/nginx/sites-available/webmin

server {
    listen 443 ssl http2;
    server_name webmin.example.com;

    ssl_certificate /etc/letsencrypt/live/webmin.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/webmin.example.com/privkey.pem;

    location / {
        proxy_pass https://127.0.0.1:10000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket-Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Webmin für Proxy konfigurieren

# /etc/webmin/config
referers=webmin.example.com

# /etc/webmin/miniserv.conf
ssl_redirect=0

Virtualmin

Installation

# GPL-Version
wget https://software.virtualmin.com/gpl/scripts/install.sh
sh install.sh --minimal

Features

- Virtuelle Server (Domains)
- E-Mail-Konten
- Datenbanken
- FTP-Zugang
- DNS-Verwaltung
- SSL-Zertifikate
- Backups

Virtuellen Server erstellen

Virtualmin → Create Virtual Server
→ Domain name
→ Administration password
→ Features auswählen
→ Create Server

Usermin

Installation

apt install usermin

Zugriff

https://server-ip:20000

Funktionen für Benutzer

- E-Mail (Webmail)
- Dateien verwalten
- Passwort ändern
- SSH-Schlüssel
- Crontab

Troubleshooting

Webmin startet nicht

# Log prüfen
cat /var/webmin/miniserv.error

# Service-Status
systemctl status webmin

# Manuell starten
/etc/webmin/start

SSL-Probleme

# Zertifikat prüfen
openssl s_client -connect localhost:10000

# Zertifikat neu erstellen
/etc/webmin/stop
rm /etc/webmin/miniserv.pem
/etc/webmin/start

Zugriff verloren

# IP-Beschränkung aufheben
sed -i 's/^allow=.*/allow=/' /etc/webmin/miniserv.conf

# Benutzer zurücksetzen
/usr/share/webmin/changepass.pl /etc/webmin root neuespasswort

Modul-Fehler

# Perl-Abhängigkeiten installieren
apt install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python3

Zusammenfassung

| URL | Dienst | |-----|--------| | https://server:10000 | Webmin | | https://server:20000 | Usermin | | https://server:10000/virtual-server | Virtualmin |

| Datei | Beschreibung | |-------|--------------| | /etc/webmin/miniserv.conf | Server-Konfiguration | | /etc/webmin/config | Webmin-Konfiguration | | /var/webmin/miniserv.log | Access-Log | | /var/webmin/miniserv.error | Error-Log |

| Befehl | Funktion | |--------|----------| | systemctl restart webmin | Neustart | | /usr/share/webmin/changepass.pl | Passwort ändern | | /etc/webmin/start | Manuell starten | | /etc/webmin/stop | Manuell stoppen |

Fazit

Webmin bietet eine intuitive Web-Oberfläche für Linux-Administration. Es eignet sich besonders für Administratoren, die nicht ständig auf der Kommandozeile arbeiten möchten, oder für die Delegation bestimmter Aufgaben. Wichtig ist die Absicherung durch SSL, Zugriffsbeschränkung und starke Passwörter. Für professionelles Webhosting ist Virtualmin eine leistungsfähige Erweiterung.