Webmin Administration Tool
Graphical Systems Administration Tool for Linux
What is Webmin?
Webmin is a web-based interface for the system administration of Linux/Unix type operating systems. Webmin uses a web browser as its graphical user interface. Webmin allows you to manage user accounts, Apache, DNS, file sharing and much more all from a simple web interface. Webmin eliminates the need for manually editing complex configuration files.
An official wiki page has been created containing useful information regarding installation, configuration and tutorials. This can be found here: Webmin Wiki Page
Webmin is available for many different operating systems. In the examples that follow I will use the rpm files for a CentOS/RHEL installation and the Debian packages for a Debian/Ubuntu installation. The packages can be manually downloaded for the relevant architecture from the following links:
Download rpm Packages
Download Debian Packages
All other Operating Systems can be found under the main Download page Downloads Page
Install Webmin on Ubuntu 14.04 LTS
To install webmin on an Ubuntu 14.04 LTS system simply follow the process below:
Add the Webmin repository to your repository source list
Issue the following command to edit your source.list file:
sudo vi /etc/apt/sources.list
You will be prompted to enter your password. In the example command I have used "vi" as my editor, you can use any editor of your choice. Once the file has opened, add the following lines to the bottom of the file and save your changes:
## Webmin Official Repo deb http://download.webmin.com/download/repository sarge contrib
Now run the following command to add a new key:
wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
Now we can install webmin by issuing the following commands:
$ sudo apt-get update $ sudo apt-get install webmin
At the end of the installation, you should see a message indicating that webmin has been successfully installed.
Accessing webmin via your browser
You may login to your server via your internet browser using the IP address of your server followed by the default port of 10000
In the above example, the IP address of my Ubuntu system is "192.168.0.18".
First you will need to enter a userid and password of an account that can run sudo commands as root.
Once you have entered your credentials you should now see a screen similar to the one below:
For an overview of the Administration Categories, see "Overview" section towards the bottom of this page.
Installing Webmin on a Red Hat based distribution (CentOS/Fedora)
Issue the following commands to download the rpm packages and verification keys:
Before we issue the command "wget" to retrieve our files. You may need to install the "wget" utility first. To do this simply issue the following commands:
# yum list installed | grep wget
If you receive no output back from this command, then you will need to install "wget" with the following command.
# yum install wget -y
Now if we run the "yum list installed" command again for wget, we can now see that this utility has been installed:
# yum list installed | grep wget wget.x86_64 1.14-10.el7 @base
Next we need to change to our "/tmp" directory and issue the following "wget" commands to retrieve our files.
# cd /tmp # wget http://www.webmin.com/jcameron-key.asc # wget http://prdownloads.sourceforge.net/webadmin/webmin-1.690-1.noarch.rpm
Before we install our downloaded packages, we must verify that "perl" has been installed. To check if you have perl installed on your system simply issue the following command:
# rpm -qa perl
If you do not see any output back from this command, then you will need to install this component. This is easily done by using the following "yum install" command:
# yum install perl -y
You can verify that perl is now installed by issuing the command "perl -v". This will report back that perl is installed and its version number.
# perl -v This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
Next we need to verify the integrity of our rpm download by verifying the PGP information. You will need to import the key into your RPM's key database with the command:
rpm --import jcameron-key.asc
Now issue the following rpm command to install our package:
# rpm -ihv webmin-1.690-1.noarch.rpm
The output from the above command should be similar to the following output:
[root@centos07a tmp]# rpm -ihv webmin-1.690-1.noarch.rpm Preparing... ################################# [100%] Operating system is CentOS Linux Updating / installing... 1:webmin-1.690-1 ################################# [100%] Webmin install complete. You can now login to http://centos07a:10000/ as root with your root password.
webmin config file
If you need to manually edit your webmin configuration file, this can be found at the following location:
Firewall Entry for Port 10000
Before we attempt to access the graphical interface using our browser, you may need to add a new rule to open port "10000" on your firewall. Port 10000 is the default port used by webmin. To do this simply add the following line to your firewalls configuration, normally after the line for ssh on port 22 and port 80:
-A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
The configuration file for your firewall is located at: /etc/sysconfig/iptables
For further information regarding working with firewalls see our Iptables Guide
Accessing webmin via your browser
To access the webmin interface, you will need to type either the IP address of your system or its hostname into your browser along with the associated port (10000): http://192.168.0.16:10000
In this example I have used the IP address of my CentOS server.
Once you have entered your IP/Hostname information, you should now see a screen similar to the one below:
In this example, I have logged in using the "root" account along with its associated password.
If you receive an error on screen "Require package-updates/install_check.pl failed", I fixed this by installing the following component: "perl-Data-Dumper.x86_64. This can be installed with the following command:
yum install perl-Data-Dumper.x86_64
Now if you refresh your browser, you should see a screen similar to the one below:
Overview of Administration Categories
The left hand screen covers the following categories: Webmin, System, Servers, Others, Networking, Hardware, Cluster, Modules and System Information. By clicking on each heading a sub menu will open allowing you to carry out many different administration tasks. Below is a quick overview of some of the sub-headings.
Under this heading you can make backups of your webmin configuration files, modify configuration, modify webmin Language settings and themes and create webmin users.
Under the "System" heading you can control which services start at boot, change or reset user's passwords, View Disk and Network filesystems, create scheduled backups in a TAR format, restore backups, manage log file rotation, Add new PAM services, display running processes, schedule cron jobs to run, check for updated packages, view system documentation, view system logs and manage users and groups.
Under servers you can manage your email servers and SSH Servers.
Under this section you can execute commands directly, create custom commands, manage files, view http Tunnels, view and install perl modules, create protected web directories, manage ssh logins, monitor critical services and send alerts, terminal login, Upload and Download files to server.
From the Networking heading you can monitor your systems bandwidth, manage your firewall, Modify Network Configuration settings, manage NIS client and Server settings, manage TCP wrappers (hosts.allow/hosts.deny)
From the Hardware heading you can manage LVM (Logical Volume Management) settings such as Volume Groups, Physical Volumes and Logical Volumes. Basic partition management can also be carried out. Manage printers that utilise CUPS. Manage System and Hardware clock times.
Under the Cluster option you are allowed to manage multiple servers.
This heading displays hostname, OS information, Kernel and CPU information, Load, CPU Usage, Number of running processes, physical and virtual memory utilization, Disk information and package updates.