So installierst du Webmin mit dem kostenlosen Let’s Encrypt SSL auf Rocky Linux 8
Webmin ist ein kostenloses, quelloffenes und webbasiertes Linux-Administrations- und Management-Tool, mit dem du das Linux-System über einen Webbrowser konfigurieren kannst. Es ist in Perl geschrieben und bietet eine benutzerfreundliche Weboberfläche mit Echtzeitüberwachung von CPU und RAM. Mit Webmin kannst du verschiedene Verwaltungsaufgaben durchführen, z. B. die Verwaltung von Benutzerkonten, Paketen und Firewalls, das Erstellen von Cron-Jobs und vieles mehr.
In diesem Lernprogramm zeige ich dir, wie du Webmin mit Nginx und Let’s Encrypt SSL auf Rocky Linux 8 installierst.
Voraussetzungen
- Ein Server, auf dem Rocky Linux 8 läuft.
- Ein gültiger Domainname, der auf die Server-IP verweist.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Installiere Webmin
Webmin ist in der Sprache Perl geschrieben, daher musst du Perl auf deinem System installieren. Führe den folgenden Befehl aus, um Perl zu installieren:
dnf install perl -y
Als Nächstes lädst du die neueste Version des Webmin-Tarballs mit folgendem Befehl herunter:
wget https://www.webmin.com/download/webmin-current.tar.gz
Sobald Webmin heruntergeladen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
tar xvf webmin-current.tar.gz
Als Nächstes erstellst du ein Webmin-Installationsverzeichnis und führst das folgende Skript aus, um Webmin zu installieren:
mkdir -p /usr/local/webmin ./webmin-1.984/setup.sh /usr/local/webmin/
Du wirst aufgefordert, den Pfad des Konfigurationsverzeichnisses, den Benutzernamen und das Passwort des Administrators anzugeben (siehe unten):
*********************************************************************** Welcome to the Webmin setup script, version 1.984 *********************************************************************** Webmin is a web-based interface that allows Unix-like operating systems and common Unix services to be easily administered. Installing Webmin from /root/webmin-1.984 to /usr/local/webmin/ ... *********************************************************************** Webmin uses separate directories for configuration files and log files. Unless you want to run multiple versions of Webmin at the same time you can just accept the defaults. Config file directory [/etc/webmin]: Log file directory [/var/webmin]: *********************************************************************** Webmin is written entirely in Perl. Please enter the full path to the Perl 5 interpreter on your system. Full path to perl (default /usr/bin/perl): Testing Perl ... Perl seems to be installed ok *********************************************************************** Operating system name: Rocky Linux Operating system version: 8.5 *********************************************************************** Webmin uses its own password protected web server to provide access to the administration programs. The setup script needs to know : - What port to run the web server on. There must not be another web server already using this port. - The login name required to access the web server. - The password required to access the web server. - If the webserver should use SSL (if your system supports it). - Whether to start webmin at boot time. Web server port (default 10000): Login name (default admin): admin Login password: Password again: Use SSL (y/n): n Start Webmin at boot time (y/n): y *********************************************************************** *********************************************************************** Webmin has been installed and started successfully. Use your web browser to go to http://rockylinux:10000/ and login with the name and password you entered previously.
Standardmäßig lauscht Webmin auf Port 10000. Du kannst dies mit dem folgenden Befehl überprüfen:
ss -antpl | grep 10000
Du erhältst die folgende Ausgabe:
LISTEN 0 128 0.0.0.0:10000 0.0.0.0:* users:(("miniserv.pl",pid=6601,fd=7))
Nginx als Reverse Proxy für Webmin konfigurieren
Es ist eine gute Idee, Nginx als Reverse Proxy für Webmin zu verwenden. Installiere zunächst das Nginx-Paket mit dem folgenden Befehl:
dnf install nginx -y
Als Nächstes erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host mit folgendem Befehl:
nano /etc/nginx/conf.d/webmin.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; server_name webmin.linuxbuz.com; access_log /var/log/nginx/webmin.access; error_log /var/log/nginx/webmin.error; location / { proxy_pass http://127.0.0.1:10000; #proxy_set_header Host $http_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; } }
Speichere und schließe die Datei und überprüfe Nginx auf Syntaxfehler:
nginx -t
Du erhältst die folgende Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte als Nächstes den Nginx-Dienst und sorge dafür, dass er beim Neustart des Systems gestartet wird:
systemctl start nginx systemctl enable nginx
Du kannst den Status von Webmin mit dem folgenden Befehl überprüfen:
systemctl status nginx
Du solltest die folgende Ausgabe sehen:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2022-02-12 08:20:04 UTC; 17s ago Process: 7051 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 7050 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 7048 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 7053 (nginx) Tasks: 2 (limit: 11412) Memory: 3.7M CGroup: /system.slice/nginx.service ??7053 nginx: master process /usr/sbin/nginx ??7054 nginx: worker process Feb 12 08:20:03 rockylinux systemd[1]: Starting The nginx HTTP and reverse proxy server... Feb 12 08:20:04 rockylinux nginx[7050]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Feb 12 08:20:04 rockylinux nginx[7050]: nginx: configuration file /etc/nginx/nginx.conf test is successful Feb 12 08:20:04 rockylinux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Feb 12 08:20:04 rockylinux systemd[1]: Started The nginx HTTP and reverse proxy server.
Aktiviere SSL im Webmin
Es wird empfohlen, den Webmin mit Let’s Encrypt SSL zu sichern. Zuerst musst du den Certbot-Client installieren, um Let’s Encrypt SSL zu verwalten. Du kannst ihn mit dem folgenden Befehl installieren:
dnf install epel-release -y dnf install python3-certbot-nginx -y
Als Nächstes führst du den Befehl certbot aus, um Let’s Encrypt SSL herunterzuladen und auf der Webmin-Domäne zu installieren.
certbot --nginx -d webmin.linuxbuz.com
Du wirst aufgefordert, deine gültige E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): hitjethva@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Account registered. Requesting a certificate for webmin.linuxbuz.com Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/webmin.linuxbuz.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/webmin.linuxbuz.com/privkey.pem This certificate expires on 2022-05-13. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. Deploying certificate Successfully deployed certificate for webmin.linuxbuz.com to /etc/nginx/conf.d/webmin.conf Congratulations! You have successfully enabled HTTPS on https://webmin.linuxbuz.com We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Webmin konfigurieren
Als Nächstes musst du die Konfigurationsdatei von Webmin bearbeiten und die vertrauenswürdigen Referrer definieren.
nano /etc/webmin/config
Füge die folgende Zeile hinzu:
referers=webmin.linuxbuz.com
Speichere und schließe die Datei. Bearbeite dann die Datei miniserv.conf und deaktiviere den HTTPS-Modus in Webmin:
nano /etc/webmin/miniserv.conf
Füge die folgenden Zeilen hinzu:
ssl=0 allow=127.0.0.1
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes ermittelst du die Webmin-Prozess-ID mit dem folgenden Befehl:
ps -ef | grep webmin
Du erhältst die folgende Ausgabe:
root 6601 1 0 08:12 ? 00:00:00 /usr/bin/perl /usr/local/webmin//miniserv.pl /etc/webmin/miniserv.conf root 7553 1117 0 08:24 pts/0 00:00:00 grep --color=auto webmin
Benutze den Befehl kill, um den Webmin-Prozess zu beenden.
kill -9 6601
Starte den Webmin-Dienst mit systemd und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start webmin systemctl enable webmin
Als Nächstes überprüfst du den Status von Webmin mit folgendem Befehl:
systemctl status webmin
Du erhältst die folgende Ausgabe:
? webmin.service - Webmin Loaded: loaded (/usr/lib/systemd/system/webmin.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2022-02-12 08:25:05 UTC; 54s ago Process: 7560 ExecStart=/etc/webmin/start (code=exited, status=0/SUCCESS) Main PID: 7561 (miniserv.pl) Tasks: 1 (limit: 11412) Memory: 23.9M CGroup: /system.slice/webmin.service ??7561 /usr/bin/perl /usr/local/webmin//miniserv.pl /etc/webmin/miniserv.conf Feb 12 08:25:05 rockylinux systemd[1]: Starting Webmin... Feb 12 08:25:05 rockylinux start[7560]: Starting Webmin server in /usr/local/webmin/ Feb 12 08:25:05 rockylinux webmin[7560]: Webmin starting Feb 12 08:25:05 rockylinux systemd[1]: webmin.service: Can't open PID file /var/webmin/miniserv.pid (yet?) after start: No such file or direc> Feb 12 08:25:05 rockylinux systemd[1]: Started Webmin.
Firewall konfigurieren
Wenn die Firewall Firewalld auf deinem Server installiert ist. Dann musst du die Ports 80 und 443 durch die Firewall zulassen. Du kannst sie mit dem folgenden Befehl zulassen:
firewall-cmd --add-port=80/tcp --permanent firewall-cmd --add-port=443/tcp --permanent
Zum Schluss musst du den Firewall-Dienst neu laden, damit die Änderungen übernommen werden:
firewall-cmd --reload
Zugriff auf die Webmin-Oberfläche
Öffne nun deinen Webbrowser und rufe die Webmin-Oberfläche über die URL https://webmin.linuxbuz.com auf. Du wirst auf die Webmin-Anmeldeseite weitergeleitet:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Anmelden. Auf der folgenden Seite solltest du das Webmin-Dashboard sehen:
Fazit
Herzlichen Glückwunsch! Du hast Webmin mit Nginx und Let’s Encrypt SSL erfolgreich auf Rocky Linux 8 installiert. Jetzt kannst du dein Linux-System ganz einfach über den Webbrowser verwalten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.