Back to Article List

How to install Webmin on AlmaLinux and Rocky Linux

How to install Webmin on AlmaLinux and Rocky Linux

Updated and tested 21 September 2026

Webmin installs on AlmaLinux and Rocky Linux from the vendor's yum repository, using dnf. The install has the same shape it has on Ubuntu, and the packaging details are what change: the repository arrives as a .repo file under /etc/yum.repos.d/, package signatures are checked against a key in /etc/pki/rpm-gpg/, and Webmin's program files land somewhere different on disk than they do on Debian.

AlmaLinux and Rocky Linux are binary-compatible rebuilds of the same upstream source, so every command here works unmodified on both. CentOS Stream and Fedora take the same route, with one difference covered at the end.

What's different on the RHEL family

Webmin's program files install to /usr/libexec/webmin here. An Ubuntu or Debian install puts them in /usr/share/webmin. The configuration directory stays /etc/webmin on every distribution Webmin supports, so miniserv.conf, miniserv.users, config and helper scripts like /etc/webmin/restart are where anyone coming from the Debian side expects them.

The program path matters for source installs, where the CLI has to be invoked by full path as /usr/libexec/webmin/bin/webmin. Package installs put webmin on your PATH.

The rest carries over unchanged. Port 10000 over HTTPS, a systemd unit called webmin.service, a persistent miniserv.pl daemon and no default password anywhere in the product.

Add the Webmin repository

Run the setup script

Webmin isn't in the AlmaLinux, Rocky, EPEL or RHEL repositories, so dnf install webmin gets you nothing until the vendor repository exists on the machine. The setup script adds it. Its one hard requirement is /usr/bin/curl, which the minimal images already ship. Check with command -v curl if you built the image yourself.

curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sh webmin-setup-repo.sh

Run it as root. It asks for confirmation, offers the stable channel by default and takes -f if you want it silent inside a kickstart or an Ansible task. Stable is the build with the extra testing behind it. It's the only channel I'd put on a server somebody depends on.

The .repo file it writes

The script drops /etc/yum.repos.d/webmin-stable.repo. Its contents in full:

[webmin-stable]
name=Webmin Stable
baseurl=https://download.webmin.com/download/newkey/yum
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-webmin-developers
gpgcheck=1

The gpgkey= line points at a file the script has already imported. gpgcheck=1 makes dnf verify the signature on every package it pulls from this repository. On a SUSE system the same script writes the equivalent file into /etc/zypp/repos.d/.

The baseurl carries no release version and no architecture. Webmin is Perl and the RPMs are noarch, so one repository serves EL 8, EL 9, EL 10 and Fedora at once. The newkey path segment is the current signing key generation, and older guides pointing at the pre-newkey path describe a repository that is no longer current.

Verify the repository and install

dnf repolist | grep webmin
dnf info webmin

dnf info prints the version dnf is about to give you along with the repository it came from. Current at the time of writing is 2.670, announced on 20 September 2026, with the packages in the yum tree carrying a 21 September build date. The yum package index lists every RPM with its date, and the 2.6x line has been shipping about once a month all year.

dnf install webmin

The first run asks you to accept the GPG key, and the fingerprint it shows belongs to the Webmin developers. Accept it once and dnf remembers. There's no --install-recommends equivalent to worry about here: the RPM declares what it needs as proper dependencies, and dnf pulls the Perl modules in without being asked.

systemctl status webmin

The list of common Webmin errors covers the reasons a fresh install fails to start. The package enables and starts the unit for you, so active (running) is the expected output. If it isn't running, nothing on port 10000 will answer no matter what you do to the firewall next.

Open port 10000 in firewalld

AlmaLinux and Rocky both run firewalld by default, and its default zone blocks 10000. Two commands fix that:

firewall-cmd --add-port=10000/tcp --permanent
firewall-cmd --reload

The --permanent flag writes the rule to the zone's configuration. The --reload applies it to the running firewall. Without the reload, the rule exists on disk and has no effect on traffic. Confirm it with firewall-cmd --list-ports.

The guide to hardening a Webmin install covers the access options in detail. Webmin edits system files as root, and port 10000 left open to the whole internet is reachable by anything that scans for it. If your administration comes from a fixed address or a VPN, restrict the port to a zone bound to that source and take it out of the public zone.

firewalld is only the firewall inside the machine. Providers commonly run a network-level firewall in front of the VM, and that one needs its own rule for 10000 before any of this becomes reachable.

Log in for the first time

Go to https://YOUR_SERVER_IP:10000. The certificate generated during installation is self-signed, so your browser will object once and then let you through.

Webmin 2.670 login form asking for a username and password for the server

The Webmin login form is the same on every distribution: it asks for a system account.

Webmin has no built-in credentials. A package install creates one Webmin user, named root or admin, and it authenticates against the Unix account with that name. RHEL-family installers ask for a root password during setup, so on a machine built from the ISO you log in as root with the password you set then. Cloud images are the exception, since most of them lock root and expect key-based access, in which case use a sudo-capable account and its system password.

SELinux and Webmin

AlmaLinux and Rocky ship SELinux in enforcing mode. Webmin installs and runs under it without any tuning, and you should get a working login without touching it. Check where you stand with getenforce.

Webmin ships no SELinux policy module of its own, so miniserv.pl isn't confined to a tailored domain the way a distribution-packaged daemon would be. SELinux is still protecting the rest of the system. It isn't fencing Webmin in, which follows from what Webmin does, since a tool for editing arbitrary system configuration as root can't be confined tightly and stay useful.

Running setenforce 0 doesn't fix a failed first connection to a new install. On AlmaLinux that failure comes from the firewall or the service state almost every time, and turning SELinux off removes your ability to diagnose it.

Give your websites a server of their own

Launch a virtual server as simple as shared hosting, with guaranteed resources and stronger security.
Számlázási ciklus

Personal Web Hosting

$6.99 Save  14 %
$5.99 havonta
  • Ideális személyes oldalakhoz, blogokhoz és portfóliókhoz, gyors és megbízható online jelenlétet biztosít bonyodalmak nélkül.
  • 40 GB NVMe tárhely
  • 2 GB RAM memória
  • 2 vCPU AMD EPYC
  • ✔ IPv4 & IPv6 tartalmazza Az IPv6 támogatás jelenleg nem érhető el Franciaországban vagy Hollandiában.
  • ✔Korlátlan 1 Gbps hálózat
  • ✔Ingyenes automatikus mentés
  • ✔Tűzfal kezelés
  • ✔Ingyenes szerver felügyelet
  • ✔KVM elkülönítés

Business Web Hosting

$23.99 Save  21 %
$18.99 havonta
  • Ideal für etablierte Websites und stark ausgelastete Teams, mit genug Leistung für mehrere Projekte und stetiges Wachstum.
  • 250 GB NVMe Speicher
  • 8 GB RAM-Arbeitsspeicher
  • 4 vCPU AMD EPYC
  • ✔ IPv4 & IPv6 inklusive IPv6-Unterstützung ist derzeit in Frankreich oder den Niederlanden nicht verfügbar.
  • ✔Unbegrenztes 1-Gbps Netzwerk
  • ✔Kostenlose automatische Backups
  • ✔Firewall-Verwaltung
  • ✔Kostenloses Server-Monitoring
  • ✔KVM-Isolierung

Agency Web Hosting

$44.99 Save  22 %
$34.99 havonta
  • Nagyon nagy igényű felhasználóknak készült, kapacitást biztosít sok ügyfél és nagy terhelésű munkafolyamatok egyszerű kezeléséhez.
  • 600 GB NVMe tárhely
  • 16 GB RAM memória
  • 4 vCPU AMD EPYC
  • ✔ IPv4 & IPv6 tartalmazza Az IPv6 támogatás jelenleg nem érhető el Franciaországban vagy Hollandiában.
  • ✔Korlátlan 1 Gbps hálózat
  • ✔Ingyenes automatikus mentés
  • ✔Tűzfal kezelés
  • ✔Ingyenes szerver felügyelet
  • ✔KVM elkülönítés

Install Webmin on CentOS Stream, Fedora and other rebuilds

The same script and the same dnf install webmin work on CentOS Stream and on Fedora, and the repository file it writes is byte-identical, since there's no release-specific path in the baseurl. For a long-running install, AlmaLinux and Rocky Linux are the stable choices, and anyone still running CentOS from the pre-Stream days has a migration to plan for reasons that have nothing to do with Webmin.

Fedora is the difference. It moves through Perl versions faster than the enterprise rebuilds, so a Webmin module shelling out to something Fedora has retired will complain there before an EL box ever notices.

Keeping it current

dnf upgrade webmin takes new releases as they land. The official download page carries the current package and links to the changelog. Everything before 2.641 had a stored cross-site scripting flaw in the System and Server Status module, reachable through the notification email templates and tracked as CVE-2026-22678, which let an untrusted user with permission on those templates get to root. The 2.640 release fixed a separate set, including the privilege escalation through the Help feature.

Questions?

Can I manage firewalld from Webmin?

Yes, the FirewallD module in the Networking category manages firewalld from the browser: zones, ports, services and port forwarding. You can apply a rule to all interfaces or to selected ones, list the rich and direct rules in a zone, and edit firewalld's configuration files directly. The module settings hold the path to firewall-cmd and the configuration directory, which defaults to /etc/firewalld/.

Jörg L. Günther
About the author

Jörg L. Günther

Jörg has spent much of his career in enterprise software, working first with database deployments and customer environments, then in technical training and documentation. Since then he has written for companies working in virtualisation, database tooling and cloud infrastructure. The subjects he takes on often have a large operational component: database migrations, high-availability setups, storage configuration and procedures carried out on live systems. Jörg lives near Frankfurt. He plays piano and cycles for transport as much as for recreation. He's also been doing woodworking for several years - he says most of the furniture in his study is his own work.

Move your sites to a server with room to grow

Pick cPanel, Plesk or ispmanager at checkout and manage every site from the panel you know, with full root access when you need it. Support is available 24/7.