Si të instaloni Webmin me Lets Encrypt falas SSL në Rocky Linux 8


Webmin është një mjet administrimi dhe menaxhimi i Linux-it falas, me burim të hapur dhe i bazuar në ueb, i cili ju lejon të konfiguroni sistemin Linux nëpërmjet një shfletuesi ueb. Është shkruar në Perl dhe ofron një ndërfaqe uebi miqësore për përdoruesit me monitorim në kohë reale të CPU dhe RAM. Me Webmin, ju mund të kryeni disa detyra administrative, duke përfshirë menaxhimin e llogarisë së përdoruesit, menaxhimin e paketave, menaxhimin e murit të zjarrit, krijimin e punëve në cron dhe më shumë.

Në këtë tutorial, unë do t'ju tregoj se si të instaloni Webmin me Nginx dhe Lets Encrypt SSL në Rocky Linux 8.

Parakushtet

  • Një server që ekzekuton Rocky Linux 8.
  • Një emër i vlefshëm domeni i treguar me IP të serverit.
  • Një fjalëkalim rrënjësor është konfiguruar në server.

Instaloni Webmin

Webmin është shkruar në gjuhën Perl kështu që do t'ju duhet të instaloni Perl në sistemin tuaj. Ekzekutoni komandën e mëposhtme për të instaluar Perl:

dnf install perl -y

Tjetra, shkarkoni versionin më të fundit të Webmin tarball duke përdorur komandën e mëposhtme:

wget https://www.webmin.com/download/webmin-current.tar.gz

Pasi të shkarkohet Webmin, nxirrni skedarin e shkarkuar me komandën e mëposhtme:

tar xvf webmin-current.tar.gz

Më pas, krijoni një direktori instalimi Webmin dhe ekzekutoni skriptin e mëposhtëm për të instaluar Webmin:

mkdir -p /usr/local/webmin
./webmin-1.984/setup.sh /usr/local/webmin/

Do t'ju kërkohet të jepni shtegun e drejtorisë së konfigurimit, emrin e përdoruesit dhe fjalëkalimin e administratorit siç tregohet më poshtë:

***********************************************************************

        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.

Si parazgjedhje, Webmin dëgjon në portin 10000. Mund ta kontrolloni me komandën e mëposhtme:

ss -antpl | grep 10000

Do të merrni daljen e mëposhtme:

LISTEN 0      128          0.0.0.0:10000      0.0.0.0:*    users:(("miniserv.pl",pid=6601,fd=7))

Konfiguro Nginx si një përfaqësues të kundërt për Webmin

Është një ide e mirë të përdorni Nginx si një përfaqësues të kundërt për Webmin. Së pari, instaloni paketën Nginx duke përdorur komandën e mëposhtme:

dnf install nginx -y

Tjetra, krijoni një skedar të konfigurimit të hostit virtual Nginx me komandën e mëposhtme:

nano /etc/nginx/conf.d/webmin.conf

Shtoni rreshtat e mëposhtëm:

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;
        }
}

Ruani dhe mbyllni skedarin dhe më pas verifikoni Nginx për çdo gabim sintaksor:

nginx -t

Do të merrni daljen e mëposhtme:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Më pas, filloni shërbimin Nginx dhe aktivizoni atë të fillojë në rindezjen e sistemit:

systemctl start nginx
systemctl enable nginx

Ju mund të kontrolloni statusin e Webmin me komandën e mëposhtme:

systemctl status nginx

Ju duhet të shihni daljen e mëposhtme:

? 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.

Aktivizo SSL në Webmin

Rekomandohet të siguroni Webmin me Lets Encrypt SSL. Së pari, do t'ju duhet të instaloni klientin Certbot për të menaxhuar Lets Encrypt SSL. Mund ta instaloni me komandën e mëposhtme:

dnf install epel-release -y
dnf install python3-certbot-nginx -y

Më pas, ekzekutoni komandën certbot për të shkarkuar dhe instaluar Lets Encrypt SSL në domenin Webmin.

certbot --nginx -d webmin.linuxbuz.com

Do t'ju kërkohet të jepni adresën tuaj të vlefshme të emailit dhe të pranoni afatin e shërbimit:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): 

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

Konfiguro Webmin

Më pas, do t'ju duhet të redaktoni skedarin e konfigurimit të Webmin dhe të përcaktoni referuesit e besuar.

nano /etc/webmin/config

Shtoni rreshtin e mëposhtëm:

referers=webmin.linuxbuz.com

Ruani dhe mbyllni skedarin më pas modifikoni skedarin miniserv.conf dhe çaktivizoni modalitetin HTTPS në Webmin:

nano /etc/webmin/miniserv.conf

Shtoni rreshtat e mëposhtëm:

ssl=0
allow=127.0.0.1

Ruani dhe mbyllni skedarin kur të keni mbaruar.

Më pas, merrni ID-në e procesit Webmin me komandën e mëposhtme:

ps -ef | grep webmin

Do të merrni daljen e mëposhtme:

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

Më pas, përdorni komandën kill për të vrarë procesin Webmin.

kill -9 6601

Më pas, filloni shërbimin Webmin me systemd dhe aktivizoni atë të fillojë në rindezjen e sistemit:

systemctl start webmin
systemctl enable webmin

Më pas, kontrolloni statusin e Webmin duke përdorur komandën e mëposhtme:

systemctl status webmin

Do të merrni daljen e mëposhtme:

? 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.

Konfiguro Firewall

Nëse muri i zjarrit i murit të zjarrit është i instaluar në serverin tuaj. Pastaj, do t'ju duhet të lejoni portet 80 dhe 443 përmes murit të zjarrit. Ju mund t'i lejoni ato me komandën e mëposhtme:

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent

Më në fund, ringarkoni shërbimin e murit të zjarrit për të aplikuar ndryshimet:

firewall-cmd --reload

Hyni në ndërfaqen Webmin

Tani, hapni shfletuesin tuaj të internetit dhe hyni në ndërfaqen Webmin duke përdorur URL-në https://webmin.linuxbuz.com. Do të ridrejtoheni në faqen e hyrjes në Webmin:

Jepni emrin e përdoruesit dhe fjalëkalimin e administratorit dhe klikoni në butonin Identifikohu. Ju duhet të shihni pultin e Webmin në faqen e mëposhtme:

konkluzioni

urime! ju keni instaluar me sukses Webmin me Nginx dhe Lets Encrypt SSL në Rocky Linux 8. Tani mund ta menaxhoni sistemin tuaj Linux lehtësisht përmes shfletuesit të internetit. Mos ngurroni të më pyesni nëse keni ndonjë pyetje.