Webmin is an open-source, web-based control panel for Linux server administration — user accounts, disk quotas, networking, packages, and more, all without touching the command line. This guide installs it on Ubuntu 24.04, secures it with a real TLS certificate, locks down the firewall, and tours the dashboard.
Prerequisites: an Ubuntu 24.04 instance, non-root sudo user, a domain A record (e.g.
webmin.example.com).
Install Webmin
Not in the default repos — use the official setup script:
$ sudo curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
$ sudo bash setup-repos.sh
$ sudo apt install --install-recommends webmin -y
$ sudo systemctl status webmin
Webmin listens on port 10000 by default.
Secure with Let's Encrypt
Webmin serves plain HTTP on 10000 out of the box — fix that first.
$ sudo ufw allow 80/tcp
$ sudo apt install certbot -y
$ sudo certbot certonly --standalone -d webmin.example.com -m webmin@example.com --agree-tos
Merge cert + key into the format Webmin expects, and install it:
$ sudo cat /etc/letsencrypt/live/webmin.example.com/fullchain.pem /etc/letsencrypt/live/webmin.example.com/privkey.pem > webmin.pem
$ sudo mv webmin.pem /etc/webmin/
$ sudo nano /etc/webmin/miniserv.conf
Find and replace the keyfile value:
keyfile=/etc/webmin/webmin.pem
$ sudo systemctl restart webmin
Lock Down the Firewall
$ sudo ufw allow 10000
$ sudo ufw allow https
$ sudo ufw deny http
$ sudo ufw reload
$ sudo ufw status
Denying plain HTTP after the cert is issued closes the unencrypted path — the cert renewal process doesn't need port 80 open long-term the way initial issuance does (Certbot's --standalone renewal reopens it briefly, or switch to a DNS challenge if you'd rather keep 80 closed permanently).
Access Webmin
- Visit
https://webmin.example.com:10000, log in with your sudo user credentials. - Dashboard shows CPU, memory, disk, and running processes at a glance.
- System → Software Package Updates — review and apply pending package updates.
- Tools → File Manager — browse and edit files on the server.
- Tools → Terminal — a full shell session in the browser.
All system users with login privileges can log in; only sudo users get administrative actions.
Next Steps
Webmin is running behind TLS with the firewall scoped to only the ports it needs. From here:
- Explore Webmin modules for specific services you run (Apache, BIND, Postfix, etc.)
- Set up additional restricted users for team members who only need specific modules
- Switch Certbot to a DNS-01 challenge if you want port 80 closed permanently between renewals
For the full guide, visit the original article on Vultr Docs.
Top comments (0)