Install Webmin GUI Server on AlmaLinux: 5 Easy Steps
To install Webmin GUI server on AlmaLinux you add the Perl dependencies, install the Webmin package, and open port 10000. The original version of this post listed those steps without showing that they work. This rewrite repeats them in an AlmaLinux 9.8 container and found one step that fails (the Perl dependency list), one warning (a missing signature key) and a few claims that were wrong or not needed. Version in the lab: Webmin 2.670.
What the lab was, so you can judge the results: a plain AlmaLinux 9.8 container without systemd and without firewalld. That means the firewall step and the systemd service were not tested here, and Webmin was started with its own script, /etc/webmin/start. Everything else, from the package installation to the login, was run.
Contents
- Step 1: dependencies to install Webmin GUI server
- Step 2: download the package and install Webmin GUI server
- Step 3: start Webmin and check the port after you install Webmin GUI server
- Step 4: open the firewall port and log in
- Step 5: use the Webmin repository for updates
- Remove Webmin and mistakes to avoid when you install Webmin GUI server
- After you install Webmin GUI server: a short checklist
- FAQ
Step 1: dependencies to install Webmin GUI server
The old post used sudo dnf install -y perl perl-Net-SSLeay openssl perl-IO-Tty. On AlmaLinux 9.8 with the default repositories enabled it stopped with No match for argument: perl-IO-Tty and Error: Unable to find a match: perl-IO-Tty. The package exists, but in the CRB repository, which is disabled by default (dnf repolist --all lists crb as disabled). Enable it for this one command:
sudo dnf --enablerepo=crb install -y perl perl-Net-SSLeay openssl perl-IO-Tty
It installed perl-IO-Tty 1.16-4.el9 from crb and the other three packages, and rpm -q confirmed all four. You do not need the old dnf update -y before this; it only upgrades other packages.

Step 2: download the package and install Webmin GUI server
The old URL still works, but it is only a redirect. wget -S --spider http://www.webmin.com/download/rpm/webmin-current.rpm showed two 301 redirects to webmin.com, a 302 to SourceForge, and finally the file newkey-webmin-2.670-1.noarch.rpm with status 200. The saved file webmin-current.rpm was 34244224 bytes, and rpm -qip reported name webmin, version 2.670, release 1.
wget http://www.webmin.com/download/rpm/webmin-current.rpm
sudo rpm -U webmin-current.rpm
The install ended with warning: webmin-current.rpm: Header V4 RSA/SHA256 Signature, key ID 8916f2a2: NOKEY. It is a warning, not an error: the package is signed, but the signing key was not in the RPM database, so rpm could not check it. For a server you care about, prefer the repository method in step 5, which imports the key.
Step 3: start Webmin and check the port after you install Webmin GUI server
After the package was installed, /etc/webmin/version held 2.670 and /etc/webmin/miniserv.conf had port=10000, listen=10000 and ssl=1. In the lab, /etc/webmin/start started the server. On a normal AlmaLinux host the service manager does that, but the unit was not tested. The checks with curl:
curl -sk https://localhost:10000/returned HTTP 200.curl http://localhost:10000/(plain HTTP) returned 302 with the redirect tohttps://localhost:10000/.- The certificate check returned code 18, a self-signed certificate: browsers warn on first use, and you must accept it or install a real certificate.
Step 4: open the firewall port and log in
On a server with firewalld, the commands of the old post are the usual way: sudo firewall-cmd --permanent --zone=public --add-port=10000/tcp and sudo firewall-cmd --reload. They were not run here, because the container has no firewalld. Do not open 10000 to the whole Internet; restrict it to your admin network, as in the iptables examples.
The login worked as described: with a root password set, a POST of the form fields to /session_login.cgi returned 302 and set the sid cookie, and the next request to the root page returned a page titled "Webmin". A wrong password returned Login failed. Please try again.
Step 5: use the Webmin repository for updates
The FAQ of the old post said that sudo dnf update webmin updates Webmin. After the plain rpm -U install, the host had no Webmin repository: /etc/yum.repos.d/ held only the AlmaLinux files, and dnf info webmin listed the package from @System only, so dnf had nowhere to look for a newer version. The project provides setup-repos.sh in its GitHub repository. Run it as root and answer y:
curl -fsSL -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sh setup-repos.sh
It downloaded and installed the Webmin developers' key, set up the stable repository and downloaded the metadata. The result was the new file webmin-stable.repo in /etc/yum.repos.d/. After that dnf install webmin and dnf update webmin use the repository; this is the better way to install Webmin GUI server on a new host, because the signature is checked. See also the Webmin documentation.
Remove Webmin and mistakes to avoid when you install Webmin GUI server
sudo rpm -e webmin removed the package and, in the lab, the whole /etc/webmin directory as well (ls reported that it no longer exists). Copy that directory first if you want to keep users and settings. Common mistakes when you install Webmin GUI server:
- Copying the dependency line without enabling CRB, so the install stops at perl-IO-Tty.
- Ignoring the NOKEY warning on a production host.
- Exposing port 10000 to everyone with a root login form behind it.
- Following the old advice to enable SSL: it was already on (
ssl=1) after the install.
After you install Webmin GUI server: a short checklist
Run through these points once the login works. Read the version from /etc/webmin/version and write it down, because it decides which fixes you need. Keep a copy of /etc/webmin before an uninstall or a big change, since the lab showed that removing the package removes the directory. Replace the self-signed certificate if several people use the panel. Limit port 10000 to the admin network. Finally, set up the repository from step 5, so a security fix reaches the host through dnf without a manual download. This list is advice built from the lab results above, not part of the old post.
FAQ
Is it free to install Webmin GUI server? The package installed without a licence prompt, and the Webmin project publishes it as open source; check the project page for current terms.
Can I put Webmin behind a reverse proxy? Yes, but it needs its own settings. The generic proxy rules are explained in the Apache ProxyPassReverse and nginx post; Webmin's own reverse-proxy options were not tested.
Comments
Post a Comment