How to Install Webmin on Ubuntu 24.04
Introduction
Webmin is an open-source server management control panel that lets you perform system administration tasks using a web-based graphical user interface (GUI) on Linux systems. It offers a modular design with a core set of functionalities with the ability to install additional modules and manage various system aspects such as user accounts, disk quotas, networking, and applications.
This article explains how to install Webmin on Ubuntu 24.04 server to manage and monitor system functionalities using the web-based control panel.
Prerequisites
Before you begin:
Deploy a Ubuntu 24.04 server instance on Vultr.
Create a new subdomain DNS record pointing to your server IP address. For example,
webmin.example.com
.Access the server using SSH as a non-root user with sudo privileges.
Install Webmin
Webmin is not available in the default Ubuntu 24.04 APT repositories. Follow the steps below to download the latest Webmin repository information and install the application on your server.
Download the latest Webmin repository script.
console$ sudo curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh; sudo bash setup-repos.sh
Run the script using Bash.
console$ sudo bash setup-repos.sh
Install Webmin with all recommended packages.
console$ sudo apt install --install-recommends webmin -y
View the Webmin system service and verify that it's running.
console$ sudo systemctl status webmin
Output:
● webmin.service - Webmin server daemon Loaded: loaded (/usr/lib/systemd/system/webmin.service; enabled; preset: enabled) Active: active (running) since Thu 2024-06-06 04:53:54 UTC; 43s ago Process: 5537 ExecStart=/usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf (code=exited, status=0/SUCCESS) Main PID: 5538 (miniserv.pl) Tasks: 1 (limit: 2269) Memory: 136.3M (peak: 219.0M) CPU: 7.408s CGroup: /system.slice/webmin.service └─5538 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf
Secure Webmin
The Webmin control panel is accessible on the default server port 10000
using HTTP which creates unencrypted connections between your server and a web browser. Secure Webmin by changing your default server port if necessary and encrypt all network connections using HTTPS with trusted SSL certificates. Follow the steps below to generate trusted Let's Encrypt SSL certificates and encrypt all network connections to the Webmin interface.
Allow the HTTP connections through the default firewall to enable Let's Encrypt validations.
console$ sudo ufw allow 80/tcp
Install the Certbot Let’s Encrypt client application.
console$ sudo apt install certbot -y
Generate a new SSL certificate using your Webmin domain. Replace
webmin.example.com
with your actual domain andwebmin@example.com
with your email address.console$ sudo certbot certonly --standalone -d webmin.example.com -m webmin@example.com --agree-tos
When the certificate request is successful, your output should look like the one below:
Saving debug log to /var/log/letsencrypt/letsencrypt.log .................. Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/webmin.example.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/webmin.example.com/privkey.pem This certificate expires on 2024-09-04. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background.
Based on the above output, Certbot saved the SSL certificate and private key files to the
/etc/letsencrypt/live/webmin.example.com/
directory.Run the following command to merge the SSL certificate and private key into a single
.pem
file. For example,webmin.pem
.console$ sudo cat /etc/letsencrypt/live/webmin.example.com/fullchain.pem /etc/letsencrypt/live/webmin.example.com/privkey.pem > webmin.pem
Move the new certificate file to the Webmin configurations directory.
console$ sudo mv webmin.pem /etc/webmin/
Open the main Webmin configuration file using a text editor such as Nano.
console$ sudo nano /etc/webmin/miniserv.conf
Find and replace the
keyfile
value with your SSL certificate file location.inikeyfile=/etc/webmin/webmin.pem
Restart Webmin to apply the new SSL configuration changes.
console$ sudo systemctl restart webmin
Set Up Firewall Rules
Uncomplicated Firewall (UFW) is active on Ubuntu 24.04 servers by default. Follow the steps below to configure the firewall to allow network connections to the default Webmin interface port 10000
and enable HTTPS network connections on the server.
Allow the Webmin port
10000
.consolesudo ufw allow 10000
Allow the HTTPS network connections.
console$ sudo ufw allow https
Deny insecure HTTP connections on the server.
console$ sudo ufw deny http
Reload UFW to apply the firewall changes.
console$ sudo ufw reload
View the UFW status to verify all available connection rules.
console$ sudo ufw status
Your output should look like the one below.
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 10000 ALLOW Anywhere 443 ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 10000 (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6)
Access Webmin
Access your Webmin domain on port
10000
using a web browser such as Chrome.https://webmin.example.com:10000
Enter your sudo user account details and click Sign In to log in and access the Webmin control panel.
All system users with login privileges on your server can access and use the Webmin control panel. However, only privileged users (sudo) can perform administrative tasks using the interface.
Verify your server system information within the Webmin dashboard including your CPU usage, memory usage, disk space, running processes and statistics.
Expand System on the main navigation menu and click Software Package Updates to view packages that require updates on your server.
Select and verify the list of packages that require updates on your server. Then, click Update Selected Packages to view all installable packages.
Click Install Now to update the selected packages on your server.
Click Tools and select File Manager to manage files on your server.
Navigate to Tools and select Terminal to open a new terminal shell on your server.
Conclusion
You have installed Webmin on Ubuntu 24.04 server and secured the control panel with trusted SSL certificates. In addition, accessed the Webmin control panel and performed basic server administration tasks. The control panel lets you keep your server packages up to date, manage the filesystem and other system components such as users, processes, among other features. For more information and configuration options, please visit the Webmin documentation.