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): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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:

Webmin Anmeldung

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:

Webmin Dashboard

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.

Das könnte dich auch interessieren …