blog-image

Dec 06, 2024

20 min read

How to Install Webmin on AlmaLinux 9 and Secure it with Let’s Encrypt

Written by

Abdelhadi Dyouri
In this guide, I’ll walk you through how to install Webmin on an AlmaLinux 9 server, secure it with Let’s Encrypt, and use it to manage your server remotely through a browser interface. Being a developer, I know managing servers is not an easy task. You have to have a powerful yet user-friendly control panel. Webmin, fortunately, solves this problem. It is a popular web-based system administration tool that makes managing your AlmaLinux VPS server easy and enjoyable. Webmin can be used for adjusting user accounts, installing and updating software, or even monitoring system logs and setting up the firewall. It gives you an intuitive interface to get it all done. Let’s now install Webmin on AlmaLinux 9, secure it with Let’s Encrypt, and then take a look at how to use it for essential sysadmin tasks. Install Webmin on AlmaLinux 9

Prerequisites

  • An AlmaLinux 9 server with root access or a sudo user. If you haven't noticed, we offer AlmaLinux servers with high reliability and availability baked in. Take a look at our offerings and prepare for your mind to be blown 🤯.
  • Access your sever via SSH, check out How to access your server using SSH for instructions.

Note

To avoid the hassle, you can install Webmin in seconds with our 1-click Webmin application. Just choose a server, click Customize Your Own Server, go to the Apps tab under Select Server Image, and select Webmin!

Step 1: Updating Your System Packages

Start by checking for updates on your AlmaLinux 9 system:
sudo dnf check-update
If you see a list of packages that need to be updated, then, it's a good idea to perform a comprehensive update that installs available updates:
sudo dnf upgrade

Step 2: Install Webmin on AlmaLinux 9

To install Webmin on AlmaLinux 9, you'll install wget , then download the Webmin repository configuration script and use it to add the official Webmin repository. Finally, you'll use the dnf install command to install Webmin and all its necessary packages.

Setting up the Webmin Repository

Install wget :
sudo dnf install wget
Output: install wget Download the repository configuration script:
sudo wget https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
Run this script:
sudo sh setup-repos.sh
You’ll receive output similar to the following: Setup Webmin Repository We can now install Webmin using the dnf package manager.

Install Webmin

After the repositories setup, you can now install Webmin:
sudo dnf install webmin
You’ll receive output like this:
  perl-lib-0.65-481.el9.x86_64                        perl-libnet-3.13-4.el9.noarch
  perl-libs-4:5.32.1-481.el9.x86_64                   perl-mro-1.23-481.el9.x86_64
  perl-open-1.12-481.el9.noarch                       perl-overload-1.31-481.el9.noarch
  perl-overloading-0.02-481.el9.noarch                perl-parent-1:0.238-460.el9.noarch
  perl-podlators-1:4.14-460.el9.noarch                perl-subs-1.03-481.el9.noarch
  perl-vars-1.05-481.el9.noarch                       shared-mime-info-2.1-5.el9.x86_64
  tar-2:1.34-6.el9_4.1.x86_64                         unzip-6.0-56.el9.x86_64
  webmin-2.202-1.noarch

Complete!
After you see that sweet Complete! message. Check Webmin’s status using systemctl:
sudo systemctl status webmin
● webmin.service - Webmin server daemon
     Loaded: loaded (/usr/lib/systemd/system/webmin.service; enabled; preset: disabled)
     Active: active (running) since Thu 2024-10-17 15:15:39 UTC; 1min 17s ago
    Process: 15357 ExecStart=/usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf (code=exited, stat>
   Main PID: 15358 (miniserv.pl)
      Tasks: 1 (limit: 48897)
     Memory: 27.2M
        CPU: 5.215s
     CGroup: /system.slice/webmin.service
             └─15358 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf
These are the most important points in this status report:
  • Loaded: The service is loaded from the file /usr/lib/systemd/system/webmin.service and is enabled (it starts automatically on boot).
  • Active: The service is currently running and has been active for 1 minute and 17 seconds since it started.
  • Process: The main process running is miniserv.pl (Webmin's web server) with the PID 15358.
  • Tasks: The service is running with 1 active task.
This confirms that Webmin is running correctly on your system.

Setting up the Firewall

With Webmin installed, you’ll need to configure the firewall. First, check whether firewall-cmd is active:
$ sudo firewall-cmd
Output:
State: running

No options specified
usage: 'firewall-cmd --help' for usage information or see firewall-cmd(1) man page
Webmin is available on the port 10000 by default. To allow this port, run the following command:
sudo firewall-cmd --add-port=10000/tcp --permanent
Output:
success
While you’re at it, you should also allow port 80. This is the default HTTP port, and you’ll later use it to get a Let’s Encrypt certificate.
Continue reading this article
by subscribing to our newsletter.
Subscribe now

A note about tutorials: We encourage our users to try out tutorials, but they aren't fully supported by our team—we can't always provide support when things go wrong. Be sure to check which OS and version it was tested with before you proceed.

If you want a fully managed experience, with dedicated support for any application you might want to run, contact us for more information.

Leave a Reply