How to Install Webmin on Ubuntu 22.04

Updated on 01 May, 2025
How to Install Webmin on Ubuntu 22.04 header image

Webmin is an open-source server management tool that provides a web-based GUI for system administration on Linux. It offers core functionalities and supports additional modules to manage system tasks like user accounts, disk quotas, networking, and applications.

In this article, you are to install Webmin on an Ubuntu 22.04 server, providing a web-based control panel to manage and monitor system functionalities.

Prerequisites

Before you begin:

Install Webmin

Webmin is not available in the default Ubuntu 22.04 APT repositories. Follow the steps below to download the latest Webmin repository information and install the application on your server.

  1. Download the latest Webmin repository script.

    console
    $ curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
    
  2. Run the script using Bash.

    console
    $ sudo bash setup-repos.sh
    
  3. Install Webmin with all recommended packages.

    console
    $ sudo apt install --install-recommends webmin -y
    
  4. 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 port 10000 by default with HTTP. To secure Webmin, change the default port if needed and encrypt all connections with HTTPS using trusted Let's Encrypt SSL certificates. Follow the steps below to generate and apply the certificates.

  1. Allow the HTTP connections through the default firewall to enable Let's Encrypt validations.

    console
    $ sudo ufw allow 80/tcp
    
  2. Install the Certbot Let’s Encrypt client application.

    console
    $ sudo apt install certbot -y
    
  3. Generate a new SSL certificate using your Webmin domain. Replace webmin.example.com with your actual domain and webmin@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 2025-07-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.

  4. 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
    

    Replace webmin.example.com with your actual domain.

  5. Move the new certificate file to the Webmin configurations directory.

    console
    $ sudo mv webmin.pem /etc/webmin/
    
  6. Open the main Webmin configuration file using a text editor such as Nano.

    console
    $ sudo nano /etc/webmin/miniserv.conf
    
  7. Find and replace the keyfile value with your SSL certificate file location.

    ini
    keyfile=/etc/webmin/webmin.pem
    
  8. Restart Webmin to apply the new SSL configuration changes.

    console
    $ sudo systemctl restart webmin
    

Set Up Firewall Rules

UFW is active by default on Ubuntu 22.04. Follow the steps in this section to configure the firewall to allow connections to the Webmin interface on port 10000 and enable HTTPS connections.

  1. Allow the Webmin port 10000.

    console
    $ sudo ufw allow 10000
    
  2. Allow the HTTPS network connections.

    console
    $ sudo ufw allow https
    
  3. Deny insecure HTTP connections on the server.

    console
    $ sudo ufw deny http
    
  4. Reload UFW to apply the firewall changes.

    console
    $ sudo ufw reload
    
  5. 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

  1. Access your Webmin domain on port 10000 using a web browser such as Chrome.

    https://webmin.example.com:10000
  2. Enter your sudo user account details and click Sign In to log in and access the Webmin control panel.

    Webmin login page

    All users with login privileges can access Webmin, but only sudo users can perform administrative tasks.

  3. Verify server system info (CPU, memory, disk space, processes) in the Webmin dashboard.

  4. Navigate to System > Software Package Updates to check for packages needing updates.

  5. Review and select packages for updates, then click Update Selected Packages.

    Update Server Application Packages using Webmin

  6. Click Install Now to update the selected packages on your server.

  7. Click Tools and select File Manager to manage files on your server.

    Access file manager

  8. Navigate to Tools and select Terminal to open a new terminal shell on your server.

    Access terminal

Conclusion

You have installed Webmin on your Ubuntu 22.04 server, secured the control panel with trusted SSL certificates, and accessed it to perform basic server administration tasks. The control panel allows you to keep your server packages up to date, manage the filesystem, and handle other system components such as users and processes. For more information and configuration options, please visit the Webmin documentation.

Comments

No comments yet.