DevOps · K8s · Volleyball · Travel  •  DevOps · K8s · Volleyball · Travel  •  DevOps · K8s · Volleyball · Travel
Explore NY Stream

Installing webmin on RHEL6/CentOS6

— ny_wk

Installing webmin on RHEL6/CentOS6

Webmin is a free, open-source web-based control panel that lets you manage a Linux server from any browser, and installing Webmin on RHEL 6 or CentOS 6 takes only a few minutes using the official RPM package. This guide walks through a clean install on those legacy systems, secures the login, and shows you how to verify it works — plus the modern equivalents you should consider, because RHEL 6 and CentOS 6 are both end-of-life.

What Webmin Is and Why Sysadmins Use It

Webmin is a browser-based administration interface for Unix-like systems. Instead of memorizing dozens of shell commands, you point a browser at the server on port 10000 and manage almost everything through forms and menus. It runs as a small Perl-based service (often called miniserv) and modifies the same standard configuration files you would edit by hand — so it never locks you into a proprietary format.

With Webmin you can administer a Linux box graphically while still keeping the underlying system fully standard. Common tasks it handles include:

  • User and group management — create, edit, and delete accounts.
  • Disk and storage — partitions, LVM volumes, RAID, and filesystem mounts.
  • Service configuration — Apache, BIND, Samba, NFS, Postfix, MySQL/MariaDB, and more.
  • Networking and firewall — interfaces, routing, and iptables rules.
  • Cron jobs, software packages, log viewing, and scheduled backups.

It is genuinely useful for someone who is new to the command line, but it is equally a time-saver for experienced administrators who want a quick visual overview of a server. Because it is open source, there is no licensing cost.

Before You Begin: The End-of-Life Warning

Be clear-eyed about the platform. CentOS 6 reached end-of-life on 30 November 2020, and RHEL 6 ended its standard support phase in November 2020 (with paid Extended Life-cycle Support continuing only for customers who pay for it). That means no more free security patches for the base OS. Running an internet-facing CentOS 6 box today is a real risk.

If this is a brand-new deployment, install a supported OS instead — Rocky Linux 9, AlmaLinux 9, or RHEL 9 — and follow the same Webmin steps there (they work identically, only the package URL version changes). If you are maintaining an existing legacy server you cannot yet retire, the instructions below still apply; just keep the machine behind a firewall and plan a migration.

Prerequisites for Installing Webmin on RHEL 6 / CentOS 6

You will need a few things in place before installing Webmin on RHEL 6 or CentOS 6:

  • Root access (or a sudo-capable user).
  • Perl and several Perl modules — these are pulled in automatically when you install via yum.
  • OpenSSL for the HTTPS login page (also handled by the package).
  • Port 10000 open in the firewall so you can reach the interface.

Confirm Perl is present first:

  1. Log in to the server and become root: su - or use sudo -i.
  2. Check Perl: perl -v — you should see a version string. If not, run yum install perl perl-Net-SSLeay openssl perl-Encode-Detect -y.

Method 1: Install Webmin via the Official Repository (Recommended)

Using the official Webmin yum repository is the cleanest method because it resolves dependencies automatically and lets you upgrade later with a single command. This is the preferred way to install Webmin on RHEL 6 / CentOS 6.

  1. Create the repository file. Open a new repo definition:
    vi /etc/yum.repos.d/webmin.repo
    and paste the following:
    [Webmin]
    name=Webmin Distribution Neutral
    baseurl=https://download.webmin.com/download/yum
    enabled=1
    gpgcheck=1
    gpgkey=https://download.webmin.com/jcameron-key.asc
  2. Import the GPG signing key so yum trusts the packages:
    rpm --import https://download.webmin.com/jcameron-key.asc
    (On a very old CentOS 6 box whose CA bundle is outdated, you may need wget with --no-check-certificate to fetch the key, then import the local file.)
  3. Install Webmin:
    yum install webmin -y
    yum downloads Webmin and every required Perl module, then starts the service automatically.
  4. Confirm the service is running:
    service webmin status

Future upgrades are then as simple as yum update webmin, which is the main advantage of the repository approach.

Method 2: Install Webmin from the RPM Package

If you prefer (or the server has no internet access for repos), you can download the standalone RPM and install it directly. This mirrors the classic manual install.

  1. Download the RPM from the official site, https://www.webmin.com/download.html. Save it somewhere sensible such as /opt:
    cd /opt
    wget https://download.webmin.com/download/yum/webmin-current.rpm
  2. Install it. Use yum localinstall rather than a bare rpm -ivh, because yum will resolve the Perl dependencies for you:
    yum localinstall webmin-current.rpm -y
    If you must use rpm directly and hit missing-dependency errors, install the Perl modules first (see Prerequisites), then run:
    rpm -Uvh webmin-current.rpm
  3. The installer prints the login URL when it finishes, typically https://your-server:10000/.

The localinstall command is the key correction here: a plain rpm install will frequently fail on a fresh box because of unmet Perl dependencies, whereas yum localinstall handles them gracefully.

Open the Firewall for Port 10000

Webmin listens on TCP port 10000, and on RHEL 6 / CentOS 6 the firewall (iptables) usually blocks it by default. Allow it so your browser can connect:

  1. Add the rule:
    iptables -I INPUT -p tcp --dport 10000 -j ACCEPT
  2. Persist it across reboots:
    service iptables save
  3. If SELinux is enforcing and blocks the port, either allow it with semanage port -a -t http_port_t -p tcp 10000 or check status with getenforce.

Note that RHEL/CentOS 6 use the legacy iptables service and the service command, not firewalld and systemctl. On the modern Rocky/AlmaLinux/RHEL 9 equivalents you would instead run firewall-cmd --permanent --add-port=10000/tcp followed by firewall-cmd --reload.

Log In to Webmin for the First Time

With the service running and the port open, open any web browser and go to:

  1. https://your-server-ip:10000/ — note https, not http.
  2. Your browser will warn about a self-signed certificate. That is expected on a fresh install — accept the exception to proceed, then plan to add a real certificate later (Webmin can request a free Let's Encrypt cert from Webmin → Webmin Configuration → SSL Encryption).
  3. Log in with the root username and the server's root password. (If you set up a sudo user during the repo install, that account can also be granted Webmin access.)

Once you are in, you will land on the System Information dashboard. From there you can browse the left-hand menu — System, Servers, Networking, Hardware, and Others — and start managing the box.

Hardening Webmin After Install

Because Webmin runs as root and exposes a powerful interface, secure it immediately rather than leaving the defaults:

  • Restrict access by IP. Under Webmin Configuration → IP Access Control, allow only your office or VPN addresses.
  • Use a strong, unique root password and consider enabling two-factor authentication (Webmin Configuration → Two-Factor Authentication).
  • Avoid exposing port 10000 to the public internet. Reach it over a VPN or SSH tunnel instead: ssh -L 10000:localhost:10000 user@your-server, then browse to https://localhost:10000.
  • Keep it patched. Run yum update webmin regularly — Webmin has had remote-code-execution CVEs in the past, so staying current matters.
  • Create a non-root Webmin user with only the modules each administrator needs, instead of sharing root.

Common Pitfalls and How to Fix Them

A few issues trip people up when installing Webmin on RHEL 6 / CentOS 6:

SymptomLikely causeFix
Browser cannot connect to port 10000Firewall blocking the portAdd the iptables ACCEPT rule and save it
RPM install fails on missing Perl modulesUsed rpm instead of yumUse yum localinstall, or install perl-Net-SSLeay first
"GPG key retrieval failed"Outdated CA bundle on CentOS 6Import the key manually after downloading it
Login page loads but credentials rejectedWrong password / locked accountReset with /usr/libexec/webmin/changepass.pl /etc/webmin root NEWPASS
HTTPS certificate warningDefault self-signed certExpected — accept it, then install Let's Encrypt

The single most common mistake is forgetting the https:// prefix or the firewall rule — check both before assuming the install failed.

Verify the Installation

Confirm everything is healthy with these checks:

  1. Service running: service webmin status should report the daemon is active. You can also list the process: ps aux | grep miniserv.
  2. Port listening: netstat -tlnp | grep 10000 should show miniserv.pl bound to the port.
  3. Version installed: rpm -q webmin prints the exact package version.
  4. Web login works: the dashboard loads at https://your-server:10000/ and shows your hostname, uptime, and resource usage.
  5. Auto-start on boot: chkconfig --list webmin — ensure it is on for runlevels 3 and 5; enable with chkconfig webmin on.

If all five checks pass, Webmin is correctly installed and will survive a reboot.

Key Takeaways

  • Webmin gives you a free, browser-based GUI to manage a Linux server on port 10000 — users, storage, services, and more.
  • The cleanest way to install Webmin on RHEL 6 / CentOS 6 is the official yum repository, which auto-resolves Perl dependencies and enables easy upgrades.
  • When installing from the RPM, use yum localinstall rather than bare rpm to avoid missing-dependency errors.
  • You must open TCP port 10000 in iptables and connect over https, then restrict access by IP and patch regularly.
  • CentOS 6 and RHEL 6 are end-of-life — for new servers use Rocky Linux, AlmaLinux, or RHEL 9, where the same steps work with firewalld.

Frequently Asked Questions

What port does Webmin use, and is it HTTP or HTTPS?

Webmin listens on TCP port 10000 and serves an HTTPS page by default using a self-signed certificate. Always browse to https://your-server:10000/ — using plain http will fail to load the login form.

How do I reset a forgotten Webmin root password?

From a root shell on the server, run /usr/libexec/webmin/changepass.pl /etc/webmin root yournewpassword, then restart the service with service webmin restart. This resets the Webmin login independently of the system root password.

Is Webmin safe to expose to the internet?

It is best practice not to expose port 10000 publicly. Webmin runs with root privileges and has had serious CVEs, so reach it through a VPN or SSH tunnel, restrict access by IP, enable two-factor authentication, and keep the package updated with yum update webmin.

Can I use these steps on Rocky Linux, AlmaLinux, or RHEL 9?

Yes. The Webmin repository and package are distribution-neutral, so the install is identical. The only difference is the firewall: modern releases use firewall-cmd --permanent --add-port=10000/tcp and systemctl instead of the legacy iptables and service commands.

For more Linux and system-administration walkthroughs, subscribe to our YouTube channel @explorenystream.