In this guide we will install and set up Webmin on an Ubuntu 20.04 server.
Webmin is a web-based system configuration tool for Unix-like systems, although recent versions can also be installed and run on Microsoft Windows. It s a free and open-source control panel for administering Unix/Linux servers.
Webmin provides users with a graphical web-based user interface to configure common system tasks and settings. If you don’t like the idea of using the command line to manage your server, then Webmin is a good graphical alternative to you. The following is a list of functionalities provided by Webmin.
- BIND DNS Server: Create and edit domains, DNS records, BIND options and views
- BSD Firewall : Configure a BSD firewall using IPFW, by creating and editing rules
- DHCP Server: Manage shared networks, subnets, hosts, and groups for ISC DHCPD
- CD Burner: Burn data CDs from ISO images or selected directories
- File Manager : View, edit and change permissions on files and directories on your system with a Windows-like file manager
- Dovecot IMAP/POP3 Server: Configure the Dovecot IMAP and POP3 mail retrieval server
- LDAP Server: Manage the OpenLDAP server and objects in its database All operating systems
- MySQL Database Server: Setup databases, tables, and permissions in your MySQL database server
- Linux RAID: Create RAID 0, 1, 4, 5, 6, 10 and linear devices on a Linux system
- SSL certificates: Let’s Encrypt SSL certificate requests
- IPsec VPN Configuration: Set up a client or server for an IPsec VPN using FreeSWAN
Table of Content
- Ensuring that the server is up to date
- Setting up webmin repo and installing webmin
- Starting and enabling the webmin service
- Open up Webmin service port on firewall
- Accessing webmin service in browser
1. Ensuring that the server is up to date
Before proceeding, it is always a good practice to ensure that the server is up to date. Use these commands to achieve this
sudo apt update sudo apt upgrade -y
Ensure some required packages are installed
sudo apt install -y vim wget
2. Setting up Webmin repo and installing webmin
The recommended way of installing and using webmin is setting up the official repository. That way you will be able to keep up with the latest releases of webmin.
To add Webmin repository, create a source list file with a command-line text editor. Edit the
/etc/apt/sources.list file on your system.
sudo vim /etc/apt/sources.list.d/webmin.list
Add the following line in the file.
deb https://download.webmin.com/download/repository sarge contrib
You should also fetch and install my GPG key with which the repository is signed, with the commands:
wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
Now we can update local package index and install Webmin.
sudo apt install apt-transport-https sudo apt update sudo apt install webmin
All dependencies should be resolved automatically. Once installed, you will get this output:
Setting up webmin (1.983) ... Webmin install complete. You can now login to https://ip-10-2-40-248:10000/ as root with your root password, or as any user who can use sudo to run commands as root. Processing triggers for man-db (2.9.1-1) ... Processing triggers for systemd (245.4-4ubuntu3.13) ...
This shows that the service is running on our server in port 10000.
$ apt-cache policy webmin webmin: Installed: 1.983 Candidate: 1.983 Version table: *** 1.983 500 500 https://download.webmin.com/download/repository sarge/contrib amd64 Packages 100 /var/lib/dpkg/status
3. Starting and enabling the webmin service
The service is started by default. You can confirm the webmin service status using this command:
$ sudo systemctl status webmin ● webmin.service - LSB: web-based administration interface for Unix systems Loaded: loaded (/etc/init.d/webmin; generated) Active: active (running) since Wed 2021-12-15 09:27:11 UTC; 44s ago Docs: man:systemd-sysv-generator(8) Tasks: 1 (limit: 4631) Memory: 27.1M CGroup: /system.slice/webmin.service └─50284 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf Dec 15 09:27:09 ip-10-2-40-248 systemd: Starting LSB: web-based administration interface for Unix systems... Dec 15 09:27:09 ip-10-2-40-248 perl: pam_unix(webmin:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=root Dec 15 09:27:10 ip-10-2-40-248 webmin: Webmin starting Dec 15 09:27:11 ip-10-2-40-248 systemd: Started LSB: web-based administration interface for Unix systems.
To enable the webmin service on boot, use this command:
sudo systemctl enable webmin
4. Opening up webmin service port on firewall
If you installed and enabled
ufw during the prerequisite step, you will need to run the following command in order to allow Webmin through the firewall:
sudo ufw allow 10000
For extra security, you may want to configure your firewall to only allow access to this port from certain IP ranges.
5. Accessing the webmin service in browser
https://your_domain:10000 in your web browser, replacing
your_domain with the domain name pointing to your server’s IP address.
Note: When logging in for the first time, you will see an “Invalid SSL” warning. This warning may say something different depending on your browser, but the reason for it is that the server has generated a self-signed certificate. Allow the exception and proceed to your domain.
You’ll be presented with a login screen. Sign in with a non-root user with sudo privileges present in the system. You can create a dedicated user for this.
Once you log in, the first screen you will see is the Webmin dashboard.
In this tutorial we learnt how to install Webmin on Ubuntu 20.04.